{"id":3199,"date":"2015-03-30T13:11:49","date_gmt":"2015-03-30T12:11:49","guid":{"rendered":"https:\/\/www.devco.net\/?p=3199"},"modified":"2015-03-30T19:20:04","modified_gmt":"2015-03-30T18:20:04","slug":"some-thoughts-on-operating-containers","status":"publish","type":"post","link":"https:\/\/www.devco.net\/archives\/2015\/03\/30\/some-thoughts-on-operating-containers.php","title":{"rendered":"Some thoughts on operating containers"},"content":{"rendered":"

I recently blogged about my workflow improvements realised by using docker for some services<\/a>. Like everyone else the full story about running containers in production is a bit of an unknown. I am running 7 or 8 things in containers at the moment but I have a lot of outstanding questions.<\/p>\n

I could go the route of a private PaaS where you push an image or Dockerfile into it and forget about it. Hoping you never have to debug anything or dive deep into finding out why something is not performant as those tend to be very much closed systems. Some like deis<\/a> are just Docker underneath but some others like the recently hyped lattice.cf<\/a> unpacks the Docker container and transforms it into something else entirely that is much harder to interact with from a debug perspective. As a bit of an old school sysadmin this fire-and-hope-for-the-best approach leaves me a bit cold. I do not want to lose the ability to carefully observe my running containers using traditional tools if I have to. It’s great to strive for never having to do that, never having to touch a running app using any thing but your monitoring SaaS or that you can just always scale out horizontally but personally I feel I need a bit more closer to the bits interaction at times. Aim for that goal and get a much better overall system, but while you’ve not yet reached this nirvana like state you’re going to want to get at your running apps using strace if it has to.<\/p>\n

So having ruled out just running one of the existing crop of private PaaS offerings locally I started thinking about what a container is really. I consider them to be analogous to a package so we need to first explore what Packages are. In it’s simplest form a package is just a bunch of files packaged up. So what makes it better than a tarball? <\/p>\n