Containers in the cloud enhance portability making it easier or so they would like you to think. There is another side to this story. It takes some specific knowledge of the processes and the underlying technology that makes cloud-to-cloud migration using containers a lower-effort and lower-risk endeavor. Because the required skills and best practices aren’t as available as they should be, organizations have struggled to catch up.
What Is a Container and How do They Work
Containers break up applications into smaller packages of code. Each is bundled with all the basic system software that apps need to operate independently of whichever server is playing the role of host. The portability of moving code and applications independently is the big selling point of containers. Containers eliminate the need for programmers to rewrite the code for each new operating system and cloud platform. Containers allow those applications to scale, as well as set
Sounds great right? Absolutely, but even with all the upsides, there are a few downsides you need to consider. There are some limitations and impediments to using containers in the public and private clouds.
Container Security Boundaries and Risks
Containers inherently come with security limitations. Many security admins inside of an enterprise don’t understand all the details and risks of containers so it is important to ensure your IT personnel that will work with containers understand them fully before you implement this technology. Although there have not been any major container security breaches, hackers are becoming smarter and more knowledgeable about using containers, and these sorts of attacks will increase. With increased desire and need for easier portability using containers, we could also be making our containerized applications more vulnerable.
Containers or VMs?
When thinking of portability, you should consider containers, but also think about the differences beween using containers or using VMs. Virtual Machines are self-contained. Each VM has a unique operating system (OS), drivers, and application components. You can migrate VMs to any other system, as long as there is a compatible hypervisor available. Unlike Vms, containers are very different. They run on top of the physical OS, and they share much of the underlying OS kernel, along with many libraries and binaries. This means they are more tightly
Containers Can Be Messy
Moving containers to the cloud can create a mess. Because containers can be launched very quickly they can consume more cloud resources than necessary without your IT personnel understanding why that is happening. One thing you can do to avoid creating this problem is to have an orderly shutdown of containers you are no longer using. Often, developers launch container-based applications and then forget to go back later to scale the number of containers, locking the resources until they do.
Paving The Way
The path to cloud portability will be paved by containers. Even so, one must remember that containers are no panacea for cloud portability. There are limitations when it comes to security, application types, and deployment. Most public and private cloud providers are container friendly. With each release of cloud services, cloud developers have more reasons to leverage containers for portable application development in the cloud.
The question for containers is not whether or not to utilize them but rather how to best make use of the technology. Many use containers for portability and to protect themselves against cloud computing vendor lock-in. The important thing to understand is that learning about how to use containers most effectively takes time and effort, but as long as you commit to providing that education you will be successful with this technology.