Platform engineering basics
Platform engineering is a new discipline that emerged in response to the growing complexity of modern cloud-native architectures. It describes the practice of building and maintaining an integrated product, called an “Internal Developer Platform,” which acts as a flexible and supported abstraction layer between developers and the underlying technologies of their applications.
Since 2022, platform engineering has gained traction among software engineering organizations looking to enter the next stage of their DevOps evolution. Gartner writes that “platform engineering is trending because of its promise to optimize the developer experience and accelerate product teams’ delivery of customer value.” They predict that, by 2026, 80 percent of software engineering organizations will have platform teams building Internal Developer Platforms.
Platform engineering looks like it’s here to stay. Here’s what you need to know about it.
How platform engineering works
A platform team is made up of select SREs, DevOps engineers, and product managers. They collaborate to solve common problems across the organization and glue together toolchains and workflows into easy-to-navigate golden paths. The result of their work is an Internal Developer Platform, or an integrated product that covers the operational necessities of the entire lifecycle of the application.
According to a recent Gartner report, there are three main pillars to platform engineering:
- Improve developer experience by building internal developer platforms to reduce cognitive load, developer toil, and repetitive manual work.
- Platforms don’t enforce a specific toolset or approach. It is about making it easy for developers to build and deliver software while not abstracting away useful and differentiated capabilities of the underlying core services.
- Platform engineering teams treat platforms as a product (used by developers) and design the platform to be consumed in a self-service manner.
The platform engineering team is a product team. It conducts user research, creates a product roadmap, solicits regular feedback, iterates, and markets the Internal Developer Platform internally to its customers: the developers. The product approach ensures that the Internal Developer Platform meets the needs of its users and that the platform will be adopted across the organization.
What platform engineering is used for
The goal of platform engineering is to improve developer productivity through improving the developer experience (DevEx). For a lot of organizations in the cloud-native era, the main obstacle to good DevEx is cognitive load.
Cognitive load is the amount of information an individual must process to complete a task. When cognitive load exceeds an individual’s working memory capacity, they will struggle to complete their tasks.
The rapidly growing landscape of tools and frameworks to learn and apply has created cognitive overload for many developers. Working with microservice architectures in a cloud-native setup often requires end-to-end knowledge of Kubernetes, infrastructure provisioning, deployment pipelines, and configuration management, just to name a few. This interferes with developers’ most important task: shipping features.
Platform engineering alleviates cognitive load by providing different layers of abstraction based on the engineering organization’s needs, also known as a golden path, that provides developers a path of least resistance for day-to-day tasks.
Why platform engineering is important
Internal developer platforms improve the velocity and happiness of teams by enabling developer self-service and reducing cognitive load on developers. According to internaldeveloperplatform.org, they “enforce standardization by design, increase developer productivity, and improve developer experience.” They also improve the organization’s productivity and performance across key DevOps metrics like mean time to recovery (MTTR) and Change Failure Rate. Internal Developer Platforms also improve deployment frequency and reduce lead time. Humanitec’s 2021 DevOps Benchmarking report shows a correlation between the use of Internal Developer Platforms and an organization’s degree of DevOps evolution.
The quantitative impact of platform engineering depends on an organization’s setup and size. The larger your team and toolbox are, the more an organization will benefit from an Internal Developer Platform. You can use this table to approximate how much time your organization would save by building a platform.
However, some of the most important impacts of an Internal Developer Platform – self-service and responsibility – are also the hardest to quantify. Internal Developer Platforms allow developers to achieve the “you build it, you run it” DevOps culture organizations have long aspired to. Developers can take more ownership over configuration, deployment, and roll-back processes without needing to involve operations. Internal Developer Platforms also increase visibility, improving collaboration within teams. Developers gain the freedom to be creative without the fear of breaking everything and are happier as a result.
What does a platform engineering team do?
Platform engineering teams, also referred to as platform teams, build the Internal Developer Platform. They are driven by a product mindset to provide platform features that solve common problems and boost developer productivity.
Optimize iteration speed. Platform teams focus on optimizing every step of the software delivery process. This involves simplifying the way developers interact with infrastructure, streamlining the onboarding process, and making local development and testing faster and easier.
Solve common problems. Platform teams identify common challenges shared across multiple teams and build solutions that ease those pain points. They use a combination of qualitative feedback from developers and quantitative evidence (like performance on engineering KPIs) to ensure their solution is getting the job done.
Act as glue. Platform teams bring all of the tools together and ensure a painless development and deployment experience for their engineers.
Educate and empower the organization. Through conductions regular architectural design reviews for new projects or organizing internal hackathons, successful platform teams become a central source of education and best practices for the rest of the organization.
How do you build a platform engineering team?
Building a strong platform team is key to a successful platform implementation. Here are some best practices we’ve learned from the community:
- Start with the why. When building a platform team, start by clearly defining its mission and purpose in a mission statement. Strong mission statements are aligned with the overall goals of the organization.
- Define the platform team’s role. It is important to establish early on that the platform team is not an extension of Site Reliability Engineering (SRE) or Operations teams. Instead, the platform team is its own product team serving their customers, the developers.
- Strike the right balance. Platform teams need to establish guardrails and standards for developers without taking away too much autonomy. Proactively defining the team’s standards can help platform teams strike the right balance and avoid getting lost in individual, opposing requests.
- Build your team. Select the right SREs, DevOps engineers, and product managers to build out the team. The right platform engineer will see internal tooling as a real product to iterate on. They will also care about the feedback from developers and iterate accordingly. Technical ability is key, but so is a comprehensive, multidisciplinary understanding of their role within their organizations. Platform teams also require front-end and design roles just like any other product team.
PlatformCon, the first-ever conference for platform engineers, featured some insightful talks about building a platform team. You can check them out here.
What does a platform engineer do?
Often, platform engineers work on the platform team to build an Internal Developer Platform. Platform engineers reported working with Docker/Kuberbetes, IaC, and CI/CD the most. Platforms are normally built as a layer on top of clusters and infrastructure, streamlining both configuration management and infrastructure orchestration.
You can dive deeper into the platform engineer’s role by reading the full report.
Platform engineering tools
An Internal Developer Platform is the sum of all tech and tools that a platform engineering team binds together to pave a golden path. Developers leverage this path to self-serve with low cognitive load.
The graphic below illustrates some examples of relevant tooling categories that can be used to build an Internal Developer Platform. All of these tools can be combined in different ways to form the backbone of an Internal Developer Platform.
Platform Engineering vs. SRE
Platform engineering is not the same as SRE. According to Benjamin Treynor Sloss, SREs are responsible for the “availability, latency, performance, efficiency, change management, monitoring, emergency response and capacity planning of their service(s).” They use SLOs to set shared expectations for performance and error budgets to balance reliability and innovation.
While SREs focus on the reliability of the production environment, platform engineers focus on building an Internal Developer Platform to enable developer self-service with low cognitive load.
Join the Platform Engineering Community
As platform engineering grows in popularity, more organizations are seeking resources and best practices for platforming their setups. Here are some free resources that can help:
- The Platform Engineering Slack has over 7.5k active members located around the world. With community-built channels for product managers, Kubernetes enthusiasts, and job seekers, Slack is the heart of the global community. Platform practitioners share their war stories, share advice, and discuss best practices with folks around the world.
- Local Meetup groups. Members in cities like Austin, London, New York City, and Tel Aviv have hosted over 50 meetups to date. You can watch the recordings of those talks on platformengineering.org and the Platform Engineering YouTube channel.
- PlatformCon 2022, the first-ever virtual conference for platform engineers, saw over 6k registrants and 78 community-submitted talks. Sign up for PlatformCon 2023 now!
Platform Weekly is a community-driven email newsletter that delivers bite-sized pieces of the best of the platform engineering and cloud native worlds, straight to folks’ inboxes.