Technology experts have been praising Kubernetes and its business benefits for some time now. The technology is open by default and, as a result, gives organizations the ability to containerize their applications in a wide variety of scenarios – an essential capability for the growing number of companies running their infrastructure in the cloud.
But it isn't only technology experts who are starting to see the value of Kubernetes: Gartner estimates that 70% of global organizations will be running more than two containerized applications by 2023. With applications running in containers, organizations come to realize the benefits of easier configuration, faster deployment and more efficient, reliable software.
It is Kubernetes' unique ability to scale and manage containerized applications, however, that makes it the best choice over virtual machines and other provisioning software for increasing efficiency and adding business value.
Inside the solution
Kubernetes has a track record of delivering on its potential for businesses. A recent VMware study shows that 95% of respondents saw benefits from Kubernetes, including 56% who saw better resource utilization, which means lower compute costs in private or public clouds. Another 33% of respondents said Kubernetes delivers lower public cloud costs because it is more agile than other alternatives on the market.
Virtual machines (VMs), for example, consume a lot of system resources, with copies of the software they provision plus a guest operating system. And VMs are relatively static, which makes them hard to move between on-premises servers, private clouds or the public cloud.
A containerized software application, on the other hand, runs on an external operating system, eliminating the compute resources needed to run multiple guest operating systems. A container also has core tooling to manage how applications use server resources, which, together with the fact that there are no longer multiple operating systems to manage, reduces the application's administrative overhead.
Containerized applications on Kubernetes start faster than those on a virtual machine – milliseconds instead of minutes – which is significant in terms of user engagement and time efficiency. In addition, its ability to scale quickly gives Kubernetes a competitive edge, as Product specialists look for agile software that can respond to unpredictable market demands.
That said, on-premises deployments still have their place in organizations, which need to be able to move between the public cloud, a private cloud or on-premises, as well as handle peak demand. Applications built with Kubernetes make the whole process easier.
Kubernetes can help orchestrate containers across many types of environments, including software hosted in a vendor's cloud or even a hybrid environment. This lets companies shed the overhead of deployment complexity. Functions that are better kept closed due to regulatory requirements can run on-premises or wherever is most practical for the customer. Thanks to Kubernetes, different parts of the application can run on separate servers – on-premises, private cloud, public cloud – depending on what makes the most sense for the end user.
Support for the 9 pillars of Site Reliability Engineering (SRE)
The DevOps Institute SRE blueprint identifies 9 pillars of good Product Engineering practice.
Here is what they mean:
Leadership and Culture
This refers to the human aspects of pursuing reliable services as they scale, shifting the “production wisdom” mindset from Operations into development, along with the relentless pursuit of continuous improvement. SRE practices foster a culture of continuous improvement of the services and systems that support production, to ensure services remain reliable as they scale over time. Kubernetes capabilities support this culture of transformation and motivate stakeholders of all kinds.
Kubernetes helps business leaders enable their organizations – whose success increasingly depends on the ability to deliver digital services and software quickly – to reach the next level of performance, ship new software and innovative features faster, and run multi-cloud operations for greater agility and resilience.
Self-service infrastructure enabled by containers and Kubernetes lets teams access the resources they need, when they need them. The result is more productive, happier teams, with fewer blockers and faster velocity to deploy, collaborate, get feedback and restore services when needed.
Work sharing
This refers to the practice of paying down technical debt in small increments and managing workload percentages for Ops, Dev and emergency work. SREs work deliberately and proactively to educate and bring operational viewpoints and requirements into the knowledge and activities of the service development team. “Production wisdom” calls for better system design and behavior.
To achieve this, SREs spend a considerable amount of their time (say, 50%) on operations-related work such as troubleshooting, while the other 50% goes to development tasks such as building new features, scaling or automation. Kubernetes' ability to spin up multiple container instances with different scaling policies makes it a great fit for DevOps CI/CD jobs and activities. For example, a container instance can include build and test capabilities, in addition to applications, to create on-demand clusters on a container-capable CI worker node.
Measurement
This refers to the practices of using Observability, Monitoring, Telemetry and instrumentation to measure application performance. Modern enterprise applications require many microservices distributed across multiple nodes to communicate with each other. A single point of failure can disrupt the whole process; pinpointing the source of the failure, however, can be quite difficult.
Monitoring Kubernetes is easier when containers expose monitoring data. Cloud-native applications are built with health-reporting metrics so the platform can manage lifecycle events if an instance isn't working properly.
They produce (and expose for export) rich telemetry data to alert operators to problems and let them make well-informed decisions.
Kubernetes supports liveness probes that make it easy to determine the state of an application in a container. It's also worth remembering that Kubernetes integrates well with monitoring tools such as Prometheus and Grafana to build a Kubernetes monitoring dashboard.
SLOs and SLIs x Error Budgets
This refers to the practices of using Service Level Objectives (SLOs) and Service Level Indicators (SLIs) to measure availability, latency and response time, together with error budgets to manage service reliability. Application-level monitoring is recommended for SLOs, because it ties more directly to what matters to the customer than system-level monitoring does.
In complex environments, with services that depend on the reliability of many containerized microservices, SLOs and SLIs depend on a clear understanding of the elements that contribute to the measurements. Kubernetes provides a consistent description of large-scale container deployments, which enables a structured architecture for injecting SLIs across all kinds of deployment platforms.
Toil reduction
This refers to the practice of reducing toil by applying the right tooling and automation. Kubernetes eliminates much of the manual provisioning and other tasks from a company's IT operations. In addition, the unified, automated orchestration approaches offered by Kubernetes simplify multi-cloud management, allowing more services to be delivered with less work and fewer errors.
The portability of application management and orchestration across private and public cloud platforms and operating system versions lets developers and DevOps teams build applications and pipelines without worrying about the underlying infrastructure and the operating systems the applications need to run on.
Performance management
This refers to practices for application performance monitoring, capacity testing and autoscaling. Kubernetes can easily scale infrastructure and worker node configurations to match the varying demands of different integration levels, as well as test workload demands. Infrastructure resources are pooled and can be consumed and released elastically, enabling seamless scaling and higher resource utilization.
Incident Management
This refers to emergency response practices and managing on-call workloads for SREs (for example, 25%). Kubernetes supports this SRE pillar with capabilities to create, validate and manage clusters from a single-user terminal. Remote visibility, health checks and pod and cluster alerts help with on-call support. SREs can upgrade the Kubernetes stack along with the different frameworks used in the configuration, and apply patches to clusters.
Anti-fragility
This refers to practices for improving Resilience through chaos engineering, security and automation. Complex applications running on complex distributed infrastructure can be hard to maintain and secure. Cloud-native tools such as Kubernetes provide more insight into what's happening inside an application, making it easier to identify and fix problems and “put out fires”, whatever they may be.
Kubernetes will restart pods that are unhealthy. The enhanced orchestration controls provided in deployment and in containerized applications benefit from immutable consistency and improved response times. Kubernetes Secrets objects also provide a secure way to store sensitive data. Kubernetes enables modular distributed services with better scaling and failure recovery.
Based on information from Container Journal
If you're evaluating a migration to Kubernetes, or have already migrated and still can't see what's happening inside the cluster, the Elven team can help you build the observability layer before the first incident sends you the bill.
Observability in Kubernetes
A cluster hides failure by design: if a pod dies, another one comes up in its place and the service keeps responding. That's resilience, but it's also blindness. Without correlated metrics, logs and traces, the team finds out about the problem from the cloud bill or a customer complaint, not from an alert.
Want to see what's happening inside your cluster? Talk to the Elven team.
