One of the best things about my sabbatical is the ability to pursue topics that are interesting to me. Containers are very interesting to me and I wanted to share why I think they are important in the next evolution of cloud-native infrastructure.
I wrote a piece in March on the parallel Cloud Gold Rushes currently occurring in the public cloud marketplace. In the Cloud Gold Rush piece, I discussed the idea that a distinct cloud sales rush exists for companies developing their own software. It is unique from other rushes happening in public cloud like data center migrations with 3rd party software or SaaS and often referred to as “cloud-native.”
Containers Are Integral To The Cloud-Native Cloud Gold Rush
Containers, almost synonymous with Docker now, are well on their way to revolutionizing the efficient consumption of public clouds for software developers. Over the last few years I have worked on several client software development projects on public cloud. I got to see firsthand the benefits of helping clients move to efficient microservices environments using Docker containers. Based on this experience, I believe that containers are already the next front line in the current evolution of software development in the public cloud market.
Containers and container management clusters replace the need for a dedicated OS instance for each tier of an application stack. They allow for the scaling of an application to be more targeted at specific services (microservices) within an application. The added benefit is that when application services components are broken out more efficiently, a cloud deployment is able to consolidate the number of underlying physical servers supporting it. More efficiency equals less ongoing costs spent on the underlying infrastructure; public cloud, private cloud and/or bare metal.
Efficiency Is Not The Only Benefit
In addition to infrastructure efficiency, containers also finally allow for real portability across underlying infrastructures. This new portability minimizes the amount of custom integration a software developer has to do on the related infrastructure types. These infrastructure types include public cloud, private cloud and/or bare metal.
As part of my recent research into this area I came across a talk by Sam Ghods, Co-founder of Box, that he gave at the last KubeCon here in Seattle. If you have 16 minutes and want to hear why he thinks containers managed via Kubernetes is the future of infrastructure platform deployment, click below:
Why Isn’t Everyone Already Using Containers?
We used a lot of engineers and consultants on our clients projects for container migrations. While there are great CI/CD tools and techniques for creating net-new software (Jenkins, CodeShip, Travis CI, Circle CI, Salano, Spinnaker, Shippable) on containers, existing applications take a lot of manual work to convert. Docker and Microsoft recently announced the Modernize Traditional Apps Program along with other partners at last month’s DockerCon.
One of the interesting things to note about the press release about this program from Docker was that “Microsoft is not only a partner in this program; their IT organization is also a beta customer. Microsoft IT increased app density 4X with zero impact to performance and were able to reduce their infrastructure costs by a third.”
In addition to public cloud providers offering more programs to migrate to containers, I expect to see the market for tools that help convert manual processes for existing software developed internally to containers accelerate. I also expect to see further expansion of the security space focused on containers to grow as traditional security tools were not designed for containers.