Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Platform user's remorse

Posedio
February 18, 2025
51

Platform user's remorse

Were you sold on onboarding to an [internal delivery] platform, maybe even one of its first real live users? MVPs were sold, but very thin promises kept?
Stick around to find out what can go wrong when all the leading and lagging indicators say you should be having success? Should scope creep be prevented when all your users are having differing needs? Find out what you as a user of the platform can do about it.

Posedio

February 18, 2025
Tweet

Transcript

  1. Do it RIGHT. Platform user’s remorse Or how I learned

    to build atop platforms 18.02.2025 Davor Martinović
  2. Do it RIGHT. Millennium Park 4 6890 Lustenau Weyringergasse 1-3

    / DG 1040 Wien About POSEDIO 2 Nice people, care about their work
  3. 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
  4. 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.
  5. Do it RIGHT. What makes an internal development platform? 5

    *From What I Talk About When I Talk About Platforms by Evan Bottcher
  6. 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
  7. 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…
  8. Do it RIGHT. What’s an IDP made of? 8 GCP

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

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

    example – from platformengineering.org
  11. 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
  12. 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 🔥
  13. 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 🔥
  14. 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 🔥
  15. Do it RIGHT. How about a new database? 16 Extend

    the resource plane AlloyDB 🔥
  16. 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 🔥
  17. Do it RIGHT. How about a new database? 18 Extend

    the resource plane AlloyDB 🔥 🔥 🔥 🔥
  18. 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 🔥
  19. 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 🔥
  20. Do it RIGHT. What’s an IDP made of? 21 Typical

    example – from platformengineering.org 🔥
  21. 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 🔥
  22. Do it RIGHT. What’s an IDP made of? 23 Typical

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

    example – from platformengineering.org 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥
  24. 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 🔥
  25. 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 🔥
  26. Do it RIGHT. What’s an IDP made of? 27 Typical

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

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

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

    example – from platformengineering.org 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥
  30. 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 🔥
  31. Do it RIGHT. What's worse than that? 32 … 🔥

    🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥 🔥
  32. 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 🔥
  33. 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
  34. 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…
  35. 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…
  36. 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].
  37. 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
  38. Do it RIGHT. What makes platforms change? 40 Same as

    any other piece of software, friction and time
  39. 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
  40. 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
  41. 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.
  42. Do it RIGHT. Two main takeaways today 45 • Never

    trust the consultant. comicagile.net/140
  43. 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