[openstack-dev] [OpenStack Foundation] [board][tc][all] One Platform – Containers/Bare Metal? (Re: Board of Directors Meeting)
Amrith Kumar
amrith at tesora.com
Wed Apr 13 02:17:09 UTC 2016
> -----Original Message-----
> From: Flavio Percoco [mailto:flavio at redhat.com]
> Sent: Tuesday, April 12, 2016 8:32 AM
> To: OpenStack Development Mailing List (not for usage questions)
> <openstack-dev at lists.openstack.org>
> Cc: foundation at lists.openstack.org
> Subject: Re: [openstack-dev] [OpenStack Foundation] [board][tc][all] One
> Platform – Containers/Bare Metal? (Re: Board of Directors Meeting)
>
> On 11/04/16 18:05 +0000, Amrith Kumar wrote:
> >Adrian, thx for your detailed mail.
> >
> >
> >
> >Yes, I was hopeful of a silver bullet and as we’ve discussed before (I
> >think it was Vancouver), there’s likely no silver bullet in this area.
> >After that conversation, and some further experimentation, I found that
> >even if Trove had access to a single Compute API, there were other
> >significant complications further down the road, and I didn’t pursue the
> project further at the time.
> >
>
> Adrian, Amrith,
>
> I've spent enough time researching on this area during the last month and
> my conclusion is pretty much the above. There's no silver bullet in this
> area and I'd argue there shouldn't be one. Containers, bare metal and VMs
> differ in such a way (feature-wise) that it'd not be good, as far as
> deploying databases goes, for there to be one compute API. Containers
> allow for a different deployment architecture than VMs and so does bare
> metal.
>
[amrith] That is an interesting observation if we were developing a unified compute service. However, the issue for a project like Trove is not whether Containers, VM's and bare-metal are the same of different, but rather what a user is looking to get out of a deployment of a database in each of those compute environments.
>
> >We will be discussing Trove and Containers in Austin [1] and I’ll try
> >and close the loop with you on this while we’re in Town. I still would
> >like to come up with some way in which we can offer users the option of
> >provisioning database as containers.
>
> As the person leading this session, I'm also looking forward to providing
> such provisioning facilities to Trove users. Let's do this.
>
[amrith] In addition to hearing about how you plan to solve the problem, I would like to know what problem it is that you are planning to solve. Putting a database in a container is a solution, not a problem (IMHO). But the scope of this thread is broader so I'll stop at that.
> Cheers,
> Flavio
>
> >
> >Thanks,
> >
> >
> >
> >-amrith
> >
> >
> >
> >[1] https://etherpad.openstack.org/p/trove-newton-summit-container
> >
> >
> >
> >From: Adrian Otto [mailto:adrian.otto at rackspace.com]
> >Sent: Monday, April 11, 2016 12:54 PM
> >To: OpenStack Development Mailing List (not for usage questions)
> ><openstack-dev at lists.openstack.org>
> >Cc: foundation at lists.openstack.org
> >Subject: Re: [openstack-dev] [OpenStack Foundation] [board][tc][all]
> >One Platform – Containers/Bare Metal? (Re: Board of Directors Meeting)
> >
> >
> >
> >Amrith,
> >
> >
> >
> >I respect your point of view, and agree that the idea of a common
> >compute API is attractive… until you think a bit deeper about what that
> >would mean. We seriously considered a “global” compute API at the time
> >we were first contemplating Magnum. However, what we came to learn
> >through the journey of understanding the details of how such a thing
> >would be implemented, that such an API would either be (1) the lowest
> >common denominator (LCD) of all compute types, or (2) an exceedingly
> complex interface.
> >
> >
> >
> >You expressed a sentiment below that trying to offer choices for VM,
> >Bare Metal (BM), and Containers for Trove instances “adds considerable
> complexity”.
> >Roughly the same complexity would accompany the use of a comprehensive
> >compute API. I suppose you were imagining an LCD approach. If that’s
> >what you want, just use the existing Nova API, and load different
> >compute drivers on different host aggregates. A single Nova client can
> >produce VM, BM (Ironic), and Container (lbvirt-lxc) instances all with
> >a common API (Nova) if it’s configured in this way. That’s what we do.
> >Flavors determine which compute type you get.
> >
> >
> >
> >If what you meant is that you could tap into the power of all the
> >unique characteristics of each of the various compute types (through
> >some modular extensibility framework) you’ll likely end up with
> >complexity in Trove that is comparable to integrating with the native
> >upstream APIs, along with the disadvantage of waiting for OpenStack to
> >continually catch up to the pace of change of the various upstream
> >systems on which it depends. This is a recipe for disappointment.
> >
> >
> >
> >We concluded that wrapping native APIs is a mistake, particularly when
> >they are sufficiently different than what the Nova API already offers.
> >Containers APIs have limited similarities, so when you try to make a
> >universal interface to all of them, you end up with a really
> >complicated mess. It would be even worse if we tried to accommodate all
> >the unique aspects of BM and VM as well. Magnum’s approach is to offer
> >the upstream native API’s for the different container orchestration
> >engines (COE), and compose Bays for them to run on that are built from
> >the compute types that OpenStack supports. We do this by using
> >different Heat orchestration templates (and conditional templates) to
> >arrange a COE on the compute type of your choice. With that said, there
> >are still gaps where not all storage or network drivers work with
> >Ironic, and there are non-trivial security hurdles to clear to safely use
> Bays composed of libvirt-lxc instances in a multi-tenant environment.
> >
> >
> >
> >My suggestion to get what you want for Trove is to see if the cloud has
> >Magnum, and if it does, create a bay with the flavor type specified for
> >whatever compute type you want, and then use the native API for the COE
> >you selected for that bay. Start your instance on the COE, just like
> >you use Nova today. This way, you have low complexity in Trove, and you
> >can scale both the number of instances of your data nodes (containers),
> >and the infrastructure on which they run (Nova instances).
> >
> >
> >
> >Regards,
> >
> >
> >
> >Adrian
> >
> >
> >
> >
> >
> >
> >
> > On Apr 11, 2016, at 8:47 AM, Amrith Kumar <amrith at tesora.com> wrote:
> >
> >
> >
> > Monty, Dims,
> >
> > I read the notes and was similarly intrigued about the idea. In
> particular,
> > from the perspective of projects like Trove, having a common Compute
> API is
> > very valuable. It would allow the projects to have a single view of
> > provisioning compute, as we can today with Nova and get the benefit
> of bare
> > metal through Ironic, VM's through Nova VM's, and containers through
> > nova-docker.
> >
> > With this in place, a project like Trove can offer database-as-a-
> service on
> > a spectrum of compute infrastructures as any end-user would expect.
> > Databases don't always make sense in VM's, and while containers are
> great
> > for quick and dirty prototyping, and VM's are great for much more,
> there
> > are databases that will in production only be meaningful on bare-
> metal.
> >
> > Therefore, if there is a move towards offering a common API for VM's,
> > bare-metal and containers, that would be huge.
> >
> > Without such a mechanism, consuming containers in Trove adds
> considerable
> > complexity and leads to a very sub-optimal architecture (IMHO). FWIW,
> a
> > working prototype of Trove leveraging Ironic, VM's, and nova-docker
> to
> > provision databases is something I worked on a while ago, and have
> not
> > revisited it since then (once the direction appeared to be Magnum for
> > containers).
> >
> > With all that said, I don't want to downplay the value in a container
> > specific API. I'm merely observing that from the perspective of a
> consumer
> > of computing services, a common abstraction is incredibly valuable.
> >
> > Thanks,
> >
> > -amrith
> >
> >
> >
> > -----Original Message-----
> > From: Monty Taylor [mailto:mordred at inaugust.com]
> > Sent: Monday, April 11, 2016 11:31 AM
> > To: Allison Randal <allison at lohutok.net>; Davanum Srinivas
> > <davanum at gmail.com>; foundation at lists.openstack.org
> > Cc: OpenStack Development Mailing List (not for usage questions)
> > <openstack-dev at lists.openstack.org>
> > Subject: Re: [openstack-dev] [OpenStack Foundation]
> [board][tc][all]
> > One
> > Platform – Containers/Bare Metal? (Re: Board of Directors
> > Meeting)
> >
> > On 04/11/2016 09:43 AM, Allison Randal wrote:
> >
> >
> > On Wed, Apr 6, 2016 at 1:11 PM, Davanum Srinivas <
> > davanum at gmail.com>
> >
> > wrote:
> >
> >
> > Reading unofficial notes [1], i found one topic very
> > interesting:
> > One Platform – How do we truly support containers and
> bare
> > metal
> > under a common API with VMs? (Ironic, Nova, adjacent
> > communities e.g.
> > Kubernetes, Apache Mesos etc)
> >
> > Anyone present at the meeting, please expand on those
> few
> > notes on
> > etherpad? And how if any this feedback is getting
> back to
> > the
> > projects?
> >
> >
> > It was really two separate conversations that got conflated
> in the
> > summary. One conversation was just being supportive of bare
> metal,
> > VMs, and containers within the OpenStack umbrella. The other
> > conversation started with Monty talking about his work on
> shade,
> > and
> > how it wouldn't exist if more APIs were focused on the way
> users
> > consume the APIs, and less an expression of the
> implementation
> > details
> >
> > of each project.
> >
> >
> > OpenStackClient was mentioned as a unified CLI for OpenStack
> > focused
> > more on the way users consume the CLI. (OpenStackSDK wasn't
> > mentioned,
> > but falls in the same general category of work.)
> >
> > i.e. There wasn't anything new in the conversation, it was
> more a
> > matter of the developers/TC members on the board sharing
> > information
> > about work that's already happening.
> >
> >
> > I agree with that - but would like to clarify the 'bare metal,
> VMs and
> > containers' part a bit. (an in fact, I was concerned in the
> meeting
> > that
> > the messaging around this would be confusing because we
> 'supporting
> > bare
> > metal' and 'supporting containers' mean two different things but
> we use
> > one phrase to talk about it.
> >
> > It's abundantly clear at the strategic level that having
> OpenStack be
> > able
> > to provide both VMs and Bare Metal as two different sorts of
> resources
> > (ostensibly but not prescriptively via nova) is one of our
> advantages.
> > We
> > wanted to underscore how important it is to be able to do that,
> and
> > wanted
> > to underscore that so that it's really clear how important it is
> any
> > time
> > the "but cloud should just be VMs" sentiment arises.
> >
> > The way we discussed "supporting containers" was quite different
> and
> > was
> > not about nova providing containers. Rather, it was about
> reaching out
> > to
> > our friends in other communities and working with them on making
> > OpenStack
> > the best place to run things like kubernetes or docker swarm.
> > Those are systems that ultimately need to run, and it seems that
> good
> > integration (like kuryr with libnetwork) can provide a really
> strong
> > story. I think pretty much everyone agrees that there is not much
> value
> > to
> > us or the world for us to compete with kubernetes or docker.
> >
> > So, we do want to be supportive of bare metal and containers -
> but the
> > specific _WAY_ we want to be supportive of those things is
> different
> > for
> > each one.
> >
> > Monty
> >
> >
> >
> __________________________________________________________________________
> > OpenStack Development Mailing List (not for usage questions)
> > Unsubscribe: OpenStack-dev-request at lists.openstack.org?
> > subject:unsubscribe
> >
> > http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
> >
> >
> __________________________________________________________________________
> > OpenStack Development Mailing List (not for usage questions)
> > Unsubscribe: OpenStack-dev-
> request at lists.openstack.org?subject:unsubscribe
> > http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
> >
> >
> >
>
> >_______________________________________________________________________
> >___ OpenStack Development Mailing List (not for usage questions)
> >Unsubscribe:
> >OpenStack-dev-request at lists.openstack.org?subject:unsubscribe
> >http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
>
>
> --
> @flaper87
> Flavio Percoco
More information about the OpenStack-dev
mailing list