Docker & CoreOS – The future of Web Application Stacks

So, I was reading up a little bit about the upcoming CoreOS and came across Docker a container system for mitigating the issue of running application or services on different hardware, and resolving the dependencies, interactions, etc.

Docker itself seems to be incredibly useful. Currently, what I’ve been doing for my development of web applications and web sites, is to create an exact replica of the eventual server setup that will run the site. While this is good, its slow. It takes a long time to setup, and always has the possibility of being slightly different from the final runtime environment. Docker on the other hand, seems to be a perfect solution. Docker allows me to work on the site as I normally would (in my own development environment), and because everything is packaged up into containers, there is no concern of conflicts when it comes time to deploy.

Not only does Docker promise wider support for hardware, but it also takes out the typical virtual machine layer which sucks up system resources. (see figure 9 of the Docker ‘full story’).

Now back to CoreOS, as far as I can tell, from my initial investigation. CoreOS appears to be the first project to create the underlying OS that can run these containers built with Docker. CoreOS itself is incredibly small, and allows for running of Docker containers. I highly recommend people check this out, and try running it themselves.

Overall, this appears to be a wonderful next step in the infrastructure for the web. Initially, we had bare hardware running typical server OSs, then we moved to virtual machines, and now we have containers. I can’t wait until the final release of CoreOS. In the mean time though, I do plan to play with the Docker containers, and hey, we all can. Then when CoreOS is ready, just port to that.