One of the most powerful ways companies can achieve their goal of becoming multi-cloud or cloud-agnostic with their applications is with Containers. By leveraging a common industry standard for packaging application code, organizations can quickly deploy, execute and update their application environments whether they may run, in the cloud or on-premise. Common standards mixed with quick code-based deployments across multiple clouds adds up to big wins for enterprises who want to leverage the cloud quickly and efficiently. However, container management and life-cycle is where most companies’ container plans hit the skids.
Container management can be broken down into two basic elements: file repository (where code is stored) and container orchestration (where code is run). Since most container architectures leverage the dockerfile format, you can pretty much leverage any common source-code repository for storing docker images, such as DockerHub, GitHub or BitBucket. Container orchestration, however, is where things get a little trickier.
Orchestration of containers includes deployment scheduling, container health monitoring, re-spawning, auto-scaling, networking and application upgrade coordination. Kubernetes (sometimes referred to “k8s” for short) has become the most commonly accepted open-source container orchestration platform in the market. But understanding and operating a Kubernetes infrastructure can be a difficult proposition, if not an impossible task, for most enterprises. Thankfully, there are multiple vendors who have taken the difficulty out of running containers by providing a managed orchestration platform, otherwise known as Containers-as-a-Service.
The two largest public cloud providers (Amazon AWS and Microsoft Azure) are trying to capitalize on the container-craze by offering their own Containers-as-a-Service solutions. But you’ll find that both AWS and Azure have several offerings with varying levels of orchestration, scalability and pricing. This can be confusing for organizations trying to decide which platform and offering will meet their needs. So I thought I would quickly compare the various container offerings from both AWS and Azure, as well as how they might fit into your company’s needs for containerization.
I created 4 categories to classify these offerings into:
- Category 1 – Entry-Level
- Quick and Easy to Manage, but limited on orchestration
- Category 2 – Hosted Kubernetes
- Hosted k8s control plane, with all of the Ups and only some of the Downs
- Usually some base understanding of Kubernetes is required to use the service
- Category 3 – Fully Managed
- An abstracted container runtime, complete with a managed infrastructure
- Category 4 – Managed Applications
- A hosted application fabric, run on containers, with no container experience or knowledge required
So, now that I’ve given you an introduction to what this series of blogs posts will cover, lets jump into Category 1 – Entry Level Containers-as-a-Service!