[Container-tools] Nulecule/atomicapp validation and next step ideas

Brian (bex) Exelbierd bexelbie at redhat.com
Fri Jun 26 12:07:55 UTC 2015


I met with a production user of docker recently and over coffee I had a 
chance to talk to them about Nulecule.  They are running Debian and 
using Marathon (a Mesos framework) for orchestration.

For the most part they validated our direction, granted it is a sample 
size of 1.

Here are some specifics:

Things that are interesting:
  - Today they have the configuration files for Mesos-Marathon stored 
and deployed separately from the images that make up the application. 
Being able to bundle up this information would be a big win.

  - If the DevAssistant plugin can help drive best practices in 
application development/framework usage that would be a huge win.

  - Today there is a parameterization problem in Mesos-Marathon. 
Mesos-Marathon cannot launch 5 instances of the same container that vary 
only by a parm, say an ID, from the same configuration file.  To do this 
you have to write 5 different configuration files, each with the ID 
hardcoded.  This obviously creates a change management concern. 
Nulecule looks like it could solve this issue, especially is some of the 
answers can be provided via an API or otherwise programatically.

  - There is a kubernetes framework on top of Mesos that should just 
work. (However, see below)

Things that are concerns:
  - How tied is Nulecule to Kubernetes?  Can it support concepts outside 
of this thought process. [I said I didn't know of any reason it 
couldn't.] Specifically, in Mesos-Marathon:

    - There is one json configruation file that drives orchestration, 
container linking (containers are linked via the cluster network, not 
docker link private networks), and networking.

    - There is no tieing containers that are part of the same app to the 
same host.  This is not guaranteed or enforcable. Open question: Does a 
pod tie things to same host? [He wasn't sure, I didn't think so.]

    - Container connections are always done via service discovery. There 
are two kinds of service discovery, a light-weight one built into 
Marathon and etcd.

  - They are a debian shop today.  While switching to a RHEL-family 
architecture is not necessarily a show stopper, it is concerning that 
the only application available to use the spec's reference output, 
atomic, has no instructions or packaging for other distributions. Ditto 
for atomicapp as building successfully on other distros.

  - While there is a kubernetes framework on top of Mesos, they chose 
Marathon because it is simpler and not supporting this is a show stopper.

All in all I think this is a good showing and starts to give some on the 
ground validation to the effort.

Some possible outcomes that came to mind are:
   - Create a parameterized example that shows the same app launched 
with 5 different minor variable changes.

   - Test atomicapp/atomic with Mesos-Kubernetes

   - Write a Mesos-Marathon provider

   - Verify that atomic/atomicapp can run on an alternative distribution

   - (Quasi-related) Verify that atomic can run on an alternative 
distribution

To support us moving forward, I plan to begin working on making sure 
atomic and the atomicapp/Nulecule examples run without issue on Debian. 
  If anyone wants to help, reach out to me please.

regards,

bex
-- 
Brian (bex) Exelbierd
Associate Software Engineer
Open Source and Standards
Red Hat, Inc., Brno, Czech Republic
P: +420 606 055 877 (CZ) | E: bexelbie at redhat.com (preferred)
IRC: bexelbie | IM: Google: bcexelbi at gmail.com




More information about the Container-tools mailing list