What is platform engineering?

Taylor Bruneaux

Analyst

Platform engineering is responsible for designing and managing the essential infrastructure and tools that support software applications. It includes cloud infrastructure, automation, monitoring, and security. As businesses aim to improve their developer experience, they prioritize providing a dependable foundation for development, deployment, and operations through their internal developer platforms.

Today, we will delve into the history of platform engineering, tracing its evolution from traditional system administration to the modern era of cloud-native solutions.

We’ll discuss why platform engineering is pivotal for digital transformation and how it plays a role in improving software delivery while enhancing the overall experience of developers. In addition, we’ll focus on the key components of platform engineering and share actionable insights that engineering leaders can use to improve their technology investments.


Table of Contents


​​​​​

Platform engineering basics

Platform engineering is a specialized field that focuses on creating and maintaining robust, scalable, and automated platforms for software development.

These platforms provide the foundation for building and running applications efficiently.

What is a platform?

In this context, a platform is a collection of tools, services, and infrastructure that enables developers to manage applications easily. A platform is a developer portal that provides a reliable environment for software development.

What do platform teams do?

A platform engineer optimizes the development process by maintaining the tools and infrastructure necessary for efficient software delivery. They aim to facilitate the seamless deployment of applications.

Some examples of platform engineering projects include:

  • Building continuous integration/continuous delivery pipelines
  • Developing automated testing frameworks
  • Creating, monitoring, and logging tools to ensure application health
  • Implementing infrastructure as code to manage cloud resources
  • Developing containerization strategies to facilitate easy deployment of applications

Additionally, a platform engineer may work on building internal tools, such as plugins and code review tools, for developers to improve their workflows.

Understanding digital platform engineering

For most contemporary businesses, especially those in the software industry, the term “platform engineering” primarily refers to digital platform engineering.

Digital platform engineering focuses on creating, managing, and optimizing digital platforms. These platforms act as foundational systems that enable the development, deployment, and operation of web-based and mobile applications. This field integrates software, hardware, networking, and cloud technologies to build scalable, reliable ecosystems for digital services like e-commerce, social media, and content streaming.

Overlap with traditional platform engineering

The line between digital and traditional platform engineering often needs to be clarified, as both disciplines aim to provide robust infrastructures for supporting applications and services. However, digital platform engineering emphasizes internet-facing services and user-centric applications, leveraging cloud computing and modern software architectures like microservices. In contrast, traditional platform engineering might focus more broadly on internal, enterprise-level infrastructures, including legacy systems and on-premises data centers, alongside modern cloud solutions.

Key aspects and practices

Scalability and modularity

A core principle of digital platform engineering is the design of scalable, modular systems. These platforms are built to seamlessly accommodate growth in users and data, incorporating cloud resources and adopting architectures that facilitate easy integration of new features.

User experience and reliability

It is paramount to focus on delivering superior user experiences and reliable services. This involves applying practices from DevOps, site reliability engineering (SRE), and user-centered design, ensuring platforms are technologically robust and engaging for end-users.

Security and compliance

Given the handling of sensitive information, securing these platforms against breaches and ensuring compliance with data protection regulations are critical components of digital platform engineering.

In essence, digital platform engineering crafts the digital backbone for today’s innovative services, blending technical rigor with strategic insight to support dynamic, user-focused applications. It extends traditional platform engineering by honing in on the digital and cloud-native aspects, ensuring businesses can thrive in the digital era.

Platform engineering charters

Platform engineering charters serve as foundational statements outlining the guiding principles of platform teams within an organization.

These charters articulate the platform team’s mission to ensure alignment with broader business objectives. A platform engineering charter defines the standards the team will adhere to while maintaining the organization’s technological platforms.

Here are some examples of platform engineering charters or mission statements:

Slack

Making the development experience seamless for all engineers

Stripe

Make software engineering easier at Stripe

Google

Making it fast and easy for developers to deliver great products

Snyk

Make Snyk a pleasure to develop within

Financial Times

Make things as easy as possible for product developers, whether that be by providing tools, clarity, support, or standardization

Ibotta

Build happy and high-performing teams by making sure tooling, culture, and processes aren’t getting in the way of engineers

Foundational principles of platform engineering

The three foundational principles of platform engineering are scalability, reliability, and automation.

Scalability

Scalability is a core principle in platform engineering, emphasizing a platform’s ability to handle increasing workloads without sacrificing performance. Scalability ensures that applications can grow as demand rises.

Reliability

Reliability focuses on the consistency of an internal developer platform. Platform engineering teams prioritize creating cloud environments that minimize downtime and provide a dependable foundation for application deployment.

Automation

Platform operations rely heavily on automation to streamline processes and minimize manual interventions. This approach is essential in ensuring an efficient workflow. This principle involves automating repetitive tasks, ensuring consistency, and accelerating the deployment lifecycle.

The components of a platform

In platform engineering practice, a platform comprises three essential components: infrastructure, services, and developer tools.

Infrastructure

Platform infrastructure is the underlying hardware and software foundation that supports application development. Often, platform teams work with operations teams to implement infrastructure foundations.

Infrastructure includes various elements such as cloud platforms, servers, storage devices, operating systems, virtualization software, networking components, and databases. For example, a cloud computing platform like Amazon Web Services (AWS) provides the infrastructure for developers to deploy scalable, cost-effective applications.

Services

Services enhance the functionality of a platform. Databases, caching, and networking improve the developer experience and contribute to the platform’s performance. Typically, cloud services make the platform more adaptable to changing business needs. Services also help ensure the platform complies with industry regulations.

Developer Tools

Developer tools within an internal developer platform enable developers to work more efficiently, improve their productivity, and reduce the time and effort required to build and deploy software applications.

In the code-writing stage, developer tools such as integrated development environments (IDEs), code editors, and debuggers help developers write code more efficiently. They provide features such as syntax highlighting and code completion, making it easier for developers to write high-quality code with fewer errors.

Automated testing frameworks help developers test their code more thoroughly during testing. These tools reduce the effort required for manual testing.

In the deployment stage, containerization platforms and continuous integration/continuous deployment (CI/CD) pipelines help developers reliably deploy their code to production environments. These tools provide version control, automated builds, and automated deployments, which can help reduce the risk of errors and downtime during deployment.

Platform engineering technology

These are some of the widely used products by platform engineering teams:

Kubernetes

Kubernetes is an open-source container orchestration platform. A popular choice among platform and DevOps engineers, Kubernetes automates the deployment, scaling, and management of containerized applications. With Kubernetes, a platform engineer can efficiently orchestrate containerized workloads at scale, ensuring application reliability.

Docker

Docker is a containerization platform that enables a development team to package their applications into a single container with all their dependencies, libraries, and configurations.

Platform engineers use Docker to manage containers across different environments, including development, testing, and production, ensuring consistency throughout the application lifecycle.

CI/CD Pipelines

Platform engineers use continuous integration/continuous delivery, or a CI/CD pipeline, to automate the software development process. By automating the process, a platform or DevOps engineer can ensure reliable delivery of code changes, which is essential for maintaining the quality of the platform. These pipelines allow platform engineers to focus on the more complex aspects of their work rather than spend time on repetitive tasks.

The benefits of platform engineering

Engineering teams are investing in their platform engineering function for the following reasons.

Streamlined development processes

Platform engineering reduces time-to-market for software products. By establishing robust frameworks, reusable components, and standardized tools, platform engineers empower development teams to focus on creating features rather than reinventing the wheel with each project.

Jean-Michel Lemieux, who previously served as CTO of Shopify and VP of Engineering at Atlassian, suggests allocating half of the research and development resources to a platform team to streamline the remaining 50% of the development process more effectively.

“The rule of thumb to invest 50% of R&D into platform work applies to one-person companies and 10,000-person companies,” says Lemieux. “Extremely strategic decisions for any company in the long term are encompassed in platform work.”

This approach accelerates development cycles. It ensures consistency across different applications, making maintenance more manageable.

Scalability and flexibility

A well-designed platform provides a solid foundation to adapt to evolving agile needs and growing user demands. Whether handling increased traffic, incorporating new functionalities, or adapting to technological changes, a scalable internal developer platform allows organizations to expand their digital footprint without compromising performance or user experience.

At Thomson Reuters, Justin Wright, CTO of platform engineering, has observed that flexibility can significantly impact the entire organization.

“At the end of the day, all the technologists at Thomson Reuters are committed to being helpful,” says Wright. “We strive to assist other technologists, and our product teams work hard to be agile and innovative to meet the needs of our customers. As we work together and build relationships, we create a community of architects and interested parties, sharing secrets and common goals. Sometimes, this happens almost by accident. [Platform engineering] brings focus, resources, and investment to drive progress.”

Cost efficiency and resource optimization

Platform engineering can help application developers avoid duplicating efforts across software engineering projects by developing modular, reusable components, significantly saving resources.

Additionally, platform infrastructure is scalable, allowing businesses to adjust based on actual demand, which prevents unnecessary expenses. This cost-effective approach enhances the overall return on investment, enabling organizations to allocate resources strategically for future innovation.

Thomas Khalil of Trivago notes that resource optimization KPIs, like time-to-market and efficiency, are the core success metrics of his platform team.

“Reliability is really important, but we need to keep the lights on,” says Khalil. “The business needs to continue to operate, and at the same time, we want to be efficient and, on the delivery side, more predictable. It shouldn’t be, ‘I’ve landed in this new team; let me spend a week figuring out which CI environment is used and how do I get a new build out.’ We want to make the delivery team agnostic and predictable to the point that they’re boring and people don’t think about them; they just do them.”

Enhanced collaboration and communication

Platform engineering enables teams to collaborate seamlessly on various projects through standardized tools, shared libraries, and well-defined APIs.

These efficiencies foster a more cohesive working environment that ensures knowledge transfer between software engineering teams. As a result, the development process can innovate, allowing teams to leverage each other’s expertise to build robust software solutions.

Manuel Pais of Team Topologies explains this as platform engineering, or enablement, serving as a “curator” for application development teams.

“Enabling teams can be highly valuable in facilitating the adoption of new approaches or practices by helping teams to quickly and effectively bridge gaps and improve their processes,” says Pais. “The role of an enabling team is to provide guidance and direction without creating dependency. They can do this through curation, mentoring, training, and coaching. Ultimately, the goal of an enabling team is to help other teams learn, grow, and become more effective in their work.”

How to measure the impact of platform engineering

To gauge the effectiveness of platform engineering efforts, monitor key performance indicators (KPIs) that measure both the quantitative and qualitative aspects of platform engineering.

Here are some platform engineering KPIs and how to track them.

Qualitative metrics

  • Drivers of developer productivity: Typically, there are three key KPIs of productivity for engineers: speed, ease, and quality. Speed refers to the rate at which tasks can be completed. Ease is the amount of cognitive effort required to complete a task. Quality relates to the quality of work or process being focused on. These factors can impact the efficiency and effectiveness of engineering work and are important considerations for optimizing productivity. These software development KPIs are influenced by a number of qualitative drivers, like tech debt, deep work, and tech documentation, which can be measured and tracked individually.

Quantitative metrics

  • DORA metrics: DevOps Research and Assessment metrics, or DORA metrics, as established by the Accelerate State of DevOps Report, include lead time, deployment frequency, mean time to restore (MTTR), and change failure rate. These metrics offer a comprehensive view of the platform’s impact on the software development lifecycle.
  • System Uptime: This metric assesses the availability and reliability of the platform. High system uptime is indicative of a stable infrastructure. Aim for near 100% uptime to ensure uninterrupted service.
  • Response Times: Monitoring response times is essential for understanding the platform’s efficiency. It directly impacts user experience. Improvements can lead to increased productivity and end-user satisfaction.

Platform product management

Platform product management is responsible for the strategic development, enhancement, and management of the platform that serves as a foundation for other products or services within a company or ecosystem. Platform engineers rely on Platform Product Management to establish and maintain the internal platforms and infrastructure.

What does a platform product manager do?

Platform product managers play a critical role in the success of a platform by overseeing all aspects of its development. This includes defining the overall strategy and vision for the platform, aligning it with the company’s goals and objectives, and developing and maintaining a product roadmap that outlines the planned features, enhancements, and releases for the platform over time.

To effectively execute the platform strategy, product managers collaborate with cross-functional teams, including engineering, design, marketing, sales, and customer support. They ensure alignment and effective communication among team members so that everyone is working towards the same goals.

In addition to managing the development process, platform product managers also communicate the vision, progress, and impact of the platform to stakeholders. This includes internal teams, executives, and external partners. By keeping stakeholders informed, product managers can ensure that everyone is on the same page and working towards the same goals.

To ensure that the platform meets the needs of both internal and external users, product managers work closely with stakeholders to gather and prioritize requirements. They prioritize features and enhancements based on business value, customer impact, and technical feasibility. This ensures that the platform is not only functional but also meets the needs of its users.

Finally, platform product managers monitor the performance of the platform, analyze key metrics, and gather feedback to identify areas for improvement. They consider the scalability and flexibility of the platform to accommodate future growth and changes in business requirements. By continually analyzing and improving the platform, product managers ensure that it remains effective and competitive in the marketplace.

How platform engineering impacts developer experience

Those in a platform engineer role have the potential to make a significant difference in an engineering organization, ranging from creating a smooth development environment to promoting better collaboration among development teams. Platform engineering directly influences the effectiveness of the developers’ team in performing their work.

An effective platform engineering team enhances DevEx through standardized workflows, automated cloud infrastructure management, and the creation of a knowledge-sharing platform. These efforts streamline the workflows of the development team, mitigate the risk of manual errors, and promote collaboration.

Get data on the current developer experience

To improve the experience for developers, a platform engineering team must first identify pain points and determine how to address them. A survey, like DX, can provide a starting point for these improvements.

Set goals based on DevEx data

To improve the platform’s engineering goals and investments, use DevEx data. Analyze current business priorities alongside DevEx data to derive valuable insights to help make informed decisions.

Set goals up for success

After reviewing the data and setting the goals, establish North Star Metrics or OKRs),to communicate the business impact of platform engineering work.

Share progress and validate investments

To ensure that platform engineering investments are valued, share results with developers, DevEx leaders, and business leaders. Discussing the impact of these investments can increase confidence in their positive effects.

Repeat

Platform engineers and PMs should collect data, track progress, and set goals every 3-6 months to ensure continuous progress.

Improved developer experience is a symbiotic relationship with improved platform engineering. The outcomes of this collaboration are manifold. Platform engineers gain valuable insights into developers’ challenges through direct feedback, enabling them to optimize the platform continuously.

Using DX to inform platform engineering

DX can help internal platform engineering teams analyze data on their development teams’ productivity drivers. With DX, developer experience data is organized to make it easy to draw insights.

DX provides snapshots for developer experience and platform engineering leaders to measure key performance indicators (KPIs) like delivery rate, delivery ease, and quality and identify the drivers that impact these KPIs.

Platform engineering team leaders rely on DX as their source of accurate information on their work.

“DX has become the most truthful gauge of where we are as an organization,” says Rami Leshem, VP of Platform Engineering at Extend.

Platform engineering teams can use this data to prioritize the most influential drivers of developer productivity. DX is specifically designed for leaders of internal developer productivity and platform teams, equipping them with the necessary tools to measure relevant metrics and enhance the development process for developers.

Published
April 2, 2024

Get started

Want to explore more?

See the DX platform in action.

Get a demo