Interesting document, two questions:

1. Why JobService is runner specific? Couldn't at least a good part of it
be reused given that the runner specific parts are mostly in the
translation? or I am missing other reasons?

2. What about authentication and authorisation for production runners ?
Once you can use such service to submit/cancel Pipelines is the first thing
I can think of abusing.
On Tue, May 22, 2018 at 9:40 PM Ankur Goenka <goe...@google.com> wrote:

> Thank you guys for the input.

> Here is the summary.

> Responsibility of Beam on Job Management

> Beam provide a common interface for basic job management operations
called JobService. The supported operations can vary between runners.


> What is JobService?

> JobService is a runner specific component which implements Beams
JobService interface defined here.


> What is the life cycle of a JobService?

> There are 3 scenarios

> With ULR, JobService is short lived and runs as long as the ULR runs. (
JobService Lifespan ~= Job Lifespan )

> With Production runners ( Flink, Dataflow etc), JobService can either be
short lived or long lived. The choice is up to the runner.

> With Production runners ( Flink, Dataflow etc) without long running
JobService, SDK will spin up a local JobService.


> JobService state management

> The choice of state management is up to JobService implementation. The
basic requirement is that JobService should be able to perform all the
operations with the returned job handle.

> At the very least it can be the job handle for the underlying runner job
and JobService will simply proxy actions to the runner using the provided
job handle.

> A persistent JobService is free to provide a simple string as a
JobHandle. In this case, job handle can only be used with the same job
service.

> A stateless not persistent JobService can provide a opaque blob
containing all the relevant information about the job. In this case the job
handle can be used with any instance of JobService with the same code.


> JobService code distribution and invocation when JobService is short lived

> We will give an easy to run solution using docker. Docker will help in
both executable distribution and providing platform independent binary.

> We will also give an easy setup script with a supporting document for
users who do not want to use docker on local machine.


> Should Flink JobService start a local cluster for testing?

> Flink JobService will be capable of submitting to a remote Flink cluster
if an master url is provided else it will execute the pipeline in an
inprocess Flink invocation on the same JVM.




> On Tue, May 22, 2018 at 12:37 PM Eugene Kirpichov <kirpic...@google.com>
wrote:

>> Thanks Ankur, I think there's consensus, so it's probably ready to share
:)

>> On Fri, May 18, 2018 at 3:00 PM Ankur Goenka <goe...@google.com> wrote:

>>> Thanks for all the input.
>>> I have summarized the discussions at the bottom of the document ( here
).
>>> Please feel free to provide comments.
>>> Once we agree, I will publish the conclusion on the mailing list.

>>> On Mon, May 14, 2018 at 1:51 PM Eugene Kirpichov <kirpic...@google.com>
wrote:

>>>> Thanks Ankur, this document clarifies a few points and raises some
very important questions. I encourage everybody with a stake in Portability
to take a look and chime in.

>>>> +Aljoscha Krettek +Thomas Weise +Henning Rohde

>>>> On Mon, May 14, 2018 at 12:34 PM Ankur Goenka <goe...@google.com>
wrote:

>>>>> Updated link to the document as the previous link was not working for
some people.


>>>>> On Fri, May 11, 2018 at 7:56 PM Ankur Goenka <goe...@google.com>
wrote:

>>>>>> Hi,

>>>>>> Recent effort on portability has introduced JobService and
ArtifactService to the beam stack along with SDK. This has open up a few
questions around how we start a pipeline in a portable setup (with
JobService).
>>>>>> I am trying to document our approach to launching a portable
pipeline and take binding decisions based on the discussion.
>>>>>> Please review the document and provide your feedback.

>>>>>> Thanks,
>>>>>> Ankur

Reply via email to