Like all technologies, containers are already being used by large enterprise companies – but they’ll eventually work their way down to even small businesses. Containerization is something SMBs will want to keep an eye on as it grows and becomes more mainstream. So let’s talk about what containers are and how they can help your business.
The Next Evolution of Virtualization
A container is the ability to encapsulate (or “containerize”) all the needs of an application inside a small, movable set of files.
Containers are really the next evolution of virtualization. Travel back 15+ years ago to the advent of virtual machines and virtual servers. Virtualization was invented to make running applications easier and less labor-intensive.
Before virtualization, if a company wanted to run an application, they bought a physical server, installed the Windows OS on the server, and installed the application on top of that. Need to run another application? Buy another server, install the OS, install the application. It was expensive and labor-intensive.
With virtualization, you can take one server and put a hypervisor on it. Now all of your servers are presented as a pool of resources. You can simply install multiple VMs on a single server – each with their own OS and applications. It de-coupled hardware from the application to the degree that now you can have one server run 10, 20, 30, 40, even 50 virtual servers.
In addition, virtualization made backup and recovery a lot easier. You could back up your VM files and they would contain all the configuration effort that went into that virtual machine. To a certain degree, if you have a hardware failure or if you need new hardware, you can just pick up that VM file, copy it to another server, turn it on, and it should work.
Virtualization is about achieving server density and increasing backup and disaster recovery opportunities. It’s been mainstream and popular for the last 15 years.
Virtualization is Reaching Its Limits
However, the challenge with virtualization is you have to pick a hypervisor – a file format, if you will. For example, Microsoft’s got a VHD format and VMWare has a VMX file format. There are some tools that allow you to convert back and forth between them to try to make it more portable. But there’s a conversion process that has to happen and the virtual machine is never quite the same after.
Another challenge facing virtualization is the growing need to be able to web scale. Our growing society is hungry for more computing density. We need to operate IoT devices like smartwatches and social media websites that have hundreds of billions of users accessing them all the time. We have to be able to do everything that virtualization allows us to do, but times 1000 what we did before.
Containers – They’re Not Your Mom’s Tupperware
So along comes containers. Containers are that next layer on top of virtualization. With containers, we’re taking an application and making a blueprint for it as well as creating an orchestration service for it.
Orchestration services like Kubernetes or Docker will watch what the load and demand are for your application and will follow your blueprint for the app. Your blueprint could say: “Spin up enough virtual machines to satisfy the demand for the next 15 minutes and do it on Azure or Amazon Web Services or a combination of both because it doesn’t matter.”
A container allows your application to be spun up at your location or on any of the major cloud providers. It’s completely portable. It has no specific ties. As long as you’re running Docker or Kubernetes, you can orchestrate that container and scale it up or down as needed.
Success with Containers
Let me share an example of how we used containers for an Elevity client. They were a company bringing a new product to market. Their product was an IoT-type device that would go into consumers’ homes and gather data. Then it would bring that data back to a central database. From there, they had a web-based application that would provide this data back to consumers in order to help them make better energy decisions.
The company launched the product as a pilot into a couple hundred homes. They obviously hoped the product would expand into potentially millions of homes and petabytes of data. However, they didn’t want to spend a large amount on the front-end for hardware to support the product.
So how do you start an application when you’ve got a small budget? How do you support it until the product actually sells and then keep up with the product’s needs as it grows?
The answer that we used was Microsoft Azure and their AKS (Azure Kubernetes Services). We built the blueprint for what was needed for their minimal buy-able product. But as they sold more and as it scaled, the orchestration engine of AKS would actually see the increased demand and automatically deploy more containerized versions of the application’s servers to handle the workload.
Before containers and orchestration services, delivering an application like this took a lot of upfront capital. The app would be siloed in one place, difficult to ever move, difficult to ever upgrade, nearly impossible to scale out, and would require a lot of human power to constantly watch, take care of, and get the IT side of the product right.
Now with Kubernetes, we’re allowing automation tools to help make those decisions and, ultimately, save a lot of money – because you’re only spending money when you have workload. When it was nighttime and the application wasn’t as busy, AKS actually spun down those extra application/container servers that it had spun up.
Containers are Coming
Container services are enabling true utility computing. Right now, these services are primarily used in the applications I just talked about – IoT, web services, etc. If you’re Starbucks and you’re running your new holiday cup promotion, you’re probably using containers to expand your customer-facing web to handle a whole bunch of people searching for what the cool cups are going to look like this year. Once we’re well into the holiday season, those extra containers are spun back down.
It’s a very cool technology with so much potential for businesses of all sizes. I encourage you to continue educating yourself about it. And reach out to your trusted IT advisor to explore how your company could benefit from containers and Kubernetes.
Additional Resources
Why You Don’t Have to Be Afraid of Kubernetes – OpenSource.com
Kubernetes: Up & Running – PDF download
What are Containers and Why Do You Need Them? – CIO Magazine