What is platform engineering?

Copy URL

Platform engineering is a discipline within software development that focuses on improving productivity, application cycle time, and speed to market.

Platform engineering should be considered a multidisciplinary approach to improving work culture and productivity, and positively impacting the bottom line. From a business perspective, platform engineering programs streamline application time-to-market, optimize operations, and improve efficiencies in development, deployment, management, and maintenance of applications. From a cultural perspective, platform engineering aims to improve collaboration between teams and mitigate cognitive load by providing developers with the tools and support they need to focus on the most important parts of their job.

The overarching goal of platform engineering is to identify the pain points impacting development teams and mitigate them by providing common, reusable tools and capabilities via an internal developer platform (IDP).

Red Hat OpenShift for platform engineers

Platform engineering can be a specific job role as well as a discipline or methodology that a group of individuals take on as a team initiative.

The role of platform engineering benefits organizations by encouraging consistency and efficiency. It fosters better collaboration among teams and reduces the learning curve for new team members by enabling more efficient cross-team cooperation.

At its core, platform engineering aims to reduce time required for administrative tasks that can hamper developer productivity and create bottlenecks in the application lifecycle. To achieve this, platform engineers and platform engineering teams are responsible for managing infrastructure and creating a set of tools that guide developers through a workflow that is designed to cater to their needs–sometimes known as a “golden path.”

Different development teams have different needs (even within the same company), and no two developer platforms will be the same. Platform engineers understand this, and curate a customized set of tools and processes to match the unique needs of an organization through self-service capabilities and automated infrastructure that empowers software developers. This adaptability keeps developers from being constrained by one-size-fits-all solutions and allows them to work with tools that best suit their project requirements. At the same time, this reduces the need for developers to learn new skill sets and undertake superfluous work, allowing them to focus on what they do best: code.

Platform engineering teams also ensure that robust governance frameworks are in place to maintain control over resources, security, and compliance across all environments. This has the additional benefit of giving organizations a more hands-on way to monitor performance, track costs, and identify potential risks or vulnerabilities. 

Backstage with platform engineering. Video duration: 2:31


Read more about platform engineering and DevOps

Red Hat resources

Platform engineering has emerged as a response to a new argument in the technology space: Infrastructure is not something developers should have to worry about, especially in the case of hybrid and multi-cloud environments. 

Traditionally, it’s been the job of the developer to either find a tool that works for what they need, or build that tool from scratch. While previous, more basic iterations of technology had supported this job expectation, present-day developers at enterprise level organizations have found that as a business grows, supporting users and scaling effectively gets more complex and fragmented.

New tools are released every day, there are always new features to keep up with, and it takes time to evaluate and select the right tools for the job. This time spent learning new tooling skills, researching new technology, requesting infrastructure and application services, and understanding the latest security threats can waste a lot of mental energy and resources, taking away from time otherwise spent on improving the product being sold and achieving business priorities. 

In the realm of platform engineering, if developers are the customers, internal developer platforms (IDPs) are the product.

An IDP is configured by platform engineering teams and consists of a standardized set of internal self-service tools and technologies that developers need to create, deploy, and maintain code throughout the entire lifecycle of an application. The toolchains integrated into an IDP enable a more positive and productive workflow for developers, focus on factors such as security and scalability, and ultimately help businesses create more customer value.

Creating an effective IDP means actively looking for friction in the developer experience and curating tools and technologies that can remove or ease that friction. Begin with a minimalistic approach, only incorporating tools that you know will be beneficial to your development team. From there, incrementally expand the capabilities to evolve alongside the needs of your development team, seeking feedback along the way. 

Like DevOps, platform engineering shares the common goal of better aligning developers with operations by increasing automation and collaboration. When thinking about the relationship between the two practices, platform engineering can be considered a critical and complimentary ingredient to address the challenges of scaling DevOps across an organization.

Traditionally, DevOps practices encourage developers to seek out, learn, deploy, and manage software themselves–thus giving them more insight and control over the software in production. However, this doesn’t always play out in a way that benefits the bottom line, and instead adds administrative overhead for the developer and increases cognitive load.

A given team might have the interest to deliver a function, but not the skill set. They may have the skill set, but not the interest in building it. They may have skills and interest but it may not be secure or cost-effective to execute the idea. All of this only gets more complicated as organizations scale and grow.

The adoption of DevOps and continuous delivery have resulted in longer pipelines and toolchains; and with the added pressure of “shifting left” (having an end-to-end understanding of securing each stage of the workflow when creating and maintaining an application) developers have become responsible for understanding more and more of the intricacies involved in the applications they’re building.

This autonomy offers a sense of freedom, however it can also lead to a sense of debilitating responsibility and cognitive load that doesn’t serve the individual nor the organization at the end of the day.

By placing more emphasis on empathy and user journey, platform engineering as a strategy builds upon DevOps by finding better ways to automate application delivery, improve collaboration and communication, reduce error, enhance security and compliance, increase efficiency, and most importantly, refocus the strengths of developers where the focus is most needed. 

Transforming to a DevOps culture

Both platform engineering and site reliability engineering are about creating and maintaining systems. The difference between the two concepts lies in the focus of each practice. An SRE places their focus on IT operations teams, helping them use software as a tool to manage systems, solve problems, and automate operations tasks.

Platform engineers focus on development teams, helping them create platforms for managing systems, solving problems, and automating development tasks. 

Create a strategy for automation across your organization

Hub

The official Red Hat blog

Get the latest information about our ecosystem of customers, partners, and communities.

All Red Hat product trials

Our no-cost product trials help you gain hands-on experience, prepare for a certification, or assess if a product is right for your organization.

Keep reading

Demo page for visual regression testing

Demo page for visual regression testing

Platform engineering vs. DevOps

Find out how platform engineering differs from DevOps to identify an approach that supports your goals.

What is multi-cloud GitOps?

GitOps is a set of principles that guide your workflow and enables you to implement continuous deployment (CD) for cloud native applications. It helps you manage your cluster configuration and application deployments by introducing automation to a previously manual process.

DevOps resources