Slide 1

Slide 1 text

Do it RIGHT. Platform user’s remorse Or how I learned to build atop platforms 18.02.2025 Davor Martinović

Slide 2

Slide 2 text

Do it RIGHT. Millennium Park 4 6890 Lustenau Weyringergasse 1-3 / DG 1040 Wien About POSEDIO 2 Nice people, care about their work

Slide 3

Slide 3 text

Do it RIGHT. About me 3 • At POSEDIO since 2021 • Different roles over the years, now IT Consultant • Not a fan of ceremony, big fan of hot sauce 🔥 • Currently trading sleep for baby talk

Slide 4

Slide 4 text

Do it RIGHT. What makes an internal development platform? 4 A (digital) platform is a foundation of self-service APIs, tools, services, knowledge and support which are arranged as a compelling internal product. Autonomous delivery teams can make use of the platform to deliver product features at a higher pace, with reduced co- ordination.

Slide 5

Slide 5 text

Do it RIGHT. What makes an internal development platform? 5 *From What I Talk About When I Talk About Platforms by Evan Bottcher

Slide 6

Slide 6 text

Do it RIGHT. What we WON’T talk about today 6 • Why platforms fail? • Where does the term platform come from? Who popularized it? • What is the business model of a platform? • Why proponents advocate for a platform to be treated as a product? • What is platform engineering and what happened to my DevOps? From platformengineering.org/what-is-a-minimum-viable-platform-mvp

Slide 7

Slide 7 text

Do it RIGHT. Buyer’s remorse 7 • Buyer's remorse is the sense of regret after having made a purchase. It is frequently associated with the purchase of an expensive item. • My personal remorse: “For 400 EUR I can get an iPad.” I should not have bought that…

Slide 8

Slide 8 text

Do it RIGHT. What’s an IDP made of? 8 GCP example – from platformengineering.org

Slide 9

Slide 9 text

Do it RIGHT. What’s an IDP made of? 9 AWS example – from platformengineering.org

Slide 10

Slide 10 text

Do it RIGHT. What’s an IDP made of? 10 Azure example – from platformengineering.org

Slide 11

Slide 11 text

Do it RIGHT. Platform user’s remorse - PUR 11 • We will define user’s remorse as the feeling of regret, having understood the difference between what was promised and what is possible on the IDP. • Mostly it has to do with the typical motivation behind an IDP and how it impacts the running of it: o It needs to be stable o It is typically mandated o It is run in a centralized manner o It is expected to be cost-effective o It must be secure & compliant • In this talk we will NOT discuss these points but merely take them as given. Many weeks if not months of planning

Slide 12

Slide 12 text

Do it RIGHT. The humble feature request 12 • Most IDPs are run with product teams, and their backlog should be your primary focal point. Start small they say 2/10 🔥

Slide 13

Slide 13 text

Do it RIGHT. Extend the default CI template 13 Let me choose the base image 🔥

Slide 14

Slide 14 text

Do it RIGHT. Custom base image 14 • The base image carries not only improvements via new and better tailored dependencies, but also new attack vectors, dependencies that need to be managed and upgraded and most of all drift from the golden path of the IDP. • Might be worth the effort though if you want to speed up your pipeline for example. You need to weigh the trade-offs, but so will the IDP team. Start small they say 2/10 🔥

Slide 15

Slide 15 text

Do it RIGHT. Extend it yourself 15 • You want a new database, but don’t want to overburden the Platform team with a completely new set of features to support. Not the golden path, but right next to it 4/10 🔥

Slide 16

Slide 16 text

Do it RIGHT. How about a new database? 16 Extend the resource plane AlloyDB 🔥

Slide 17

Slide 17 text

Do it RIGHT. Using a different Database 17 • You realize that the teams are currently using Google Cloud SQL and it got the job done, but with increasing demands from launch scenarios you see that the pure transactional aspect was not true for all users. Complex analytical queries were giving you a hard time. • So, you choose a database to handle it for you. Win win, right? • Depends… Not the golden path, but right next to it 4/10 🔥

Slide 18

Slide 18 text

Do it RIGHT. How about a new database? 18 Extend the resource plane AlloyDB 🔥 🔥 🔥 🔥

Slide 19

Slide 19 text

Do it RIGHT. Using a different Database 19 • Not only did the IPD need to extend their resource plane, but you also have, at a minimum, a need for adaption in the developer portal, where users can choose the new database (easy), version control to include dependencies by default in the new template version (easy) and secrets management (mostly easy). • 3 easy TODOs, should be done in a sprint, or three? Not the golden path, but right next to it 4/10 🔥

Slide 20

Slide 20 text

Do it RIGHT. Custom pipelines 20 • GitOps is an extremely broad interface and if your Platform currently supports only Spring Boot, it should take little to no time to support NodeJS, Python, Ruby, other JVM stacks… Create some resources, manage some resources 6/10 🔥

Slide 21

Slide 21 text

Do it RIGHT. What’s an IDP made of? 21 Typical example – from platformengineering.org 🔥

Slide 22

Slide 22 text

Do it RIGHT. Custom pipelines 22 • Initially this looks like the need for teams to have custom templates for jobs, maybe even solvable by dependent pipelines, where users can adapt parts by themselves. • But they also want basic things like getting the new toolchain for the stack, which extends more than the IDP agreed to. Create some resources, manage some resources 6/10 🔥

Slide 23

Slide 23 text

Do it RIGHT. What’s an IDP made of? 23 Typical example – from platformengineering.org 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥

Slide 24

Slide 24 text

Do it RIGHT. What’s an IDP made of? 24 Typical example – from platformengineering.org 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥

Slide 25

Slide 25 text

Do it RIGHT. Custom pipelines 25 • And of course your monitoring can handle this right? • But can the users adapt the default logging stack to suit the new language and frameworks? • Do you want to have debates about logging standards? Do you? • While your house is on fire? Create some resources, manage some resources 6/10 🔥

Slide 26

Slide 26 text

Do it RIGHT. Extract core services out 26 • When you absolutely must use certain software, because “the offering and feature set is critical for your use case”. This is the point where you should rethink your whole investment 8*/10 🔥

Slide 27

Slide 27 text

Do it RIGHT. What’s an IDP made of? 27 Typical example – from platformengineering.org 🔥

Slide 28

Slide 28 text

Do it RIGHT. What’s an IDP made of? 28 Typical example – from platformengineering.org 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥

Slide 29

Slide 29 text

Do it RIGHT. What’s an IDP made of? 29 Typical example – from platformengineering.org 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥

Slide 30

Slide 30 text

Do it RIGHT. What’s an IDP made of? 30 Typical example – from platformengineering.org 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥

Slide 31

Slide 31 text

Do it RIGHT. 1 + 1 > 2, but why? 31 • Well, sometimes the hot sauce was not made to be eaten the same way as other ones. Da’Bomb for example is made to be used in drops in chillis and other stews, and if you use it like ketchup, you will learn the difference. • Same goes for Kafka in our example, where the whole IDP needs to be reworked. Questions like, where do I create schemas, how do I manage certificates, manage access, provide easy onboarding, … will make you understand the impact quickly. This is the point where you should rethink your whole investment 8*/10 🔥

Slide 32

Slide 32 text

Do it RIGHT. What's worse than that? 32 … 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥

Slide 33

Slide 33 text

Do it RIGHT. Migrating off the IDP 33 • existential threat to the IDP, • hard time justifying your decision, • IDP gets reassessed by strategic decision makers. Looks like the final move you have as a user … 10/10 🔥

Slide 34

Slide 34 text

Do it RIGHT. Without churn* a platform is just technical debt 34 I predict that every successful IDP (Internal Developer Platform) needs churn* to be able to find success. Otherwise, the platform will fit all use cases generally but will not be able to help deliver product features at a higher pace, with reduced co-ordination. As Evan Bottcher declared in his definition of an IDP. *Churn, or user turnover ,here means the number of applications leaving the platform due to bad fit. Me, platform engineering meetup in Vienna 2025-02-18

Slide 35

Slide 35 text

Do it RIGHT. Migrate applications from IDP 35 • acknowledge that not everything fits in one box, • and neither will your applications. The team can continue to use it…

Slide 36

Slide 36 text

Do it RIGHT. 🔫 Chekov’s gun 36 1. you need to critically assess the platform team to their ability and mission, 2. you need a close working relationship with them, 3. you need figure out if you can fill in the gaps, functional and non- functional, towards your goals. To build atop platforms…

Slide 37

Slide 37 text

Do it RIGHT. Where is this image from? 37 And what is it good for?

Slide 38

Slide 38 text

Do it RIGHT. Team topologies 2019 38 • Reminding us of what platforms were intended for, which is to help stream aligned teams deliver value [continuously and sustainably].

Slide 39

Slide 39 text

Do it RIGHT. Short definitions from Team Topologies 39 • Stream-aligned team: aligned to a flow of work from (usually) a segment of the business domain • Enabling team: helps a Stream-aligned team to overcome obstacles. Also detects missing capabilities. • Complicated Subsystem team: where significant mathematics/calculation/technical expertise is needed. • Platform team: a grouping of other team types that provide a compelling internal product to accelerate delivery by Stream-aligned teams. As a basic building block for our next assesments

Slide 40

Slide 40 text

Do it RIGHT. What makes platforms change? 40 Same as any other piece of software, friction and time

Slide 41

Slide 41 text

Do it RIGHT. What makes platforms change for the better? 41 • The (purple, squigly) box on the bottom right points towards the required interaction for teams and platforms to work well together towards to deliver product features at a higher pace, with reduced co-ordination. • But where to start? Collaboration with stream aligned teams

Slide 42

Slide 42 text

Do it RIGHT. The simplest platform 42 … is purely a list on a wiki page of underlying components or services used by the consuming software. If those underlying components and services always work reliably, then there is no need for a full-time platform team. However, as the underlying substrate becomes more complicated – even if all components and services are still outsorced – a platform team can provide valuable management abstraction over the details of the platform, dealing with the coordination of new and deprecated APIs and components. Team Topologies 2019, Manuel Pais and Matthew Skelton

Slide 43

Slide 43 text

Do it RIGHT. Two main takeaways today 43 That I hope you will take with you

Slide 44

Slide 44 text

Do it RIGHT. Two main takeaways today 44 • To feel remorse, is to have learned something. • Sometimes you learn you like (some) pain, as long as its hot sauce.

Slide 45

Slide 45 text

Do it RIGHT. Two main takeaways today 45 • Never trust the consultant. comicagile.net/140

Slide 46

Slide 46 text

Do it RIGHT. Link list 46 • https://martinfowler.com/articles/talk-about-platforms.html • https://platformengineering.org/blog/what-is-a-minimum-viable-platform-mvp • https://platformengineering.org/blog/create-your-own-platform-engineering-reference- architectures • https://teamtopologies.com/key-concepts-content/what-is-a-thinnest-viable-platform-tvp

Slide 47

Slide 47 text

Do it RIGHT. THANK YOU! CONTACT US: Weyringergasse 1-3/DG 1040 Wien www.posedio.com offi[email protected] 47