Containers, as a concept, is not new technology. However, in recent years, there has been rapid adoption of new container-based technologies such as Docker, Garden, and Rocket. Many organizations regard containers as a key enabler for adopting technologies such as microservices-based architectures or continuous delivery pipelines. Therefore, containers have become a critical part of the digital transformation strategy of most companies.
Some companies I work with establish a mandate to adopt containers but cannot articulate a specific use case or problem that would be solved by adopting containers. Others believe containers will help them deploy apps quicker but cannot explain why, or they believe containers will provide better utilization but have not profiled their existing infrastructure utilization. The use of container technology absolutely can provide significant benefits. It is essential to understand how those benefits are achieved in such a way as to derive the most from container technology.
Like the term “platform,” the term container is also overloaded. This chapter is not about traditional app server containers such as Tomcat; it is about OS–level containers such as runC.
Despite their huge popularity, there still are a lot of misconceptions about containers. Principally, in the Linux world at least, containers are not a literal entity, they are a logical construct. Strictly ...