When Amazon Web Services launched in 2007, server virtualization was all the rage. So it makes sense that Elastic...
Compute Cloud got its start with the open-source Xen hypervisor. Fast forward to today, and a new generation of cloud providers is relying on containers -- not hypervisors -- as the fundamental unit of virtualization. That appeals to developers who have jumped on the Docker bandwagon, while giving service providers better consolidation ratios.
Container-based cloud providers include Kyup, a Bulgarian company; Jelastic, a platform as a service provider; Joyent, whose Triton services runs on a derivative of Solaris Zones; and the startup Packet.net.
In many ways, container-based clouds are nothing new; hosting providers have relied on operating system virtualization (containers) such as FreeBSD Jails and Solaris Zones for decades. In these iterations, the OS kernel allows for multiple isolated user spaces -- not just one.
"There's already a $12 billion industry that runs on containers," said Carl Brooks, analyst at 451 Research in Boston. "It's called hosting."
At the same time, these new container-based clouds are "kind of fun, because once you've solved all its other problems such as security, Docker clouds allow you to move the conversation beyond servers and storage," Brooks added.
Hypervisor-based cloud providers, meanwhile, are pushing forward with Docker services on top of VMs. At DockerCon in San Francisco this week, Amazon announced you'll be able to use Docker Swarm and Docker Compose with its Amazon Elastic Compute Cloud (EC2) Container Service.
Amazon's approach of running containers on top of EC2 ultimately delivers the same end-user experience to the developer, said Goutham Rao, co-founder of Portworx, a start-up developing container infrastructure software.
"For all practical purposes it looks like you're running on containers," Rao said. At the same time, the approach is "roundabout," he added. The cloud provider loses the benefit of container density, which can be on the order of 10X over hypervisors.
"Containers change the density tenfold," Rao said.
Container density translates to better margins for service providers and lower costs for customers, said Tenko Nikolov, CEO of Kyup, which spun out of hosting provider SiteGround last year after a surge in interest from developers looking for native container-based cloud services. You can simply fit a lot more instances on a server with containers than with a hypervisor. A hardware VM includes a full-fledged OS inside of it and takes up about 1 GB of disk space. A container uses the base OSes and can achieve the same functionality in a couple of megabytes, said Nikolov.
The lightweight nature of a container translates to much faster boot times: two seconds for a container versus upwards of two minutes for a VM and thus it offers easier and faster scalability, he added.
Meanwhile, hypervisor providers are making attempts at solving that problem. VMware this week announced a new effort called Project Bonneville, which makes a copy of a container running in a VM in a couple of seconds, using vSphere features such as Transparent Page Sharing and the new Instant Copy.
Container-based clouds have always appealed to organizations looking for extreme performance. But it's Docker's rise in popularity that is fueling the surge in interest, said Bill Fine, Joyent vice president of products.
"The magic of Docker is that it makes the developer experience awesome in terms of portability and productivity," Fine said. "We've been doing containers for years, but it's just now coming into vogue."
Security woes dampen container cloud parade
That's not to say container-based clouds are bulletproof. "DockerOps has its challenges," Fine said. For example, security isn't much of an issue if you're a developer running Docker on your laptop, but it's a whole other story if you're running Docker in production. And while Joyent's container cloud is based on top of battle-hardened Zones, skeptics say clouds based on Linux containers should be very wary of the security of a container in a multi-tenant environment.
But fundamentally, "containerizing an app is the right way of doing things," said Portworx's Rao. Once there's a critical mass of containerized applications, "It will be a no-brainer that people will want to run them on a container cloud rather than in a VM," he added.
Will that lead AWS to switch to containers? Kyup's Nikolov thinks so. AWS will eventually switch to native containers, "first as a parallel service [to EC2]," and later as a wholesale conversion.
Benefits of using Amazon EC2 Container Service with Docker
Docker on AWS: It's not you, it's me
Should I use Docker containers to deploy cloud apps?