Tuesday, 5 May 2015

Moving to Docker

I know, everyone's been excited about Docker lately. Time to join in.
Why?
For this project, I see three advantages:
  1. Between my development environment, CI server, and deployment I've got some very similar things running. But not quite the same, e.g. deployment has an nginx front end, non-development has firefox and Xvfb running for testing. However, I'd really like the common bits to be identical to make the tests as useful as possible. Lightweight builds of platform updates would be good too.
  2. Auto-deploying new web apps from Jenkins is suffering from a little friction. At the moment it involves a manual step. I'm sure there are other ways of solving this, but as I still haven't done so a way of running new versions for low effort and a reasonable security risk remains on my shopping list. Maybe Docker can help with this?
  3. The distribution of services between servers ought to be a flexible thing. Docker does that, and from a first look version controlled Dockerfiles lend themselves to self-documenting, generated from a script containers. 
What I'm not planning to do, first off at least:
  • Docker for my CI master. There's only one, it just has Jenkins and Java, that can stay as a VM.
  • Docker for my data volumes. For the databases there will just be one of each master / slave. All of the web content comes from the project build. The big user generated data files go to S3. So there isn't much need for deploying multiple copies. I'd also like to keep the data as just a disk for now as that ought to make reversing out of docker easier, should I choose to do so.


No comments:

Post a comment