Platform engineering is a hot topic in software development these days. According to Gartner, “by 2026, 80 percent of large software engineering organizations will establish platform engineering teams as internal providers of reusable services, components and tools for application delivery.”
Additionally, Gartner predicts that “platform engineering will ultimately solve the central problem of cooperation between software developers and operators.” This goal may sound ambitious but is probably also quite familiar to those involved with DevOps. In this article, we’ll look at the relationship between DevOps and platform engineering and provide an overview of key responsibilities and skills for platform engineers.
“Platform engineering expands on the practices of DevOps by moving development out of silos and taking a collaborative, bird’s-eye view of an organization’s technology,” says Manish Sharma.
To further explain the difference, David Sandilands notes that “DevOps is a conceptual mindset for defining the ways development and operations collaborate. Platform engineering is the creation of a centralized platform with defined sets of tools and workflows.”
Whereas “DevOps touches planning, coding, building, testing, release, deployment, operations, and monitoring (the entire development and operations cycle),” he says, “platform engineering mainly touches the deployment, operation, and monitoring elements of a DevOps cycle.”
Overall, says Steven Lohrenz, “platform engineering is the process of designing, building, and maintaining workflows and tools for software engineering organizations to drive consistency and speed up common tasks.”
What Does a Platform Engineer Do?
Within this role, platform engineers “manage, design and implement the infrastructure to support the smooth functioning of an application,” says Laiba Siddiqui at Splunk. “Their primary responsibility is to build and maintain an internal developer platform (IDP) that supports software delivery systems' seamless running.”
Key responsibilities, according to Spiceworks, include:
- Designing and implementing infrastructure
- Monitoring and optimizing the performance
- Automating the application deployment process
- Maintaining and updating infrastructure and applications
- Providing troubleshooting and debugging support
- Staying abreast of industry movements and best practices
Of course, these responsibilities vary depending on the needs of an organization, but, says Siddiqui, they may also include:
- Writing code in Java, Python, or other languages
- Working with databases such as MySQL or MongoDB
- Building APIs using frameworks like Spring Boot or Express
The general skills related to the role of platform engineering require experience with a wide variety of tools and technologies. According to Spiceworks, these may include:
- Expertise in programming and scripting languages
- Understanding of networking concepts
- Expertise in debugging and troubleshooting
- Familiarity with CI/CD pipelines
- Cloud computing skills
- Proficiency in container technology
- Monitoring and observability skills
- Databases and database languages
Another key aspect, says Sandilands, is automation. “Platform engineering and DevOps both exist to streamline development and delivery of software. That’s why automation is vital to both initiatives.”
In DevOps, automation helps teams deploy updates to production faster, but “platform engineering goes one step further by automating tasks like infrastructure deployment from a central platform. That way, developers can focus on their own core work instead of building their own tooling and processes,” Sandilands explains.
“It’s important to note that platform engineering doesn’t mark the end of DevOps,” Sharma says. It takes the core foundations of DevOps to the next level, and similarly “requires leaders and developers to encourage collaboration and break down silos between operations and development teams.”