Introducing Kontena — Application Containers for Masses

Kontena is now less than 6 months old, and is currently at version 0.4.0. This version is in fact the initial release version and it's quite obvious Kontena is not yet production ready. We are still rapidly iterating over the features, APIs and functionality we want to achieve. In this blog post, I'd like to explain the purpose and background of Kontena and how it will fit into Docker (and more broadly, container technology) ecosystem.

Containers

The concept of containers is not new and have existed in many forms over 15 years; chroot, FreeBSD Jails, cgroups followed by LXC in 2008. Using those early container technologies allowed you to access the operating system kernel but very little else on the system. This is the same basic principle the new breed of container technologies like Docker and CoreOS Rocket use. They are both built on LXC but come with better tooling and standardization.

The term container fits this technology perfectly. If you think about containers used in transportation industry. Each container is isolated, standardized and therefore may be loaded on any ship designed to carry containers. Containers may also be moved from one ship to another. In IT context, this ship is a server capable of deploying and running such containers. Developers can create an application, include all the dependencies and components and finally package it as a container image. Once the container image is created, it can be run on almost any machine or OS.

The Current State of Technology

Since the new breed of container technologies makes it really easy to build, ship and run any application on any infrastructure, they have gained momentum over the past few years. This momentum has been fueled by DevOps mindset and micro service architectures. However, the ecosystem is still emerging and it is obvious not all the pieces of the puzzle are yet in place. The following recent discussion at Hacker News summarizes the current situation very well:

I went to a couple of events where Docker was a topic in Europe, the general feeling is that the solution looks great, but every single time a speaker/organizer asks to raise a hand if using it in production, nobody does. I mean, it's definitely a technology having a momentum, but I still have to find someone that heavily used it in production. — bontoJR, April 15, 2015

Followed by a responses such as:

That's because it isn't ready for production yet, and certainly not at scale. You're in for a world of hurt if you try to deploy hundreds of containers at once from a central registry. And there's not yet a way to bind containers to physical interfaces that DHCP themselves at runtime. Docker solves problems for developers, and soon it might solve problems in production. But for large deployments, that day is not today. — otterley, April 15, 2015

Regardless of challenges, some organizations have successfully built large scale deployments. Most of these deployments are based on extensive R&D efforts to build automation and tooling on top of Docker. However, they are now facing several other challenges, including:

  • How to manage services instead of individual containers?
  • How to aggregate logs and statistics to understand what is actually happening in the containerized and distributed systems?
  • How to manage stateful and stateless applications?
  • How to manage data volumes?
  • How to manage access control for developer team members to operate containerized services?
  • How to manage IP addresses, networking and service discovery
  • How to create future proof solution that could potentially work together with any container technology such as Docker, CoreOS Rocket and Microsoft Hyper-V Containers?

Kontena is trying to solve the issues mentioned above. Our mission is to create developer friendly solution for organizations to take advantage of container technologies at scale and deliver application containers for masses. We want to make it open source and available for everybody, for free!

We hope you like what we are doing and help us by contributing to our project at Github. Looking forward to see you again!