PurePerformance - Practical Platform Engineering vs the Marketing Hype with Maurico (Salaboy) Salatino

Episode Date: August 14, 2023

Codifying Golden Paths that ideally don't need you to build a K8s Operator! This is what Practical Platform Engineering should look like!In our latest episode we learn from Maurico (Salaboy) Salatino ...who has been contributing to open source for the past 12 years. Tune in and learn from his journey of designing and built platforms. He shares his opinion on the Platform Engineering skillsets, how to design for self-service, how to pick the right tools out of the 160+ CNCF project options and shares some of his favorite tools (including Crossplane, VCluster, Argo, OpenFeature, Keptn ...) that should be part of a modern cloud native platform.Links discussed in this podcast:Salaboy on Twitter: https://twitter.com/salaboySalaboy on LinkedIn: https://www.linkedin.com/in/salaboy/Upcoming Book: https://www.salaboy.com/book/Cloud-Native Snapshots: https://www.salaboy.com/cloud-native-snapshots/Diagrid: https://www.diagrid.io/

Transcript
Discussion (0)
Starting point is 00:00:00 It's time for Pure Performance! Get your stopwatches ready, it's time for Pure Performance with Andy Grabner and Brian Wilson. Hello everybody and welcome to another episode of Pure Performance. My name is Brian Wilson and as always I have my co-host Andy Grabner with me today. Andy, how are you doing? I'm very good and I'm surprised that you don't just make a comment about me making funny faces when you're doing your intro. Well, I assume our audience is smart enough to know that you're doing that. You know, maybe that would be a good reason for a video episode so people can see the harassment I get from you every time.
Starting point is 00:00:56 It makes me feel like a... Maybe this is why you always have these nightmares that you tell me about. Yeah, I haven't been dreaming lately. I got to work on that. You know, if I start writing down my dreams, I might be able to start getting back up with lucid dreaming. Oh, wow. If I start doing lucid dreaming
Starting point is 00:01:13 and you're in the dream, I can take over and take control. And I won't let you bully me in my dreams then. Look at that. That would be amazing. But we're not here to talk about dreams, you know. You know, no, that's That would be amazing. But we're not here to talk about dreams, you know. Are we? You know, now that's not a platformer.
Starting point is 00:01:29 I was going to make a reference to an old dream I had when I was playing Super Mario Brothers on a big screen TV and then I went to sleep dreaming of Super Mario Brothers and I was going to try to do a fancy segue about, you know, it being a platform game, but it's not a platform game, is it? It's a side-scroller. But I was on a platform this Monday, actually.
Starting point is 00:01:49 I was on a platform today. This Monday, actually, I was on a platform speaking about platform engineering. Believe it or not, I was at KCD Munich, Kubernetes Community Days. And now, finally, we release our guest because it's about time that he can speak for himself and not just listening to us.
Starting point is 00:02:07 I'm really happy that Salaboy Mauricio Salatino, I hope I pronounced all this correctly. I've been practicing my Spanish for four years with Duolingo and hopefully some of my pronunciations I get correct. I'm so happy that you're here. We met a couple of months ago, I think in London at a conference. And we then met again in Barcelona at DevPCN, where we both spoke about aspects of platform engineering. But without further ado, Mauricio, would you do me the favor and introduce yourself, who you are, your background, so that people know a little bit about you and also get a sense on why we're
Starting point is 00:02:45 inviting you today to this podcast. Perfect. Yes. Thank you very much for having me, folks. This is an absolute pleasure. I met Andy, as he mentioned, a couple of times already, but I've been following him for a while now. Yeah, my name is Mauricio Salatino. You pronounced it correctly. I have a lot of issues also pronouncing my own name in English. It's a pretty complicated name from English speaking people. But yeah, that's why I have my nickname Salah boy that I've been using since I used to play Counter Strike in my high school times. But yeah, so I've been working on this software, you know, in engineering industry for quite a while now, more than 15 years, and I've been doing open source for the last 12, full time.
Starting point is 00:03:27 And my passion is usually about helping developers to be more productive, and for that I just created tools, frameworks, libraries, projects, and contributed to a bunch of things that basically push the industry in that direction. And I guess that that's the main reason why I'm currently invited here, but also why I got into platform
Starting point is 00:03:48 engineering, and platform engineering specifically on Kubernetes, on the cloud native space. And yeah, it's an absolute pleasure to be here. I've been doing a bunch of stuff in tons of different projects, so we can actually talk about all that stuff, or kind of all the side
Starting point is 00:04:04 projects and all the other stuff that's going on right now. So first of all, I need to make more reference to your name because every time when I try to find you, I always make the mistake to write Salsa Boy because I'm a passionate salsa dancer and I always BS. I think we found a nickname for you, Andy. There you go. I've heard that. It's not the first time that I've heard that.
Starting point is 00:04:29 There is also Salad Boy as well. There's a bunch of variations that tend to get into people. When you're typing it, it's going to automatically complete something. So what I would really love to talk about is, let's pick the topic platform engineering, because this is how I think met you when you were at WTFS SRE in London. And then I really, I think platform engineering, and this is the way I opened my talk in Munich this week. I had the pleasure to have the opening keynote and I was talking about the dilemma that we are currently facing in platform engineering or in the CNCF space.
Starting point is 00:05:08 Because if you're new to the cloud native community, you're overwhelmed with I think more than 160 projects right now. There's so much stuff going on. It's so complex, but it's also a big opportunity. And my opening slide was, why do we need another talk about platform engineering? Because if I Google, I find your stuff, I find stuff from Nana, I find stuff from Viktor Farcic, from everybody, right? There's like a thousand things out there.
Starting point is 00:05:32 Why do we still need content on platform engineering? Why do we need somebody that writes a book, right? I mean, there's people that write books about platform engineering. Because I think we are not there yet. We have a lot of new people that constantly come into this space. Platform engineering itself is, I think, at least not mature enough yet to say we're done and this is the Bible. It's an ever-emerging state. build or to enable organizations to become 10x organizations versus being an organization that needs to hire 10x engineers which we know is not possible and doesn't make sense and doesn't scale
Starting point is 00:06:10 and people are looking a lot for references people are looking a lot for educational material on where to get started and so i think this is why i really enjoyed your kind of talks that I saw. I remember the demos that you always give with how you are easily standing up an environment for developers, just like a simple CAD, and then whoops, everything is up. And that's a great kind of golden path, making it very easy for developers to get the chance to get what they need without needing to worry about the complexity behind the scenes. So this is why I think we need to talk about platform engineering
Starting point is 00:06:47 and have people like you on a podcast to really talk about your perspective because you've been doing this for a while. You've created frameworks. You wrote a book about it. And so therefore, I would like to ask you, what is it that people that are new to this, what do they need to know? What mistakes shouldn't they do?
Starting point is 00:07:06 What is your reference? What is your approach to platform engineering? Yeah, that's a very good question. I have a very opinionated answer for that question. So there's always the industry answer, maybe like also the marketing answer, also like the CNCF answer to platform engineering about like
Starting point is 00:07:25 best practices how do we do things how do we use different projects together why we should kind of push all these projects to actually work together like and integrate and fulfill different use cases but my my vision around these topics is usually more practical vision right we need to demonstrate people how to do certain things so they can actually see things in action instead of just talking about like, you know, two very high level concepts, because that's where we start getting lost, right? That's when we start getting a little bit more marketing related or more like trend related or hype related.
Starting point is 00:08:00 And what we want to make sure that we don't do that, like we should be a little more practical, show people examples so they can make their own minds and actually have something that they can use to experiment. So my approach to platform engineering, I'm trying to go not so heavy on definitions on the book, but much more on, you know, I will show you stuff, then you can make your own decisions about how to use things.
Starting point is 00:08:22 These are the tools that are available today. These are where the tools are going. And these are the decisions that you need to make around these tools to be successful, right? And then you evaluate, you make a decision, and then you just implement different things. Yeah. One of the things that I mentioned in my talk,
Starting point is 00:08:39 I said it's a big hype, right? Obviously, everybody's talking about, but this does not mean that every organization needs to build their own platform don't start with building a platform i think the first thing what you need to figure out is if you are it's like building a product right obviously the platform is a product your users are your customer your internal development teams the question is do you even need to build a product because maybe what your organization needs is already available off the shelf.
Starting point is 00:09:06 Because if the only thing they need is a content management system to build a website, that's it. So I think what I try to also tell them is, you know, put your product manager head on. Understand the challenges that your engineers have right now. And then figure out, is it good to maybe buy something or build something? And if you build something, then you also need to look into what are the skills of your engineers have right now and then figure out is it good to maybe buy something or build something and if you build something then you also need to look into what are the skills of your engineers because every organization is different man we all have different skill levels and then you need to provide a product that helps your users with their current set of skills and mindset to actually get your stuff done yeah i think that i take kind of like maybe
Starting point is 00:09:45 like step up on the abstraction level on that on that sentence on that like point of view that you have and i would say that every company will need to basically glue things together for their needs right like and every company will have different needs different decisions that they are carrying on right like there are some things that the company already have that they will need to use. And internally, there will be teams gluing all these things together so they can actually produce whatever they are trying to produce. And from that point of view,
Starting point is 00:10:16 when I talk about platform engineering on Kubernetes, I always think about like, you know, if you are adopting Kubernetes as your target platform, like as the target place for running your workloads, you're actually doing some kind of platform engineering practice, right? You're already selecting Kubernetes, you're already defining some workflows to deploy applications and to build applications and to make those applications work together. So it's at least from the platform engineering on Kubernetes folks perspective, it's all about that. It's all about you are already choosing Kubernetes as your runtime, so you will need to make a bunch of decisions. And I think that the
Starting point is 00:10:55 whole hype and movement around platform engineering is basically based on the fact that we have figured out that all these decisions are now becoming code, like any other software development thing that we are doing. We will need to deliver extra code for our internal teams to do stuff. And we are just putting a group of people around that and making that group of people responsible for that code and for the maintenance of what we are calling a platform. That's why I think that it makes a lot of sense to talk about platform APIs. Right. It makes a lot of sense to talk about self service in the sense that we are providing an API.
Starting point is 00:11:33 So what you are going to call the API, you will get something out of it. And then it's all about golden paths, like codifying about how the organization will take all the things that are being produced in front of the customers. But again, that's where my definitions are pretty high level. And then I will go heavy on examples. I saw your presentation about observability and measuring platforms and figure it out how efficient are we by delivering these components or this blue code. And I am really passionate about that like we need to actually see what we are doing we uh we just we don't just need to build a platform as you mentioned before right like we just need to make sure that we are enabling teams
Starting point is 00:12:14 and measuring how good are we at doing that yeah and i think you know coming back to possibility and what i showed in in barcelona when you saw me and also what I did again in Munich this week. If you're building a product that is used by users, we need to make sure that the product is used. I think from a monitoring, from an Obserability perspective, you really need to figure out, hey, I have three golden paths out there. One for building a backend service, one for a website and something else like a serverless function you need to figure out how many users how many of your internal teams are actually using these templates these golden paths and in the end do they come back and create more
Starting point is 00:12:54 or do they completely ignore it because it doesn't work as expected it's like a product engineering thing right do my users use these features but in order order to know this, I need to also measure it. And also, is my platform, is it available all the time? Is it resilient? What if on Monday morning, everybody comes in and they all start to create new environments and all of a sudden everything falls apart? Then I would say nobody will probably keep using it and then just go to some other offering that is out there. So I think from an observability perspective, this is hugely important.
Starting point is 00:13:25 In your presentation, I remember that you had your custom CODs, right? You had your custom resource definitions for, I think, environments. Is this, and I think you also share all these examples, right? You share it. Is the environment an abstraction layer or a CRD that you recommend or that you see also out in the wild that's being adopted? Like kind of the give me an environment that has a certain spec and then just create it for me. Is this something that people should look into? I think that's a very good question.
Starting point is 00:14:01 For me, that's a very clear example that people understand. When I show them that example, the feedback that I usually get is that, okay, yes, I kind of need that, right? Like my teams nowadays, they want to have environments to do testing or to just basically change the application. And they don't have the fact that I can show that and that happens just in less than a minute. So I can do it live live presentation.
Starting point is 00:14:25 It's something that, you know, it actually gets people thinking about, okay, what other things can I do like that? Right, like environment is just an example, but you know, can I create like a new project and actually template the entire thing in less than a minute, right? And just enable my developers to have access to all these tools, like out of the box, without them needing to worry to
Starting point is 00:14:45 install tools on top of Kubernetes clusters and all those things that it will take them a lot of time and a lot of learning curve to actually go there, be efficient on these tools and installing and managing all these things. So to answer your question, what I've seen in the industry, it's mostly people want to create these automations for whatever they are doing. Most of the times those automations will include a set of like third party APIs. You know, like I want to integrate Salesforce with this other thing, you know, and create a user in this database and then just start this service. So the developer can actually go and change it in a place where it's actually behaving like the real thing.
Starting point is 00:15:26 Coming back to this example, because I was also just as fascinated by it when I saw it in your demos. I think what I would like to understand is what would somebody need? What are the skills of a platform engineer that would build something like this? I guess you need to know how to write operators because... That's a very good question. Yes. So my recommendation are around operators, because what Andy is asking is that the example that I've showed includes an extension to Kubernetes and include this resource that basically represented an interface an extension to Kubernetes, right? And included this resource that basically represented an interface for teams to say, you know, I want to request an environment. I only need to provide the parameters that I want to tune for the environment, right?
Starting point is 00:16:13 If I want to deploy my application, if I want to create a database, if I want to pay users, if I want to have mock data or whatever in the environment, right? But at the same time, my message, and I guess it is included in the book in some way, it's like you shouldn't be building operators. And why? And the main reason why is that if you, I mean, you can extend Kubernetes in any ways you want, but the moment that you decide to extend Kubernetes, then you own that extension and then you need to maintain.
Starting point is 00:16:43 And a Kubernetes extension, it's a pretty complicated piece of component because you need to actually be an expert on how Kubernetes works. Then you need to be an expert on the problem that you're trying to solve with that operator. And then if you are the only person in your company that has that expertise and you leave the company, then the company ends up with the component. It's pretty hard to maintain the example that i've showed there in in my presentation and it's included in the book uh basically it's using crossplane so there is no custom operator being created and all the administration of these extends kubernetes extensions is being handled
Starting point is 00:17:22 by a project that's already done that. And that's being used in conjunction with another open-source project that is called vCluster that allows me to create clusters on demand. And again, I'm going to be using extensions that already exist. So when I'm providing this functionality, like environments, like developing environments on demand, I'm actually not creating any extension internally for me to actually implement that functionality, which I think is a great way. It's highlighting the power of these open-source projects that are already solving common challenges for people, and then also showing and highlighting the limitations that these projects have.
Starting point is 00:18:01 So I'm showing what you can do without going and creating your own components, and at the same time, I'm showing the limitations and where these projects have. So I'm showing what you can do without going and creating your own components. And at the same time, I'm showing the limitations and where these projects are. So you can actually have a clear mental map of, okay, this project is giving me these three things. This other project is giving me these other three things and I can put them together and they actually work. So for me, this is cool.
Starting point is 00:18:21 So what you just said is basically, don't build an operator if you don't really have to. This is kind of the thing that I said earlier. Decide whether you build versus buy. In this case, you don't buy, but you kind of borrow. Right. So borrow what's already there because tools like Crossplane, Vcluster, also Captain, right? We are basically operators that already provide capabilities that through configuration, you can actually provide a platform
Starting point is 00:18:53 that already does automatic provisioning of resources, automatic provisioning of clusters, of vClusters. And then in terms of Keptn, automated validation of the deployments and observability of the deployments. Exactly. The problem with that is that by the end of that sentence you need to know about Crossplane, Bcluster and Captain, right? That's why the platform engineering team will need to basically spend time researching these projects and deeply understanding where these projects are going. So they can say I want these two features of Crossplane. I want big clusters because I want to do this. And then I want to pick up
Starting point is 00:19:28 these three features that will actually make my life easy. I think a lot of this ties into what you were hinting at. I don't know if you were specifically trying to hint at this, Andy, earlier, but when you talked about the hype and people jumping in, there's obviously based on what the conversation you two just in, right? There's obvious, obviously, based on what the conversation you two just had, a level of maturity that is needed. Not just, obviously, with the personnel who are going to be doing this.
Starting point is 00:19:54 There's certain knowledge they're going to need to have and think about, but a maturity within the organization. If you're starting to build a platform, and let's say you're a startup and you don't even know what your developers need and all, and someone says, hey, we should do platform engineering, and you're building a platform before you even know what the team needs and what pains they have, and you're picking and choosing things based on this looks where people say, we're going to pick this because it's the buzzword. And then they're making architectural decisions based on hype versus needs. And your conversation just there really illustrated the fact that the platform design and solidifying of it comes after you've built things up, you find out what's working, and then you can build the platform around what's there. And yeah, it's not just something to jump into.
Starting point is 00:20:51 Yeah, I guess that also like something that I've shown in my example is that clear kind of delineation between APIs and implementation, right? I created that CRD that basically defines what an environment is, and the platform team will decide to use cross-paying and big cluster or even create their own operator to deal with that interface. But that sets the line of saying, teams, as soon as they know how to define these resources and send these to an API server, the platform will take care of provisioning whatever needs to be provisioned.
Starting point is 00:21:24 And in the presentation, I'm heavily using the Kubernetes APIs to extend Kubernetes and send resources, but I've seen a lot of companies that basically write a layer on top, that it's just a normal REST API, nothing related to Kubernetes that allows teams just to consume an API without worrying about Kubernetes authorization and RBAC and all that stuff. It's just another facade on top of it that lets teams to just use the dashboard or something simpler to send these requests. And I think that that's a completely valid solution. I usually focus on the Kubernetes APIs because I think that, as you mentioned,
Starting point is 00:22:02 Kepton, Crossplane, Bcluster, Argos, Cd, a bunch of other projects are using the Kubernetes APIs as the base layer of integration. That's where we integrate projects to work. And I think that it's a great place for doing that. But for some people, that space is too deep or too technical or too Kubernetes specific that they push it away a little bit and write an abstraction layer on top and there you go. One thing you mentioned earlier is that eventually the platform engineering team needs to make very tough decisions because you need to pick tools that actually will solve your problem. Now the thing is there's many tools out there that are that have overlapping capabilities so the the question is like argo versus flux uh do i use opa versus caverno do
Starting point is 00:22:52 i use x y versus c right there's like so many things and uh because just coming back from from kcd munich i can a really encourage everyone that that is in the position where you need to make decisions now or soon to really engage in the community to figure out what's out there. Look at things like how mature our projects, how active are they. There was actually some really good talks also at KCD Munich where they were highlighting tools, but then they say, you know what, this tool didn't have any big activity in the community on the on github for the last year so we don't really know where this is going right so don't just because you see a flashy video and don't just make the decision
Starting point is 00:23:36 then but do your homework and say you know how active is this project also there was one conversation that was that was really interesting it was from victor fargich uh who did a presentation on policy on on the uh on the admission web hook uh and then he looked he showed that uh there's some new core kubernetes capabilities coming in for policy enforcement and then he also made a statement that um you know certain policy agents that are already out there will be easier to convert over to that new standard because they're also contributing versus others it will be tougher if you are on that tool in the future so my point is it's it's really tough right because there's so many tools out there so many different options but some basic homework things like how active
Starting point is 00:24:23 is this community how many git commits come in do they have an active slack channel homework things like how active is this community? How many Git commits come in? Do they have an active Slack channel? And things like this, right, I think is very important just to make at least not a basic mistake to pick a tool that will go away in the next couple of months anyway. 100%. I think that gives me a very good idea for a blog post because it's actually something that you can clearly specify like a platform engineering team that
Starting point is 00:24:45 is basically making these decisions based on CNCF projects. We can actually have some kind of like checklist of saying, you know, if you're choosing any project, first of all, make sure that you can engage with that community. I guess that for me and writing the book and engaging with different communities have given me that visibility on where the projects are going. So it's usually not only important to understand where the projects are today, but also where they are heading, because that's pretty much something that will impact your platform journeys. If you're adopting a tool and you know actually where they're going and where they're focusing specifically, then you know that you can engage in those initiatives and just shape them in the way that will work for you.
Starting point is 00:25:26 Or at least you will expect some output from that community that you can see that it's actually working on something. For me, that usually have given me the edge on knowing where things are going, right? Like I engage deeply with some projects that I believe that are fundamental for these conversations. And then as you just talked about the journey on Kubernetes, because I'm just reading the, I'm just looking at your salaboy.com book. So the book that you wrote on platform engineering on Kubernetes, it actually starts with the platform engineering on Kubernetes book
Starting point is 00:25:58 reflects my journey of navigating the CNCF landscape and the cloud native communities around it. Yeah, it's actually... So everybody, we will... The links to everything we talk about today, all the content that Mauricio has put out, you'll find that in the description of this podcast as well.
Starting point is 00:26:19 I can share a discount code as well. Yeah, that would be awesome. Yeah, for sure. You just failed sales 101, right? Sales 101 is you try for full price and then you give them the discount code. So yeah, this is the thing
Starting point is 00:26:36 about books, right? I'm writing a book not because I decided to say, hey, I will write a book and then I started thinking about actually I decided to write a book after going through all this journey and saying, hey, I have too much material for blog posts so I can actually create a book that will save people time. And I don't know how the publishers will feel about this,
Starting point is 00:27:00 but you don't write a book for money. You actually write it because you're just crazy. And I don't think there book for money you actually write it because right you're just crazy and i don't think there's any sane authors out there right yeah exactly yeah not me but but this story kind of reminds me uh brian of our conversation we have with nana from tech world with nana because she started her youtube channel because she had she took so many notes when she started to roll out Kubernetes in the early days at A1, the Austrian Telecom. And then she had so much stuff that she kind of researched because there was no good documentation and information out there.
Starting point is 00:27:36 And then she decided, hey, you know what, I will share with the community. And then her YouTube channel took off. Perfect. That's how it goes, right? like usually if you ask me you know like write 30 pages about something that i don't know it will be pretty hard but most of the chapters were based on my collaborations with different projects right so you know and that basically reflect my journey and then i realized that it's not only my journey it's basically actual like like every company's journey on top of Kubernetes, it's about
Starting point is 00:28:06 making these decisions. And usually in the order that are described in the book, like, how do I build containers? How do I deploy things into the cluster? How do I apply policy? Or how do I provision infrastructure? So that's pretty much what the book is about.
Starting point is 00:28:21 And without revealing who killed, who is the murderer, not revealing the secret of the book is alone yeah and and without revealing who killed who is the murder uh not not revealing the secret of the book but what other things are in the book and what what should people why should people really look into this any other things that you learned that are really essential especially for somebody that is just starting with this yeah so i think that the the main objective of the book is again it's like to save people's time, right? So the main idea here is that if you read the book, first of all, you should be able to go out like after reading the chapters and following the tutorials with hands on, you know, practical
Starting point is 00:28:57 experience on the projects that I mentioned, but also understanding how these projects fit into like the bigger picture. So it's not about cross-playing is great, you should use it, this is how you use it. Tools like cross-playing will help you to solve these problems. This is where cross-playing is, this is how you use it, this is how you use it in the context of the examples that I'm providing in every chapter, and this is how it fits in the picture. You can use cross-playing, you can use something different, but when you're looking at this problem, these are the topics that you should evaluate.
Starting point is 00:29:28 And this is how you come up with a decision for tomorrow. Tomorrow I will start using crossplane. These are the challenges that you're going to face. And if you want to pivot, make sure that you have these APIs, abstractions, and interfaces so you don't get stuck with a single solution. Hopefully that makes sense. Yeah, it makes a lot of sense.
Starting point is 00:29:50 And I'm just looking at again, you have a very you give a great table of contents on all the different chapters. Now, I would like to quickly talk about chapter number nine, even though we hit on it in the beginning. Number nine is number nine. I was doing a Beatles thing from forget it
Starting point is 00:30:09 do it again come on number 9 when you play it backwards it's turn me on dead man which was part of the whole Paul is dead thing probably way over your heads and anyhow chapter number 9 we're going to number nine.
Starting point is 00:30:25 Let's get there. Let's stop my stupid distractions. Chapter number nine is called Measuring Platforms. And in parentheses, draft needs extra work. But no, seriously, it's about the measurement of platforms and how to really make sure that they are successful because that's a big topic i have my opinion i think we have a common opinion a shared opinion but i want to hear it
Starting point is 00:30:49 from you so when people build platforms what are the things you need to measure in order to make sure that your platform is actually successful yeah so again because people talk about like choosing tools uh what i wanted to kind of discuss in the last chapter is how do we measure that these tools are effective on doing what they are supposed to do? So if you're trying to improve how fast developers are releasing software in front of customers, then actually measuring how many deployments do you have and following the DORA metrics, something that you also mentioned in your presentation. It's pretty important. I'm focusing on DORA mostly because it's something that it's also been worked on quite a lot. I haven't seen any tools fully automating all that stuff using standards, like actual standards that
Starting point is 00:31:42 then you can say, okay, if i choose this tool i don't get super stuck with this tool and i cannot change it so that was kind of like my my main focus i tried to build uh something using cloud events uh there so basically just checking my pipelines my delivery pipelines plus all the github stuff calculating dorametrics and showing how people can just actually build that and map those metrics to the software that they are running. I wanted to give readers a small framework so they can tap into the existing systems, emit the events that the tool needs to calculate the metrics, and then just show that people
Starting point is 00:32:22 can actually build that. Yeah, as you may know, after we met, I saw your presentation with Keptn and also calculating some Dora metrics, which I actually think that maps really well to that chapter. So I'm hoping to be able to include some of that while it's still in draft. Yeah, and one thing I wanted to highlight, because I think this is the...
Starting point is 00:32:46 The more I talk about the story and why we built Capitman and what it does, I come to the realization that as we're moving architecturally to obviously smaller and smaller components that make up an app, we must not make the mistake to measure the success of the platform by looking just at how many pods are deployed because we still deploy applications in the end and I think because there's no application concept there's no CAD that defines an application this is also what we are trying to solve with captain because port deployment doesn't mean your application is deployed right the application may consist of two pods five five, ten, seven ingresses, everything that belongs together. And so one of the things we are trying to
Starting point is 00:33:28 do with Captain is to actually measure the time it takes to deploy the whole app by looking at metadata and based on that metadata, we know which pieces actually belong together. And so because in the end, you get what you measure, I think is a very famous quote. And if you just say, I built a platform and I can now show you that week over week we're deploying more pods, this doesn't mean that we're actually deploying a new version of an application that can be used by the end user. And I think that's a big metric that we want to also bring the awareness to the community. Measure, A, how often you really deploy a new version of an app, and a new version could mean multiple deployments that belong together to one
Starting point is 00:34:10 logical deployment. And the second thing that we also wanted to stress is just because your pods are running doesn't mean your application is actually usable, and it does what it does. Definitely. I think that's one thing, right? Measuring how many changes are you applying in front of your customers might be a very good metric. But from a platform perspective, I'm really interested in measuring platform
Starting point is 00:34:35 capabilities. How many capabilities that the platform team is providing to teams are being actually consumed and being used to something that you mentioned at the beginning, right? If offering you know like release strategies how many a b tests maybe testing baby test deployments are you doing and is that actually working if i give you feature flags how many features are you enabling and disabling every week right yeah those kind of metrics actually show velocity and show how much the platform is being used and show us how much time are we saying to our teams yeah and thanks for bringing this up especially the uh
Starting point is 00:35:11 that's a good one the feature flagging like if you're providing feature flagging as a service or as a capability of your platform are they really adopted and if they're not they adopted and the question is either you don't educate your users about it you don't tell them how to use it right that's one could be one thing or it just doesn't work. But that's the thing with the whole Kubernetes space, right? Like if you give Kubernetes to people, you don't have feature flags in there. So basically, you're pushing your teams to find a solution for that. And usually, large organizations, they will always have a team that will say, we will implement our own feature flagging mechanism. We will do it ourselves, We'll just implement it in there. And that will take a lot of time first. And if you
Starting point is 00:35:51 don't measure how much time it takes implementing that thing for teams to use, then you're not measuring how efficient your platform team is. If you're adopting something like open feature and you have something that it's been provided already for you, how often is that being used will give you an indication of how much of the investment is paying back when you adopt it. I think that we need to start measuring this. Yeah. And there's one more thing I want to talk about is because this is also what I tried to present in Munich.
Starting point is 00:36:24 The platform itself is made up, as you said, of different components, different building blocks. You talked about Argo earlier, you talked about Crossplane. In a typical platform, you probably have some type of container registry. You have, I don't know, there's some Git, something is in there, right? That belongs to the platform platform and my point that i also try to stress if you're building a platform and you treat it as a product then you also need to make sure that this product and all of its capabilities is is available is efficient is resilient so you need to monitor argo caverno harbor whatever you use the same way as you would monitor your business critic labs so for instance what we do internally right we have synthetic monitors set up that backstage is always up and running
Starting point is 00:37:11 because if backstage doesn't work for whatever reason then developers cannot go to their catalog they cannot create a new project based on the templates the same is true with argo if argo isn't running and it cannot sync fast enough all the changes, then, well, things will pile up and eventually fail and then developers are not as efficient anymore, right? Exactly. Yeah, and the same with APIs, right? Like your platform APIs need to be refined as any other software
Starting point is 00:37:37 that you're building, right? Like you need to spend time designing those APIs and making sure that you are maintaining those APIs in a good shape. Like they can evolve, they can just be versioned, you can just create new implementations and endpoints, new functionality for teams to use. While this is the tricky thing, right? You provide these APIs, but you need to make sure when you're talking about Cloud Native and the CNCF space is that if people want to still access Cross-link, they should be able to. And that's why there are lots of conversations nowadays of platform teams creating very strong APIs that people cannot bypass. It will actually slow down some things that actually have that
Starting point is 00:38:16 knowledge already. Yeah. One more thing that I would like to ask on the examples that you always present at the conferences. Are these examples going to be just part of the book if somebody is then purchasing the book? Or are these examples out there already somewhere? Yeah, so those examples are in a repository that is called Salaway. That's my username in GitHub. And then it's slash platforms on gates. Perfect. naming github and then slash platform platforms on gates perfect so i want to make sure we also another link that we get another link yeah yeah that would be awesome now because it's really
Starting point is 00:38:54 great great stuff that you have right and as you said you want to show people something and you are and and your uh platform your reference architecture there or example is just makes makes things tangible, right? You can actually then kind of grasp it. That's the important piece. Yeah, and the book takes it kind of like the next step, right? Like I want people to run this in their local environments. Like I want them to actually create a Kubernetes cluster locally
Starting point is 00:39:17 and run these examples. So I'm actually spending a lot of time. That's why I'm moving most of the examples to this new repository now, where first of all, you can run them kind of like one by one chapter by chapter you can just build up on the example and then uh also like you can separate them as well right like if you're only interested in provisioning infrastructure with crossplane then you have like a separate tutorial like step-by-step tutorial where you go from not having anything to create a cluster, to install the tool, to use the tool, to customize the tool, and then to see the example in the context of the examples
Starting point is 00:39:52 in the book, which I think that are also valuable in the sense that they are just not hello words. You have an application with multiple services, it's working, so you need to expose it, you need to access the application, you need to make sure that it's working and fully functioning. Yeah. One thing that I would like to show you after we're done with the recording is we at KCT Munich, Alois Redbauer, who I think you also know, he kind of, you know, lead it or he was actually the one behind, you know, starting Captain and then also Open Feature. He did a workshop this week in Munich on progressive delivery best practices.
Starting point is 00:40:39 And he actually also created a new workshop where you can stand up your own cloud native platform by just using Argo, where Argo was first used to stand up the platform, installing all the different tools, and then also providing a reference on how to deploy apps that are enabled with open feature. So I think I would also be interested to forward this to you and to see what type of feedback you have on that and how we can also join forces so that not everybody has to create their own kind of template architecture for everything. Yeah, exactly. And I think that again, like having examples that you can install and change, right? Like I'm really pushing people to say, you know, you just run the example, but these are all the other things that you can do. Just make sure that you go and change it and experiment with it, because that's the only
Starting point is 00:41:18 way that you will get up to speed to make the right decision. Mauricio, as we're getting to the top of the hour here almost, I know you have a new thing going on, or at least you mentioned this when we were exchanging some messages. It's called Cloud Native Snapshots. What is this all about? Yeah, so I'm... Because again, I have too many requests of writing this. It's like I decided to, because I've been focusing for the last five years
Starting point is 00:41:47 on contributing to different open source projects. But what I'm seeing now is that because the cloud space is reaching to a very good state in maturity where projects now, we know that projects work. And we know that projects are being adopted for production workloads and all that stuff. But the next step is, as you mentioned before, like platform engineering teams,
Starting point is 00:42:06 they need to know a little bit more about how sustainable the project is. Like, you know, how, if the project is going to last for some time or not. Right. So I've been kind of trying to write these reports where I'm summarizing what I'm seeing around like open source projects and the companies behind them. Right. I want to make sure that, you know, if a project is being well funded by a company that is pushing, that's a good thing, but if you see that the project
Starting point is 00:42:32 is well funded and there are like multiple companies pushing for that project to be successful, most of the time that goes really well, because first of all, it's not a single company pushing for one thing that they think it's right, it's just the entire industry backing that up. And then also gives me the reassurance that I'm not alone in just adopting this. There are other projects and other companies actually putting not only money, but also like very smart people to solve these problems. For me, that's key. And I haven't seen anything, mostly because CNCF, politics, and open source projects, usually money doesn't tend to be mentioned in these spaces
Starting point is 00:43:10 when you evaluate the open source project itself. But for decision makers, you actually need this information. I realized that from a foundation point of view, talking about these topics sometimes is not that easy. So I said, okay, let's write some of these reports showing both things right like i'm also kind of like the things that i'm seeing when i'm going to conferences and when i'm talking to people right this company is well funded the project is good there's a big community around it that's a good sign then it might be kind of like a good snapshot for you to say okay i can make a decision on this
Starting point is 00:43:44 tomorrow if not you need to go out i can make a decision on this tomorrow if not you need to go out and actually meet a lot of people to get to gather that information and then come up with the decision once again i'm just trying to save people some some time and money but you know like reports takes time so i'm just trying to do this kind like in an open way and trying to get some supporters trying to get some sponsors around it. But I'm committed. I will keep doing this for sure. That's awesome. I see you have the two, May and June, are already out there, right? Obviously the tools that you are
Starting point is 00:44:14 also using in your workshops, so Crossplane and vCluster, which I also agree with you. I mean, these are the two tools for these two kind of capabilities that we see out to the most and also the great community, big support by different companies.
Starting point is 00:44:31 Yeah. Yeah. And again, I'm focusing like in these two cases, like companies were funded around the project, right? Like they had an idea and then the companies were created. They are like a couple of startups. But then when you see who is actually contributing to the project, you see larger and larger organizations joining.
Starting point is 00:44:50 And for me, that's a good sign. If larger organizations are joining, then that basically means that I can adopt it. And I know that if I go a little bit deeper on the projects, I can see where the projects are headed. Mauricio, did we miss anything that the platform engineering community needs to know
Starting point is 00:45:08 besides obviously signing up for your book and once it's ready consume it and look at your GitHub repositories with all the samples, what else did we miss? I think that no, I think that we covered pretty much everything, as I mentioned
Starting point is 00:45:23 again like the book and my snapshots and everything is based on my community involvement. And the more that I get older, the more that I try to help people to follow a similar journey. If people want to get into open source, if they are passionate about something, and if they need mentorship, feel free to reach out at Salaway on Twitter.
Starting point is 00:45:44 My email is pretty easy to find as well. So just get in touch if you're interested. I'm always happy to help people. And if you see me around in conferences or anything, I'm more than happy to have a chat or sit down and code something new. Yeah. Maybe that's actually typically, Brian, that's the question that you always ask in the end.
Starting point is 00:46:04 But he just kind of hinted at it. Where will people see you next? That's a very good question. Do you know where you are in terms of conferences? So, KubeCon North America, I will be definitely there. I applied to Shanghai as well because I really want to go to China. That's a very selfish and personal thing. That's a very good question.
Starting point is 00:46:29 I don't know if there is anything else in between. Hopefully not, so I can just actually finish the book and we'll do the stuff that I need to do for the company that I'm working for. Something I didn't mention, I guess that that's also really important. I'm currently working for a startup that's called Diagrid. We are very developer focused. We are building tools for developers. We help teams to run their applications in production on top of Kubernetes using a project that's called Dapper.
Starting point is 00:46:57 And yeah, I'm super happy with the company, to be honest. I'm really happy to be working in a fast-paced environment where we are contributing to that CNCF space and trying to figure out how to help developers, how to get them there faster and again how do we fit into the Platinum journey. So yeah, besides that we are hiring as well as usual. If you are interested in that space, I'm happy to answer questions. Yeah, we'll definitely link all this information as well. Because I think we want to make sure that if people are building great tools for developers that make their life easier, that's good.
Starting point is 00:47:38 That's what we need, right? Yeah. It's all about that. Like, platform capabilities, it's pretty related to some of the stuff that you mentioned. You know, feature flagging, helping developers, APIs. So I'm happy with it. I'm very picky.
Starting point is 00:47:56 And if I'm happy, I think that a lot of people will be happy. But what you can do, if you ever want to come to Austria, you should take the opportunity. And we have KCD Austria coming up in September. So Kubernetes Community Days end of September. And the CFP is still open until the end of July. So we got about 12 days left to put something in. And Austria is pretty close.
Starting point is 00:48:24 I'm based in the UK, in London, so it should be like a two-hour flight. Maybe? Yeah, exactly. Direct flight with Austrian Airlines or whatever airline you prefer. But yeah, it's a two-hour flight. And you suddenly have commercials for Austrian Airlines.
Starting point is 00:48:39 Yeah. The sponsor. Is that the sponsor? Yes, the sponsor. Perfect. Please send me the sponsor. Perfect. Yeah. Please send me the link. I will take a look at the CFPs. And, you know, if they are interested in platform engineering,
Starting point is 00:48:51 I will be more than happy to go there and talk about it. Yeah. They definitely are. And I will be the host of that KCD. So, yeah, that would be lovely to introduce you to the audience. Nice. I'm building a very cool demo for the book now to extend the thing that you saw in Barcelona. And I think that this is actually the next level. Thanks.
Starting point is 00:49:14 Oh, yeah. Yeah, I'm happy. I'm happy with it. Then get your CFP in. I want to see you on stage. There you go. That's good. So a couple of last thoughts for me. First of all, I'd say Mauricio, with you saying
Starting point is 00:49:27 being selfish about going to Shanghai, I think if you're sharing all this information and doing all these conferences, there's no selfishness in picking where you want to go at all. It's great to have had Salaboy and Salsa Boy on the same podcast together. Andy,
Starting point is 00:49:43 speaking of salsa and all this, I think you should start an airline. Well, not even starting an airline, but have you ever salsed on an airplane, like mile-high salsa? Something to consider. It's interesting. I need to talk with Gabi the next time we're on the plane.
Starting point is 00:49:57 But I did want to bring it back to something you said in the very, very beginning, Andy, about why do we need to keep talking about this? Do we need to keep having conversations about this and obviously you and I and the podcast have had been starting this conversation not starting but we've been having these conversations for the last few months right but I've recently mentioned platform engineering to my team right and none of them hurt so Mauricio we work with in pre-sales for you know Dynatrace obviously and you know we interact with customers, new prospects.
Starting point is 00:50:26 And on my team, we see a lot of the more startup styles, like smaller companies that are usually a lot more nimble. But no one's mentioned the platform engineering yet. So obviously, yes, we need to keep pushing this stuff because I'm sure there are individuals in these companies that are aware and that are exploring and trying to get into these places. But in terms of corporate adoption, where they start officially moving over, that's still way behind.
Starting point is 00:50:52 We're not seeing big pushes of it. So by all means for you, for anyone else we've been talking to or anyone else listening who's part of the platform engineering community, keep getting the word out there, keep spreading it because I think it's going to only help. And you mentioned the idea of hiring 10x developers. This is where my mind starts thinking in more crazy areas,
Starting point is 00:51:12 but there's this looming threat of AI taking over development roles, at least at some level. So if you can make your developers much more efficient and useful as opposed to requiring a ton of, you know,
Starting point is 00:51:27 just like code sweatshops, you know what I mean? That's going to make it less attractive to try to replace by AI because you're going to have developers who can just get in there and focus on writing really good code and in some cases creative code and finding new ways to contribute. So it's
Starting point is 00:51:43 a double whammy of benefit to bringing that platform. So anyway, those are the final thoughts I had there. Yeah, that's pretty good. When I talk about AI, I usually don't focus much on AI because I believe that AI might be another tool that the platform team can give teams for them to produce stuff. And by applying all these platform engineering concepts that we have been discussing, I think that you are basically constraining the space where the AI can help developers, which is something good. You're giving a framework where these tools can be used instead of
Starting point is 00:52:21 just giving people AI and they would generate whatever. Right. So I think that that's a pretty good point. When I think about AI on platform engineering specifically, right? Like how do we glue all these tools together and how do we apply them? I see it like that's very company specific and very human centric right now. We need people making these decisions and having all this knowledge in their head and experience. It's pretty hard for me to think that we can automate any of these decisions, but we will see what happens.
Starting point is 00:52:52 Yeah, and I think with anything with automation, all this stuff's going to come down to what are the things that you repeat over and over and over again? That's what you can then start assigning to that bit, which frees up people to do the next level stuff. Right. So if we have that approach and people are working smarter and it's going to be less, you know, just even from the selfish point of view. Right. A company is always going to be looking at where can we save money? Do we need all these developers or can I just get chating it to a degree, but into places where it's the mundane tasks, then you're ahead of the game and it's a little bit more job protection too. But all benefits anyway. But that wasn't even the main point I wanted to make. But yeah, no, I think it all plays into this.
Starting point is 00:53:38 Anyway, thank you so much for being on. Really appreciate the time you took with us today and hope everyone enjoys the links. I'm going to go check out the books. I definitely want to get more information about this myself. And, uh, yeah, thank you so much. Thank you. Thank you. Bye-bye.
Starting point is 00:53:55 Thank you. Bye-bye.

There aren't comments yet for this episode. Click on any sentence in the transcript to leave a comment.