Automate IT and infrastructure, manage complex workflows, and mitigate risk at scale.
Try the full-featured Puppet Enterprise for free on 10 nodes.
Find and prevent compliance failures
Continuous Delivery for Puppet Enterprise
Build, test, and deploy infrastructure as code faster and easier
Compliance Enforcement Modules
Remediate to stay in compliance
Content & Modules
Pre-built scripts to automate common tasks
Get Puppet Enterprise
First 10 nodes are free!
Try it now
Request a demo
Find thousands of component modules built by the community and guidance on using them in your own infrastructure.
Visit Puppet Forge >>
Open Source PuppetPerfect for individuals and small infrastructure
BoltAutomate tasks in orchestration workflows
See all open source projects >>
Contribute to open source projects >>
In this blog, we’ll define platform engineering, outline its benefits for software development, explain how it intersects with DevOps, and identify the key components platform engineering needs to be successful.
Table of Contents
Platform engineering is the discipline of designing and building self-service capabilities as a product. Platform engineering can reduce cognitive load for developers and enable fast-flow software delivery with a product mindset.
The definition of platform engineering is the continuous development, building, and maintenance of infrastructure (like toolchains and workflows) in order to build self-service solutions. That enables value stream development teams to deliver quickly and provide consistency to the rest of the organization.
Platform engineering has distinguished itself among DevOps trends by focusing on the set of tools developers use as a product in itself. In a platform engineering initiative, platform teams deliver shared infrastructure platforms to internal users responsible for delivering a value stream – typically software developers and engineers.
That’s why successful platform teams treat their platform as an internal product. They build and maintain their platform using product management principles: user research, product roadmaps, soliciting feedback, iterating, launching, maintaining, and marketing. Members of an effective platform team are defined by their product management mindset, rather than just broad IT experience.
2023 Platform Engineering ReportSurvey Results + More📚 GET THE REPORT
2023 Platform Engineering ReportSurvey Results + More
📚 GET THE REPORT
At a basic level, that means they build systems that solve the problems users face (like any good product). It also means they create feedback loops with developers who use the platform to identify new challenges the platform can be updated to address.
A platform engineering team is also called a platform team, DevOps platform team, or internal platform team. This team is in charge of collecting feedback as well as creating and maintaining tools and workflows for developers.
Platform engineering teams do the following for an organization's infrastructure:
Additionally, a product manager role on the platform team is crucial to cultivating the product mindset platform engineering needs. The person in this role is responsible for evangelizing the platform and sharing information with the rest of the organization.
Our research found that one third of organizations doing platform engineering have a product owner who can explain and evangelize the services and capabilities of the platform. That can limit the potential of the platform, and a larger DevOps initiative, across the organization.
An Internal Developer Platform (IDP) is the collective term used to describe the tools and technologies a platform engineering team puts together to enable developer self-service. An IDP can specify resources in an environment, set configuration baselines, and govern permissions to automate those recurring tasks.
Platform teams create the IDP from discussions and feedback with users. Then they maintain the IDP as a product to be iterated upon with continuous feedback from its users.
Platform engineering benefits development teams by providing them with the autonomy to independently ship value to their end users. It benefits the overall organization by standardizing components and workflows, increasing the efficiency of audit, compliance, and security.
The DevOps movement empowered developers with more efficient tools and greater collaboration with operations. The whole concept of DevOps was to bring development and operations teams closer together to reduce friction and increase efficiency so they could create and deliver software faster.
But as more and more organizations started to adopt DevOps, that ideal revealed a new challenge: DevOps is great for breaking down silos, but it also leads to an overwhelming amount of choice for developers. All of a sudden, developers had new kinds of tools and methodologies for shifting left and working with operations teams.
That freedom was supposed to make it easier for developers to get good code out the door with lower failure rates and fewer tickets – and overall, it did. But it also put a lot more pressure on developers to pick the right tools and create the right workflows, which took up the time and mental energy they should have been able to use on development. Instead of speed and efficiency, some organizations taking a DevOps approach were instead seeing a slower pace of development and deployment than they were expecting.
Without a structured platform team, developers have to choose tools and strategies for CI/CD, testing, the release process, and more, which adds stress and increases cognitive load. The rise of platform engineering is a direct response to that: a way to reduce confusion and friction between developers and the tools they use to create software.
Ninety-three percent of respondents to our 2023 survey on platform engineering said it’s a step in the right direction for development, operations, and security in their organizations. When implemented correctly, platform engineering carries several key benefits.
Platform engineering teams are tasked with balancing developer choice (to allow flexibility in development approaches) with optimized toolsets and workflows (to standardize development pathways for automation and repeatability).
With self-service capabilities, developers rely less on other teams for delivery, testing, releases, and other critical development processes.
Automating testing, delivery, and other key functions doesn’t just make development faster – it helps organizations innovate and grow by removing manual tasks from developers’ plates.
The best DevOps relies on platform engineering. Our own State of DevOps research found that 65% of firms with more evolved DevOps use self-service platforms compared to only 40% of firms with less evolved DevOps practices.
As mentioned above, the promise of DevOps is often hamstrung by the new obstacles, choices, and responsibilities it creates for developers. The reasons DevOps initiatives get stuck – insufficient feedback loops, unclear responsibilities, and a failure to share best practices – are exactly the blockers that platform engineering addresses. Without those, organizations are better able to leverage the benefits of DevOps.
Is platform engineering just another DevOps fad? The short answer is “no.” The data supports a clear conclusion: When done right, the practice of platform engineering drives better outcomes from a DevOps initiative.
But you’re not alone if you’re reading this and thinking, “What makes platform engineering different from all the other movements, initiatives, and approaches in development that have come and gone like dust in the wind?”
The problem is that there isn’t yet a model to implement platform engineering, which leaves it up to individual organizations to define what platform engineering looks like. That’s great for bespoke initiatives, but it’s not great for forging a path any organization can follow.
Like DevOps, platform engineering can be a challenge to implement successfully. To extract the maximum benefit from a DevOps initiative, DevOps leaders need to prescribe an approach that can be iterated upon, rather than allowing the practices of individual organizations to create a platform engineering definition.
As a concept, platform engineering has the potential to change DevOps dramatically. In practice, it makes creating infrastructure faster and simpler. Here’s a simple recap of what this blog covered:
Platform engineering is an internal initiative that structures tools and workflows to enable developer self-service.
Platform engineering reduces cognitive load for developers, allowing them to focus on creating great software.
Platform engineering exists to contain and streamline the overwhelming amount of choice and options developers have.
DevOps initiatives get more sophisticated and drive better results when they’re supported by platform engineering.
DOWNLOAD THE PLATFORM ENGINEERING REPORT
Senior Solutions Architect
David Sandilands is a senior solutions architect.