Jump to section

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).

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. 

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. 

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. 

Red Hat® OpenShift® is well-positioned to provide platform engineering teams with a comprehensive set of features and capabilities such as BuildsPipelinesGitOpsServerless, and Service Mesh.

OpenShift, when combined with Red Hat Developer Hub, provides engineering teams with the project templates, documentation, and workflows needed to effectively build and manage an internal developer platform that is unique and specific to the organizational needs and objectives.

Using Red Hat Developer Hub, developers can connect to a unified dashboard and access a variety of curated tools, software templates, documentation and other resources to help them build high-quality software efficiently. Additionally, Developer Hub consolidates information and resources developers need to join an existing project, minimizing on-boarding time.

The platform's focus on open-source innovation provides flexibility and avoids vendor lock-in, while Red Hat's reputation for stability, support, and reliability provides peace of mind. Furthermore, the Developer Hub's ability to integrate new tools and services easily via plugins, along with its scalability, makes it a future-proof solution for evolving development needs.

With OpenShift, Red Hat Developer Hub, Trusted Software Supply ChainAdvanced Cluster Security (ACS)Advanced Cluster Management (ACM), and Ansible as core building blocks, platform engineers can design and build integrated toolchains and workflows that provide a more seamless and efficient experience for developers. 

Keep reading

Article

What is DevSecOps?

If you want to take full advantage of the agility and responsiveness of DevOps, IT security must play a role in the full life cycle of your apps.

Article

What is CI/CD?

CI/CD introduces ongoing automation and continuous monitoring throughout the lifecycle of apps, from integration and testing phases to delivery and deployment.

Article

Who is a DevOps engineer?

A DevOps engineer has a unique combination of skills and expertise that enables collaboration, innovation, and cultural shifts within an organization.  

More about DevOps

Products

An intensive, highly focused residency with Red Hat experts where you learn to use an agile methodology and open source tools to work on your enterprise’s business problems.

Engagements with our strategic advisers who take a big-picture view of your organization, analyze your challenges, and help you overcome them with comprehensive, cost-effective solutions.

Resources

Podcast

Command Line Heroes Season 1, Episode 4:

"DevOps: Tear down that wall"

Checklist

Enterprise automation with a DevOps methodology

Whitepaper

Streamline CI/CD pipelines with Red Hat Ansible Automation Platform

Operator

Manage infrastructure and application configurations with Red Hat® OpenShift® GitOps