DevOps & Platform Engineering - What's The Difference? With Dave Williams
DevOps Vs Platform Engineering
In this week's episode, Chris Hill gets Dave Williams to go deeper into how platform engineering is moving one step beyond DevOps. Listen in as they discuss the skill sets, principles, and mindset needed to enable this evolution in the field.
In this episode, we're talking about the difference between DevOps and platform engineering. I'm here with Dave Williams, CTO and Cofounder of Massdriver. Dave, talk to me about DevOps and platform engineering. What are the differences between it, particularly when it comes to cloud application development?
I think it's a mindset shift. I think in the DevOps world, we were furiously trying to automate on demand. Somebody was like, “I have an idea for this project. We need to deploy infrastructure. We need to deploy applications.” I would go off into a corner and start typing up infrastructure's code and then making Jenkins pipelines. It was all part of the building process.
As time wore on, each team became a blocker for the other. You'd want an engineer to answer a question about the needs of their application. They may not know yet and they have to do some more prototyping to figure that out. Likewise, some of these services are unwieldy and difficult to run reliably. As we shift towards platform engineering, we're focused on building a product that can deliver on the needs of your software engineering teams. I almost think about it like an ecommerce mindset. Think about catalogs and inventory and being able to provide things on demand without other teams being involved in the development process.
Do you think this is more an evolution of DevOps or a revolution, the complete divergence from it?
I think it's the next step in DevOps. I think DevOps automates everything and I think now it's making that automation on demand.
Do you think the skillset of the practitioners is going to be the same? What are the different skillsets that we're going to need as we start embracing platform engineering?
I think they're going to be largely the same. If you're an operations professional now, encoding best practices into the stuff that you make available is going to be important, understanding the business' security and compliance requirements and baking that into this infrastructure and these pipelines that are made available to your engineers.
If you're in operations professional now, encoding best practices into the stuff that you make available is going to be really important.
The skills that are missing are software engineering and product skills. Building that self-service layer in that like application that an engineer can interact with and then meeting their demands when they need them and prioritizing based on what that customer wants is largely absent in DevOps. It's definitely an evolution.
You were talking about automation, how automation fits into this. It also seems like there's collaboration between these teams. Talk to me about the principles that we need to be able to enable that.
I think when you look at a perfect example of two teams that don't talk to each other, like working together, you can think about SAS Benders. Stripe fulfills all the needs that I have as somebody who takes payment, but I don't work with them. I don't tell them what to put in their sprints and things like that. All of that is enabled by that platform element, that UI, and then being able to iterate on that UI based on feedback that I receive without anybody being in the same room, in the same planning meetings. That's where the holdups in automation are resolved. It's like, “I have a catalog for you. I have all the things that you need. If you are finding that you're bogged down in places, if you find that you're confused by certain things, I can quickly iterate to address that stuff for you.”
In what ways would you say that DevOps and platform engineering differ in terms of scalability and infrastructure governance?
It's a shift left mindset into a product workflow. You look at your customers, which are engineering teams and then you look at their stakeholders and your stakeholders, which are the CTO, the CFO, and the CEO. They all have concerns, a certain level of compliance, a certain level of security and theoretically, the flexibility to move fast and approach the market. Shift left all of that security and compliance and making sure that you're aligned with the stakeholders and then making that available and basically printable over and over and over again for that engineering team. Currently, DevOps is much more like ad hoc work. At minimum, it's copy-pasting something and at the most, it's like recreating the wheel every single time.
It sounds like platform engineering is going to be the integration of a lot of these different concerns. Talk to me about that unified interface that you get with platform engineering compared to a lot of probably the workflow integration type of work that you'd see from DevOps.
In organizations where we're doing pretty good at DevOps that I've been at, you'll see a tool like Jenkins at the center of it. It's a series of pipelines, a series of jobs that perform something but those trigger automation and they're not connected to the work of software engineering and running software in the cloud. The biggest thing with platform engineering is there's going to be richer context around how all of these jobs work together and which ones you need. Making that a smooth customer experience is going to allow software engineering teams to innovate so much faster and move so much faster.
When you're talking about customers there, you're talking about the customers being the software engineers or are you talking about the customers being operation engineers?
Interestingly enough, I'm talking about both. If I could imagine a strong platform, I'd be imagining something that's pluggable, like a package manager. If I follow the rules, if I build in terms of the framework, I can push this in and make it available to software engineers on the other side lightning fast. That will allow software engineers to get what they need faster with all the compliance and security baked in ahead of time.
You're the CTO of Massdriver. Give me the pitch. How does Massdriver as a platform help these teams actually enable DevOps and get self-service and governance and security?
There's an interesting question of how much cognitive load it requires for somebody to run software and run a product in the cloud. I think the DevOps world requires you to understand how to operate the meat grinder and then make your own sausage. In the world of platform engineering, it's much more like reading from a cookbook and getting the ingredients and understanding how it gets put together. That's like the appropriate amount of cognitive load for an engineer. They need to understand how to run it, but they don't necessarily need to understand security groups. That stuff should be automatic.
Dave, it’s been a great conversation. Thanks for taking the time to talk to us about platform engineering and DevOps and how companies are going to be able to embrace it.
It was my pleasure.