Most developers despise everything other than coding: infrastructure management, creating and configuring repositories, maintaining CI/CD pipelines, and so on. They usually wish to focus on what they do best — building excellent code — and delegate the rest to someone else. So, guess what? Platform engineering is a solution to this problem. It’s a method of reducing the workload on developers so they can focus on delivering value to production. It’s also a technique to avoid some of the common problems of DevOps implementation.
What Is Platform Engineering?
Platform engineering is the process of creating toolchains and workflows that provide self-service capabilities to developers. This enables them to manage the full software development life cycle autonomously. These toolchains and workflows are referred to as a platform, with the Internal Developer Platform (IDP) at its heart. Said, an IDP is the technology and tools that a developer requires to execute their work. All of the configuration is abstracted away based on the needs of the particular developer. Creating and administering these platforms is often undertaken by a platform engineering team, which treats developers as internal customers and the platform as a product delivery mechanism. Platform engineering is now gaining popularity as an emerging discipline. AWS and Azure are developing services solely to enable platform engineering. Meanwhile, firms such as Accenture provide platform engineering as a service. It’s quickly gaining popularity.
Why The Hype Around Platform Engineering?
The origins of platform engineering may be traced back to the development of DevOps. DevOps truly took off fifteen years ago: organizations began to adopt it, IT experts and developers loved it, and new DevOps tooling emerged. The golden strategy would break through divisions between operations and developers, allowing organizations to launch software and solutions more quickly. What person wouldn’t desire that? DevOps delivers on this promise for many organizations. On the other hand, many others struggled to obtain the intended results, and their DevOps attempts failed. Why? Several ‘anti-patterns‘ (also known as ‘anti-types’) hinder the success of DevOps efforts. An anti-pattern is a common reaction to a repeated procedure that is particularly ineffective.
DevOps Failure: When Devs Get Lumped With Handling The Infrastructure
A lack of cohesiveness is a major anti-pattern for DevOps and a common reason for DevOps project failure. A small team within the organization (typically developers) is tasked with creating its own DevOps structures and workflows. This team is responsible for collecting the necessary tools and workflows to handle development and operations duties efficiently, becoming the focal point for putting the abstract concept of DevOps into a working framework. The result? DevOps rollouts that fail or could be more efficient, resulting in slower software or solution delivery. This is different from what you want to achieve by deploying DevOps.
How Internal Developer Platforms Help Resolve The Infrastructure Gaps?
If you’re familiar with the ITIL concept of a service catalog, you’ll grasp the concept of Internal Developer Platforms. ITIL’s service catalog and an IDP in Platform Engineering are centralized tools to help organizations with service provisioning and administration.
- The ITIL service catalog offers a systematic overview of accessible IT services, their descriptions, and the service-level agreements that go with them.
- Similarly, an IDP, such as Backstage or Humanitec, serves as a catalog for developers, providing a self-service portal for accessing software development tools, services, and resources.
- Both provide visibility into existing offers, encourage consistency, and make it easier for teams to find and use the services they demand.
The ITIL service catalog and the IDP ultimately seek to improve efficiency, cooperation, and transparency within their respective areas.
Platform Engineering Isn’t A DevOps Replacement
A common misperception about DevOps is that it is all about tools, and because platform engineering deals with tools, you could believe it is a replacement for DevOps. In actuality, they are not the same thing. Consider platform engineering as a strategy to improve and centralize much of the existing DevOps tooling. Platform engineering assists organizations in realizing the benefits of DevOps by bridging infrastructure gaps that often hinder its effectiveness.
Taking The ‘Golden Path’ To DevOps Success, And Using A Product Mindset
Platform Engineering consolidates the DevOps tools and workflows into a concept known as golden pathways. A golden path is a collection of tools and workflows that address a common developer requirement. A golden road allows developers to shop for what they need and proceed without reinventing the wheel for a software project. Platform engineering should be treated as an internal product, with development teams acting as customers. Product management concepts should be used in the development and evolution of IDPs. This is what it implies.
- Understanding the platform’s users’ wants and requirements, whether they are internal developers or outside stakeholders.
- Collecting input, doing user research, and selecting products and upgrades based on their importance and effect.
- Considering the platform’s lifespan, from original design and development through continuing maintenance and iteration.
This mentality ensures that the platform is viewed as a developing product with a clear goal, strategy, and a singular focus on delivering value to its consumers.
When Should My Organization Adopt Platform Engineering?
As a general guideline, if you have 20 or more developers, it’s time to explore platform engineering. Most of the tools required are common, and you may be familiar with them if you have worked in DevOps or GitOps. This means that expanding into platform engineering has a low learning curve. Even if your organization still needs to be ready, this is an expanding market that you should pay attention to. Platform engineering has been required for some time, and the problem it solves for DevOps is not going away.
Potential Next Steps
- Investigate whether Platform Engineering is required shortly and plan accordingly.
- Consider launching an iterative platform engineering pilot project.
- Continue to educate yourself through platform engineering blog articles (like this one) and books when they become available.
- Participate in user groups, conferences, and slack communities – all of which may be found at www.platformengineering.org.
- Last but not least, get some Platform Engineering training!