Yes, JobService can be implemented by a runner and can be bade available
using an endpoint.
The component reuse is more of a code reuse.

On Wed, May 23, 2018 at 3:14 PM Reuven Lax <re...@google.com> wrote:

>
>
> On Wed, May 23, 2018 at 3:09 PM Ankur Goenka <goe...@google.com> wrote:
>
>> 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?
>>
>> Yes, absolutely. A good chunk of it can be reused. We are reusing a few
>> components from ULR in Flink runner. Calling JobService runner specific
>> gives freedom to runner to have very custom JobService if needed.
>>
>
> So you're suggesting that we should publish common JobService components
> and recommend that runners use them, but that runners are free to build
> something completely custom if they prefer?
>
>>
>> 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.
>>
>> Authentication and authorization is still an unsolved problem. To the
>> best of my knowledge, it is runner specific and any required information
>> should be a part of grpc headers.
>>
>> On Wed, May 23, 2018 at 2:48 PM Ismaël Mejía <ieme...@gmail.com> wrote:
>>
>>> 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