They may seem simple, but containers require a whole new architecture skill set. Here’s what you need to know. Credit: Ilze Lucero Gartner is predicting growing container adoption by 2023, believe it or not. Are you sitting down? Data from its survey shows a surge in containerization of applications (and data). The percentage of organizations that have containerized more than half of their applications increased from 23 percent to 29 percent. Also, the number of organizations that have containerized fewer than 10 percent of their apps fell from 32 percent to 21 percent. Containers are becoming systemic to cloud-based applications, and while it’s helpful to cite analysts’ surveys, all you need to do is to join a cloud development team to understand that containers are a popular way to do “cloud native” while also leveraging portability and scalability using container orchestration such as Kubernetes. The trouble with containers is not containers themselves or use of container orchestration, it’s the design patterns being used. Containers are at their essence complex, layered, distributed applications. Although you can certainly lift and shift an application to a container—which, simply put, serves as a platform—in most cases that buys you very little. You’re not leveraging what containers can do unless you design specifically for containers as an architecture as well as a platform. Here are some tips: First, learn to break containerized applications, either net new or existing, into pieces that are logically grouped around function. This does a few things. It allows you to place purpose-built code into a domain (such as database access), allowing for better troubleshooting and ops. It also means you can place that container in clusters that will provide the best performance for that container: tuned for better I/O performance, use of CPU, use of network, etc. Second, logically group for security. Security is often an afterthought when building containerized applications; in many development projects I’ve been involved with it’s added last. The reality is that complex and distributed applications (most container-based applications) are difficult to secure. Also, considering that containers are basically platforms running on a platform, good security becomes even more difficult. Again, put parts of the application that require specialized security and governance into their own domain, meaning a single container or managed cluster. Focus security only on the components of the application that need it. The application will perform better overall and security operations will be much easier and more effective. Of course, there are a ton more architecture patterns to understand and use. Your choice depends on your applications, data, and the overall purpose of the system. That said, a little architectural forethought will make those systems much better. Related content analysis Strategies to navigate the pitfalls of cloud costs Cloud providers waste a lot of their customers’ cloud dollars, but enterprises can take action. By David Linthicum Nov 15, 2024 6 mins Cloud Architecture Cloud Management Cloud Computing analysis Understanding Hyperlight, Microsoft’s minimal VM manager Microsoft is making its Rust-based, functions-focused VM tool available on Azure at last, ready to help event-driven applications at scale. By Simon Bisson Nov 14, 2024 8 mins Microsoft Azure Rust Serverless Computing how-to Docker tutorial: Get started with Docker volumes Learn the ins, outs, and limits of Docker's native technology for integrating containers with local file systems. By Serdar Yegulalp Nov 13, 2024 8 mins Devops Cloud Computing Software Development news Red Hat OpenShift AI unveils model registry, data drift detection Cloud-based AI and machine learning platform also adds support for Nvidia NIM, AMD GPUs, the vLLM runtime for KServe, KServe Modelcars, and LoRA fine-tuning. By Paul Krill Nov 12, 2024 3 mins Generative AI PaaS Artificial Intelligence Resources Videos