[BBLISA] Experience with docker?

Dewey Sasser dewey at sasser.com
Wed May 6 10:53:46 EDT 2015


On 5/6/2015 8:31 AM, couch at cs.tufts.edu wrote:
> I might add that what makes Docker useful for us is that we can deal 
> with rather complex configuration management requirements -- including 
> several version-locked interlocking subsystems -- without changing the 
> host OS.
>
> But I might add that this is “survival of that which fits.”

I think this is one of the double-edge swords of Docker -- as you 
(almost) completely capture configuration, it's far too easy to create a 
non-repeatable "golden image" and pass it around.  Of course, it's 
fairly easy to *NOT* do this as well, but there will be less immediate 
pain to using Docker with a "this one works, go with it" model than 
there is with VM images.

I will add that as most Docker images are fairly well contained (pun 
intended), it's fairly easy to put the whole container through a 
build/validation/deployment pipeline.  You can usually (depending on 
container linkage issues) have high confidence that things work in PROD 
the way they worked in DEV and TEST.  (NOTE:  this is going to be less 
and less true as we move more into inter-container relationships and 
service discovery through e.g. consul or etcd).

> The main reason we use Docker is that it is literally *too difficult 
> *for our developers to build the run/test configuration unassisted. 
> This means that any work we can do for them -- through docker -- is 
> definitely worth it, even though that work can be involved, especially 
> in interfacing host/guest OS resources.

One the one hand, that seems dangerous to me -- using Docker to work 
around a build difficulty problems feels too much like sweeping problems 
under the rug.

On the other hand, Docker *does* allow good separation of concerns. For 
example, "Ops" can own a base image, with proper instrumentation and 
operational features, and "Dev" can simply inherit from that image.

Perhaps the single most powerful pattern in Docker is the similarity to 
OO programming (inheritance and composition).  It works well for a 
Devops mindset to say "this machine is *JUST LIKE* that machine, plus 
this other stuff".  Software Development has spent many years getting 
good at decomposition through inheritance and inclusion. Docker 
(particularly adding Fleet or Compose) allows us to express this at the 
system level.

--
D
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.bblisa.org/pipermail/bblisa/attachments/20150506/99cf2258/attachment.html>


More information about the bblisa mailing list