The Infrastructure as a Service (IaaS) provider Elastichosts launched in April 2014 Elastic Containers, a new container-based service. In my previous TechRepublic article, Richard Davies, Elastichosts CEO, described how virtual machines (VMs) and containers fit into the cloud computing big picture. This week, he goes into detail about Elastichosts containers.
No, it's not another Docker partnership
You would be forgiven for thinking using containers means using the Docker engine, since, this year, the container-based technology company seems to be popping up everywhere. Docker support appeared in Red Hat; Amazon Web Services (AWS) added support for Docker to its Platform as a Service (PaaS) Elastic Beanstalk; and you're one command away from Docker in Ubuntu (it's sudo apt-get install docker.io).
Container vs. VM billing
Davies described what Elastichosts has done with its LXC-based containers.
"The thing we've managed to do by introducing this new product based on containerization technology is change that to also introduce a new billing model, to bill people for what they've actually used. If you start a containerized cloud server and overnight your memory usage drops down to 2 GB, for those hours in the middle of the night you will be charged for 2 GB. The next day when your memory usage goes back up again -- people start going to your website, or whatever software is running on your server -- you'll be back up at 6, 7, or 8 GB again, and you will be billed for 6, 7, or 8 GB. You are billed for the actual resource usage, not some size that you've requested."
Containers behave more like applications running on your workstation than VMs on a hypervisor, taking the resources they need to run. Containers can't keep on consuming resources, Davies said. "You set some limits to how big you are willing to let your server go -- we don't want to blow the budget. You set a limit -- 'I don't want my server to go bigger than 8 GB,' say, or 'no bigger than 16 GB.' Within that limit, your software runs, your software uses what it uses, and we bill you for what it has used."
This type of billing is possible because actual resource usage can be measured within a container. A VM is more of a black box to an IaaS provider. Davies describes how usage-based billing of resources is difficult. "Traditional IaaS providers would typically do on-demand bandwidth billing. None of them do on-demand memory billing, none of them do on-demand CPU billing, and most don't do on-demand disk billing. We are doing usage-based billing for all four."
Davies explained that meeting usage variations using VMs takes time and skill. "All sites will have a traffic pattern with dramatic variations. Some are consumer targeted and come alive in the evening. Some are business targeted -- they come alive in the daytime...A sophisticated user of a VM-based cloud infrastructure service, like Elastichosts or Amazon, can make a setup where they run multiple VMs and where they turn VMs on and off based on load."
With containers, no extra work is required to cover usage variations. "In effect what you get is an auto-scaling-type experience, but it doesn't require any complicated setup. It doesn't require any extra VMs and complicated rules. You just run a server, you set some maximums for that server, which could be very big, and then your server just naturally scales up and down within that maximum as the software allocates and de-allocates memory."
Davies said, "The key fact here is not that we've built a scaling tool -- we don't have to build a scaling tool."
Potential Elastic Containers customers
Linux containers are only available to customers who want to run Linux and don't need to customize the kernel. Davies said that covers most IaaS customers today. "Our existing customer base is something like 30% Windows, 70% Linux for our VMs, including a small percentage of FreeBSD, OpenSolaris, etc. Only the Linux customers can use containers."
How will the new service work out?
Most Elastic Containers customers are in their first month of use, so it's still early days. If containers live up to their promise, IaaS customers will spend more time customizing their applications and less time customizing the infrastructure.
Pay-per-use billing will be more granular, and technical architectures may get simpler. If it works out that way for the Linux users in the cloud, that's a lot of people that will eventually migrate to containers.
Nick Hardiman builds and maintains the infrastructure required to run Internet services. Nick deals with the lower layers of the Internet - the machines, networks, operating systems, and applications. Nick's job stops there, and he hands over to the designers and developers who build the top layer that customers use.