Containerization has taken the world by storm! The number of organizations using application containers as a core component of their IT landscape continues to grow. However, fewer and fewer people truly comprehend the operational changes needed to run containers in production successfully.
Docker and Kubernetes are infrastructure components that easily allow the deployment of applications and their required networking and storage elements. This would have previously needed cross-functional team involvement (Infra Team, Network Team, Dev Team), so Docker and Kubernetes's automation is a significant efficiency gain. This behavior is one of the many benefits of containers; however, this benefit also introduces additional complications. With the introduction of new technology, there are always benefits and complications; containers follow the same pattern. Unless the operators of the container platform have a good understanding of infrastructure components, they stand a real risk of misconfigurations that may cause unreliable/unpredictable performance or, worse, insecure deployments. Sound familiar; it was the same with virtual machines.
When an organization elects to adopt containers, it should do so with "eyes wide open," by that, be fully aware that once the first container is deployed, you have started evolving your organization's IT operating model. It's impossible to conceive a critical production environment that is 100% decentralized and managed without consideration of tooling, SLA/OLAs, and ensuring that the people operating the platform have the knowledge required to operate it correctly.
In any of the hundreds of community forums, user groups, discussion channels, etc., you will read over and over again desperate cries for help from operators who are tasked with supporting a platform they are underequipped to support. Often, they need urgent help as something that was working is no longer working, and they don't know why. Or they need help because after spending days/weeks/months trying to complete a task, their time is up, and their boss is breathing down their necks. These are sure-fire signs that containers were adopted without forethought, so the teams are now struggling for survival.
Adopting containerization without concurrently training at least some of your staff in container fundamentals is a mistake. As a foundational technology, Docker should always be the starting place, and additional skills should be acquired in orchestration and observability only once the foundations are strong. But even before starting to learn Docker, the operational staff should already be very familiar with Linux, Networking, Storage (shared storage especially), and how these all play their part. We often see operators leaping straight into Kubernetes without even a hint of foundational knowledge in Docker. This is dangerous.
So, if you are on the Containerization journey, have you made the required organizational changes to support it entirely, or are you sitting on a ticking time bomb waiting for your first event?
COMMENTS