Slide 1

Slide 1 text

Platform Engineering for Software Developers and Architects Daniel Bryant Developer, 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

Platforms, platforms, platforms…

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

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 12

Slide 12 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 13

Slide 13 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 14

Slide 14 text

Platform architecture 🏢

Slide 15

Slide 15 text

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

Slide 16

Slide 16 text

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

Slide 17

Slide 17 text

This three tier thing could catch on…

Slide 18

Slide 18 text

This three tier thing could catch on…

Slide 19

Slide 19 text

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

Slide 20

Slide 20 text

(Platform) Architecture case studies 🧐

Slide 21

Slide 21 text

● Context ○ Create cohesive business code ○ Facilitate testing ○ Promote loose coupling (e.g. swappable DBs) Hexagonal architecture: Ports, adapters, platforms ● Challenges ○ Layered/tiered apps were often highly coupled ○ Old SOA platforms contained too much “magic” ■ Enterprise Service Buses (ESBs) ■ EJB Remote/Home ■ Container-managed transactions (XTA)

Slide 22

Slide 22 text

● Software solutions ○ Wrap platform components in custom code ○ Custom libraries & SDKs (& Netflix OSS) ○ Potential for high-coupling at the platform level Hexagonal architecture: Platform evolution ● Platform Goldilocks APIs & abstractions: ○ Sidecars to the rescue! ○ Distributed Application Runtime (dapr) ○ Still need platform components (X)-as-a-Service

Slide 23

Slide 23 text

No content

Slide 24

Slide 24 text

● Context ○ Create cohesive and loosely coupled services ○ But, this requires… ■ Rapid provisioning ■ Basic monitoring ■ Rapid app deployment Microservices: Mo’ services, mo’ problems ● Challenges ○ Ops teams slow to provision databases ■ All hail the “distributed monolith”! ○ DevOps: You build it, you run it ■ But, this doesn’t scale across an enterprise ■ What about visibility, security, upgrades, etc?

Slide 25

Slide 25 text

● Infrastructure solutions ○ PaaS! Heroku, Cloud Foundry (+ service broker/marketplace) ○ App scaffolding focus (a.k.a. “Puppy for Christmas”) ○ Developers learn Terraform or Crossplane or Pulumi… Microservices & platforms ● Platform solution ○ Workload definitions: OAM, Score, Radius ○ Dev-configurable CI/CD: Dagger ○ Platform Orchestrator: Kratix, KusionStack, Humanitec, etc. ■ Everything-as-a-service ■ E.g Java app/buildpack, platform tasks, security/certs, databases…

Slide 26

Slide 26 text

Cell-based Architecture ● Context: ○ Self-sufficient cells ○ Replication for scalability ○ Isolation and fault containment: ● Challenges? ○ 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 27

Slide 27 text

Key insights

Slide 28

Slide 28 text

Platforms: Abstract(ion) thinking ● SOLID, CUPID, principle of least surprise, etc ○ Just as important for platforms ○ “Devs don’t want magic; they want to be magicians” ○ Watch for leaky abstractions ■ (The size of the spell matters!)

Slide 29

Slide 29 text

Platforms: You can’t have good DX without good UX ● Design control planes for API, CLI, & UI ○ Optimise for automation (API-first) ○ Minimize cognitive load ○ Build for progressive disclosure syntasso.io/post/when-backstage-met-terraform-a nd-platform-orchestrators-webinar-recap

Slide 30

Slide 30 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 31

Slide 31 text

Platforms: What gets measured, gets managed ● Establish goals and measurements ○ Impact metrics ○ Guardrail metrics ○ Product health metrics

Slide 32

Slide 32 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 33

Slide 33 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 34

Slide 34 text

Wrapping up 🎉

Slide 35

Slide 35 text

Conclusions ● Developers are the customers of a platform ○ Demand platform as a product! ○ Aim for speed, safety, and scale ○ API-first: Enable APIs, CLI, and UI (Portals) ● Platform and software architecture are symbiotic ○ Multiplayer mode: Dev + Ops + InfoSec + Finance + … ● APIs, abstractions, and automation are the key ○ Coupling & cohesion (& leaky abstractions) are universal concepts ○ Think about golden bricks vs golden paths…

Slide 36

Slide 36 text

@danielbryantuk | [email protected] docs.kratix.io/main/quick-start Syntasso Booth S641 speakerdeck.com/syntasso Thank you! Talk feedback! Kratix docs