Here is a working draft doc, feel free to comment out :) https://docs.google.com/document/d/1MSsTOz7xUu50dAf_8v3gsQFfJFFy9LKnULdIl26yj0o/edit?usp=sharing
On Thu, Mar 23, 2017 at 5:00 PM, Chen Qin <qinnc...@gmail.com> wrote: > Quick capture comments on FLINK-6085, we want to have rpc source that > accept requests from clients and reroute response (callback to > corresponding rpc source) > > > > On Tue, Mar 21, 2017 at 10:47 PM, Chen Qin <qinnc...@gmail.com> wrote: > >> Hi Radu/jinkui, >> >> Thanks for your input! >> >> I filed a master task to track discussion on this front >> https://issues.apache.org/jira/browse/FLINK-6085 >> >> Since this is a very broad topic, I would like to kick start with a tiny >> deployment helper project. >> What it try to address is to leverage various of service continuous >> deployment pipelines in various of companies (amazon/facebook/uber) and >> deploy/update jobmanager/taskmanagers as a high available micro service >> (via zk and aws s3) >> >> I run this service in prod for a month (2 dc, 2 job managers per dc, 8-64 >> task managers per dc depending on workload) for testing usage. >> Haven't seen problem so far. >> >> https://github.com/chenqin/flink-jar >> >> Thanks, >> Chen >> >> >> >> >> On Thu, Mar 16, 2017 at 2:05 AM, Radu Tudoran <radu.tudo...@huawei.com> >> wrote: >> >>> Hi, >>> >>> I propose that we consider also the type of connectivity to be supported >>> in the Flink API Gateway. I would propose to support a couple of calls >>> option to ingest also events. I am thinking of: >>> - callback mechanism >>> - REST >>> - RPC >>> >>> >>> >>> >>> -----Original Message----- >>> From: Chen Qin [mailto:qinnc...@gmail.com] >>> Sent: Wednesday, March 15, 2017 7:31 PM >>> To: dev@flink.apache.org >>> Subject: Re: Flink as a Service (FaaS) >>> >>> Hi jinkui, >>> >>> I haven't go down to that deep yet. Sounds like you have better idea >>> what needs to be in place. >>> Can you try to come up with a doc and may be draw some diagram so we can >>> discuss from there? >>> >>> My original intention is to discuss general function gap of running lots >>> of micro services(like thousands of services as I observed). I feel flink >>> low level has potential to fit in to highly critical services space and do >>> good job fill those gaps. >>> >>> >>> mobile apps >>> ----------------------------------- >>> front end request router >>> -------------------------------------- >>> service A | service B | service C >>> database A |database B| database C >>> --------------------------------------- >>> Flink as a service >>> ---------------------------------------- >>> service D | service E |service F >>> database D | database E |database F >>> >>> Thanks, >>> Chen >>> >>> >>> >>> >>> >>> On Tue, Mar 14, 2017 at 12:01 AM, shijinkui <shijin...@huawei.com> >>> wrote: >>> >>> > Hi, Chen Qin >>> > >>> > We also met your end-to-end use case. A RPC Source and Sink such as >>> > netty source sink can fit such requirements. I’ve submit a natty >>> > module in bahir-flink project which only a demo. >>> > If use connector source instead of Kafka, how do we make the data >>> > persistent? One choice is distributedlog project developed by twitter. >>> > >>> > The idea of micro service is very good. Playframework is better choice >>> > to provide micro-service of Flink instead of Flink Monitor which >>> > implemented by netty. >>> > Submit Flink job in the Mesos cluster, at the same time deploy the >>> > micro-service by marathon to the same Mesos cluster, and enable >>> > mesos-dns for service discovery. >>> > >>> > The the micro-service can be a API Gateway for: >>> > 1. receiving data from device >>> > 2. Sending the data to the Flink Job Source(Netty Source with >>> > distributedlog) >>> > 3. At same time, the sink send the streaming result data to the API >>> > Gateway 4. API Gateway support streaming invoke: send the sink result >>> > data to the device channel >>> > >>> > So this plan can guarantee the end-user invoke the service >>> > synchronized, >>> > and don’t care about Flink Job’s data processing. >>> > >>> > By the way, X as a Service actually is called by SAAS/PAAS in the >>> > cloud platform, such as AWS/Azure. We can call it Flink micro >>> > service.:) >>> > >>> > Best Regards >>> > Jinkui Shi >>> > >>> > 在 2017/3/14 下午2:13, "Chen Qin" <qinnc...@gmail.com> 写入: >>> > >>> > >Hi there, >>> > > >>> > >I am very happy about Flink 1.2 release. It was much more robust and >>> > >feature rich compare to previous versions. In the following section, >>> > >I would like to discuss a non typical use case in flink community. >>> > > >>> > >With ever increasing popularity of micro services[1] to scale out >>> > >popular online services. Various aspect of source of truth is stored >>> > >(a.k.a >>> > >partitioned) behind various of service rpc endpoints. There is a >>> > >general need of managing events traversal and enrichment throughout >>> > >org SOA systems. (SOA) It is no longer part of data infrastructure >>> > >scope, where traditionally known as batched slow and analytic(small % >>> lossy is okay). >>> > >Flink might also find a fit into core services as well. >>> > > >>> > >It's part of online production services, serving directly from mobile >>> > >client events more importantly services database post commit logs and >>> > >orchestrate adhoc stream toplogies to transform and transfer between >>> > >online services(usually backed by databases and serving request >>> > >response with stragent latency requirement) >>> > > >>> > >Use case: >>> > >user updates comes from mobile client via kafka topic, which consumed >>> > >both by user service as well as streaming job. When streaming job do >>> > >RPC and trying to enrich user information, it cause race condition >>> > >which turns out database persistence is not as speedy as streaming >>> job. >>> > > >>> > >In general, streaming job should consume user service commit logs >>> > >instead of karfka topic which defines as source of truth in term of >>> > >user information. Is there a general way to couple with these issues? >>> > > >>> > >P.S I was able to build task manager as jar package and deployed to >>> > >production environment. Instead of using YARN to manage warehouse >>> > >machines. >>> > >Utilize same deployment environment as other online services as >>> > >docker. So far, it seems running smoothly. >>> > > >>> > >Thanks, >>> > >Chen >>> > > >>> > > >>> > >[1] https://en.wikipedia.org/wiki/Microservices >>> > >[2] https://martinfowler.com/eaaDev/EventSourcing.html >>> > >>> > >>> >> >> >