Containers Add New Efficiency To Cloud Computing - InformationWeek

InformationWeek is part of the Informa Tech Division of Informa PLC

This site is operated by a business or businesses owned by Informa PLC and all copyright resides with them.Informa PLC's registered office is 5 Howick Place, London SW1P 1WG. Registered in England and Wales. Number 8860726.

11:16 AM
Michael Daconta
Michael Daconta
Connect Directly

Containers Add New Efficiency To Cloud Computing

Why use an entire operating system just to run one application? Containers-as-a-service offer a smarter way to run applications in the cloud.

Many virtual machines are being spun up in the cloud to run a single application. Often, the resources consumed by that application are dwarfed by the size of the operating system in terms of memory, disk space and CPU utilization. So why run an entire OS just to run one application? That is one problem virtual containers were created to solve.

Containers-as-a-service is a type of infrastructure-as-a-service specifically geared toward efficiently running a single application. A container is a form of operating system virtualization that is more efficient than typical hardware virtualization. It provides the necessary computing resources to run an application as if it is the only application running in the operating system -- in other words, with a guarantee of no conflicts with other application containers running on the same machine. For agencies and enterprises moving applications to the cloud, the containers represent a smarter and more economical way to move to the cloud.

In traditional hardware virtualization, a hypervisor (either software or bare metal) can run one or more guest operating systems. Each operating system acts as if it is in control of the entire machine. With containers (which are currently implemented on Linux, BSD and Solaris), applications can be virtualized more efficiently and run as if they control the entire OS user space. For example, a container can be rebooted, have root access, IP addresses, memory, processes, files, applications, system libraries and configuration files.

[ IBM aims to bolster federal agencies' adoption of cloud services and open standards. Read more at IBM Creates Federal Cloud Innovation Center. ]

An important distinction in this operating-system-level virtualization is that by OS virtualization, we don't mean the kernel, just the system libraries and binaries to allow isolation between containers. This use of the kernel across containers is similar to a hypervisor but is much more efficient and does not allow different guest operating systems. A container is an isolation unit in a single OS (in this case, Linux).

The most obvious benefit of Linux containers is that they are much more efficient in terms of memory, drive space and CPU utilization than hardware virtualization because they save the cost of the OS-overhead in each virtual machine. You can run many more containers on the same hardware as you could run virtual machines. Additionally, there is no boot time with Linux containers, so spinning up new containers is an order of magnitude faster than booting an entire operating system.

What does this mean for the future of infrastructure-as-a-service? Containers are a more efficient competitor to hardware virtualization, and many platform-as-a-service implementations -- including Heroku, OpenShift, dotCloud and CloudFoundry -- use containers. Additionally, some of the private cloud IaaS implementations, like OpenStack and Cloudstack, offer support for containers. So containers are a viable new type of virtualization that will continue to grow and influence the direction of cloud computing.

Additionally, as cost competition in the IaaS space heats up, CaaS could become a factor in competitiveness due to its greater efficiency and performance against hardware virtualization technologies.

There are a few ramifications of CaaS to keep in mind:

-- Since most CaaS activity is on the Linux operating system, CaaS will strengthen, if not cement, Linux's leadership position in the cloud. In most cloud providers, Linux operating systems are a cheaper alternative to Windows and run on smaller configurations that require less memory and disk space. Additionally, Web applications are typically more platform-neutral and therefore run equally well on Linux or Windows operating systems. Of course, if the application is specific to Windows technologies (like, it must run on a Windows operating system. However, Windows instances take up to nine times longer than Linux instances to start up, according to one performance study.

-- CaaS allows real-time cloud-native applications. Demonstrating cloud-based applications can be tricky with traditional virtual machines because each one can take up to five minutes to start up. That startup time is mostly due to the boot time of the operating system. Containers eliminate that boot time and start up in seconds. That improvement in start time makes containers able to become a new base unit for distributed applications instead of using threads. Why? Containers offer a greater degree of isolation and looser coupling than threads. The isolation provides a greater degree of reliability, in the same way that Google Chrome chose process isolation over threads to improve reliability. In distributed cloud applications, reliability and loose coupling are the centerpieces of a robust application.

-- CaaS will spread to all major operating systems. Of course, this prediction is based upon another prediction: the cloud is inevitable. A testament to this growth in CaaS interest are the new CaaS implementations that are popping up, including Google's lmctfy (let me container that for you), Heroku's Dyno and CloudFoundry's Warden. These are in addition to other containers such as Docker, lxc, OpenVZ, BSD Jails and Solaris Zones. MacOS also has something called an App Sandbox (similar to the Java Sandbox concept). Windows also has an application sandbox concept, but it is important to note while there are some similarities between a sandbox and a container, the two are different. A sandbox usually revolves around security protections for an application rather than around the broader requirements of application isolation.

-- The CaaS concept will continue to evolve, similar to the way Java Virtual Machines evolved into a form of application sandbox for Java bytecode-based applications and even the J2EE Web containers and EJB (Enterprise JaveBeans) containers evolved into higher-level forms of containers. All of these isolation concepts are important; they support different but intersecting audiences and can help forge a better understanding of what is needed to efficiently and safely run applications in the cloud. The entire container/app sandbox/app engine concept will continue to improve and evolve.

Finally, CaaS is an important part of the evolution of cloud computing. In my new book, The Great Cloud Migration, I discuss the role and manifestations of this cloud evolution and its impact on migrating applications to the cloud. CaaS is not the only way in which clouds are evolving. Some other areas of evolution include the blurring lines between PaaS and IaaS, how the "Internet of Things" is influencing the cloud and cloud interoperability. Of those, CaaS is the most significant change as it affects the foundational components of cloud computing. Such disruption is a good thing as it pushes the cloud to greater levels of efficiency and greater avenues for disruption of traditional IT.

We welcome your comments on this topic on our social media channels, or [contact us directly] with questions about the site.
Comment  | 
Print  | 
More Insights
Newest First  |  Oldest First  |  Threaded View
User Rank: Apprentice
12/16/2013 | 10:55:19 AM
re: Containers Add New Efficiency To Cloud Computing
I know that other containers should able to use in other public sectors like the non government agencies that may help other people around the country.
User Rank: Strategist
10/25/2013 | 12:22:07 AM
re: Containers Add New Efficiency To Cloud Computing
Solaris implemented efficient virtualization through containers, but Solaris also got flanked by Linux. Containers in Linux show up in the new Docker open source project, where a complex application and its dependencies can be placed in a Linux container with an IP address and moved around. That's useful. OpenStack thought so too and put the driver to Docker into the recent Havana release of OpenStack. How are containers useful to you?
User Rank: Author
10/23/2013 | 5:29:30 PM
re: Containers Add New Efficiency To Cloud Computing
Michael Daconta makes a great point that a lot of resources are being
wasted setting up virtual machines and operating systems simply to
support a single app in the cloud.
10 Top Cloud Computing Startups
Cynthia Harvey, Freelance Journalist, InformationWeek,  8/3/2020
Adding Fuel to the MSP vs. In-house IT Debate
Andrew Froehlich, President & Lead Network Architect, West Gate Networks,  8/6/2020
How Enterprises Can Adopt Video Game Cloud Strategy
Joao-Pierre S. Ruth, Senior Writer,  7/28/2020
White Papers
Register for InformationWeek Newsletters
2020 State of DevOps Report
2020 State of DevOps Report
Download this report today to learn more about the key tools and technologies being utilized, and how organizations deal with the cultural and process changes that DevOps brings. The report also examines the barriers organizations face, as well as the rewards from DevOps including faster application delivery, higher quality products, and quicker recovery from errors in production.
Current Issue
Enterprise Automation: Do More with Less
In this IT Trend Report, we highlight the benefits of automation and the various tools as enterprises navigate turbulent times, try to do more with less, keep their operations running, and stay on track with digital modernizations.
Flash Poll