Developing a business case for any technology is not always an easy endeavor. In many organizations, CIO’s, CTO’s, and CISO’s will see the value of adopting new technology strategies, however these are harder to sell to others in the C-suite. Those that don’t fully grasp tech see a lot of costs that they don’t understand and a great deal of unknowns associated with new technology strategies and container adoption is no different. But containers are not new technology, so there’s always the question, why now? What’s the big deal? Containerization rose in popularity when the time for them was right with the primary reason being that they provide a number of key benefits that do impact the bottom line as organizations shift towards the cloud for deployment and automation in application development and operations. Convincing those in the C-suite that containers are a way forward might be a hard sell but fortunately though containers have been the focus of a lot of research which has been able to substantiate some of the claims made by container advocates with real world case studies and analysis. Here are some of the key points to highlight when making a case for containers.
Improve productivity — Developers that have integrated containers into their development tool chains have seen improvements in productivity. One of the key reasons why is that containers provide pre-made platforms that are easy to spin up and use by developers. Before, just setting up a development environment could take days to complete to write some of the most basic apps. Containers however give the developer tools pre-installed on images that can be used for building and testing applications in an environment that closely mirrors a production environment. Read about how Lyft used containers to standardize their developer’s tools and improve productivity.
Improve operation efficiency — Containers by their nature help improve operational efficiency because they decouple applications from the underlying infrastructures. This means that applications can be patched independently of the infrastructure without disrupting both the applications and the infrastructure. Applications therefore can be patched on a tighter cadence than they historically have because it doesn’t interfere with infrastructure or necessarily involved operations to deploy the applications and patches. Developers can simply patch the application images and automatically redploy them with DevOps tool chains. Cornell University combined containers with DevOps tools to streamline their IT operations and drastically improved efficiency in the organization. ht
Improve time to market — One of the best ways to improve revenue is to improve time to market. The combined effects of containers on developers and improved operation efficiencies means that software ship faster with fewer bugs. This not only improves customer satisfaction, but it also translates into getting new features and new software into the hands of customers before the competition does. A McKinsey study showed how DevOps when combined with containers was able to improve 70% with time to market whenever these two were combined.
Lower TCO — Besides the benefits from efficiency and productivity gains, containers generally have a lower total cost of ownership than their virtual machine counterparts. There’s a number of factors involved here, but it hinges on the fact that containers do not carry with them operating systems and their associated costs (such as licensing) and all of the operation costs of maintaining operating systems. By eliminating this overhead, it can substantially reduce the total cost of ownership for most any application being deployed into a container. Diamanti discusses this in Container Journal more in depth. Docker too has put together a ROI savings estimator calculator that compares VM with containers.
Cloud agnostic, infrastructure agnostic — Most companies these days are not selling software, rather selling SaaS or something to that effect. But for companies wanting to sell software, containers enable software to run on virtually every public cloud offering available and on premise. Azure Container Service, Azure Service Fabric, Azure Web Apps, Azure Container Instances, AWS Elastic Beanstock, AWS EC2 Container Service, and Google Compute all offer options. Likewise, Docker and/or Kubernetes can run on premise and use the exact same container images. For companies looking to be able to run an app anywhere on any cloud, public or private, containers offer a way to do this consistently across all of the platforms.
The case for container adoption is fortunately easy to verify given that there are real world examples and analysis supporting the claims made by the sales pitch. The key endeavor for any organization is to focus in on how containers (or any technology for that matter) can deliver business values to justify the return on investment. In the case of containers, this is often huge given that it can practically improve every part of application lifecycle management.