[openstack-dev] [OpenStack Foundation] [board][tc][all] One Platform – Containers/Bare Metal? (Re: Board of Directors Meeting)
Joshua Harlow
harlowja at fastmail.com
Wed Apr 13 05:43:02 UTC 2016
Sure, so that helps, except it still has the issue of bumping up against
the mismatch of the API(s) of nova. This is why I'd rather have a
template kind of format (as say the input API) that allows for
(optionally) expressing such container specific capabilities/constraints.
Then some project that can understand that template /format can if
needed talk to a COE (or similar project) to translate that template
'segment' into a realized entity using the capabilities/constraints that
the template specified.
Overall it starts to feel like maybe it is time to change the upper and
lower systems and shake things up a little ;)
Peng Zhao wrote:
> I'd take the idea further. Imagine a typical Heat template, what you
> need to do is:
>
> - replace the VM id with Docker image id
> - nothing else
> - run the script with a normal heat engine
> - the entire stack gets deployed in seconds
>
> Done!
>
> Well, that sounds like nova-docker. What about cinder and neutron? They
> don't work well with Linux container! The answer is Hypernova
> (https://github.com/hyperhq/hypernova) or Intel ClearContainer, seamless
> integration with most OpenStack components.
>
> Summary: minimal changes to interface and upper systems, much smaller
> image and much better developer workflow.
>
> Peng
>
> -----------------------------------------------------
> Hyper_ Secure Container Cloud
>
>
>
> On Wed, Apr 13, 2016 5:23 AM, Joshua Harlow harlowja at fastmail.com
> <mailto:harlowja at fastmail.com> wrote:
>
> __ Fox, Kevin M wrote: > I think part of the problem is containers
> are mostly orthogonal to vms/bare metal. Containers are a package
> for a single service. Multiple can run on a single vm/bare metal
> host. Orchestration like Kubernetes comes in to turn a pool of
> vm's/bare metal into a system that can easily run multiple
> containers. > Is the orthogonal part a problem because we have made
> it so or is it just how it really is? Brainstorming starts here:
> Imagine a descriptor language like (which I stole from
> https://review.openstack.org/#/c/210549 and modified): ---
> components: - label: frontend count: 5 image: ubuntu_vanilla
> requirements: high memory, low disk stateless: true - label:
> database count: 3 image: ubuntu_vanilla requirements: high memory,
> high disk stateless: false - label: memcache count: 3 image:
> debian-squeeze requirements: high memory, no disk stateless: true -
> label: zookeeper count: 3 image: debian-squeeze requirements: high
> memory, medium disk stateless: false backend: VM networks: - label:
> frontend_net flavor: "public network" associated_with: - frontend -
> label: database_net flavor: high bandwidth associated_with: -
> database - label: backend_net flavor: high bandwidth and low latency
> associated_with: - zookeeper - memchache constraints: - ref:
> container_only params: - frontend - ref: no_colocated params: -
> database - frontend - ref: spread params: - database - ref:
> no_colocated params: - database - frontend - ref: spread params: -
> memcache - ref: spread params: - zookeeper - ref: isolated_network
> params: - frontend_net - database_net - backend_net ... Now nothing
> in the above is about container, or baremetal or vms, (although a
> 'advanced' constraint can be that a component must be on a
> container, and it must say be deployed via docker image XYZ...);
> instead it's just about the constraints that a user has on there
> deployment and the components associated with it. It can be left up
> to some consuming project of that format to decide how to turn that
> desired description into an actual description (aka a full expanding
> of that format into an actual deployment plan), possibly say by
> optimizing for density (packing as many things container) or
> optimizing for security (by using VMs) or optimizing for performance
> (by using bare-metal). > So, rather then concern itself with
> supporting launching through a COE and through Nova, which are two
> totally different code paths, OpenStack advanced services like Trove
> could just use a Magnum COE and have a UI that asks which existing
> Magnum COE to launch in, or alternately kick off the "Launch new
> Magnum COE" workflow in horizon, then follow up with the Trove
> launch workflow. Trove then would support being able to use
> containers, users could potentially pack more containers onto their
> vm's then just Trove, and it still would work with both Bare Metal
> and VM's the same way since Magnum can launch on either. I'm afraid
> supporting both containers and non container deployment with Trove
> will be a large effort with very little code sharing. It may be
> easiest to have a flag version where non container deployments are
> upgraded to containers then non container support is dropped. > Sure
> trove seems like it would be a consumer of whatever interprets that
> format, just like many other consumers could be (with the special
> case that trove creates such a format on-behalf of some other
> consumer, aka the trove user). > As for the app-catalog use case,
> the app-catalog project (http://apps.openstack.org) is working on
> some of that. > > Thanks, > Kevin >
> ________________________________________ > From: Joshua Harlow
> [harlowja at fastmail.com] > Sent: Tuesday, April 12, 2016 12:16 PM >
> To: Flavio Percoco; OpenStack Development Mailing List (not for
> usage questions) > 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) > > Flavio
> Percoco wrote: >> 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. > > Just some thoughts from me, but why
> focus on the > compute/container/baremetal API at all? > > I'd
> almost like a way that just describes how my app should be >
> interconnected, what is required to get it going, and the features >
> and/or scheduling requirements for different parts of those app. > >
> To me it feels like this isn't a compute API or really a heat API
> but > something else. Maybe it's closer to the docker compose
> API/template > format or something like it. > > Perhaps such a thing
> needs a new project. I'm not sure, but it does feel > like that as
> developers we should be able to make such a thing that > still
> exposes the more advanced functionality of the underlying API so >
> that it can be used if really needed... > > Maybe this is similar to
> an app-catalog, but that doesn't quite feel > like it's the right
> thing either so maybe somewhere in between... > > IMHO I'd be nice
> to have a unified story around what this thing is, so > that we as a
> community can drive (as a single group) toward that, maybe > this is
> where the product working group can help and we as a developer >
> community can also try to unify behind... > > P.S. name for project
> should be 'silver' related, ha. > > -Josh > >
> __________________________________________________________________________
> > 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
>
> __________________________________________________________________________
> 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
More information about the OpenStack-dev
mailing list