Devops in the cloud is all the rage. Take the speed and always-improving processes and toolchains of devops, add hugely scalable and self-configuring public cloud endpoints, and the end result is pretty much zero latency between the need to build or change applications and deploying them into production.
It’s a formula for huge business advantages. Introduce containers and container orchestration, and you have even more opportunities to abstract cloud native features and make applications that are highly distributed and innately portable.
Some of us have been mixing devops, containers, and the cloud for a few years now. What have we learned? Here are a few things I can relate:
First, you’ll need new tools for your devops tool chain. While all DevOps tools claim compatibility with containers, and with container-enabled application lifecycles, I’m finding that it typically requires a different set of tools. The use of a variety of different tools complicates devops, but there is really no choice considering that you’re leveraging a different enabling technology anyway. You’re looking for best of breed.
Second, focus on performance testing. Poorly designed container-based applications don’t perform well. Indeed, performance is the number one thing that I look for when assessing container application quality.
Poor performance is typically a result of poorly distributed containers, where different processing patterns are put into a single container. Containers are designed to be distributed. Many users make the mistake of stuffing too much functionality into too few containers. Even if you’re leveraging container orchestration, the problem does not go away.
This really goes to the need for good container application design and architecture. I’m not finding any application architects that are enlightened as to the proper procedures and best practices for container application design, whether for container enablement or net new applications. It’s a callout for better training, perhaps.
Finally, choose your public cloud endpoints carefully. Here is the deal. Just because your preferred public cloud provider supports container application production, and container orchestration, that doesn’t mean it’s also the right platform to deploy to.
We’re moving to multicloud for a reason. We’re looking for best-of-breed cloud services among many cloud computing providers. Containers are no different. While it’s easiest to leverage the cloud provider you know, another platform may be much better. So, keep your mind open.
Containers, devops, and cloud computing are really where the action is these days. However, we have a lot to learn. Watch this space for more advice, as I see more mistakes.