Platform engineering is an emerging discipline focused on enhancing developer productivity by reducing the complexity and uncertainty of modern software delivery. It addresses some of the biggest challenges of doing DevOps at scale, including aligning development practices with business priorities and reducing the burden of managing a complicated web of tools and infrastructure across the application lifecycle.
Platform teams automate infrastructure management and enable developers to self-serve reliable tools and workflows from a centrally managed technology platform. By reducing cognitive load on development teams, platform engineering serves as an important evolution in cloud native software delivery.
The value of platform engineering
Platform engineering benefits software organizations by reducing operational complexity and removing friction from the development process. It provides a stable alternative to the chaos and inefficiency that the you build it, you run it mindset can bring to teams building large-scale distributed applications in the cloud.
The work of platform engineering teams shows up in four key areas:
- Building Internal Developer Platforms
- Standardizing and securing key delivery processes
- Setting and maintaining internal service level agreements
- Monitoring team performance metrics
Let’s take a closer look at these features of platform engineering and the value they bring to the development process.
Internal Developer Platforms (IDPs)
One of the most important roles of the platform engineering team is to build and maintain an Internal Developer Platform (IDP), which is a central collection of tools, services, and automated workflows that support rapid development and delivery of software products across the organization. IDPs provide a service layer that abstracts the complexities of application configuration and infrastructure management.
Importantly, IDPs allow developers to self-serve the resources they need to rapidly build, test, deploy, and monitor applications with minimal friction. Instead of having to wait for operational teams to provision infrastructure or resolve tickets, developers can easily spin up cloud environments, trigger CI/CD pipelines for automated tests and deployments, implement rollbacks, access logs and build artifacts, and more from a single API or GUI.
Paved roads to standardize processes and reduce cognitive load
Platform engineering gives organizations a unified system to manage, standardize, and scale typical DevOps processes and workflows. By vetting and curating a catalog of resources, platform teams create “paved roads” that simplify and accelerate development while also giving developers autonomy to use their own preferred tools when necessary.
In large organizations with hundreds or even thousands of developers, too much autonomy can result in tool sprawl, knowledge silos, runaway costs, and burnout. Paved roads offer a proven, reliable pathway to delivery that reduces the burden of operation complexity on development teams while allowing the organization to enforce stronger security, compliance, and budget controls.
Setting internal service level agreements (SLAs)
Platform teams treat IDPs as their product and developers as their customers. To increase adoption of the IDP, they set high expectations for the reliability and performance of the IDP and hold themselves accountable through service level agreements.
Maintaining a stable and secure internal platform is a critical part of the platform engineer’s job. A failure of internal systems not only makes it less likely that developers will follow the paved road to production but it can also cause interruptions in the flow of value to external customers. Platform teams actively monitor the health and performance of the IDP to ensure developers stay productive and the organization’s customers stay happy.
Monitoring key performance metrics
Platform teams track important engineering performance metrics like throughput, workflow durations, and incident recovery times to eliminate bottlenecks and tailor the platform to the needs of developers. If recovery times start to exceed the baseline, for example, platform teams may look to increase the number of automated tests in the pipeline or to improve the monitoring and alerting capabilities offered in the IDP.
By tracking data around developer productivity and performance, platform teams can ensure that the internal platform properly supports the organization’s development patterns and business goals.
Do I need a platform team?
Say you have numerous teams working on large distributed projects requiring complex engineering, or you have cross-functional teams overseeing application development, operations, and infrastructure. In that case, you should consider a platform team — you are likely doing some form of ad hoc platform engineering already.
Another sign that your organization is ready for a platform team is that you have a mature product, a clear vision of where it is going, and you are ready to start scaling up operations.
If your engineering teams are working on cloud integrations and infrastructure operations, that could indicate you need a platform team. A well-defined workflow for the engineering team, with a clear understanding of the roles and responsibilities of each team member, is an important prerequisite. It’s not necessarily about the size of your engineering team so much as the maturity of your product — you are bound to need platform teams as you scale up.
On the other hand, if you have a small organization with a handful of developers building a monolithic application, you are unlikely to get much benefit from a platform team. Focus first on achieving product-market fit, and automate any repetitive tasks to allow developers to focus on innovation. Once you are ready to start teasing apart your application into individual services with multiple engineering teams delivering on different value streams, a platform team can help you achieve the optimal balance of speed and stability.
Platform engineering with CI/CD
A robust continuous integration and delivery pipeline is a critical part of any platform team’s toolchain. It provides an automation engine that can trigger templatized workflows to build, test, and deploy code on development, QA, staging, and production environments. At an even higher level, a mature CI/CD pipeline can serve as a control plane for codifying, enforcing, and measuring business priorities in development.
At CircleCI, we provide a number of features that help platform teams automate and streamline critical development tasks. CircleCI orbs are portable, reusable snippets of configuration code that you can use to easily integrate popular tools and services in your workflows or share common processes across projects. And with config policy management, platform teams can set global rules to ensure every pipeline in the organization follows the same conventions and security policies.
The Insights dashboard gives platform engineers a graphical view of performance so they can quickly identify areas for improvement and optimize pipelines for maximum efficiency. It provides time-series data on long-running and frequently failed workflows, resource usage, and credit consumption so that platform teams can ensure their pipelines are delivering the speed developers demand and the cost effectiveness today’s businesses require.
CI/CD saves developers time and improves the development process. It forms the core of a platform engineering toolkit that enables self-service, reusability, and other key principles of platform engineering methodologies.
Platform engineering is a powerful tool for scaling up software delivery processes without sacrificing quality, security, or efficiency. By simplifying and automating resource provisioning and management, it enables developers to ship more value to customers in less time.
Organizations can use platform teams to unlock and scale up the benefits of DevOps, augmenting developer agility with organizational reliability, visibility, and confidence. If you are ready to improve your organization’s performance with platform engineering, start by signing up for a free CircleCI account to see how best-in-class continuous integration can help you achieve faster iteration cycles and better delivery outcomes.