Thanks for clarifying. Makes sense to me.

On Fri, Jul 25, 2014 at 5:14 PM, Bill Farner <wfar...@apache.org> wrote:
> Only the API methods on the scheudler; i propose that the client adopt the
> scheduler's update orchestration and we delete the equivalent code from the
> client.
>
> -=Bill
>
>
> On Fri, Jul 25, 2014 at 3:54 PM, Maxim Khutornenko <ma...@apache.org> wrote:
>
>> I am a bit confused. Are you suggesting we retain the current client
>> updater algorithm or only the scheduler primitives it currently
>> employs?
>>
>> On Fri, Jul 25, 2014 at 3:36 PM, Bill Farner <wfar...@apache.org> wrote:
>> > Yeah, absolutely - we will retain AURORA-383
>> > <https://issues.apache.org/jira/browse/AURORA-383> for that.
>> >
>> > -=Bill
>> >
>> >
>> > On Fri, Jul 25, 2014 at 2:48 PM, Brian Wickman <wick...@apache.org>
>> wrote:
>> >
>> >> The scheduler API should know when jobs are locked, though, right?  That
>> >> information could be made available to the UI.
>> >>
>> >>
>> >> On Fri, Jul 25, 2014 at 2:40 PM, Bill Farner <wfar...@apache.org>
>> wrote:
>> >>
>> >> > I think the current API primitives used for updates (kill, add) will
>> >> > continue to make sense, so a client could implement updates that way.
>> >> >  However, these will not appear as updates to the scheduler.
>> >> >
>> >> > -=Bill
>> >> >
>> >> >
>> >> > On Fri, Jul 25, 2014 at 2:31 PM, Maxim Khutornenko <ma...@apache.org>
>> >> > wrote:
>> >> >
>> >> > > Retaining client update algorithm would require extra work on the
>> >> > scheduler
>> >> > > side to satisfy visibility requirements Bill outlined above, which
>> may
>> >> > not
>> >> > > worth the effort. That would also create ground for inconsistent
>> update
>> >> > > expectations and experience.
>> >> > >
>> >> > >
>> >> > > On Fri, Jul 25, 2014 at 1:34 PM, Brian Wickman <wick...@apache.org>
>> >> > wrote:
>> >> > >
>> >> > > > Will the API for client-side updates still exist?  Will the client
>> >> > > continue
>> >> > > > to have its own implementation of 'update' (or perhaps an 'update
>> >> > > --local'
>> >> > > > flag?)  The reason I ask is whether customers should continue to
>> have
>> >> > the
>> >> > > > flexbility to implement their own update algorithms (e.g. 1% ->
>> 10%
>> >> ->
>> >> > > 25%
>> >> > > > -> 25% -> 25% -> rest.)
>> >> > > >
>> >> > > >
>> >> > > > On Fri, Jul 25, 2014 at 11:41 AM, Bill Farner <wfar...@apache.org
>> >
>> >> > > wrote:
>> >> > > >
>> >> > > > > Hi all,
>> >> > > > >
>> >> > > > > Rolling updates of services is a crucial feature in Aurora. As
>> >> such,
>> >> > we
>> >> > > > > want to take great care when changing its behavior. Today,
>> Aurora
>> >> > > > operates
>> >> > > > > by delegating this functionality to the client (or any API
>> client,
>> >> > for
>> >> > > > that
>> >> > > > > matter). While this has provided a nice abstraction, it turns
>> out
>> >> > there
>> >> > > > are
>> >> > > > > some shortcomings with this approach:
>> >> > > > >
>> >> > > > >   1. Visibility: since the scheduler does not know about
>> updates,
>> >> it
>> >> > > > cannot
>> >> > > > > display useful information about an in-progress update
>> >> > > > >   2. Visibility: for two users to diagnose a failed update, they
>> >> must
>> >> > > be
>> >> > > > at
>> >> > > > > the same terminal, or copy/paste terminal output
>> >> > > > >   3. Usability: the scheduler has no means to show information
>> >> about
>> >> > > how
>> >> > > > an
>> >> > > > > application's packages or configuration changed over time
>> >> > > > >   4. Usability: update orchestration in the client means a lost
>> >> > > > connection
>> >> > > > > to the scheduler halts an update
>> >> > > > >
>> >> > > > > Some of the above issues can be addressed by moving update
>> >> > > orchestration
>> >> > > > to
>> >> > > > > a service external to the scheduler. At first glance, this
>> approach
>> >> > is
>> >> > > > > attractive, as there is a firm separation of concerns. However,
>> >> there
>> >> > > > are a
>> >> > > > > few pitfalls with this approach:
>> >> > > > >
>> >> > > > >   1. Usability: setup and maintenance of an aurora cluster
>> becomes
>> >> > even
>> >> > > > > more complicated (additional service + storage system)
>> >> > > > >   2. Usability: the user interface becomes more complicated to
>> >> stitch
>> >> > > > > together, as end-users really should only have to visit one
>> website
>> >> > to
>> >> > > > view
>> >> > > > > job information.
>> >> > > > >   3. Complexity: implementing a new production-ready service
>> from
>> >> > > scratch
>> >> > > > > will take a non-trivial amount of time
>> >> > > > >
>> >> > > > > With these issues in mind, I propose that the scheduler take
>> over
>> >> the
>> >> > > > > responsibility of application update orchestration. This will
>> allow
>> >> > us
>> >> > > to
>> >> > > > > solve the current design shortcomings, without the pitfalls of
>> the
>> >> > > > separate
>> >> > > > > service approach.
>> >> > > > >
>> >> > > > > I'm interested in thoughts others have on this. Does the
>> reasoning
>> >> > seem
>> >> > > > > sound? Are there things i'm missing?
>> >> > > > >
>> >> > > > >
>> >> > > > > -=Bill
>> >> > > > >
>> >> > > >
>> >> > >
>> >> >
>> >>
>>

Reply via email to