Skip to main content
Redhat Developers  Logo
  • Products

    Featured

    • Red Hat Enterprise Linux
      Red Hat Enterprise Linux Icon
    • Red Hat OpenShift AI
      Red Hat OpenShift AI
    • Red Hat Enterprise Linux AI
      Linux icon inside of a brain
    • Image mode for Red Hat Enterprise Linux
      RHEL image mode
    • Red Hat OpenShift
      Openshift icon
    • Red Hat Ansible Automation Platform
      Ansible icon
    • Red Hat Developer Hub
      Developer Hub
    • View All Red Hat Products
    • Linux

      • Red Hat Enterprise Linux
      • Image mode for Red Hat Enterprise Linux
      • Red Hat Universal Base Images (UBI)
    • Java runtimes & frameworks

      • JBoss Enterprise Application Platform
      • Red Hat build of OpenJDK
    • Kubernetes

      • Red Hat OpenShift
      • Microsoft Azure Red Hat OpenShift
      • Red Hat OpenShift Virtualization
      • Red Hat OpenShift Lightspeed
    • Integration & App Connectivity

      • Red Hat Build of Apache Camel
      • Red Hat Service Interconnect
      • Red Hat Connectivity Link
    • AI/ML

      • Red Hat OpenShift AI
      • Red Hat Enterprise Linux AI
    • Automation

      • Red Hat Ansible Automation Platform
      • Red Hat Ansible Lightspeed
    • Developer tools

      • Red Hat Trusted Software Supply Chain
      • Podman Desktop
      • Red Hat OpenShift Dev Spaces
    • Developer Sandbox

      Developer Sandbox
      Try Red Hat products and technologies without setup or configuration fees for 30 days with this shared Openshift and Kubernetes cluster.
    • Try at no cost
  • Technologies

    Featured

    • AI/ML
      AI/ML Icon
    • Linux
      Linux Icon
    • Kubernetes
      Cloud icon
    • Automation
      Automation Icon showing arrows moving in a circle around a gear
    • View All Technologies
    • Programming Languages & Frameworks

      • Java
      • Python
      • JavaScript
    • System Design & Architecture

      • Red Hat architecture and design patterns
      • Microservices
      • Event-Driven Architecture
      • Databases
    • Developer Productivity

      • Developer productivity
      • Developer Tools
      • GitOps
    • Secure Development & Architectures

      • Security
      • Secure coding
    • Platform Engineering

      • DevOps
      • DevSecOps
      • Ansible automation for applications and services
    • Automated Data Processing

      • AI/ML
      • Data Science
      • Apache Kafka on Kubernetes
      • View All Technologies
    • Start exploring in the Developer Sandbox for free

      sandbox graphic
      Try Red Hat's products and technologies without setup or configuration.
    • Try at no cost
  • Learn

    Featured

    • Kubernetes & Cloud Native
      Openshift icon
    • Linux
      Rhel icon
    • Automation
      Ansible cloud icon
    • Java
      Java icon
    • AI/ML
      AI/ML Icon
    • View All Learning Resources

    E-Books

    • GitOps Cookbook
    • Podman in Action
    • Kubernetes Operators
    • The Path to GitOps
    • View All E-books

    Cheat Sheets

    • Linux Commands
    • Bash Commands
    • Git
    • systemd Commands
    • View All Cheat Sheets

    Documentation

    • API Catalog
    • Product Documentation
    • Legacy Documentation
    • Red Hat Learning

      Learning image
      Boost your technical skills to expert-level with the help of interactive lessons offered by various Red Hat Learning programs.
    • Explore Red Hat Learning
  • Developer Sandbox

    Developer Sandbox

    • Access Red Hat’s products and technologies without setup or configuration, and start developing quicker than ever before with our new, no-cost sandbox environments.
    • Explore Developer Sandbox

    Featured Developer Sandbox activities

    • Get started with your Developer Sandbox
    • OpenShift virtualization and application modernization using the Developer Sandbox
    • Explore all Developer Sandbox activities

    Ready to start developing apps?

    • Try at no cost
  • Blog
  • Events
  • Videos

What is platform engineering and why do we need it?

May 6, 2024
Markus Eisele
Related topics:
Developer ToolsDevOps
Related products:
Red Hat Developer Hub

Share:

    DevOps transformed software development. By bringing development and operations teams together, companies achieved a dramatic boost in both speed (agility) and efficiency. But DevOps is just the first chapter. The future of software development lies in platforms. These platforms are like building blocks–scalable and reusable, enabling companies to develop and deliver software even faster and more efficiently than ever before. The best way to achieve this is by making developers happy and more productive.

    Check out the following video for a brief dive into how platform engineering creates a seamless, self-service foundation for development teams.

    Why we need platform engineering

    Development and Ops teams are navigating a lot of obstacles these days. Not only are tools, frameworks, languages, data storage, and messaging systems becoming increasingly complex, but the shift to cloud environments and closer Dev/Ops integration adds another layer. 

    While this can be exciting for small teams at first, it can quickly become overwhelming in daily work. The sheer amount of tasks and decisions can surpass what's manageable, leading to a significant slowdown in actual development. Terms like "cognitive load" and "burnout" come up for a reason. Development and Ops teams must balance mastering complex technologies in development and production while also integrating them securely and in accordance with company standards.

    So, how do we break this Dev/Ops cycle without stifling developer freedom? Platform engineering is the answer. It's a software engineering discipline that provides developers with a foundation: infrastructure, tools, and established processes. This helps them be more effective and reduces repetitive tasks.

    A brief history of platform engineering

    The concept of platform engineering emerged a few years ago. Tech giants like Netflix and Amazon pioneered self-service developer portals for tasks like provisioning virtual machines. In 2018, Martin Fowler's article on digital platforms identified five key areas for successful transformation: infrastructure, interfaces and frameworks, self-service, monitoring, and customer-facing technologies. 

    Another important influence came in 2019 with Team Topologies by Skelton and Pais, which introduced the concept of platform teams and their role within the development organization. The book also highlighted negative DevOps patterns, where unclear responsibilities hindered progress. These ideas fueled the rise of platform engineering in the following years.

    You can't buy platform engineering

    Hold on! Platform engineering isn't a product you can buy. It's a way to maximize the benefits of DevOps. The core idea is for a dedicated platform team to build a technical platform specifically designed for your software developers' needs.

    This platform is often called a "Platform as a Product," emphasizing that it's not a static piece of software. Instead, it's a constantly evolving solution tailored to your company's developers. Here are the key principles behind it:

    • Make developer lives easier. Automate repetitive tasks and simplify complex processes.
    • Offer choices, not limitations. Don't force developers to use specific tools. Provide options that hide the complexity of underlying technologies.
    • Self-service is king. The platform team treats the platform like a product with features developers can access on their own, like a buffet.

    Platforms for cloud native application development

    Imagine a cloud-native computing platform as a one-stop shop for all your cloud development needs. It brings together various tools and services, designed specifically for how your team works. This central layer makes it easy to find and use the features you need, no matter what kind of application you're building. A great platform offers a consistent experience, like web portals, project templates, and self-service options, so you can manage everything in one place.

    The features a platform offers should be based on what users and stakeholders need and curated as a product by assessing their needs. While platforms provide these functionalities, the platform engineers (also known as the platform team) don't always have to build everything from scratch. Specialized external services or dedicated internal teams can handle the underlying technical aspects. The platform itself acts as a central layer, ensuring everything works together smoothly and meets your organization's specific requirements.

    Platforms act as a bridge between the underlying technical providers (think cloud services or internal tools) and the people who use them (like application developers). In this role, they not only provide access to these capabilities but also enforce best practices. This ensures capabilities like security, performance, cost-effectiveness, and a consistent user experience for everyone. Figure 1 illustrates this relationship between products, platforms, and capability providers.

    Outline of platform capabilities and interfaces based on service providers.
    Figure 1: Outline of Platform capabilities and interfaces based on service providers, Cloud Native Computing Foundation Platform working group, used under Apache License 2.0.

    In this overview article, I’ll only focus on the two big areas: platform interfaces and platform capabilities. 

    Platform interfaces

    The “platform interface” layer summarizes the primary “interfaces” that developers can use when interacting with the platform. The choice of interface is left to the developers. The “interface” here often includes development environments (IDEs), browsers, or portals (like Backstage from the Cloud Native Computing Foundation), but of course also command-line tools (CLI) or version control systems (GitHub, etc.). 

    A fundamental idea here is to leave the well-known and established development process with existing tools untouched as much as possible. It is also essential to give developers the freedom to choose their favorite tools. This category also includes tools for managing and working with containers, such as Podman Desktop.

    Platform capabilities

    Think of a platform capability like a toolbox. It holds different features, which are like the individual tools. For instance, "observability" is a capability, and features within that toolbox might be collecting performance data (metrics), tracking how data flows (traces), and monitoring logs. You might even have tools to keep an eye on costs and energy use. The key is to decide which features within each capability are most important for your organization. We’ll dive deeper into the platform capabilities and show you more examples in a future article.

    Golden paths: Software templates as a shortcut for developers

    Internal developer platforms often use "golden paths" or "software templates" to streamline development. While Spotify coined the term "golden path," other companies use different names like "paved road" (Netflix). Regardless of the name, this concept offers a simplified way to build or modify software components. 

    Imagine these templates as form-driven generators for specific application parts, like services. Teams that can stay on this "path" leverage prebuilt configurations and best practices, allowing them to get things into production faster without needing to be experts in the underlying technology. The more powerful these templates become, the more developers use them, leading to consistent applications across the company.

    What’s included in a software template

    A basic template typically includes:

    • Source code starting point: This could be a simple "Hello World" application preconfigured with essential resources to get any developer started quickly.
    • Deployment pipeline: This automated pipeline builds the code, prepares the artifacts, and potentially deploys them to production. The pipeline may include security checks or approval steps depending on company practices.
    • Configuration files: These files configure the application itself, often using tools like Helm charts or Kustomize in the Kubernetes world.
    • Monitoring integration: Depending on needs, these templates can include preconfigured monitoring for performance, errors, and other aspects. Ideally, what gets monitored is defined declaratively in a separate file for easy management.

    Software templates are often configurable, allowing for some customization. The platform's ability to handle these variations is crucial for its adoption. This allows for changes to pipelines, backups, test data updates, etc., while still maintaining a balance between ease of use and handling special cases. The platform team plays a key role in deciding when something becomes a template and when it remains a custom configuration.

    While templates offer a faster and more consistent path, they aren't the only way to integrate code. There should always be options for experimentation and handling unique situations. Ideally, the templates are powerful enough to handle most cases, but there should still be ways for developers to dive deeper if needed. This transparency is especially important in "shift-left" cultures where development teams are also responsible for operations.

    Tips for building a winning platform engineering team

    Platform teams act as a strategic force that provides developers with the foundational building blocks they need to be more productive. Imagine them as the architects who design and build the infrastructure upon which developers construct applications.

    There are key ingredients for a successful platform engineering team. Here are a few:

    • Product focus: One of key success elements to adopting platform engineering is to embrace a platform-as-a-product mindset. 
    • Clear vision: What's the goal of your platform? Is it to boost developer productivity, speed up releases, save money, or improve software quality/security? These goals should be measurable, and many companies use the DORA metrics to track progress.
    • Communication: Platform teams need to collaborate closely with developers, DevOps teams, and product teams. Open and honest communication avoids misunderstandings and helps everyone work towards the same goals. The company culture also plays a big role–a supportive environment fuels success.
    • Automation and standardization: These are top priorities for platform teams. Identifying and automating common use cases and functionalities is crucial for making software templates and the platform itself more widely adopted. A broad understanding of existing projects helps with this automation.
    • Continuous learning: Platform engineering is a young and rapidly evolving field. The best teams are always learning about new trends and technologies to stay ahead of the curve.

    Developers: Building the platform, brick by brick

    Platform engineering thrives on collaboration. While platform teams lay the foundation, developers play a crucial role in shaping and strengthening the platform. Developers are essential ingredients to any platform engineering journey. Their everyday experience in delivering software solutions exposes them to frequent pain points and repetitive tasks. By sharing these challenges with the platform engineers, developers make it possible to pinpoint areas where automation or prebuilt components can significantly streamline the development process. 

    Address specific developer needs

    Real-world scenarios are essential for building a platform with practical value. Developers can contribute valuable insights by providing detailed use cases that showcase typical development workflows. This gives the platform team the opportunity to tailor components and templates to address specific developer needs, ensuring the platform directly tackles real-world problems. 

    Drive continuous improvement

    Once platform features like templates and automation scripts are rolled out, developers become the primary testers. Their feedback is crucial for ongoing refinement and improvement. By providing clear and actionable feedback, developers empower the platform team to continuously optimize the tools and resources they offer, ensuring the platform remains relevant and effective. 

    Promote code consistency 

    But developers aren't just testers; they're also builders. They can directly contribute to the platform by creating reusable components–well-tested functions, libraries, or code modules that address common development tasks. Sharing these components with the platform team makes them available to other developers, promoting code reuse and consistency across projects.

    Equip teams with knowledge and best practices

    Finally, the knowledge of experienced developers is mostly undocumented treasure. By documenting best practices and coding standards, developers can help embed these practices into the platform itself. This can be achieved through code comments, tutorials, or internal knowledge-sharing sessions. In essence, developers play a critical role in capturing and disseminating valuable development knowledge, ensuring it becomes an integral part of the platform and benefits everyone.

    Learn more about developer portals

    If you want to learn more about platform engineering and developer portals, make sure to download the free and brand new e-book Developer Portals: Prepare to Perform with Red Hat Developer Hub. Red Hat Developer Hub provides a unified portal and standardized software templates to simplify and enhance the development process. Visit the Red Hat Developer Hub product page to learn more.

    Last updated: February 5, 2025

    Related Posts

    • Red Hat Developer Hub: Your gateway to seamless development

    • Achieve more with less using Red Hat Developer Hub's self-service features

    • A developer’s guide to Red Hat Developer Hub and Janus

    • An introduction to Red Hat Trusted Application Pipeline

    • What is Podman Desktop? A developer's introduction

    • Podman Desktop 1.0: Local container development made easy

    Recent Posts

    • Introducing Red Hat build of Cryostat 4.0

    • How we improved AI inference on macOS Podman containers

    • How OpenShift Virtualization supports VM live migration

    • How SELinux deny rules improve system security

    • Advanced time manipulation with GDB

    What’s up next?

    Writing “Hello, World” hasn’t gotten any harder—but running it has. Download our developer’s guide to developer portals to learn how engineering teams can reduce friction and boost productivity using internal developer portals (IDPs).

    Get the e-book
    Red Hat Developers logo LinkedIn YouTube Twitter Facebook

    Products

    • Red Hat Enterprise Linux
    • Red Hat OpenShift
    • Red Hat Ansible Automation Platform

    Build

    • Developer Sandbox
    • Developer Tools
    • Interactive Tutorials
    • API Catalog

    Quicklinks

    • Learning Resources
    • E-books
    • Cheat Sheets
    • Blog
    • Events
    • Newsletter

    Communicate

    • About us
    • Contact sales
    • Find a partner
    • Report a website issue
    • Site Status Dashboard
    • Report a security problem

    RED HAT DEVELOPER

    Build here. Go anywhere.

    We serve the builders. The problem solvers who create careers with code.

    Join us if you’re a developer, software engineer, web designer, front-end designer, UX designer, computer scientist, architect, tester, product manager, project manager or team lead.

    Sign me up

    Red Hat legal and privacy links

    • About Red Hat
    • Jobs
    • Events
    • Locations
    • Contact Red Hat
    • Red Hat Blog
    • Inclusion at Red Hat
    • Cool Stuff Store
    • Red Hat Summit

    Red Hat legal and privacy links

    • Privacy statement
    • Terms of use
    • All policies and guidelines
    • Digital accessibility

    Report a website issue