Learn the differences between DevOps and platform engineering
Platform engineering has grown in popularity over the last few years and become an important part of organisational transformation. But many people still have questions about platform engineering.
- Is platform engineering the same as DevOps?
- Why has it become so popular?
- Should you adopt platform engineering?
Today we’re going to take you through the facts about platform engineering.
What is platform engineering?
DevOps is about breaking down barriers between teams. One of the key objectives for a DevOps team is to make small, repeatable changes that gradually improve the overall solution. Simply put: make it work, make it better. A DevOps approach can be implemented in several ways, but the core principle here is people over process. Find what works for the team and work iteratively.
Platform engineering, much like site reliability engineering, is a specific way to implement DevOps and put that approach into practice.
By centralising the DevOps team into a core function it is possible to create reusable frameworks and tooling that software engineers can consume, with or without the additional support of a DevOps engineer.
There are two approaches here. One is to create a single observable team for an organisation that has access to the tools and systems it needs so improvements can be easily implemented and tracked. The other (which can also just be an extension of the above) is to have a team focused on creating reusable frameworks, tools and components for consumption by the wider business, giving more consistency and adherence to wider organisational policies and processes.
How does it compare to DevOps?
There is a significant overlap between DevOps and Platform Engineering. They both work towards the same outcome but how they achieve it is different.
One of the main differences is the implementation detail. While DevOps is typically embedded into software teams working in a cross-functional, collaborative way, this can cause confusion as different approaches arise, particularly in larger organisations where the chain of command and the need to progress despite internal processes get in the way. This leads to DevOps potentially slowing down overall delivery. Some organisational areas win while others lose. Duplication of effort is high, introduction of risks is high, and these types of issues are hard to manage when the organisation is trying to do new things in a new way. The burden of the change becomes the problem.
Platform engineering simplifies this. You have one team, one point of contact for security, process, and best practice and you enable them to work quickly through the requirements to create a balance between what engineers want and what the business requires.
You end up with a balanced compromise – the winners are not winning as much but the losers are not losing at all. This is where platform engineering shines for large organisations, giving a single focal point to ensure high-quality work is done, left to be agile and deliver on the requirements of the software development teams.
Why has it become so popular?
Over the last decade, many organisations have gone through digital transformations to adopt agile and DevOps ways of working. These bring several changes into an organisation and to be successful, the organisation needs to change its attitudes to risk, financial management, and support. These changes are hard to convince large organisations to adopt across the whole organisation when you have hundreds or thousands of people.
Take for example a large company with over 15,000 people in software engineering. They had trialled individual teams with some limited access, and they had total hands-off but they ended up with one team tightly controlling infrastructure through a long-delayed pull request approach, another team supported the first and second line, there was fixed architecture and configuration options making it hard to consume. The span of control in organisations of this size becomes so large that hundreds if not thousands of people would need access to the specific solutions. The release process and management overhead from a security standpoint both become much harder.
Where platform engineering comes in is that you create a smaller group of people who need these higher levels of access and freedoms but it is a manageable size. They can focus on creating the reusable patterns, software, and tooling that others require (e.g. centralised logging, monitoring, release patterns for containers, cloud-native or virtual machines). They can ensure that the security and financial controls are in place and they give some level of freedom to the individual teams.
Should you adopt platform engineering?
There are no silver bullets for any transformation, whether it is a DevOps approach with embedded engineers or a platform engineering team, or a hybrid of the two. Having worked in all of these structures, all I can tell you is that you have to make it work, then make it better. That means being agile and accepting you don’t know what the right answer is and testing it and learning from it.
Certain organisations will see more success than others from different solutions, and while not a given, it comes down to how much autonomy and how much access can be given to a team. If full autonomy and access can be granted, a more traditional embedded model can work but you will produce a sprawl of technology and solutions and you will need to manage the outcomes of each team to ensure they cover the bases. If your team is not allowed or is unable to have those freedoms, a platform engineering team approach may work better for your organisation.
If you are unsure or cannot commit to a large piece of work, start small, create forums and share ideas internally. Change works best when it is not mandated and when people want to work differently. Worst case scenario: you learn a way that didn’t work.
As with any transformation journey, setting up the tools, fighting the processes, creating an identity and getting the teams who are working independently to work collaboratively will be hard for the first couple of years. But after this, the benefits will start coming for the organisation. Financial management of the cloud is taken care of, security is controlled, and business continuity and disaster recovery become centralised processes.
This is why Platform Engineering is becoming more popular and how it differs from DevOps, it’s all in the ‘How’.