What is platform engineering?

Taylor Bruneaux

Analyst

Platform engineering is at the heart of creating and managing the critical infrastructure and tools that power software applications. It encompasses cloud infrastructure, automation, monitoring, and security. As businesses strive to enhance their developer experience, they emphasize building a reliable foundation for development, deployment, and operations through their internal developer platforms.

Today, we’ll explore the journey of platform engineering from the days of traditional system administration to the modern cloud-native era.

We’ll discuss why platform engineering is crucial for digital transformation and how it boosts software delivery while improving developers’ overall experience. We’ll also dive into the key components of platform engineering and provide actionable insights for engineering leaders to optimize their technology investments.

Platform engineering basics

Platform engineering is a specialized field that focuses on creating and maintaining robust, scalable, and automated software development platforms. 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:

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

Digital platform engineering focuses on designing scalable, modular systems. Engineers build these platforms to accommodate growth in users and data seamlessly. They incorporate cloud resources and adopt 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. Applying practices from DevOps, site reliability engineering (SRE), and user-centered design ensures that platforms are technologically robust and engaging for end-users.

Security and compliance

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

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. It emphasizes 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 a platform’s functionality. 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 containerized applications’ deployment, scaling, and management. 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 platform’s quality. 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 software products’ time to market. 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 crucial, but we also need to keep the business running,” says Khalil. “We need to ensure the business continues to operate efficiently and predictably. When joining a new team, no one should spend a week figuring out the CI environment and how to get a new build-out. We aim to make the delivery process so predictable and streamlined that it becomes routine, and people don’t even think about it; they just do it.”

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 precious 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

Monitor key performance indicators (KPIs) that measure the quantitative and qualitative aspects of platform engineering to gauge the effectiveness of platform engineering efforts.

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

Qualitative metrics

  • Drivers of developer productivity: Engineers typically focus on three critical KPIs of productivity: speed, ease, and quality. Speed measures the rate at which developers complete tasks. Ease assesses the cognitive effort required to complete a task. Quality evaluates the standard of work or process.

    These factors directly impact the efficiency and effectiveness of engineering work, making them crucial for optimizing productivity. Several qualitative drivers influence these KPIs, including 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 platform’s availability and reliability. High system uptime indicates 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, and improvements can lead to increased productivity and end-user satisfaction.

Platform product management

Platform product management is responsible for the platform’s strategic development, enhancement, and management. The platform 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 are essential to a platform’s success, overseeing all aspects of its development. They define the platform’s overall strategy and vision, ensuring alignment with the company’s goals and objectives. Additionally, they develop and maintain a product roadmap that outlines planned features, enhancements, and releases over time.

Product managers collaborate with cross-functional teams to effectively execute the platform strategy, including engineering, design, marketing, sales, and customer support. They ensure alignment and effective communication among team members so everyone achieves the same goals.

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

To ensure the platform meets the needs of both internal and external users, product managers work closely with stakeholders to gather and prioritize requirements. They evaluate features and enhancements based on business value, customer impact, and technical feasibility. By doing so, they ensure the platform is functional and aligned with user needs.

Finally, platform product managers monitor the platform’s performance, analyze key metrics, and gather feedback to identify areas for improvement. They consider the platform’s scalability and flexibility to accommodate future growth and changes in business requirements. Product managers continually analyze and improve the platform to ensure 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 development team’s workflows, mitigate the risk of manual errors, and promote collaboration.

Get data on the current developer experience

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

Set goals based on DevEx data

Use DevEx data to improve the platform’s engineering goals and investments. Analyze current business priorities alongside DevEx data to derive valuable insights and 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

Share results with developers, DevEx leaders, and business leaders to ensure that platform engineering investments are valued. 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 empowers internal platform engineering teams to analyze data on their development teams’ productivity drivers. By organizing developer experience data, DX makes it easy to draw actionable insights. With tools like DevEx 360 and Data Cloud, DX provides snapshots for developer experience and platform engineering leaders to measure crucial KPIs such as delivery rate, delivery ease, and quality, identifying the drivers that impact these metrics.

Platform engineering team leaders rely on DX for accurate information about 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. By leveraging DX, platform engineering teams can prioritize the most influential drivers of developer productivity, ensuring a more effective and efficient development process.

Explicitly designed for leaders of internal developer productivity and platform teams, DX equips them with the necessary tools to measure relevant metrics and enhance the developer experience.

Published
June 13, 2024

Get started

Want to explore more?

See the DX platform in action.

Get a demo