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

Platform Engineering for Software Developers an...

Syntasso
November 15, 2024

Platform Engineering for Software Developers and Architects

Building on my KubeCon EU 2022 talk, "From Kubernetes to PaaS to... err, what's next", I'll introduce the topic of platform engineering through the lens of a software developer and architect. My primary goal is for developers to understand "what good looks like" with a successful platform build and help them understand how a platform can influence the SDLC (for better or worse!) Key takeaways from the session:

- Explore how platform architecture influences software architecture and vice versa
- Learn why the principles of coupling and cohesion apply to platform components (and configuration) in the same way as they do with software components
- Understand what to expect from an effective platform, including how applications are built, shipped, and run
- Learn about key platform metrics grounded in developer experience frameworks such as DORA, SPACE, and DevEx

Syntasso

November 15, 2024
Tweet

More Decks by Syntasso

Other Decks in Technology

Transcript

  1. • Platform engineering should have a product focus: devs are

    customers! • Platform architecture and software architecture are symbiotic • Good APIs, abstractions, and automation are the prize (for everything) tl;dr:
  2. What is a platform, anyway? “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 coordination.” Evan Bottcher martinfowler.com/articles/talk-about-platforms.html
  3. What is a platform, anyway? “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 coordination.” Evan Bottcher martinfowler.com/articles/talk-about-platforms.html
  4. What is a platform, anyway? “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 coordination .” Evan Bottcher martinfowler.com/articles/talk-about-platforms.html
  5. “Platform engineering improves developer experience and productivity by providing self-service

    capabilities with automated infrastructure operations . It is trending because of its promise to optimise the developer experience and accelerate product teams’ delivery of customer value.” https://www.gartner.com/en/articles/what-is-platform-engineering Gartner: What is platform engineering?
  6. • Go faster: Platform teams need to provide “everything as

    a service” to help rapidly and sustainably deliver value to end-users • Decrease risk: Teams need to automate manual processes in reusable components • Increase efficiency: You need to manage and scale your digital platform and resources as a fleet What are the goals of your platform?
  7. • Context ◦ Create cohesive business code ◦ Facilitate testing

    ◦ Promote loose coupling (e.g. swappable DBs) Hexagonal architecture: Ports, adapters, platforms • History ◦ Layers apps were often highly coupled ◦ Old platforms had too much magic ▪ ESBs ▪ EJB Remote/Home ▪ Container-managed transactions (XTA)
  8. • Software solutions ◦ Wrap platform components in custom code

    ◦ Custom libraries/SDKs ◦ Potential for high-coupling at the platform level Hexagonal architecture: Platform evolution • Platform Goldilocks APIs & abstractions: ◦ Sidecars to the rescue! ◦ Still need platform components (X)-as-a-Service ◦ Distributed Application Runtime (dapr)
  9. • Context ◦ Create cohesive and loosely coupled services ◦

    But, this requires… ▪ Rapid provisioning ▪ Basic monitoring ▪ Rapid app deployment Microservices: Mo’ services, mo’ problems • History ◦ Ops teams slow to provision databases ▪ All hail the “distributed monolith” ◦ DevOps: You build it, you run it ▪ But, this doesn’t scale ▪ What about visibility, security, upgrades, etc?
  10. • Infrastructure solutions ◦ PaaS! Heroku, Cloud Foundry (+ service

    broker/marketplace) ◦ App scaffolding or “Puppy for Christmas” ◦ Developers learn Terraform (or Crossplane or Pulumi or…) Microservices & platforms • Platform solution ◦ Workload definitions: OAM, Score, Radius ◦ Platform Orchestrator: Kratix, KusionStack, Humanitec, etc. ▪ Everything-as-a-service ▪ E.g Java app/buildpack, platform tasks, security/certs, databases… ◦ Dev-configurable CI/CD: Dagger
  11. Cell-based Architecture • Context: ◦ Self-sufficient cells ◦ Replication for

    scalability ◦ Isolation and fault containment: • Historical approach ◦ Microservices++ • Infrastructure solution ◦ Cluster API + Automation (HPA, VPA, KEDA) ◦ Advanced routing (K8s GW, OSM) • Platform solution ◦ Fleet management infoq.com/minibooks/cell-based-architecture-2024/
  12. Platforms: Abstract thinking • SOLID, CUPID, principle of least surprise,

    etc ◦ Just as important for platforms ◦ Devs don’t want magic; they want to be magicians ◦ The size of the spell matters, too (abstractions)
  13. Platforms: You can’t have good DX without good UX •

    Design control planes for API, CLI, & UI ◦ Optimise for automation ◦ Minimize cognitive load ◦ Build for progressive disclosure syntasso.io/post/when-backstage-met-terraform-a nd-platform-orchestrators-webinar-recap
  14. Platforms: What gets measured, gets managed • Establish goals and

    measurements ◦ Impact metrics ◦ Guardrail metrics ◦ Product health metrics linkedin.com/posts/billblosen_thanks-to-co-author-annie-hodgkins-garcia-activity-7198399542365466624-7VHd
  15. Platforms: What gets measured, gets managed • Leading indicators ◦

    Adoption rates (PH) ◦ Onboarding times (PH) ◦ Time to nth PR (PH) linkedin.com/posts/billblosen_thanks-to-co-author-annie-hodgkins-garcia-activity-7198399542365466624-7VHd • Lagging indicators ◦ App retention rate ◦ Upgrade/patch cycle resourcing (I) ◦ Speed of app/product delivery (I) ◦ Change fail percentage (G) ◦ # of Sev 1 incidents (G)
  16. The (Goldilocks) DevEx Framework • DORA ◦ Well understood ◦

    Delivery-focused • SPACE ◦ Covers all bases ◦ Potentially complicated • DevEx ◦ Nicely balanced infoq.com/articles/devex-metrics-framework/
  17. Conclusions • Developers are the customers of a platform ◦

    Think platform as a product! ◦ Aim for speed, safety, scale ◦ Enable APIs, CLI, and UI (Portals) • Platform and software architecture are symbiotic ◦ Collaboration is vital between Dev and Ops (and more!) • APIs, abstractions, and automation are the key ◦ Coupling and cohesion are universal concepts ◦ Think about golden bricks vs golden paths…