How to Evaluate Kubernetes Cloud Providers
Containers are a popular choice for cloud native development and deployment, thanks to their light weight, portability and scalability. There are several popular container and container management technologies for cloud computing, but for the next few minutes, let’s concentrate on what’s out there for Kubernetes.
Key Considerations for Evaluating Kubernetes Cloud Providers
An open source container orchestration tool, Kubernetes automates the deployment, scaling and management of containerized applications. This simplifies application management across different environments, both on-premises and in the cloud.
While it’s possible for an enterprise to manage and deploy its own Kubernetes infrastructure, it’s a challenging task. Most companies turn to cloud providers for a few common benefits — scalability, secure platforms, varying degrees of automation and high availability — but the offerings are not identical between providers. So how can you evaluate the Kubernetes cloud providers on the market to ensure a good fit?
There are some key needs common to any organization. You’ll want to evaluate vendors based on three tiers of importance:
- Cost and performance — Among the qualities that make Kubernetes a good fit for an organization, cost and performance are the most obvious. If the tool doesn’t function or if you can’t afford to run it, then nothing else is meaningful.
- Security, support and documentation, network configurations, automation and ecosystem integration — If these aspects are well thought out and implemented, then maintenance and resilience are far easier to control.
- Flexibility and portability — Although there are advantages to sticking to the pre-built ecosystem of a provider you’re already working with, that doesn’t mean you can’t use orchestration across providers. Most Kubernetes cloud providers know that selecting them won’t inspire you to rethink your entire cloud hosting; they’ll likely have significant capabilities for integration. So don’t feel that you have to get locked into one ecosystem or another. However, if your need for flexibility is especially high, the best fit might actually be a bare-metal solution.
Knowing what you’re looking for as far as solutions to those needs is critical before signing up with any vendor. This discussion over the next few sections about how to determine what you need is not exhaustive, but it can move you in the right direction.
A Solid Structure for Your Decision-Making Process
As you evaluate Kubernetes cloud providers, your team should follow a standard decision-making process, just as you might with any other procurement:
- Gathering requirements
- Anticipating future needs
- Coordinating across teams
- Conducting a trial or proof of concept
Settling on the best technical solution involves a lot more than simply evaluating the technical prowess of the tool. You’ve got work to do to understand your business operations too.
Who are the stakeholders in your company?
Technical stakeholders — This group is perhaps rather obvious, but what’s obvious can get neglected. So be sure to ask, who’s using Kubernetes? Who’s maintaining it? What do they need a cloud provider to help them achieve?
Purchasing stakeholders — While it’s true that the product must perform its function adequately for the developers and administrators, you can’t afford to forget the stakeholders who make budget decisions. What new financial commitments can your company handle and when? Does your organization already have business relationships with one or more cloud providers that could be leveraged for new services, features or tools?
What functionality does your container orchestration system currently need?
- Automation — Do maintenance administrators need strong automation to ease their workload?
- Access — Does the security team require detailed role-based access in order to give developers more freedom to deploy and test? Getting the right stakeholders in the room to provide requirements prevents choosing a cloud provider that cannot meet the need.
Anticipating Future Needs
When a company faces any significant financial investment, you can’t neglect thinking about the future. Yes, you have problems that need to be solved now, but what about next quarter? Next year? When you’re looking at your company’s horizon, consider:
- Scalability and automation — How will your company grow in the immediate and near future? How will your network change over the next few years? Examine the networking capabilities of the Kubernetes cloud provider in question, including support for load balancing, service discovery, and network security.
- Performance — What are you going to ask your application to do this quarter? Next quarter? Next year? A solid Kubernetes cloud provider can ensure that you’re diagnosing and conquering issues with throughput, availability and latency early in your pipeline.
- Provider updates — If your provider isn’t routinely maintaining their product, that doesn’t bode well for their longevity. You don’t want to get locked into a tool that’s not able to grow with you. So how quickly does the provider integrate with new or updated tools and services like storage, monitoring, and logging? How quickly do they update the security of their environment and the Kubernetes platform offering?
Coordinating Across Teams
Remember the stakeholders you identified when you gathered requirements? Bring them all to the table to achieve consensus on your proposed solution. Only this time, you’re not asking what they need — they must make a case for and prioritize their needs with everyone else’s.
Relevant parties across operations, development, security and risk must compromise and find a consensus they can all support.
Note that achieving consensus rarely allows any department to obtain all of its requirements. No cloud provider will be best across all these considerations for any enterprise. However, true consensus means that all parties are heard. When every party is heard, you can understand conflicting objectives and achieve a clearer picture of the overall enterprise objective.
That understanding will inform which Kubernetes cloud providers your organization should trial.
Conducting a Trial
The proof of concept is key to narrowing down your pool of vendors.
Of course, a technical evaluation is part of this POC and tests the vendors’ assertions about the Kubernetes orchestration ability. But that’s just the start. Your trial should also be designed to consider the needs of your administrators, developers and security teams.
- Does the automation work with your systems already in place?
- Can orchestration be scripted, or does it require walking through screens to configure?
- How is access control handled, and does it integrate with your (hopefully) well-constructed authorization and authentication scheme?
- Can the provider address your organization’s current problems? If you need to scale, have better logging, or upgrade performance, find out if this particular Kubernetes orchestration tool really makes the situation better.
Also, while you may not be able to test in production, you can and should deploy a small-scale Kubernetes cluster to test performance, scalability and key features.
Major Kubernetes Cloud Providers
With a roadmap in place for how to evaluate a cloud provider, let’s take a quick glance at some of the most popular solutions on the market today. If you’re not already heavily integrated with one of these vendors, this is a good place to start shopping.
Amazon Elastic Kubernetes Service (EKS)
AWS’s fully managed Amazon Elastic Kubernetes Service (EKS) is a heavy hitter in the lineup due in no small part to AWS’s massive ecosystem. If you’re already neck-deep in AWS, it makes sense to stick with their Kubernetes cloud provider. However, it’s a lot more manual than others in this list and setup takes some time, which is good if you’re looking for control, not so much if a high need is reducing staff workload.
Google Kubernetes Engine (GKE)
Google built Kubernetes back in 2015, so naturally, it has a fully managed Kubernetes service. The Google Cloud Platform offers Google Kubernetes Engine with arguably the most frills of any of the top providers. However, a lot of configurations are preset, so setup can be fairly quick and painless, and its automation features take on more of the grunt work of scaling than, say, EKS allows for.
Microsoft Azure has Azure Kubernetes Service (AKS), which along with DigitalOcean Kubernetes (DOKS) is one of the more cost-effective solutions, although calculating Kubernetes cost is hardly straightforward. Unsurprisingly, Azure is a default choice for a lot of larger enterprises. If the organization is already hosting on the Microsoft Azure cloud, then AKS is a natural integration. Additionally, many organizations prefer to continue managing authentication services through Azure Active Directory.
DigitalOcean Kubernetes (DOKS) may lack the bells and whistles of the larger players, particularly EKS and GKE, but that may be what you’re looking for. Decidedly more developer-friendly (and cheaper), DOKS isn’t necessarily trying to impress you with a plethora of features you may not even want. It also tends to update to the latest Kubernetes version quickly, which may or may not excite you.
DigitalOcean is known for tight integration with open source tools and maintains that rich repository even in its managed Kubernetes offering.
Consider Equinix Metal
If your developers and administrators are adept at managing containers, by far your most flexible cloud option is bare metal. If you’re searching for better control and performance, bare metal configurations generally allow for higher performance and lower latency than virtualized services. You’re not sharing resources with other users, you have more control over things like security and visualization, and your costs are usually straightforward, even if your system is prone to change.
Rather than a managed Kubernetes service, Equinix Metal provides global access to bare metal infrastructure. With full control over the underlying cloud information system, you can choose the operating system, the network settings and the security. You can automate your fundamental infrastructure according to what works perfectly for you while still enjoying Equinix’s relationships with top Kubernetes solutions.
Choosing your Kubernetes orchestration tool starts with knowing your organization’s pain points. Look across your company, who is lobbying for a Kubernetes cloud provider, and what are they trying to solve? What’s the cost-benefit of layering on another cloud tool? Questions like that can be overwhelming if they come at you all at once. Instead, break it down and take it step by step:
- Gather the requirement wishlists of your relevant stakeholders.
- Consider what your company will need in the future.
- Work across teams to prioritize the features your company needs as a whole.
- Put your competing solutions on trial.
If you take the time to follow a structured evaluation process, you’ll end up with a Kubernetes cloud solution that can fit smoothly into your established system.