SQL was more or less invented by IBM in the early 1970s, but it took three guys named Bob Miner, Ed Oates and Larry...
Ellison to make it into a business with the launch of Relational Software's relational database management system in 1979. Relational databases were a fundamental advancement and, at least in hindsight, it seems obvious that a large and competitive market would develop around them.
It's fun and a little humbling to note that 38 years later, IBM was again involved, along with Google and others, in the development of another fundamental computing advancement: Linux LXC containerization. Once again, it took an entrepreneurial type, Solomon Hykes of dotCloud, to make the ideas and tools into a commercially viable platform. The result of his and others' efforts was Docker, which probably does not require any further introduction here. Although Docker no longer runs on LXC, the genetic inheritance will always be there.
History is our best tool for prediction -- actual foresight being impossible -- and if it is any guide in this case, we will continue to see a large and vibrant market built around development containers and the platforms on which they run. It is likely to be one in which Docker will be playing a central, but perhaps no longer dominant, role. There will be competition for the core pieces they own now, and for the ecosystem of tools growing around that core. Here is a list of five names that are worth keeping an eye on, none of which are Docker.
1. Open Container Initiative (OCI)
The evolution of fundamental infrastructure is too important to be left in the hands of any single commercial entity, and so the Open Container Initiative was launched just about a year ago to promote open standards for development container formats and runtimes. Docker is a key supporter and recently donated their runC container engine to the OCI. Other supporters include Google, Amazon, Facebook, IBM and Red Hat.
Perhaps the best historical model for the OCI is the Open Systems Interconnection initiative that resulted in the famous OSI layered model of network communications and integration. The OCI defines their scope in a similarly narrow way, and most recently released a specification proposal for container image formats. If the consortium is as effective and successful as the OSI was then, a few years from now we will have a much more stable and commonly understood framework of concepts and tools to work with.
When first working with individual development containers, their deployment model seems a marvel of simplicity. As the numbers of deployed containers grow quickly, it becomes apparent that, as always, there are new complexities to deal with -- from image builds to container lifecycle management, service discovery, networking and persistent data. Google, one of the original contributors to LXC, probably runs more containerized apps than any other single organization. Their open source Kubernetes orchestration platform builds on years of internal experience with Omega and the earlier Borg, which is probably still the largest container management system in the world.
Kubernetes has quickly become a leading contender for a standard cluster and container management platform. One of the primary advantages of the system is that it provides a consistent object model and API for many underlying resources that vary between cloud providers, and has modules allowing it to run on most of the major ones including Amazon Web Services and, of course, Google Cloud.
3. CoreOS and rkt
Like Docker and many others, CoreOS is a company that grew from successful open source projects. Their CoreOS Linux distribution is a minimalist operating system tailored for running development containers. Their etcd distributed key value store provides the centralized store of cluster state for Kubernetes clusters. They also run quay.io, a hosted suite of image repository and container build automation tools.
Most recently, the company has been making news with rkt, a container format and runtime alternative to Docker which embodies quite a different architectural philosophy. Where Docker's functions have historically been served by a monolithic runtime daemon, rkt prefers to follow the Unix philosophy of simple and composable command-line tools. In addition, rkt supports multiple container formats, including Docker, and "pluggable" levels of runtime container isolation, which is useful for certain kinds of system and server applications. CoreOS rkt is still in its early stages of development but promises to be an alternative of particular interest to developers of container orchestration tools who may be unsettled by Docker's foray into their territory with swarm and compose.
4. Apache Mesos and Mesosphere
Mesos is a cluster management system and control plane for efficient allocation of computing resources between application delivery platforms, called frameworks, that are layered above it. Its origins were in a research project at the UC Berkeley RAD Lab around 2008, and in 2013, it became a top-level project of the Apache Software Foundation. Among the frameworks built to run on Mesos are Apache Aurora, a distributed framework for long-running services, and Chronos, a distributed cron-like framework. At the time of its adoption by Apache, Chris Fry, an independent technology company advisor, described Mesos as the "cornerstone of our elastic compute infrastructure."
Mesosphere is an enterprise software OEM that sells a "data center operating system" also built on Mesos and providing cluster management, container orchestration, service discovery and build automation for elastic computing. Mesosphere's offerings are in large-scale use at Yelp, Verizon and Bloomberg, to name a few adopters. Apache Mesos and Mesosphere form the core of a creditable orchestration alternative to Kubernetes or Amazon's Elastic Container Service.
5. Canonical and LXD
LXC was not the end of the trail for core Linux development of containers and related concepts. Recently, Canonical, the maintainer of the Ubuntu Linux distribution, announced LXD, a "container hypervisor" for Linux. LXD builds on the capabilities of LXC by adding to it a systemwide daemon with an API for LXC container management and an OpenStack Nova plug-in for managing virtual LXD hosts in the cloud. Is it an actual hypervisor? No, but it aims to have many of the same characteristics for running stable, secure and immutable container images.
Like development containers, it relies on cgroups, kernel namespaces and a mountable, transportable file system. Unlike LXC, it has a strong focus on image security and trust, and takes full advantage of underlying security subsystems in Linux like seccomp and AppArmor.
Canonical's stated goal is for LXD to be as secure and isolated as a hardware virtual machine, with bare-metal performance and container-like start times. Think of it as an ultra-thin, hardened container runtime with remote management capabilities. How much of LXD makes its way into systems like Docker or Kubernetes remains to be seen, but, at the very least, LXD is a good reflection of the new priority in operating system development, which is to provide a secure and high-performance place for containers to run.
Yes, you can have storage and containers at the same time
Trying DevOps? Here are some hands-on container projects to try
What you need to know about containers in the DC
Test yourself on application containers