Congratulations Renan on contributing such a major feature back to the community. Looking forward to reading the blog post.
On Fri, Aug 5, 2016 at 10:15 AM, <meghdoo...@yahoo.com.invalid> wrote: > Expect that to be up by mid next week and put in 0.16 docs. > > Sent from my iPhone > > > On Aug 5, 2016, at 9:23 AM, Zhitao Li <zhitaoli...@gmail.com> wrote: > > > > This sounds awesome! > > > > Is there a document for how to use the feature? > > > > On Fri, Aug 5, 2016 at 12:35 AM, meghdoot bhattacharya < > > meghdoo...@yahoo.com.invalid> wrote: > > > >> Renaming the subject. > >> Renan's latest patch in 0.16 has completed the goal of implementing > both 2 > >> and 3. So, Aurora now can not only support custom executors but run > >> multiple executors in the cluster!! Mesos fetcher has been integrated as > >> well to help the custom executors have access to downloaded artifacts > that > >> it needs. We are going to add dedicated documentation on how to enable > this > >> in 0.16. > >> This was 2 summers in making with Renan's internship slots. Special > thanks > >> to Maxim, Joshua and Bill to make this happen and mentoring Renan in the > >> process. > >> > >> > >> As for point 1, we are going to put out the golang client in few weeks > to > >> easily test different executors (including thermos) with Aurora with > real > >> examples. During the same time we will release production grade > >> docker-compose executor simulating running container pods with Aurora. > >> Expect a detailed blog in a month. > >> Thx > >> From: David McLaughlin <dmclaugh...@apache.org> > >> To: dev@aurora.apache.org > >> Sent: Monday, June 13, 2016 10:39 AM > >> Subject: Re: Golang Aurora lib, multiple executor support, integrate > >> mesos task related fields > >> > >> Thanks, also +1 to supporting points 2 and 3. > >> > >>> On Mon, Jun 13, 2016 at 10:33 AM, <meghdoo...@yahoo.com.invalid> > wrote: > >>> > >>> Got it. Thx Max. > >>> Renan will starting working on 2 and 3, involving and updating you all. > >>> > >>> Thx > >>> > >>> Sent from my iPhone > >>> > >>>>> On Jun 13, 2016, at 10:09 AM, Maxim Khutornenko <ma...@apache.org> > >>>> wrote: > >>>> > >>>> David pinged me offline suggesting I misread the proposal for (2) as > >>>> an attempt to support multiple executors per task rather than "per > >>>> cluster". If that's the case, I am happy to change my vote for (2) to > >>>> +1. I don't see much harm (aside from possible UI inconsistencies) > >>>> from multiple executor types sharing the same cluster. > >>>> > >>>>> On Mon, Jun 13, 2016 at 9:54 AM, <meghdoo...@yahoo.com.invalid> > >> wrote: > >>>>> I will leave Renan for a detailed response. > >>>>> > >>>>> If aurora can schedule Job A with thermos and Job B that requires a > >>> different executor that is a first class concept in mesos, why is > there a > >>> objection? Renan's patch of replacing thermos executor is already in > >>> aurora. However right now aurora can statically configure only one > >>> executor. And so we want a job submission dynamically can call out the > >>> executor type. > >>>>> Please clarify your views. > >>>>> Right now the docker integration story in mesos is weak (current and > >>> also the new universal containerizer). We see much value in using > >> executors > >>> like > >>>>> https://github.com/mesos/docker-compose-executor > >>>>> With aurora jobs. > >>>>> > >>>>> Points 2 and points 3 make the custom executor story stronger. (For > >>> example we will run both thermos and compose executor depending on job > >> type) > >>>>> > >>>>> > >>>>> Point 1, I agree. That is outside of aurora and most likely will be a > >>> shim on top of generated go thrift bindings but a helper to easily test > >>> custom executors. > >>>>> Last time when we reviewed with aurora team, it came out current > >> aurora > >>> cli is tightly coupled with thermos objects for jobs and hence keep it > as > >>> is. > >>>>> > >>>>> Thx > >>>>> > >>>>> > >>>>> > >>>>> Sent from my iPhone > >>>>> > >>>>>> On Jun 13, 2016, at 9:19 AM, Maxim Khutornenko <ma...@apache.org> > >>> wrote: > >>>>>> > >>>>>> I am with Rick and David on this. The (1) and (2) feel like building > >> a > >>>>>> parallel universe within Aurora without a clear justification on the > >>>>>> long-term benefits for the community. > >>>>>> > >>>>>> I am strong -1 on bringing yet another language into the Aurora > >>>>>> ecosystem without identifying the strategic upside. As David > >>>>>> suggested, any efforts towards building the first-class REST API > >>>>>> instead would go a long way and will be much appreciated by > everyone. > >>>>>> > >>>>>> I also don't see a reason to support multiple executors per task. > >> That > >>>>>> feels like re-creating thermos in a thermos-less world. > >>>>>> > >>>>>> As for (3), I'd like to see more details on the mechanics here but > >>>>>> generally positive towards supporting more TaskInfo features in > >>>>>> Aurora. > >>>>>> > >>>>>> > >>>>>>> On Sun, Jun 12, 2016 at 11:46 AM, <r...@chartbeat.com> wrote: > >>>>>>> I generally shy away from technical goals that are based on a > choice > >>> of language. What is it about a go client that can't be done by > extending > >>> the existing client? > >>>>>>> > >>>>>>>> On Jun 12, 2016, at 2:00 PM, Renan DelValle < > >> rdelv...@binghamton.edu> > >>> wrote: > >>>>>>>> > >>>>>>>> Hi David, > >>>>>>>> > >>>>>>>> On Fri, Jun 10, 2016 at 12:33 AM, David McLaughlin < > >>> da...@dmclaughlin.com> > >>>>>>>> wrote: > >>>>>>>> > >>>>>>>>> On Thu, Jun 9, 2016 at 5:44 PM, meghdoot bhattacharya < > >>>>>>>>> meghdoo...@yahoo.com.invalid> wrote: > >>>>>>>>> > >>>>>>>>>> Comments inline > >>>>>>>>>> > >>>>>>>>>> From: David McLaughlin <dmclaugh...@apache.org> > >>>>>>>>>> To: dev@aurora.apache.org > >>>>>>>>>> Sent: Thursday, June 9, 2016 5:13 PM > >>>>>>>>>> Subject: Re: Golang Aurora lib, multiple executor support, > >>> integrate > >>>>>>>>>> mesos task related fields > >>>>>>>>>> > >>>>>>>>>> On Thu, Jun 9, 2016 at 2:21 PM, Renan DelValle < > >>> rdelv...@binghamton.edu> > >>>>>>>>>> wrote: > >>>>>>>>>> > >>>>>>>>>>> Hello all, > >>>>>>>>>>> > >>>>>>>>>>> I'd like to (re-)introduce myself. My name's Renan DelValle and > >>> I've > >>>>>>>>> had > >>>>>>>>>>> the pleasure of being part of the Aurora community for the last > >>> year or > >>>>>>>>>> so. > >>>>>>>>>>> > >>>>>>>>>>> Last year I worked to allow Aurora to utilize custom executors. > >>> With > >>>>>>>>> the > >>>>>>>>>>> help from Bill Farner, Kevin Sweeney, and Joshua Cohen, that > >>> feature > >>>>>>>>>> became > >>>>>>>>>>> a reality and made into Aurora late last year. (Also got to > show > >>> an > >>>>>>>>> early > >>>>>>>>>>> beta at MesosCon!) > >>>>>>>>>>> > >>>>>>>>>>> For this year's summer, I have some new goals which I invite > >>> anyone to > >>>>>>>>>>> provide input on. > >>>>>>>>>>> > >>>>>>>>>>> 1. Create a Golang library that works as an alternative to > >>> Aurora's > >>>>>>>>>> Python > >>>>>>>>>>> client and Pystachio. The initial goal of this library is to > >>> support > >>>>>>>>> the > >>>>>>>>>>> most critical job related Thrift API's. (Admin operations can > >>> continue > >>>>>>>>> to > >>>>>>>>>>> be done from the Aurora CLI). Since we support custom > executors, > >>> we > >>>>>>>>> need > >>>>>>>>>> a > >>>>>>>>>>> way that's not so tied to thermos (as Pystachio is) to send > jobs > >>>>>>>>>>> configurations to Aurora (and by extension the custom > executor). > >>>>>>>>>> > >>>>>>>>>> > >>>>>>>>>> You can easily add support for a different configuration format > >>> without > >>>>>>>>>> having to rewrite the CLI in Go. You'd do that by adding your > own > >>> custom > >>>>>>>>>> noun/verbs to the client or replacing existing commands. For > >>> example, at > >>>>>>>>>> Twitter we have our own version of 'aurora update start' that > >>> plugs into > >>>>>>>>> an > >>>>>>>>>> internal Deploy Orchestration Service and we have a whole other > >>> command > >>>>>>>>> for > >>>>>>>>>> federated deploys. I can show you how we do that. > >>>>>>>>>> > >>>>>>>>>> The first thing I thought of though was - this seems like a > >> perfect > >>>>>>>>>> starting point to get serious about a HTTP+JSON API for Aurora. > >>> Having > >>>>>>>>> that > >>>>>>>>>> would make it trivial to do a CLI in any language you want, and > >> the > >>>>>>>>> Python > >>>>>>>>>> CLI would really only be there to do Pystachio evaluation. > >>>>>>>>>>>> CLI integrations is not useful for a lot of different reasons. > >>> We need > >>>>>>>>>> API's from other orchestration points from different components > >>> and hence > >>>>>>>>>> we would package it in a go library. Uber, I believe has taken > >> the > >>> same > >>>>>>>>>> route (info from this mesoscon) > >>>>>>>>>> We are not writing a replacement cli tool. As noted admin > >>> operations > >>>>>>>>> would > >>>>>>>>>> heavily leverage current aurora cli. > >>>>>>>>>> I think REST work has been postponed and attempted few times in > >>> past. We > >>>>>>>>>> cannot wait for that. > >>>>>>>>> > >>>>>>>>> > >>>>>>>>> This is the dev list for contributions to the project, so I > >> assumed > >>> we were > >>>>>>>>> discussing adding a Go CLI to Apache Aurora. Our API is Thrift > and > >>> Thrift > >>>>>>>>> has Go bindings so you're all set for whatever custom tooling > >> you're > >>>>>>>>> building. Please use the users list for feedback on that. > >>>>>>>> > >>>>>>>> > >>>>>>>> While I'm very thankful for your input on the matter, my original > >>> text very > >>>>>>>> clearly said: > >>>>>>>> "1. Create a Golang library that works as an *alternative* to > >>>>>>>> Aurora's Python client and Pystachio." > >>>>>>>> > >>>>>>>> I believe every single item I have listed has the potential to > >>> become a > >>>>>>>> useful contribution to this project. > >>>>>>>> Therefore, I feel that it is prudent continue the discussion here > >>> (unless > >>>>>>>> others feel similarly). > >>>>>>>> > >>>>>>>> -Renan > >>>>>>>> > >>>>>>>>> > >>>>>>>>>> > >>>>>>>>>> > >>>>>>>>>>> > >>>>>>>>>>> 2. Create support for using multiple executors within a single > >>> Aurora > >>>>>>>>>>> scheduler instance. As of right now, only a single executor can > >>> exist > >>>>>>>>> for > >>>>>>>>>>> each Aurora scheduler instance. The idea is to allow the Aurora > >>>>>>>>> scheduler > >>>>>>>>>>> to support multiple executors such that they can be used > >>> alongside one > >>>>>>>>>>> another, providing flexibility for running jobs. > >>>>>>>>>> > >>>>>>>>>> Just for my own understanding - what problems are you solving > >> with > >>> your > >>>>>>>>>> custom executor? Sorry if you've explained this to the lists > >>> before. > >>>>>>>>>> > >>>>>>>>>> I ask because I'd really like to see Aurora stop treating the > >>> executor > >>>>>>>>>> config as an opaque blob and being more opinionated. The > >>>>>>>>> Thermos/Scheduler > >>>>>>>>>> abstraction really hinders what type of user experience (UI) we > >> can > >>>>>>>>> build, > >>>>>>>>>> and other frameworks do a much better job by being more > >>> opinionated and > >>>>>>>>>> pulling executor data into the scheduler UI. > >>>>>>>>>>>> We probably don't need to debate on this point. Executor is a > >>> first > >>>>>>>>>> class mesos citizen and time is right for aurora to have good > >>> support for > >>>>>>>>>> it.In our case, we have kubernetes like pods modeled through > >>>>>>>>> docker-compose > >>>>>>>>>> and the executor manages that. Scheduler UI main features should > >>> not get > >>>>>>>>>> bogged down or be held back for a particular executor. That > feels > >>>>>>>>>> incredibly restrictive. If a special UI mode for thermos > executor > >>> is > >>>>>>>>>> created, that should be fine. We do have to differentiate the > >>> scheduler > >>>>>>>>> and > >>>>>>>>>> thermos and aurora team has done a great job of not hard > coupling > >>> the > >>>>>>>>> two. > >>>>>>>>> > >>>>>>>>> > >>>>>>>>>>> > >>>>>>>>>>> 3. I'd like to add support for some first class Mesos task > >> related > >>>>>>>>>> fields. > >>>>>>>>>>> These would be optional and/or have defaults so that the > regular > >>> Aurora > >>>>>>>>>> CLI > >>>>>>>>>>> does not break. One of the examples I'm interested in > >> integrating > >>> is > >>>>>>>>> the > >>>>>>>>>>> Mesos Fetcher so that resources can be downloaded into the > >>> sandbox that > >>>>>>>>>> the > >>>>>>>>>>> custom executor may need. (The executor path will never be > >>> exposed as > >>>>>>>>>> this > >>>>>>>>>>> will be defined serverside and be static). > >>>>>>>>>> > >>>>>>>>>> > >>>>>>>>>> Wouldn't the mesos-fetcher call just be another process to be > >>> passed to > >>>>>>>>>> your executor? I have to admit I don't know enough about how the > >>> Mesos > >>>>>>>>>> fetcher works. > >>>>>>>>>>>> Apache Mesos - Fetcher > >>>>>>>>> > >>>>>>>>> > >>>>>>>>> > >>>>>>>>>> We may add other first class fields. > >>>>>>>>>> > >>>>>>>>>> > >>>>>>>>>>> > >>>>>>>>>>> If anyone has any feedback on these, I'd be very glad to hear > >> it. > >>>>>>>>>>> > >>>>>>>>>>> That's it for me for now, thanks! > >>>>>>>>>>> > >>>>>>>>>>> -Renan > >>>>>>>>>> > >>>>>>>>>> > >>>>>>>>>> > >>>>>>>>>> > >>>>>>>>>> | > >>>>>>>>>> | > >>>>>>>>>> | > >>>>>>>>>> | | | > >>>>>>>>>> > >>>>>>>>>> | > >>>>>>>>>> > >>>>>>>>>> | > >>>>>>>>>> | > >>>>>>>>>> | | > >>>>>>>>>> Apache Mesos - Fetcher > >>>>>>>>>> | | > >>>>>>>>>> > >>>>>>>>>> | > >>>>>>>>>> > >>>>>>>>>> | > > > > > > > > > > -- > > Cheers, > > > > Zhitao Li >