It's not entirely appropriate to say “creating a cloud or container strategy” with the intent of placing your strategy focus on the technology, rather than on your business. It can be easy to lose focus and assume that adopting cloud-based and container offerings is a sure path to business benefit.
The Audacity of Containers
Having spent more than a decade in the network and data center world I've seen plans mature and businesses excel over time. Once cloud technology broke through the virtual glass ceiling, it became apparent that business continuity was now in the hands of the metric-driven strategy, rather than the technology alone.
Customers are excited about the business benefits from Docker and Kubernetes, but wonder at the same time if the evolution will slow. Docker, Kubernetes, and AWS certainly don’t think so and 451 Research also sees the evolution excelling.
They predict "the application container market will explode over the next five years. Annual revenue is expected to increase by 4x, growing from $749 million in 2016 to more than $3.4 billion by 2021, representing a compound annual growth rate (CAGR) of 35 percent."
It's All About Agility
Why does everyone love containers? Because they are agile, lightweight, and mobile.
Virtualization hypervisors such as Hyper-V, KVM, and Xen, all are based on emulating virtual hardware making them heavy in terms of system requirements. Containers, instead, use shared operating systems.
This means they're much more efficient than hypervisors in system resource terms. Instead of virtualizing hardware, containers rest on top of a single Linux instance. This difference enables users to leave behind the useless 99.9 percent of VM junk. With a perfectly tuned container system, you can have as many as four-to-six times the number of server application instances as you can using Xen or KVM VMs on the same hardware.
The second reason containers have legitimized so quickly is their correlation to the successful DevOps culture. Containers enable developers to easily pack, ship, and run any application as a lightweight, portable, self-sufficient container. They do this by enabling developers to isolate code into a single container, making it easier to modify and update the program.
Like any element of your IT infrastructure, containers need to be monitored and controlled or IT departments risk the lack of knowledge of what's running on company servers.
Homegrown and DevOps programs exist but containers is not their wheelhouse. One of our partners, DataDog, a cloud-monitoring company, points out in their report on real-world Docker adoption saying, "Containers short lifetimes and increased density have significant implications for infrastructure monitoring. They represent an order-of-magnitude increase in the number of things that need to be individually monitored."
The answer rests in cloud orchestration tools which monitor and manage container clustering and scheduling. In 2017, there were three major cloud container orchestration solutions: Docker Swarm, Kubernetes, and Mesos (with commercial backing from Mesosphere). Today, Kubernetes is by far the most dominant cloud-orchestration program. In October of 2017, Mesosphere jumped on the Kubernetes train and Docker announced it will integrate Kubernetes into the Docker platform.
The Applause for ECS was Deafening
At ReInvent 2017, nothing was more cheered than the announcement of the Amazon EC2 Container Service (ECS) for managing clustered Docker application containers.
Docker deserves its accolades. 18 months from its release, it has already passed 50 million downloads and an open source community of 700 "non-Docker employees" contributing code to the Docker Hub. The robust ecosystem makes it possible to take virtually any Linux app, wrap it up in a container within seconds, and run it on any server. In the Winter of 2017, Amazon added support for running Linux applications in Docker containers and followed up a month later with Docker support in Elastic Beanstalk, which automates much of the provisioning, scaling and load-balancing. AWS customer had bigger dreams to fulfill with containers within the AWS environment.
Amazon Elastic Container Service (Amazon ECS) is a scalable, fast, container management service that makes it easy to run services implemented on Docker containers on or across clusters. Users can also host a cluster on a serverless infrastructure managed by Amazon ECS by launching services or tasks using Fargate. Amazon ECS is tightly integrated into the AWS ecosystem especially addressing security concerns.
Amazon ECS can schedule the placement of containers across your cluster based on your resource needs, isolation policies, and availability requirements. Amazon ECS eliminates the need for to operate your own cluster management and configuration management systems or worry about scaling your management infrastructure.
CloudHealth adds visibility into the workloads operating in your ECS clusters, and enables governance and cost reporting.
CloudHealth supports containers in all cloud and data center environments running on Kubernetes- and Mesos-based orchestrators including RedHat OpenShift, Mesosphere DC/OS, CoreOS Tectonic, Azure Kubernetes Service (AKS), and Google Kubernetes Service (GKE). We are pleased to add support for AWS ECS.
Today, customers using the ECS orchestrator can take advantage of the CloudHealth Container Module, which provides a variety of business benefits:
- Unparalleled Visibility: Reveals what services are consuming the most resources;
- Resource Optimization: Pinpoints opportunities for ongoing optimization, so businesses can ensure they have the right infrastructure resources to support their cluster; and
- Cost Control: Delivers insights on resource utilization waste to better control spend.
Want to learn more about our containers support?