

Rocket vs. Docker and the Myth of the “Simple, Lightweight Enterprise Platform” - remmelt
http://blog.xebialabs.com/2014/12/05/rocket-vs-docker-myth-simple-lightweight-enterprise-platform/

======
agentultra
It happens every time.

As soon as you hit an environment where there are > 20 people using the system
you need a plethora of tools and systems involved which remove the terms,
"simple" and "lightweight," from the specification.

Access control, authentication, auditing, operations... you can't eschew
complexity by ignoring it.

I've learned this time and again. If you start out with "simple" and
"lightweight" you're going to hit that "enterprise wall" and really pay the
price of not considering those requirements up-front. The price of either re-
writes or layers of out-of-band processes and tools for orchestrating light-
weight systems that were not designed to be composed in such a way. It's quite
painful and terrifyingly complicated.

 _Update_ : In the case of Docker/Rocket... I think these are just early
iterations. I wouldn't be surprised if even Rocket becomes bloated as they
realize they cannot design for simplicity when complexity is a requirement.

~~~
superuser2
The difference is that some technologies use encapsulation and abstraction to
manage complexity, while others vomit megabytes of configuration on the floor.

Of course Docker in an enterprise will never be as simple as running a Rails
app on your Macbook, but it provides an encapsulation primitive that looks as
powerful for deployment as object orientation and functional programming were
for development.

SICP lecture #1: we manage complexity through means of abstraction and means
of combination. Docker is a means of abstraction, and it leaks less than the
others we have so far (Chef cookbooks, etc.) We haven't quite figured out what
the means of combination is. It won't be trivial - writing programs certainly
isn't - but it will be better than handrolled assembly.

~~~
apwashere
> but it will be better than handrolled assembly.

Definitely. And I think if we can move more to discussions along the lines of
"how do we best abstract/encapsulate/handle the inevitable complexity," rather
than "wow, this technology looks like it will solve all our problems," that
would be great.

I know the latter sounds absurdly simplistic, but I still hear an awful lot of
it around.

------
vidarh
He's setting up a nice strawman. I didn't see anything in the Rocket proposal
that implied they thought the things Docker wants to add aren't _needed_ ,
just that they object to the direction and want to be able to pick and choose
from components that fit their purpose better, and want guarantees of interop
through open formats etc.

Who is propagating this myth of the "Simple, Lightweight Enterprise Platform"
to begin with? Some searches did not net me any references to that other than
this blog post.

~~~
apwashere
> I didn't see anything in the Rocket proposal that implied they thought the
> things Docker wants to add aren't needed

I was referring mainly to this statement: "We should stop talking about Docker
containers, and start talking about the Docker Platform. It is not becoming
the simple composable building block we had envisioned."

I agree with you that that doesn't necessarily mean that the Rocket team
disputes the need for enterprise features, but (as you say) may think other
technologies are better suited. The announcement itself doesn't go into much
detail as to _which_ technologies those would be, though.

> Who is propagating this myth of the "Simple, Lightweight Enterprise
> Platform" to begin with?

It certainly hasn't been associated with this specific phrase, but the idea
that there is a New Cool Tech around the corner that will be simpler, easier
and less heavyweight than the Last Cool Tech seems to be a recurring theme in
our industry, in my experience.

That's not to say that new technologies don't introduce dramatic improvements
in certain areas. Personally, I'm a big fan of microservices and,
specifically, containers as a possible implementation mechanism.

Equally, I don't think it's surprising that technologies such as Docker that
start out as 'simple, composable building blocks' become part of more complex,
"heavyweight" solutions as they evolve.

~~~
vidarh
> The announcement itself doesn't go into much detail as to which technologies
> those would be, though.

That's part of the point. They want to be free to compose components depending
on their customers needs.

CoreOS already includes Fleet (orchestration of individual units), and their
are putting effort into Flannel (overlay network), and Kubernetes
(orchestration of "pods" of containers).

But their market is enterprises that in many cases will want to fit CoreOS
into an existing enterprise platform.

Nothing in how CoreOS is acting has shown any indication that they think
enterprise is "simple". On the contrary, Rocket, while smaller in scope than
Docker, if anything is more complex (with the signing, composability of
filesets, and implied support for running systemd in the containers).

I'm not convinced Rocket is the right thing - they'll have to show me tooling
that makes it as simple as Docker first - but some of the decisions appeals to
me (a clear spec for the format, that alternative runtimes can conform to;
e.g. nothing appears to prevent someone from making a Rocket runtime ("ACE")
that uses KVM or Virtualbox or Xen, and hence it could be potentially
supported by things like OpenStack, or even shoehorned into a VMware
deployment; making things like whether or not an overlay filesystem is used an
implementation detail; and while I won't need it often, and it may be an
annoyance in some cases, support for signed images).

So I just see nothing to imply that CoreOS is a good exponent for some idea of
"simple, lightweight enterprise platform". They are providing a set of tools
that _individually_ are simple and lightweight, that you can use to start
building the lower levels of an enterprise platform with, though, and
understandably don't want one of those tools to grow into a platform itself
(whether or not Docker will grow into that in a way that doesn't allow the
core container execution mechanism to be easily lifted out, is a separate
discussion).

~~~
apwashere
> So I just see nothing to imply that CoreOS is a good exponent for some idea
> of "simple, lightweight enterprise platform".

I'd say that's completely valid. I was not trying to imply that the
combination of CoreOS and tools such as Fleet, Flannel, Kubernetes etc.
claimed to be a "simple, lightweight platform". Indeed, as you point out, the
core component, i.e. Rocket itself, may well be _more_ complex than "Docker
classic."

I think your comments demonstrate accurately that the overall "Rocket
ecosystem" will also address the inevitable enterprise requirements. Since
most of the other tools you mention did not appear in the launch announcement,
I think it's fair to say that describing Rocket as a response to the emerging
'non-simple Docker Platform' is, at the very least, inviting a comparison that
isn't exactly apples to apples.

The overall point I was trying to make goes beyond Rocket, Docker, containers
or any specific current technology or tool, however. The way the Rocket
announcement was worded simply prompted on ongoing train of thought. Indeed,
it's the many conversations in the past months around _Docker_ that I've been
involved in that have exemplified the belief/hope/wish that there finally is a
new tool that will make boring enterprise problems magically "go away."

Docker, Rocket, and whatever tomorrow's favorite container framework turns out
to be, are unlikely to be the last examples of that pipe dream, I think.

------
bryanlarsen
You've got your conclusions backwards. Docker is the one that's trying to do
things the simple way. Rocket embraces the Unix process model and philosophy.
They don't have to solve this particular security problem because it's been
solved over almost 40 years of Unix evolution.

The Docker simplicity is why they've had so much success. That's how it
started: as a tool to make using LXC simpler.

~~~
apwashere
> The Docker simplicity is why they've had so much success. That's how it
> started: as a tool to make using LXC simpler.

Do you feel Machine, Swarm and Compose add to or detract from the value
proposition of Docker, in that case?

Just to ensure I'm understanding your point about Rocket benefiting from 40
years of Unix evolution correctly: do you think that Rocket will be able to
remain simple as a result of this? And that Docker perhaps will not, even
though up until this point it's been "trying to do things the simple way?"

------
antocv
I cant read this whateveritis because the fonts are too gray/white as the
background.

Skimming through it, yes whatever you define as "enterprise" can fit your
definition and whatever claim you are doing in the article or blog, can be
fulfilled.

~~~
mrSugar
Well, I can't read it at all on my android phone, because whatever javascript
they use, prevents me from scrolling down. While the page was loading,
scrolling worked, but as soon as everything loaded up, it jumped back to the
top and stuck there. I hate today's web, where people are apparently unable to
serve a plain text article without javascript.

~~~
apwashere
_sigh_. Sorry about that. Did agumonkey's link work for you?

~~~
mrSugar
Yep, that one worked just fine.

