Platform engineering: Building scalable and automated software environments

Taylor Bruneaux

Analyst

Platform engineering is the core of developing and managing the essential infrastructure and tools that drive software applications. This field covers everything from cloud infrastructure and automation to monitoring and security. As companies aim to improve the developer experience, they are increasingly focused on building a solid and reliable foundation supporting the full development, deployment, and operations lifecycle through advanced internal developer platforms.

Today, we’ll look at how platform engineering has evolved from traditional system administration to the modern era of cloud-native technology. This evolution highlights the crucial role platform engineering plays in digital transformation, boosting software delivery efficiency and enhancing the overall experience for developers. We’ll also explore the key components and principles of successful platform engineering and provide practical insights for technology leaders to optimize their tech investments and encourage platform adoption.

What is platform engineering?

Platform engineering is a specialized discipline within software development that focuses on creating and maintaining robust, scalable, and automated software engineering environments. These platforms, often called internal platforms, provide a foundation for building and running applications efficiently and embody the core responsibilities of successful platform teams.

What is a platform?

In this context, a platform is an integrated product consisting of tools, services, and infrastructure that enables software developers to manage the entire lifecycle of applications easily. It acts as adeveloper portal offering reliable, reusable services and a flexible self-service capability, enhancing its self-service and operational efficiencies.

What is a platform engineer?

A platform engineer is a job title for a professional who designs, builds, and maintains the core components of a platform, ensuring it meets enterprise requirements and supports common development tasks.

They focus on creating tools for application delivery, managing complex infrastructure, and providing a paved path for developers.

With deep knowledge of platform engineering principles and developer feedback, platform engineers enhance the platform interface to improve performance metrics and address the needs of internal product teams and external customers.

What do platform teams do?

A platform engineer optimizes the application delivery process by maintaining and building toolchains necessary for efficient software delivery. Their goal is to facilitate the seamless deployment of applications across deployment environments, supporting cloud-native approaches.

Some examples of platform engineering projects include:

Additionally, a platform engineer may work onbuilding internal tools, such as plugins and code review tools, to improve the workflows of dev teams, aligning with the holistic approach of a successful platform engineering strategy.

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 for your internal customers. 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 public 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 blurs, 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.

The golden paths of platform engineering

The concept of “golden paths” in platform engineering refers to predefined, optimized workflows and toolsets designed to streamline the development process and improve software engineering capabilities. These paths guide developers through the most efficient routes for delivering high-quality software, minimizing cognitive overload and operational complexity. Golden paths help ensure consistency and reliability across the platform engineering journey by standardizing common tasks and DevOps practices, serving as a foundational element for successful platform teams.

Key aspects and practices

Scalability and modularity

Digital platform engineering focuses ondesigning 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. Applyingpractices from DevOps,site reliability engineering (SRE), anduser-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 withdata 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

The three foundational principles of platform engineering are scalability, reliability, and automation, reflecting the core building blocks of a robust operational model in the cloud-native era.

Scalability

Scalability is a core principle in platform engineering, which is vital for internal platform teams focused on application delivery. It underscores a platform’s capability to manage escalating workloads efficiently, ensuring that applications can scale as user demand increases. This principle supports the operational necessities of DevOps teams by maintaining performance even under expanded operational scope.

Reliability

Reliability centers on the consistency and dependability of an internal developer platform. Platform engineering teams prioritize crafting cloud environments—spanning hybrid cloud infrastructures like Google Cloud and Cloud Run—thatminimize downtime and support reliable application deployment. This goal is integral to the platform engineering approach, ensuring that internal providers and experienced developers can rely on the platform to continuously deliver customer value.

Automation

Automation is pivotal in modern platform operations, emphasizing reducing manual efforts and integrating sophisticated platform tools and DevOps toolchains. This principle facilitates an efficient operational model by automating common development and DevOps tasks, enhancing the delivery lifecycle and allowing software engineers to focus more on building software with a strong customer focus. Automation is a one-stop shop for infrastructure provisioning and config management, reinforcing the platform capabilities supporting autonomous delivery teams.

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 todeploy 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 aCI/CD pipeline, to automate the software development process. By automating the process, a platform or DevOps engineer can ensure the 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 to achieve the goal of platform engineering, which focuses on optimizing DevOps evolution through a product approach and a dedicated platform team. This strategy is integral to meeting enterprise objectives and simplifying product development.

Streamlined development processes

Platform engineering significantly reduces the 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 ofShopify and VP of Engineering atAtlassian, 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 and ensures consistency across different applications, making maintenance more manageable through a common collection of tools and DevOps principles.

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.

AtThomson 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 ofTrivago 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 tocollaborate 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 ofTeam 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

Monitorkey 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, includingtech debt,deep work, andtech documentation, which can be measured and tracked individually.

Quantitative metrics

  • DORA metrics: DevOps Research and Assessment metrics, orDORA metrics, as established by theAccelerate 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 is 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 execute the platform strategy effectively, including engineering, design, marketing, sales, and customer support. They ensure alignment andeffective 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

A platform engineering team must identify pain points and determine how to address them to improve developers’ experiences. Adeveloper 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 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.

How PlatformX levels up your platform engineering org

PlatformX, a key element of theDX engineering intelligence platform, specifically boosts the effectiveness of platform engineering teams. By meticulously analyzing developer experience data, PlatformX delivers deep insights into what drives productivity in development teams.

DX enables platform engineering and developer experience leaders to effectively monitor key performance indicators like delivery rate, ease of delivery, and quality. Understanding these factors is crucial for pinpointing performance drivers and implementing strategic improvements.

“DX has become the most truthful gauge of where we are as an organization,” says Rami Leshem, VP of Platform Engineering at Extend, highlighting the trust leaders place in PlatformX for accurate and actionable data.

With its focused analytics, PlatformX helps teams identify and prioritize the most significant productivity drivers, ensuring a streamlined and more productive development process.

Beyond analytics, theDX suite transforms organizations’ software development and platform engineering practices. It tracks developer performance and fosters a culture of continuous improvement and innovation. Tailored for internal developer productivity and platform team leaders, PlatformX provides the tools to measure and enhance performance, championing a metrics-driven approach to engineering management. This strategic integration of analytics and practical tools underscores DX’s commitment to empowering teams to excel.

 

Published
July 16, 2024