Cloud Native ComputingContributory BlogsDevelopersDevOps

Six Challenges Enterprises Experience Using Kubernetes on the Public Cloud

0

Many enterprises are leveraging cloud services for Kubernetes to rapidly build and deploy applications. Cloud Kubernetes services offer numerous benefits for an organization: they are easy to set-up and use, they provide basic management and support capabilities, and take care of your operational tasks. However, enterprises are hitting roadblocks when it comes to running Kubernetes in production at scale. Below are some of the common pain points enterprises may experience with a public cloud Kubernetes offering:

#1 Centralized observability and management

Imagine working on a task or project and not knowing that it was being worked on by six other people. Not only that, but it resulted in seven different ways of doing the same thing. It’s a waste of time and resources, and it’s not efficient. Unfortunately, this scenario happens more often than you’d expect when it comes to managing multiple Kubernetes clusters at scale.

As various parts of the organization require new Kubernetes clusters, it becomes increasingly difficult to know where they exist and how they are performing. One team may be building their stack on cloud provider “A,” while another team is building a stack on cloud provider “B.” Even on a single public cloud service, clusters may exist in different environments, without IT even being aware of these things.

Operators need to have centralized visibility of the organization’s entire stack. There might be dozens, even hundreds, of pieces that need to work together to form one business application. And when something fails, it’s usually at the intersection of all of these pieces. So it’s not only important to get all of that data from one centralized location, but to have a consistent way for managing and obtaining insights about your infrastructure. The challenge becomes how to ensure a unified experience, so that every time a new cluster is created, it’s being treated in the same standardized way and includes all of the requirements you need.

#2 Multi-tenancy

If your organization is juggling multiple Kubernetes clusters, chances are that multiple users and groups have access to these clusters from a range of devices and from multiple locations. However, when various teams are deploying broad sets of clusters at scale, you may have an uphill battle when it comes to resources sharing and identity and access management.

As teams expand their usage of Kubernetes, clusters will exist in different pockets each with differing policies, roles, and configurations in their usage. This variety makes it incredibly challenging to create standardization across identities and access to clusters. When there’s a lack of governance and access control, operators are unable to identify users, govern the usage of resources, and perform compliance checks. And this problem only grows in complexity as more users and groups on-board, off-board, change teams, and projects and clusters multiply.

What’s really key is having a strong observability solution so you can get all of the information you need in one centralized place.

#3 Application management

Standing up a production-ready environment requires deep domain expertise across the wide variety of cloud native technologies needed for Day 2 operations, such as logging, monitoring, or tracing components. Unfortunately, most cloud Kubernetes solutions don’t come with them out of the box and are very labor intensive to get up and running. As a result, teams spend more time and effort writing additional automation and selecting the tools needed to provide these capabilities, increasing the operational burden you were hoping to avoid.

To add to the complexity, when there is poor communication across teams, it can lead to inconsistencies across the application’s lifecycle. Teams may be running multiple clusters across several environments, which can make managing continuous deployments a headache for many businesses because there was a lack of visibility and management in place from the beginning. If software is deployed with inconsistent builds or versions, it can introduce performance and reliability issues, security risks, and “snowflake” implementations that only certain personnel know how to maintain. All of which leads to an ever-expanding list of IT responsibilities in scope and complexity. Teams will need to rethink how they work together so that deployments are as automated and consistent as possible.

#4 Granular cost visibility and management

Companies that are struggling with costs are usually dealing with cluster sprawl. Because they lack visibility and management of disparate clusters across the organization, they don’t have an understanding of their Kubernetes resource costs or overall spend. While cloud providers offer cost management tools, it’s important to have cost granularity in real-time using tools that have awareness of Kubernetes.  This deep awareness allows you to know what teams are using which services, how often they are using each service, which applications are costing how much, and where there are opportunities for optimization. Understanding the financial impact of cluster sprawl across the organization is exceptionally difficult, especially as more users and teams spin up new clusters and workloads in different environments. And getting costs down always starts with visibility.

#5 Centralized governance and policies

When cluster sprawl is left unchecked, it can introduce all kinds of complexities around visibility, management, and security. If you’re not creating public policies that govern the usage of Kubernetes by team, product, or environment, you are in for a long, hard road. How can you give developers flexibility, while enforcing the standards that you need to? How do you make sure clusters follow a certain blueprint that has the right access control rules? How do you ensure sensitive information like credentials are distributed in the right way? How do you ensure the right versions of software or workloads are available? And how do you ensure that applications are deployed in a consistent and repeatable manner? To do this effectively, organizations need an automated solution that can help them set the right policies between multiple clouds, or between multiple clusters running in the same environment.

#6 A complete and open single cloud platform

In every public cloud platform, there are native capabilities that allow you to do some basic management for Kubernetes, such as patching, updates, and node provisioning. They have the ability to create policies. They come with a set of services to build and deploy applications. And they also provide some flexibility to build your own Kubernetes distribution on top of it. While these capabilities can be beneficial, there’s often a gap between what enterprises expect from a platform and what’s available on their platform.

Each cloud platform has its own set of tools and capabilities to build, run, and operate Kubernetes. So if you’re using EKS, the tools, services, and interfaces you’re using are specific to EKS. So if you’re using a hybrid cloud or multi-cloud approach for Kubernetes, you’ll have an entirely different set of tools, services, and interfaces on top of that to work across your global environment. Enterprises require a flexible solution that aligns with upstream and open source Kubernetes so they can integrate with additional open source projects across the ecosystem without lock-in. In addition, they will need the speed that the cloud offers with the flexibility to deploy anywhere.

Being able to unify Kubernetes on a single platform gives you the ability to onboard, manage, and operate multiple cloud clusters, cloud native applications, and high value workloads with Day 2 consistency, regardless of cloud provider. You’d also be able to bridge the gap between where these clusters and workloads live and where environment-specific management tools fall short. You’d also be able to better understand the expectations for using Kubernetes in the enterprise, such as having advanced security, monitoring and logging natively within each service, cross-cluster observability, and suggested policies so you don’t have to create them each time from scratch.

As noted above, many enterprises are leveraging cloud services for Kubernetes to rapidly build and deploy applications. Beyond the critical capabilities, enterprises need consistency across the different stages from development to production and full lifecycle management. Cloud Kubernetes services offer numerous benefits for an organization but, like most things in life, also come with their own complications. As enterprises hit roadblocks when running Kubernetes in production at scale, they should look to unify both tools to deliver standardization and management of Kubernetes across any infrastructure. To keep up with the continued innovation of the open source and cloud native market, enterprises need a cloud Kubernetes service that offers tremendous flexibility to operate now and in the future.

Join the cloud native community at KubeCon + CloudNativeCon Europe 2021 – Virtual from May 4-7 to further the education and advancement of cloud native computing.