Plugin

Advertisement

Kubernetes pain? Platform engineering can help | Jobs Vox

[ad_1]

Let’s paint a picture of developers in a modern Cloud Native setup: The tooling landscape is growing rapidly, both in terms of volume and complexity. Engineering setups in organizations often demand that developers have an end-to-end understanding of not only Kubernetes, but also infrastructure provisioning, deployment pipelines, and configuration management. Over the past 10 years, developers have become responsible for an increasing portion of the software delivery process.

All these shifts have created cognitive load for developers. And, as many developers are now sharing TwitterOn Reddit and at conferences, this cognitive load is interfering with their ability to execute their most important task: shipping features.

Inspired by Daniel Bryant at PlatformCon 2022

Kubernetes for developers is a brick in this wall of complexity. Thus, in this article, we’ll address the specific problems organizations face with Kubernetes and how they fit with DevOps adoption into the larger problems that platform engineering seeks to solve.

mismanaged expectations

A lot of Kubernetes’ pain is the result of misplaced expectations. Some organizations expect that Kubernetes will be easy to use and maintain, save the organization money, and is cloud vendor agnostic. What they fail to realize is that in order to realize the potential benefits, they still need prerequisite functional systems and security expertise previously held by many people with different career paths.

Without robust configuration management, appropriate documentation, and mature integration with CI/CD systems, Kubernetes (or any other technology) becomes very difficult to implement. You have to get the technical implementation details right first.

Platform engineering is not a magic wand that will make this fundamental need go away. However, the product approach required to build your platform can help illuminate areas where your organization isn’t quite ready to support Kubernetes.

If you haven’t adopted Kubernetes yet, conducting user research and establishing a strong feedback loop can help set more realistic expectations for what Kubernetes will do for your organization.

lack of developer trust

In some DevOps setups, developers lack the confidence to get their hands dirty. They fear things will break every time they touch Kubernetes-related parts of their delivery setup.

But if you don’t want to slow down you need to get the right self-service for Kubernetes setup. Developer self-service means engineers can self-provision and consume the technology they need to test, secure, and deploy their apps and services, waiting for ops to provide them with resources or spin environments Without doing This does not mean that developers need to master their entire toolchain.

Internal developer platforms provide levels of abstraction that reduce the level of Kubernetes expertise developers need to get the job done. Similarly, enabling developer self-service does not mean that any developer should be able to affect the production infrastructure. In fact, well-designed platforms allow developers to spend less time messing with the infrastructure and more time shipping features.

When it comes to repetitive tasks, such as spinning up new features or previewing environments, enabling developer self-service is essential to saving teams time and resources. Without it, organizations risk creating more bottlenecks and key person dependencies, which slow their lead times, deployment frequency and time to market for new features and innovation cycles.

In Humanitek’s 2022 Kubernetes benchmarking study, we found that teams with strong performance in Dora metrics also enabled developer self-service. In 73.4% of these teams, developers can self-serve the Kubernetes namespace for feature and preview environments.

New namespace for feature or preview environment

In addition, developers are able to deploy to high-performing 89.1% teams independently and on demand for development or staging. This is true for only 32.9% of the low performing organizations. In addition, nearly a third of low performers reported that, even though everyone in their organization could in theory deploy their own Kubernetes clusters, the fear of making mistakes keeps many from following through.

In these setups, lead time increases and deployment frequency decreases. These teams need to be able to deploy with confidence. Internal developers can provide the platform support that developers need to feel more confident interacting with Kubernetes (and the guardrails that make Ops feel more confident as well).

One size does not fit all

The rise of platform engineering reflects a degree of breakdown in the relationship between dev and ops, a breakdown that is caused by organizations copying and pasting a one-size-fits-all approach to DevOps throughout their organization. In DevOps Topology, Matthew Skelton and Manuel Pais outline a handful of antipatterns that many organizations encounter when trying to implement DevOps.

An antipattern arises when organizations decide they no longer need dedicated ops roles. They unknowingly delegate these tasks to experienced developers. This misallocates some of the organization’s most valuable resources and creates more inefficiencies that DevOps was introduced to solve. Humanitec’s 2021 DevOps Benchmarking Study found that in 44.9% of cases, senior developers take on operations roles to help less experienced developers.

This so-called “shadow operations” model creates all kinds of inefficiencies. Clearly, many organizations are struggling to implement DevOps principles in a way that best suits their teams and existing resources.

Platform engineering avoids this pitfall by adopting a product approach. For the internal developer platform, the developers are the customers. Platform teams gain a holistic understanding of their developers’ needs by conducting user research and soliciting regular feedback. This line of communication is how platform teams decide which features to build first and which aspects of the platform they need to iterate on.

A product approach also requires understanding the various stakeholder groups and marketing the platform to them. This ensures that the platform does not fail due to lack of adoption or support from the authorities. Done correctly, a product approach should reveal where developers are struggling with Kubernetes and what kind of abstractions are needed to be successful.

Internal developer platforms can also ease the tension between dev and ops when it comes to Kubernetes. The platform replaces much, though not necessarily all, of the ad hoc work that a DevOps engineer does. Those people have the opportunity to transition into platform engineering roles and translate their expertise into a better developer experience across the organization.

Developers can spend more time coding and less time with infrastructure and other ops tasks. Ops can move upstream to handle more critical tasks such as networking or managing physical hardware. Alternatively, they can also become Platform Engineers. Overall, the internal developer platform enables Dev and Ops to focus on their core responsibilities and the strengths of their jobs. and DevOps engineers to have a wider impact across the entire organization.

conclusion

Platform engineering is not a silver bullet when it comes to Kubernetes growing pains. However, platform engineering embeds it into practices and approaches that can help organizations avoid or mitigate the challenges that often arise.

Want to dive deeper into platform engineering? To learn more, download the 2022 State of Platform Engineering report.

Group Made with Sketch.



[ad_2]

Source link

Implement tags. Simulate a mobile device using Chrome Dev Tools Device Mode. Scroll page to activate.

x