Slide 1

Slide 1 text

Platform Engineering for Software Developers and Architects Daniel Bryant Platform Engineer and Product Marketer

Slide 2

Slide 2 text

● 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:

Slide 3

Slide 3 text

linktr.ee/danielbryantuk @danielbryantuk (he/him)

Slide 4

Slide 4 text

Previously, at KubeCon

Slide 5

Slide 5 text

https://www.youtube.com/watch?v=zUpYEhaUJnM From Kubernetes to PaaS to… err, what’s next?

Slide 6

Slide 6 text

Code Ship Run

Slide 7

Slide 7 text

The “what” of platforms 🏗

Slide 8

Slide 8 text

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

Slide 9

Slide 9 text

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

Slide 10

Slide 10 text

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

Slide 11

Slide 11 text

“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?

Slide 12

Slide 12 text

● 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?

Slide 13

Slide 13 text

Platform architecture 🏢

Slide 14

Slide 14 text

syntasso.io/post/platform-engineering-orchestrating-applications-platforms-and-infrastructure

Slide 15

Slide 15 text

syntasso.io/post/platform-engineering-orchestrating-applications-platforms-and-infrastructure

Slide 16

Slide 16 text

This three tier thing could catch on…

Slide 17

Slide 17 text

This three tier thing could catch on… (hot off the press)

Slide 18

Slide 18 text

syntasso.io/post/platform-engineering-orchestrating-applications-platforms-and-infrastructure

Slide 19

Slide 19 text

Architecture case studies 🧐

Slide 20

Slide 20 text

● 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)

Slide 21

Slide 21 text

● 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)

Slide 22

Slide 22 text

● 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?

Slide 23

Slide 23 text

● 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

Slide 24

Slide 24 text

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/

Slide 25

Slide 25 text

Key insights

Slide 26

Slide 26 text

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)

Slide 27

Slide 27 text

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

Slide 28

Slide 28 text

thoughtworks.com/en-gb/insights/looking-glass/platforms-as-products syntasso.io/post/platform-engineering-for-execs-team-topologies-tools-and-trade-offs-webinar-recap Platforms: Don't forget the product focus

Slide 29

Slide 29 text

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

Slide 30

Slide 30 text

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)

Slide 31

Slide 31 text

The (Goldilocks) DevEx Framework ● DORA ○ Well understood ○ Delivery-focused ● SPACE ○ Covers all bases ○ Potentially complicated ● DevEx ○ Nicely balanced infoq.com/articles/devex-metrics-framework/

Slide 32

Slide 32 text

Wrapping up 🎉

Slide 33

Slide 33 text

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…

Slide 34

Slide 34 text

@danielbryantuk | [email protected] docs.kratix.io/main/quick-start speakerdeck.com/syntasso Thank you!