Turbonomic

 View Only

Kubernetes Management: It’s All About the Application

By Dina Henderson posted Tue October 19, 2021 08:51 AM

  
[Originally posted on Turbonomic]

We hear this time and time again, but we’ll say it again here: Applications are the lifeblood of today’s business. The ecosystem of cloud native tools and solutions growing around Kubernetes management are all about building, running, and scaling modern container-based applications. And the Cloud Native Computing Foundation (CNCF) landscape is a testament to strength of the community as well as the growing complexity customers face.

It can also be overwhelming navigating this interactive map, let alone the tools themselves. So, with this blog we thought we’d provide a bit of a guide to what you’re looking at—and ultimately, what needs to be considered when you’re running mission-critical applications on Kubernetes. The categories we will be expanding on are...

  • Platform
  • Runtime
  • Orchestration and Management
  • Application Definition and Development
  • Provisioning
  • And Observability and Analysis

Platform

The platform layer of the CNCF landscape is the fundamental software and operating system on which containerized applications are run. This layer is the one stop shop for all the capabilities needed to manage these applications.

In this layer, you’ll find platforms categorized into four groups:

  • Certified Kubernetes – Distribution is the original, open-source code that can be modified to include additional features the specific market requires.
  • Certified Kubernetes – Hosted is like distribution, expect it is run by a provider on their infrastructure or your own infrastructure.
  • Certified Kubernetes – Installer automates launching and configuring Kubernetes.
  • PaaS/Container Service is like hosted, expect it encompasses a wide set of application development tools.


Runtime

Runtime is one of the more ambiguous categories in the CNCF landscape as there is no strict definition of runtime in IT, but in the context of cloud native applications, runtime refers to the tools and components a containerized application needs to run.

In this category, you’ll find:

  • Cloud Native Storage provides virtualized, shared, resilient storage.
  • Container Runtime simply put, runs and manages containers/container images.
  • Cloud Native Network is the network where nodes communicate and where node network resources are scaled and allocated.

Runtime is effectively the oxygen services need to run the environment. Then it is up to the next layer for ongoing operational management tools


Orchestration & Management

Orchestration and management is about ensuring that cloud native applications are being managed to achieve that performance and elasticity for which they were designed. Cloud native applications are architected to be intrinsically resilient, but you need additional tools and services to scale the containers, schedule them across clusters, and manage their health. Most notable here is Kubernetes, the container platform that is used by the majority of organizations.

In this category, you’ll find:

  • Scheduling and Orchestrion is a technique to manage clusters of containers.
  • Coordination and Service Discovery allows application components to discover and interact with one another.
  • Remote Procedure Call gives one container the ability to accomplish an action on another container located in a completely different node.
  • Service Proxy is an intermediary that handles communication between services.
  • API Gateway is the portal in which all API calls come through for external applications.
  • Service Mesh like an API gateway allows application communication, but for internal service-to-service communication.

It may go without saying that Kubernetes has won the container scheduling battle, but there are still alternatives in the market today. This opens up the need for some interoperability and to support our existing applications where they sit today adjacent to our cloud native workloads.


Application Definition and Development

The application definition and development category showcases the technologies and tools application developers need to build applications. These tools will allow developers to create reliable and scalable applications—and let’s not forget, reliable, highly elastic applications are one of the key drivers behind cloud native adoption.

In this category, you’ll find:

  • Database is the organized collection of data such as information, texts, images, even media files.
  • Streaming & Messaging allows applications to communicate (send and receive) messages.
  • Application Definition & Image Build are all the resources required to build, manage and operate a containerized application.
  • Continuous Integration & Delivery automates the process of application deployment and allows for more frequent application turn over.

Since applications are at the heart of the business and the user experience, the number of tools and frameworks to build applications is significant.


Provisioning 

Provisioning refers to the specific tools and services that are essential to building the base of the containerized applications. These include managing standards, constraints, policies, and security of the application.

In this category, you’ll find:

  • Automation and Configuration helps engineers automate the infrastructure and deployment of applications.
  • Container Registry is a repository of container images that are stored by the application and can be retrieved at any time.
  • Security and Compliance helps secure the data of the application, and application itself.
  • Key Management tools encrypt the application to safeguard it from unauthorized users.

We did talk about oxygen services in the runtime category above which is the actual oxygen itself. Think of provisioning as the way that we build, deploy, and continuously operate those oxygen services. The need for automation at this layer is important to understand

Observability & Analysis

Observability and analysis tools enable teams to understand where and why anomalies are occurring within applications and/or the environment. While this category spans all layers of the application stack, it’s important to remember that even the most well architected applications, built for resiliency, will experience performance issues if they are not being resourced properly.

In this category, you’ll find:

  • Monitoring tells you when something is wrong within your environment, but generally not how to fix the problem or prevent it.
  • Logging is data (information about processes) collected and separated into event logs.
  • Tracing monitors the origin of user requests (relevant to service meshes).
  • Chaos Engineering is the practice of testing software in the early production stage to identify weaknesses and correct them before they become outages.

There is a reason that observability has become one of the more popular words among application and infrastructure teams alike. The need to be able to visualize and analyze these growingly complex environments is critical to successful operations at any scale.


Observability + Context + Automation = ARM

We’ve seen these platforms and tools at many different scales across many different environments. Cloud native architectures are increasingly in adoption as organizations aim to cut down on time to market, achieve elasticity in applications and the underlying platforms and infrastructure. Managing Kubernetes has gotten much easier with the plethora of tools and technologies available, but these monitoring tools do not have the ability to resource the business-critical cloud native applications.

Turbonomic is the only solution that has the ability to automatically resource your applications to assure performance. Turbonomic automatically understands the relationships across a Kubernetes environment, from the application to the containers/pods to the nodes, and down into the underlying infrastructure of the application stack. The analytics and decision engine will continuously determine and automate:

With Kubernetes and Turbonomic you can confidently assure performance of your cloud native applications for your customers/end users and achieve a truly elastic infrastructure and application future. Learn more about Managing Kubernetes at Scale.


#turbonomic
#architecture
#ARM
#Automation
#Kubernetes
#applicationmanagement
0 comments
13 views

Permalink