Save to My DOJO
This post continues our series on The Definitive Guide to Containers for MSPs. In part 1 of this series we talked about the concept of containers, what they are, and some examples of what they can be used for. In today’s post, we’re going to be talking about the various platforms that containers can run on, and where/when you should consider running your containers on a particular platform. For platforms we’ll be covering:
As you can see there are several available platforms for containers and all have their uses and pros/cons. Which one is best for you? Read on to find out!
Microsoft has invested heavily in the container ecosystem with its partnership with Docker. As you’ll see in this article you can now run containers on multiple platforms in the Microsoft ecosystem. Docker is the driving force behind this. In the case of Windows 10 docker gets installed and you interact with it via the CLI using docker commands as shown in the image above. While you wouldn’t want to run production workloads in containers on Windows 10, it’s a great way to learn and it’s a great place to build and test containers that you’re going to be hosting on other more “permanent” platforms. When you’re building a new container, this is likely where you’ll start.
You can download Docker for Windows here
It’s very apparent these days if you go to a tech conference or walk through an IT department that not everyone runs windows. Mac OS is a very popular alternative these days and as such people are using it for real IT work as well, and Docker is no exception. The nice thing about Docker is that it runs in many places. If you’re running Mac OS and you’re still in the learning phase with containers or need to build/prep/test a container for production use, Docker on Mac OS is more than capable.
You can Download Docker for Mac OS here
Now we’re getting into production territory. Once you’ve figured out how to use containers, and build production containers, you’ll likely move them to a production computing platform such as Windows Server. Windows Server has had container support since Windows Server 2016, and Microsoft has added support for more use-cases and Linux containers in Windows Server 2019. Once again, Docker is the container engine that runs under the hood and as such any docker container, you prep on your Windows or Mac machine will work on Windows Server. The benefit of running the container here is that you have a robust, secure platform requiring few patches (assuming you’re using server core), and you gain access to all the other infrastructure features that Windows Server provides. Additionally, it was announced at Microsoft Ignite that Kubernetes has recently announced that Windows Server Container support is now in Beta.
We’ll be covering Kubernetes in a future segment, but once you start running containers at scale, you’ll need the assistance of a container orchestrator such as Kubernetes, so this is a big deal for admins running containers on Windows Server.
Containers aren’t restricted to Windows platforms as you’ve seen thus far. In fact, containers largely started in open source. The Linux community has a VERY large container following and it actively works on the development of containers via various “community-edition” platforms and assistance. As you can see in the image, containers are quite easy to launch and consume on Linux. The other unique thing about Containers on Linux is that the platform is suitable for learning, and Dev/Test, as well as acting as a platform for hosting production container workloads as well. Additionally, Kubernetes plugs in nicely to most open source container deployments so management at scale will never be an issue. While you’ll want to stick to the mainstream distributions such as RHEL, SLES, and Ubuntu for production use, Linux is a solid platform for your container needs and should be considered, especially if you have Linux expertise in-house.
You’ve heard mention in this article several times that containers run anywhere, and we do mean ANYWHERE. Not only can containers run on-premises or in VMs, but they can also run natively on many public cloud platforms today. The first one we’re going to talk about is Microsoft Azure. Microsoft has not only invested in hosting containers with Windows 10 and Windows Server, but they’ve also baked features into Azure that allows you to host containers without having to worry about the underlying server fabric. Just choose your container, run it, and away you go. The route is highly beneficial when you just want to focus on running an application and not be bogged down with the plumbing underneath. For connectivity, you are given the option of defining an external IP Address, firewall rules, and DNS name for the container so you can reach it remotely. As for pricing, you only pay for the container when it is actively running.
If you want more information on Azure Container Instances, you can find more information here.
Microsoft isn’t the only major cloud player building container options in the public cloud. Amazon has been investing in this space as well. Deploying containers in AWS is done via the AWS Elastic Container Service, which can be deployed in 2 pricing models. The first model you define an EC2 instance and you are billed based on that instance. The more recent pricing model is the Fargate launch type model, which like Azure, is a pay as you go model. You only pay for the memory and CPU resources that are consumed in serving up your container image. We’ll be covering containers in AWS in a future segment.
You can find more information on ECS here.
Not to be left out of ANY technology discussion is Google. Google Cloud has been the quiet cloud giant that has been silently gaining market share. When it comes to containers Google may have something of an advantage. Google, as an organization, is one of the largest contributors to open source containerization projects in the world. With that said, it’s not a stretch to say they REALLY know how containers work and have a clear vision of where they fit and what they want them to be used for. With that said, Google has added container hosting services to their cloud platform, mainly through the deployment of a Kubernetes cluster. This makes Google Cloud more enticing for deployments that are going to start on the larger end. You can still host single container instances, you just need to do so within a compute instance from looks of things at the time of this writing. This makes the pricing a bit more complex, but as you up your container game, you may eventually find yourself in Google’s cloud.
While there are certainly a few other platforms you could use such as Oracle’s cloud, we felt that it was important to focus on some of the more mature platforms available today. In future segments of this series be sure to keep an eye out on more technical how-tos for running containers on each of these platforms.
What about you? Have you investigated any of these platforms for container services? Which ones did you like? Which ones didn’t you like? Be sure to let us know in the comments section below!
Not a DOJO Member yet?
Join thousands of other IT pros and receive a weekly roundup email with the latest content & updates!