Vous êtes sur la page 1sur 9



www.cloudyn.com | @cloudyn_buzz | cloudyn.com/blog 1

The What, the Why and the When
to use Containers

The rapid pace at which containers are being adopted in the data
center will soon impact many I&O organizations. Infrastructure
managers must embrace this change to address the demands of
bimodal IT, but in a controlled and tactical manner.

Containers are the technology that is taking the IT industry by storm. They're the
lightweight and portable alternative to virtual machines (VMs). And one of the leading
infrastructure technologies behind the unstoppable DevOps revolution.

Containers continue to see a massive surge in interest in enterprise IT and promise
simplified application management and better resource utilization. They also make it easy
to package and ship software, and are ideally suited to the modern distributed approach
to application architecture.

But containers also add a whole new dimension to cloud cost optimization.

So what exactly are they? What benefits can they bring to enterprise IT? And how do you
make sure you are using them cost effectively?

In this document, we will look at some of the basic features of containers, the advantages
they offer over traditional IT approaches and how to cost-optimize container

The What, the Why and the When to use Containers

What Are Containers?

Container Basics

Containers are an alternative virtualization method designed for deployment of

compartmentalized applications as part of a distributed architecture. Unlike VMs, which
run as guest machines under the management and control of a hypervisor, containers
make use of the resource isolation features of the Linux kernel and sit directly at host
operating system (OS) level.

Containers vs VMs

Containers, such as those in the Docker example above, sit directly at host OS level.
Image source: Docker

Although a container is an isolated environment containing all of the components needed
to run an application, it shares the resources of the host OS with other containers. This
makes containerization a more efficient alternative to VMs, as a VM requires an entire OS
to host an application.

So, whereas a VM may typically run to several gigabytes in size, a container that performs
the same function may only require tens of megabytes. This generally means you can
deploy far more containers to a single server than VMs.

The What, the Why and the When to use Containers

Instances for Containers vs Instances for VMs:

When you set up containers in AWS, you provision the specific instances you need for your infrastructure just as
you would for your VMs. The only difference is the nature of the content hosted by those instanceswhich do
not require a full OS to perform their function.

Containers go hand-in-hand with modern distributed application architecture, where
large applications are broken up into smaller, loosely coupled microservices. This method
of deployment makes it easier to isolate problems, where all you need to do is replace
unhealthy containers with healthy ones to maintain availability.

What's more, containers decouple the application from the underlying infrastructure. So
they make life easier for developers, who only need to consider what their code actually
does and not the environment in which it's hosted.

They are perfectly adapted to scalable, portable and stateless workloads. They are more
flexible than traditional IT approaches, as you can update one particular microservice
without affecting others. For example, if all your existing applications are built using
Python 2.6, you can still develop a new microservice using the 3.5 release without fear of
compatibility issues.

By far the most popular container technology is Docker. The open-source project has
become synonymous with containers and supports the largest ecosystem of products
and services. You can create your own Docker image or use one of the prebaked images
on online repositories such as the Docker Image Library.


Docker for Windows:

Until recently, containers were almost exclusively the domain of Linux-based servers. But all that changed in
September 2016 when Microsoft launched Windows Server 2016, which provides native support for Docker
containers. This is set to bridge the gap between the two operating systems and bring enterprise IT one step
closer to a world of full application portability

Now let's move onto containers in more detail.

The What, the Why and the When to use Containers

Container Cluster Management

Your cluster configuration is the foundation of your distributed application architecture.

It is also the key to your container cost optimization strategy and will determine how well
you align utilization to the resources you make available.

Topology of an Amazon ECS Cluster


Container Instance


Task Definitions

A cluster is a logical grouping of EC2 instances.
A container instance is an Amazon EC2 instance that has been assigned to a
container cluster.
A container is a running instance of a container image, which performs a task.
An image is a read-only template that contains the software you load into a
running container.
A task definition contains configuration information about the container, such as
memory reservation, CPU reservation and the container image it should use.
A service is a group of replicated tasks that work in together in parallel.

The What, the Why and the When to use Containers

Amazon offers a free proprietary container management service, Amazon ECS, for
creating clusters of instances for your containers and deploying applications to them. It
also supports a number of open-source container management engines, such as
Kubernetes, Mesos and Docker Swarm. Amazon ECS is easier to set up and use, but
doesn't offer the same functionality and portability of its open-source counterparts.

Each of these services also comes with its own set of features for managing clusters and
maintaining service levels, such as performance monitoring, managing distribution of
containers across your cluster and automatically restarting unhealthy containers.

Container Lifecycle Management

Another aspect to maintaining containers is lifecycle management. For example, by

leveraging infrastructure management software, such as Chef and Puppet, you can
automatically provision container images and roll out configuration changes and system

Continuous integration (CI) and continuous delivery (CD) tools, such as Jenkins and
CodeFresh, also play an important role in the container lifecycle, by automating code
deployment to your containers.

However, containers are still in their early days. They may be simple in their own right,
but can be a formidable challenge when deployed in large numbers to a complex
enterprise IT environment. Therefore, configuration management tools still have a long
way to go if containers are to see more widespread adoption.

What Are the Cost Challenges of Containers?

Although containers offer many other potential benefits, agility has been the driving
force behind the success of containers so far. But this has come at the expense of
accountability, leaving containers with many of the cost challenges associated with
traditional IT.

For example, just as with on-premise infrastructure, utilization remains very low. And
containers still suffer from the problem of cloud sprawlwhere enterprises rack up huge
cloud bills as a result of uncontrolled ordering of instances, which often end up unused or

The What, the Why and the When to use Containers

Yet, provided you follow good monitoring and deployment practice, containers are far
more cost efficient. However, achieving this efficiency is easier said than done.

The problem lies in the lack of cost notion as a primary operational metric. In other
words, just as with public cloud services in general, vendor platforms simply don't supply
a clear monitorable metric for container costs.

Instead we need to look at cost from a utilization perspective. This approach looks at
fine-tuning your resources to container utilization and reaching a good cost and
performance balance.

Solutions to manage cost challenges

Cloudyns cloud management solution now supports containers in addition to cloud
providers, AWS, Microsoft Azure, and Google Platform. Cloudyn provides unparalleled
insights into multi-platform, hybrid cloud deployments from a single pane of glass, and
supports container, cluster, and repository monitoring and optimization.

The screenshot above shows the CPU and memory of a cluster that was reserved for a certain task or service.

The What, the Why and the When to use Containers

While a certain amount of CPU and memory was reserved ahead of time, the task may
require more or less than that which was provisioned. Therefore there may be CPU and
memory that are:

Used and reserved
Used and non reserved
Free reserved
Free no reserved

In this particular example we see that while almost all of the CPU was either reserved or
used, most of the memory remains free, revealing a poorly configured cluster and wasted

In a case like this, Cloudyn would suggest reconfiguring the cluster with a more efficient
cluster, and ultimately saving the client money.

To read more about Cloudyns support for containers, click here.

Cloud containers are a more agile and cost-effective alternative to VMs for hosting
modern distributed enterprise applications, as they provide isolated, resource-efficient
environments for each of your microservices. But they're not a magic bullet.

Containers share operating systems with other services, which increases the attack
surface and presents challenges to the security of mission critical applications.

A successful container strategy will take security into account, as well as the cost impact
of re- architecturing traditional deployments to your containerized environment. Above
all, it will require continuous monitoring and adjustment of your cluster configuration.

However, the concept of container cost optimization is still relatively new. And so the
future of container management will inevitably bring more sophisticated optimization

The What, the Why and the When to use Containers

Cloudyn is an enterprise-grade, SaaS solution that pioneered the single-pane-of-
glass approach to managing and optimizing multi-platform, hybrid cloud

environments. Supporting Microsoft Azure, Amazon Web Services, Google Cloud,

OpenStack and Docker, Cloudyn delivers measurable cloud success by enabling full
visibility and accountability packaged with continuous optimization across all
clouds. The solution provides insights into usage, performance and cost, coupled
with actionable recommendations for smart cloud optimization. Cloudyn enables
accountability through comprehensive cost allocation and management helping
enterprises get to cloud ROI more rapidly. Thousands of global customers rely on
Cloudyn, including Fortune 500 leaders across all major market verticals.

Visit us at www.cloudyn.com or contact-us@cloudyn.com and follow us on

2017 CLOUDYN. All Rights Reserved.

The What, the Why and the When to use Containers