Container Hosting and Management - On-Prem, Cloud or Both?
One of the most common questions we hear from clients who are attempting to build out their containerization roadmap is “What solution should I use and where should it be?”.
There’s a really good reason this is a common question – even though the marketplace has solidified over the past several years, there are still a lot of choices and options available. While this blog post is not meant to be an exhaustive analysis of the technology and hosting choices available, I will try to lay out a basic framework for starting the discussion in your organization.
There are a few questions we always ask right off the bat:
What type of applications do you plan to containerize? This is important for one main reason – until very recently (Kubernetes 1.14 went stable with windows container support in March, 2019), if you wanted to run Windows applications in native windows containers, your only real option was using Swarm for orchestration, which meant building your own Docker CE or Docker EE cluster either in house or in the cloud. While this distinction may become less important going forward, it’s important to note that Docker Inc has a very strong relationship with Microsoft and is well integrated in their Server 2019 product-set. On the flip side, if all of your applications run in Linux right now, your choices are wide open – so onto question 2…
What does your current technology stack look like? Making the move to an entirely new technology for running your business-critical applications is a big move on its own. Do you really want to add the need to learn an entirely different underlying technology stack to the mix? In fairness, if this is a “greenfield” effort, and you have the existing engineering talent to support a wholesale change, or your current stack is old technology, then this might be the right path. If any of those things are not true, consider building your cluster on top of what you already know or engaging a company like BoxBoat to help with the engineering work.
Where does your data live? As a general rule of thumb, it’s usually easier to host your workloads somewhere that makes getting to your organizations data a low latency and easily configured affair. If your data is all in house and you’re using a cloud-based container hosting/management solution (particularly without express-route /direct-connect), you may encounter or introduce undesirable engineering, development, or operational challenges.
What are your scaling requirements? Are you hosting public facing apps or websites that are subject to highly variable spikes in use? If so, consider the public cloud providers ability to scale quickly (at a cost). “Building the Church for Christmas” in your own data center can be expensive.
With the answers to those questions in mind, there are a couple of broad options for managing and hosting containerized applications:
In-House or Hybrid
Commercial “packaged” Enterprise Container Platforms (ECP) like Docker Enterprise Edition, RedHat OpenShift, VMware PKS, Rancher, etc can be deployed in-house, in the cloud or both, and offer a “single pane of glass” management solution across all of your clusters.
“Roll your own” - it’s completely possible to build your own CaaS solution using open source software, and many organizations do. However, be prepared to provide your own support and engineering or have a partnership with a company like BoxBoat for support if you go this route.
Deploy a traditional stack similar to option #1 but just in the cloud with all of the same pros and cons.
Use one of the cloud providers managed Kubernetes services like Amazon EKS, Microsoft AKS or Google GKE. These can be attractive options if you are a cloud-first organization, desire flexibility, and have a development or DevOps culture that can take advantage of the full suite of tools offered by the “Big Three”
A “hybrid of hybrids”
- it’s now theoretically possible to manage both your in-house clusters, your cloud based traditional clusters, and your cloud based managed clusters from one interface, but it’s something you should pilot and be very comfortable with before deciding on this model for your production environment.
Finally, keep in mind that your Enterprise Container Platform is just one part of your overall DevOps tool and process ecosystem. You need to make sure you consider your automation, CM and provisioning, CI/CD tooling, etc. when designing your future environment. And of course, BoxBoat is always available to help. Just click on the button below.
Contact BoxBoat today to get started with your container journey.
BoxBoat Technologies is an authorized CNCF Kubernetes Solutions Partner, Microsoft Azure Partner, and Docker Premier Partner. BoxBoat offers services to accelerate enterprise adoption of modern DevOps tool chains, container technologies, and cloud solutions.