SlideShare ist ein Scribd-Unternehmen logo
1 von 44
Downloaden Sie, um offline zu lesen
qaware.de
Make developers fly:
Principles for platform engineering
Alex Krause
Software Architect, QAware
@alex0ptr
Robert Hoffmann
2
2
ehemaliger Product Owner bei
Hallo Magenta
co-ideation für diesen Talk
“Solutions Architect @awscloud
ex @DeutscheTelekom, @Samsung
I move boxes around to help people
move boxes around.”
coole Socke 😎 🐦 @robhoffmax
Was bisher geschah…
4
QAware
DevOps: Wall of Confusion
Entwicklung Betrieb
Wertschöpfungskette
5
QAware
DevOps: Wall of Confusion
Entwicklung Betrieb
Zentrale Aufgaben:
● Schnell auf
Marktänderungen
reagieren und neue
Funktionalitäten
entwickeln.
● Erfolg wird häufig am
Durchsatz der
Auslieferungen gemessen.
Zentrale Aufgaben:
● Stabile, sichere und
zuverlässige Dienste für
die Kunden.
● Erfolg wird häufig an der
Zuverlässigkeit der
Systeme gemessen.
Folgen:
● Gegensätzliche Ziele führen zum Konflikt, Misstrauen und schlussendlich zur Bildung von Silos.
● Software wird “über den Zaun geworfen”, ohne Rücksicht auf Betriebsführbarkeit oder betriebliche Aspekte.
● Der Betrieb erschwert das Ausliefern durch bürokratische Prozesse um die Kontrolle zurückzuerhalten.
● Im schlimmsten Fall kommt es zu ständigen Ausfällen, schlechten Antwortzeiten und zum Stillstand der
Wertschöpfungskette. Dies bedroht alle Geschäftsbereiche.
6
QAware
DevOps: Definition
“DevOps beschreibt einen Prozessverbesserungs-Ansatz
aus den Bereichen der Softwareentwicklung und
Systemadministration. [...] DevOps soll durch gemeinsame
Anreize, Prozesse und Software-Werkzeuge eine
effektivere und effizientere Zusammenarbeit der Bereiche
Dev, Ops und Qualitätssicherung (QS) ermöglichen. Mit
DevOps sollen die Qualität der Software, die
Geschwindigkeit der Entwicklung und der Auslieferung
sowie das Miteinander der beteiligten Teams verbessert
werden.”
Wikipedia
7
“You build it,
you run it.”
Werner Vogles - 2006
8
QAware
Source: Amazon Web Services
9
QAware
Mehr als nur kubectl apply -f
● Security
● Compliance
● Integration
● Reliability
● Scalability
● KRITIS,
DSGVO
● Cost Efficiency
● AuthX
● Maintenance
Platform Engineering
11
QAware
Platform Engineering
● Spezialisierung der Rollen,
dadurch geringerer Cognitive Load
● immer noch DevOps,
zentrale Schnittstelle: Die Plattform
● Wiederverwendung und
organisatorische Skalierung
● Automatisierte Integration bedeutet
mehr Software Engineering
“Platform engineering is the discipline of
designing and building toolchains and
workflows that enable self-service
capabilities for software engineering
organizations in the cloud-native era.
Platform engineers provide an integrated
product most often referred to as an
“Internal Developer Platform” covering the
operational necessities of the entire lifecycle
of an application.”
Humanitec
12
QAware
Developer
Platform
Engineer
App
Developer
Platform
13
QAware
Internal Developer Platforms - reingezoomt
keine IDPs: reine
Compute-Plattformen
● Konzernanforderungen
und -services müssen
Integriert sein
● bspw. GitLab, AuthX,
Prozesse…
Source: Amazon Web Services
Prinzipien und Pattern
15
V
e
r
s
i
o
n
e
d
D
e
c
e
n
t
r
a
l
i
z
e
d
U
s
e
r
-
c
e
n
t
e
r
e
d
C
u
s
t
o
m
i
z
a
b
l
e
- T
r
a
n
s
p
a
r
e
n
t
S
e
l
f
-
s
e
r
v
i
c
e
Decentralized
Risiko teilen und schnell iterieren
17
QAware
Zentrale Multi-Tenant
Plattform
Skalierung
bspw. Prometheus, Opensearch, GitOps
Isolierung
bspw. Docker,
Multi-Tenancy
bspw. RBAC, Grafana Stack
Koordination
bspw. K8s deprecations, CRDs
Single Point of Failure
bspw. API Gateway Route
18
QAware Source: Amazon Web Services
User-centered
Product Mindset: Users First!
Developer UX
■ User Guide
20
Developer UX
■ User Guide
■ Subtemplates,
Modules, Blueprints
für goldene Pfade
21
base-chart-spring:
name: my-deployment
version: '1-snapshot_a5d5547f_13561_master'
springProfiles:
- name: k8s
content: |
my-deployment:
business:
refresh-interval: PT5m
api-key: ksyajdf4038dsse
envSecrets:
SPRING_DATASOURCE_URL:
secretName: postgres-my-deployment
key: jdbc
allowConnectionsFrom:
- nginx-ingress
- my-other-deployment
module "postgresql_..." {
source = "git::https://.../.../modules/postgresql.git?ref=1.0.4"
resource_group = azurerm_resource_group.this
kube_outbound_ip = module.aks.lb_public_ip_outbound
sku_name = local.config.postgres_sku_name
subnet_id = module.vnet.subnet_id
kube_namespace = "default"
tags = local.standard_tags
}
Developer UX
■ User Guide
■ Subtemplates,
Modules, Blueprints
für goldene Pfade
■ Skaffolding für
typische Use-Cases
22
Developer UX
■ User Guide
■ Subtemplates,
Modules, Blueprints
für goldene Pfade
■ Skaffolding für
typische Use-Cases
■ Tools für
Observability,
Debugging…
23
Developer UX
■ User Guide
■ Subtemplates,
Modules, Blueprints
für goldene Pfade
■ Skaffolding für
typische Use-Cases
■ Tools für
Observability,
Debugging…
■ Support
■ Voll integriert
24
Customizable
Studentenfutter für den Silberpfad.
26
QAware
Trailmix
● abschalten von compliance
enforcement ist zentrales
feature
● sollte feingranular erfolgen
● Anpassungen an der Referenz
z.B. per CODEOWNERS und
MR steuern
● definierte Andock
Schnittstellen z.B. trigger
Token und Webhooks
apiVersion: constraints.gatekeeper.sh/v1beta1
kind: K8sDenyLoadbalancerService
metadata:
name: deny-loadbalancer-service
spec:
match:
kinds:
- apiGroups: [""]
kinds: ["Service"]
parameters:
allowedLoadbalancers
:
- 'traefik/traefik'
/CODEOWNERS @platform-team
/01-infra/ @platform-team
/02-user/ @user-team-foo
Transparent
is the new abstracted
28
QAware
“Platforms reduce cognitive load by
exposing useful abstractions.
Good abstractions form a cohesive
language and useful mental model.
Omitting relevant details is tempting
but ends up with dangerous illusions.”
Gregor Hohpe @ PlatformCon 2023
Autor von Cloud Strategy
Aufgabe für Developer Platforms:
● Verständliche Abstractions mit Escape
Hatches bauen
● Die Limitationen der eigenen
Abstraktionen verstehen (z.B. Build vs
Runtime) ...
● ... und für die DevEx bedenken
(Debugging, Alerting)
● Cloud Services bieten fertige
Abstraktionen
29
QAware
Inner Source
● Aller Code ist intern offen
● jede Instanz einer IDP ist offen
● Referenz IDP ist offen
○ Issue Tracker
○ Roadmap
○ PRs welcome
● Community Events
Neue Features, Austausch…
Self-Service
Ski fahren ohne Lawinengefahr
31
QAware
Self-Service
Der Lebenszyklus einer IDP ist unter voller Kontrolle des Nutzers und
benötigt im Regelfall keine Interaktion seitens des Platform Teams.
● Erzeugen, Löschen, Upgraden einer IDP Instanz wird durch Nutzer angestoßen
● Werkzeuge: CLI, UIs, Pipelines
● automatisierte Prozesse überwachen und enforcen die Compliance und Qualität
● wenige PE sind notwendig, um eine große Menge an IDPs zu betreiben
Versioned
Infrastruktur wie Software
33
QAware
IDPs versionieren wie Software
● Versioniert, mit Tags, Release Notes
● Releases durch Pipelines gesteuert
● E2E Test auf jeder Version
● Automatisierte Auslieferung
(Patch, Pipeline, Test)
# run from IDP template repository
# create a patch file
git diff v41..v42 > /tmp/v42.patch
# run in concrete instance repository
# test if patch is applicable in instance
git apply --check v42.patch
# apply changes
git apply /tmp/v42.patch
git commit -am "IDP upgrade v41 → v42"
git push
Bausteine
35
QAware
Bausteine (Capabilities)
36
QAware
Beispiel: AWS-native mit AWS Proton
37
(Platform Engineers)
User-centered ✅
Self-service ✅
Decentralized ✅
Versioned ✅
Customizable ✅
AWS Proton: Developer Platform as a Service
Transparent ✅
38
QAware
39
QAware
40
QAware
CNCF/K8s Orchestrator für IDP
CNCF
Bausteine
Git
+
+
41
QAware
Capability Tool/Methode k8s/CNCF Tool/Methode AWS
Provisioning Engine Terraform, ArgoCD, Kubernetes Operators AWS CloudFormation
CI/CD GitLab CI, Argo Workflows AWS CodePipeline
Source Code GitLab CI AWS CodeCommit
Pattern Repository Git Repository AWS Proton, AWS Service Catalog
Managed Services Cloud Services AWS services, AWS Private Marketplace
Developer Portal Backstage, GitLab Pages AWS Proton, AWS Service Catalog
CLI Code AWS CLI (Proton Commands)
Deployment Service Code, Crossplane AWS Proton
Managed Environments Code / Git AWS Proton, AWS Control Tower
Governance Open Policy Agent, AWS Config AWS Control Tower, AWS Config, AWS
SecurityHub, Amazon GuardDuty, Amazon
Inspector
Capabilities mit Implementierungen mappen
CNCF Platforms White Paper: https://tag-app-delivery.cncf.io/whitepapers/platforms/
42
QAware
Capability Tool/Methode k8s/CNCF Tool/Methode AWS
Provisioning Engine Terraform, ArgoCD, Kubernetes Operators AWS CloudFormation
CI/CD GitLab CI, Argo Workflows AWS CodePipeline
Source Code GitLab CI AWS CodeCommit
Pattern Repository Git Repository AWS Proton, AWS Service Catalog
Managed Services Cloud Services AWS services, AWS Private Marketplace
Developer Portal Backstage, GitLab Pages AWS Proton, AWS Service Catalog
CLI Code AWS CLI (Proton Commands)
Deployment Service Code, Crossplane AWS Proton
Managed Environments Code / Git AWS Proton, AWS Control Tower
Governance Open Policy Agent, AWS Config AWS Control Tower, AWS Config, AWS
SecurityHub, Amazon GuardDuty, Amazon
Inspector
Capabilities mit Implementierungen mappen
CNCF Platforms White Paper: https://tag-app-delivery.cncf.io/whitepapers/platforms/
tl;dr
wähle Dein Ecosystem
Wie baut ihr Plattformen?
qaware.de
QAware GmbH Mainz
Rheinstraße 4 C
55116 Mainz
Tel. +49 6131 21569-0
info@qaware.de
twitter.com/qaware
linkedin.com/company/qaware-gmbh
xing.com/companies/qawaregmbh
slideshare.net/qaware
github.com/qaware

Weitere ähnliche Inhalte

Ähnlich wie Make Developers Fly: Principles for Platform Engineering

Einsatz von Subversion bei der Entwicklung technisch-wissenschaftlicher Software
Einsatz von Subversion bei der Entwicklung technisch-wissenschaftlicher SoftwareEinsatz von Subversion bei der Entwicklung technisch-wissenschaftlicher Software
Einsatz von Subversion bei der Entwicklung technisch-wissenschaftlicher SoftwareAndreas Schreiber
 
Architektur und Automation als Enabler für DevOps
Architektur und Automation als Enabler für DevOpsArchitektur und Automation als Enabler für DevOps
Architektur und Automation als Enabler für DevOpsmatfsw
 
Enterprise Cloud Native ist das neue Normal
Enterprise Cloud Native ist das neue NormalEnterprise Cloud Native ist das neue Normal
Enterprise Cloud Native ist das neue NormalQAware GmbH
 
Applikationsmodernisierung: Der Weg von Legacy in die Cloud
Applikationsmodernisierung: Der Weg von Legacy in die CloudApplikationsmodernisierung: Der Weg von Legacy in die Cloud
Applikationsmodernisierung: Der Weg von Legacy in die CloudAarno Aukia
 
Clean Architecture
Clean ArchitectureClean Architecture
Clean ArchitectureQAware GmbH
 
Einstieg in Xamarin und Xamarin.Forms, DDC 2018
Einstieg in Xamarin und Xamarin.Forms, DDC 2018Einstieg in Xamarin und Xamarin.Forms, DDC 2018
Einstieg in Xamarin und Xamarin.Forms, DDC 2018André Krämer
 
ROSIK Stammtisch „Clean Architecture“
ROSIK Stammtisch „Clean Architecture“ROSIK Stammtisch „Clean Architecture“
ROSIK Stammtisch „Clean Architecture“QAware GmbH
 
Akzeptanz-Test getriebene Produktentwicklung
Akzeptanz-Test getriebene ProduktentwicklungAkzeptanz-Test getriebene Produktentwicklung
Akzeptanz-Test getriebene ProduktentwicklungMichael Brandt
 
Entwicklung mit Volt MX und Co. | Teil 1
Entwicklung mit Volt MX und Co. | Teil 1Entwicklung mit Volt MX und Co. | Teil 1
Entwicklung mit Volt MX und Co. | Teil 1DNUG e.V.
 
Steinzeit war gestern! Wege der Cloud-nativen Evolution.
Steinzeit war gestern! Wege der Cloud-nativen Evolution.Steinzeit war gestern! Wege der Cloud-nativen Evolution.
Steinzeit war gestern! Wege der Cloud-nativen Evolution.QAware GmbH
 
Python in der Luft- und Raumfahrt
Python in der Luft- und RaumfahrtPython in der Luft- und Raumfahrt
Python in der Luft- und RaumfahrtAndreas Schreiber
 
Steinzeit war gestern! Wege der cloud-nativen Evolution
Steinzeit war gestern! Wege der cloud-nativen EvolutionSteinzeit war gestern! Wege der cloud-nativen Evolution
Steinzeit war gestern! Wege der cloud-nativen EvolutionQAware GmbH
 
Continuous Delivery für Cloud-native Anwendungen auf Cloud-nativer Infrastruktur
Continuous Delivery für Cloud-native Anwendungen auf Cloud-nativer InfrastrukturContinuous Delivery für Cloud-native Anwendungen auf Cloud-nativer Infrastruktur
Continuous Delivery für Cloud-native Anwendungen auf Cloud-nativer InfrastrukturQAware GmbH
 
Agil zum Ziel: Erfolgsfaktoren für agile IT-Großprojekte
Agil zum Ziel: Erfolgsfaktoren für agile IT-GroßprojekteAgil zum Ziel: Erfolgsfaktoren für agile IT-Großprojekte
Agil zum Ziel: Erfolgsfaktoren für agile IT-GroßprojekteQAware GmbH
 
Node.js - Von der Entwicklugn bis zum produktiven Einsatz
Node.js - Von der Entwicklugn bis zum produktiven EinsatzNode.js - Von der Entwicklugn bis zum produktiven Einsatz
Node.js - Von der Entwicklugn bis zum produktiven EinsatzKai Donato
 
Migration von Aftersales Systemen auf eine Cloud Plattform
Migration von Aftersales Systemen auf eine Cloud PlattformMigration von Aftersales Systemen auf eine Cloud Plattform
Migration von Aftersales Systemen auf eine Cloud PlattformQAware GmbH
 
Cloud Native Computing & DevOps
Cloud Native Computing & DevOpsCloud Native Computing & DevOps
Cloud Native Computing & DevOpsAarno Aukia
 
Slides (2) zu Teil 2 der Veranstaltungsreihe Anwendungsentwicklung mit Volt M...
Slides (2) zu Teil 2 der Veranstaltungsreihe Anwendungsentwicklung mit Volt M...Slides (2) zu Teil 2 der Veranstaltungsreihe Anwendungsentwicklung mit Volt M...
Slides (2) zu Teil 2 der Veranstaltungsreihe Anwendungsentwicklung mit Volt M...DNUG e.V.
 
Steinzeit war gestern! Wege der cloud-nativen Evolution
Steinzeit war gestern! Wege der cloud-nativen EvolutionSteinzeit war gestern! Wege der cloud-nativen Evolution
Steinzeit war gestern! Wege der cloud-nativen EvolutionQAware GmbH
 

Ähnlich wie Make Developers Fly: Principles for Platform Engineering (20)

Einsatz von Subversion bei der Entwicklung technisch-wissenschaftlicher Software
Einsatz von Subversion bei der Entwicklung technisch-wissenschaftlicher SoftwareEinsatz von Subversion bei der Entwicklung technisch-wissenschaftlicher Software
Einsatz von Subversion bei der Entwicklung technisch-wissenschaftlicher Software
 
Architektur und Automation als Enabler für DevOps
Architektur und Automation als Enabler für DevOpsArchitektur und Automation als Enabler für DevOps
Architektur und Automation als Enabler für DevOps
 
Enterprise Cloud Native ist das neue Normal
Enterprise Cloud Native ist das neue NormalEnterprise Cloud Native ist das neue Normal
Enterprise Cloud Native ist das neue Normal
 
Applikationsmodernisierung: Der Weg von Legacy in die Cloud
Applikationsmodernisierung: Der Weg von Legacy in die CloudApplikationsmodernisierung: Der Weg von Legacy in die Cloud
Applikationsmodernisierung: Der Weg von Legacy in die Cloud
 
Clean Architecture
Clean ArchitectureClean Architecture
Clean Architecture
 
Einstieg in Xamarin und Xamarin.Forms, DDC 2018
Einstieg in Xamarin und Xamarin.Forms, DDC 2018Einstieg in Xamarin und Xamarin.Forms, DDC 2018
Einstieg in Xamarin und Xamarin.Forms, DDC 2018
 
ROSIK Stammtisch „Clean Architecture“
ROSIK Stammtisch „Clean Architecture“ROSIK Stammtisch „Clean Architecture“
ROSIK Stammtisch „Clean Architecture“
 
Akzeptanz-Test getriebene Produktentwicklung
Akzeptanz-Test getriebene ProduktentwicklungAkzeptanz-Test getriebene Produktentwicklung
Akzeptanz-Test getriebene Produktentwicklung
 
Xidra 2016 DevOps
Xidra 2016 DevOpsXidra 2016 DevOps
Xidra 2016 DevOps
 
Entwicklung mit Volt MX und Co. | Teil 1
Entwicklung mit Volt MX und Co. | Teil 1Entwicklung mit Volt MX und Co. | Teil 1
Entwicklung mit Volt MX und Co. | Teil 1
 
Steinzeit war gestern! Wege der Cloud-nativen Evolution.
Steinzeit war gestern! Wege der Cloud-nativen Evolution.Steinzeit war gestern! Wege der Cloud-nativen Evolution.
Steinzeit war gestern! Wege der Cloud-nativen Evolution.
 
Python in der Luft- und Raumfahrt
Python in der Luft- und RaumfahrtPython in der Luft- und Raumfahrt
Python in der Luft- und Raumfahrt
 
Steinzeit war gestern! Wege der cloud-nativen Evolution
Steinzeit war gestern! Wege der cloud-nativen EvolutionSteinzeit war gestern! Wege der cloud-nativen Evolution
Steinzeit war gestern! Wege der cloud-nativen Evolution
 
Continuous Delivery für Cloud-native Anwendungen auf Cloud-nativer Infrastruktur
Continuous Delivery für Cloud-native Anwendungen auf Cloud-nativer InfrastrukturContinuous Delivery für Cloud-native Anwendungen auf Cloud-nativer Infrastruktur
Continuous Delivery für Cloud-native Anwendungen auf Cloud-nativer Infrastruktur
 
Agil zum Ziel: Erfolgsfaktoren für agile IT-Großprojekte
Agil zum Ziel: Erfolgsfaktoren für agile IT-GroßprojekteAgil zum Ziel: Erfolgsfaktoren für agile IT-Großprojekte
Agil zum Ziel: Erfolgsfaktoren für agile IT-Großprojekte
 
Node.js - Von der Entwicklugn bis zum produktiven Einsatz
Node.js - Von der Entwicklugn bis zum produktiven EinsatzNode.js - Von der Entwicklugn bis zum produktiven Einsatz
Node.js - Von der Entwicklugn bis zum produktiven Einsatz
 
Migration von Aftersales Systemen auf eine Cloud Plattform
Migration von Aftersales Systemen auf eine Cloud PlattformMigration von Aftersales Systemen auf eine Cloud Plattform
Migration von Aftersales Systemen auf eine Cloud Plattform
 
Cloud Native Computing & DevOps
Cloud Native Computing & DevOpsCloud Native Computing & DevOps
Cloud Native Computing & DevOps
 
Slides (2) zu Teil 2 der Veranstaltungsreihe Anwendungsentwicklung mit Volt M...
Slides (2) zu Teil 2 der Veranstaltungsreihe Anwendungsentwicklung mit Volt M...Slides (2) zu Teil 2 der Veranstaltungsreihe Anwendungsentwicklung mit Volt M...
Slides (2) zu Teil 2 der Veranstaltungsreihe Anwendungsentwicklung mit Volt M...
 
Steinzeit war gestern! Wege der cloud-nativen Evolution
Steinzeit war gestern! Wege der cloud-nativen EvolutionSteinzeit war gestern! Wege der cloud-nativen Evolution
Steinzeit war gestern! Wege der cloud-nativen Evolution
 

Mehr von QAware GmbH

50 Shades of K8s Autoscaling #JavaLand24.pdf
50 Shades of K8s Autoscaling #JavaLand24.pdf50 Shades of K8s Autoscaling #JavaLand24.pdf
50 Shades of K8s Autoscaling #JavaLand24.pdfQAware GmbH
 
Make Agile Great - PM-Erfahrungen aus zwei virtuellen internationalen SAFe-Pr...
Make Agile Great - PM-Erfahrungen aus zwei virtuellen internationalen SAFe-Pr...Make Agile Great - PM-Erfahrungen aus zwei virtuellen internationalen SAFe-Pr...
Make Agile Great - PM-Erfahrungen aus zwei virtuellen internationalen SAFe-Pr...QAware GmbH
 
Fully-managed Cloud-native Databases: The path to indefinite scale @ CNN Mainz
Fully-managed Cloud-native Databases: The path to indefinite scale @ CNN MainzFully-managed Cloud-native Databases: The path to indefinite scale @ CNN Mainz
Fully-managed Cloud-native Databases: The path to indefinite scale @ CNN MainzQAware GmbH
 
Down the Ivory Tower towards Agile Architecture
Down the Ivory Tower towards Agile ArchitectureDown the Ivory Tower towards Agile Architecture
Down the Ivory Tower towards Agile ArchitectureQAware GmbH
 
"Mixed" Scrum-Teams – Die richtige Mischung macht's!
"Mixed" Scrum-Teams – Die richtige Mischung macht's!"Mixed" Scrum-Teams – Die richtige Mischung macht's!
"Mixed" Scrum-Teams – Die richtige Mischung macht's!QAware GmbH
 
Der Tod der Testpyramide? – Frontend-Testing mit Playwright
Der Tod der Testpyramide? – Frontend-Testing mit PlaywrightDer Tod der Testpyramide? – Frontend-Testing mit Playwright
Der Tod der Testpyramide? – Frontend-Testing mit PlaywrightQAware GmbH
 
Was kommt nach den SPAs
Was kommt nach den SPAsWas kommt nach den SPAs
Was kommt nach den SPAsQAware GmbH
 
Cloud Migration mit KI: der Turbo
Cloud Migration mit KI: der Turbo Cloud Migration mit KI: der Turbo
Cloud Migration mit KI: der Turbo QAware GmbH
 
Migration von stark regulierten Anwendungen in die Cloud: Dem Teufel die See...
 Migration von stark regulierten Anwendungen in die Cloud: Dem Teufel die See... Migration von stark regulierten Anwendungen in die Cloud: Dem Teufel die See...
Migration von stark regulierten Anwendungen in die Cloud: Dem Teufel die See...QAware GmbH
 
Aus blau wird grün! Ansätze und Technologien für nachhaltige Kubernetes-Cluster
Aus blau wird grün! Ansätze und Technologien für nachhaltige Kubernetes-Cluster Aus blau wird grün! Ansätze und Technologien für nachhaltige Kubernetes-Cluster
Aus blau wird grün! Ansätze und Technologien für nachhaltige Kubernetes-Cluster QAware GmbH
 
Endlich gute API Tests. Boldly Testing APIs Where No One Has Tested Before.
Endlich gute API Tests. Boldly Testing APIs Where No One Has Tested Before.Endlich gute API Tests. Boldly Testing APIs Where No One Has Tested Before.
Endlich gute API Tests. Boldly Testing APIs Where No One Has Tested Before.QAware GmbH
 
Kubernetes with Cilium in AWS - Experience Report!
Kubernetes with Cilium in AWS - Experience Report!Kubernetes with Cilium in AWS - Experience Report!
Kubernetes with Cilium in AWS - Experience Report!QAware GmbH
 
50 Shades of K8s Autoscaling
50 Shades of K8s Autoscaling50 Shades of K8s Autoscaling
50 Shades of K8s AutoscalingQAware GmbH
 
Kontinuierliche Sicherheitstests für APIs mit Testkube und OWASP ZAP
Kontinuierliche Sicherheitstests für APIs mit Testkube und OWASP ZAPKontinuierliche Sicherheitstests für APIs mit Testkube und OWASP ZAP
Kontinuierliche Sicherheitstests für APIs mit Testkube und OWASP ZAPQAware GmbH
 
Service Mesh Pain & Gain. Experiences from a client project.
Service Mesh Pain & Gain. Experiences from a client project.Service Mesh Pain & Gain. Experiences from a client project.
Service Mesh Pain & Gain. Experiences from a client project.QAware GmbH
 
50 Shades of K8s Autoscaling
50 Shades of K8s Autoscaling50 Shades of K8s Autoscaling
50 Shades of K8s AutoscalingQAware GmbH
 
Blue turns green! Approaches and technologies for sustainable K8s clusters.
Blue turns green! Approaches and technologies for sustainable K8s clusters.Blue turns green! Approaches and technologies for sustainable K8s clusters.
Blue turns green! Approaches and technologies for sustainable K8s clusters.QAware GmbH
 
Per Anhalter zu Cloud Nativen API Gateways
Per Anhalter zu Cloud Nativen API GatewaysPer Anhalter zu Cloud Nativen API Gateways
Per Anhalter zu Cloud Nativen API GatewaysQAware GmbH
 
Aus blau wird grün! Ansätze und Technologien für nachhaltige Kubernetes-Cluster
Aus blau wird grün! Ansätze und Technologien für nachhaltige Kubernetes-Cluster Aus blau wird grün! Ansätze und Technologien für nachhaltige Kubernetes-Cluster
Aus blau wird grün! Ansätze und Technologien für nachhaltige Kubernetes-Cluster QAware GmbH
 
How to speed up Spring Integration Tests
How to speed up Spring Integration TestsHow to speed up Spring Integration Tests
How to speed up Spring Integration TestsQAware GmbH
 

Mehr von QAware GmbH (20)

50 Shades of K8s Autoscaling #JavaLand24.pdf
50 Shades of K8s Autoscaling #JavaLand24.pdf50 Shades of K8s Autoscaling #JavaLand24.pdf
50 Shades of K8s Autoscaling #JavaLand24.pdf
 
Make Agile Great - PM-Erfahrungen aus zwei virtuellen internationalen SAFe-Pr...
Make Agile Great - PM-Erfahrungen aus zwei virtuellen internationalen SAFe-Pr...Make Agile Great - PM-Erfahrungen aus zwei virtuellen internationalen SAFe-Pr...
Make Agile Great - PM-Erfahrungen aus zwei virtuellen internationalen SAFe-Pr...
 
Fully-managed Cloud-native Databases: The path to indefinite scale @ CNN Mainz
Fully-managed Cloud-native Databases: The path to indefinite scale @ CNN MainzFully-managed Cloud-native Databases: The path to indefinite scale @ CNN Mainz
Fully-managed Cloud-native Databases: The path to indefinite scale @ CNN Mainz
 
Down the Ivory Tower towards Agile Architecture
Down the Ivory Tower towards Agile ArchitectureDown the Ivory Tower towards Agile Architecture
Down the Ivory Tower towards Agile Architecture
 
"Mixed" Scrum-Teams – Die richtige Mischung macht's!
"Mixed" Scrum-Teams – Die richtige Mischung macht's!"Mixed" Scrum-Teams – Die richtige Mischung macht's!
"Mixed" Scrum-Teams – Die richtige Mischung macht's!
 
Der Tod der Testpyramide? – Frontend-Testing mit Playwright
Der Tod der Testpyramide? – Frontend-Testing mit PlaywrightDer Tod der Testpyramide? – Frontend-Testing mit Playwright
Der Tod der Testpyramide? – Frontend-Testing mit Playwright
 
Was kommt nach den SPAs
Was kommt nach den SPAsWas kommt nach den SPAs
Was kommt nach den SPAs
 
Cloud Migration mit KI: der Turbo
Cloud Migration mit KI: der Turbo Cloud Migration mit KI: der Turbo
Cloud Migration mit KI: der Turbo
 
Migration von stark regulierten Anwendungen in die Cloud: Dem Teufel die See...
 Migration von stark regulierten Anwendungen in die Cloud: Dem Teufel die See... Migration von stark regulierten Anwendungen in die Cloud: Dem Teufel die See...
Migration von stark regulierten Anwendungen in die Cloud: Dem Teufel die See...
 
Aus blau wird grün! Ansätze und Technologien für nachhaltige Kubernetes-Cluster
Aus blau wird grün! Ansätze und Technologien für nachhaltige Kubernetes-Cluster Aus blau wird grün! Ansätze und Technologien für nachhaltige Kubernetes-Cluster
Aus blau wird grün! Ansätze und Technologien für nachhaltige Kubernetes-Cluster
 
Endlich gute API Tests. Boldly Testing APIs Where No One Has Tested Before.
Endlich gute API Tests. Boldly Testing APIs Where No One Has Tested Before.Endlich gute API Tests. Boldly Testing APIs Where No One Has Tested Before.
Endlich gute API Tests. Boldly Testing APIs Where No One Has Tested Before.
 
Kubernetes with Cilium in AWS - Experience Report!
Kubernetes with Cilium in AWS - Experience Report!Kubernetes with Cilium in AWS - Experience Report!
Kubernetes with Cilium in AWS - Experience Report!
 
50 Shades of K8s Autoscaling
50 Shades of K8s Autoscaling50 Shades of K8s Autoscaling
50 Shades of K8s Autoscaling
 
Kontinuierliche Sicherheitstests für APIs mit Testkube und OWASP ZAP
Kontinuierliche Sicherheitstests für APIs mit Testkube und OWASP ZAPKontinuierliche Sicherheitstests für APIs mit Testkube und OWASP ZAP
Kontinuierliche Sicherheitstests für APIs mit Testkube und OWASP ZAP
 
Service Mesh Pain & Gain. Experiences from a client project.
Service Mesh Pain & Gain. Experiences from a client project.Service Mesh Pain & Gain. Experiences from a client project.
Service Mesh Pain & Gain. Experiences from a client project.
 
50 Shades of K8s Autoscaling
50 Shades of K8s Autoscaling50 Shades of K8s Autoscaling
50 Shades of K8s Autoscaling
 
Blue turns green! Approaches and technologies for sustainable K8s clusters.
Blue turns green! Approaches and technologies for sustainable K8s clusters.Blue turns green! Approaches and technologies for sustainable K8s clusters.
Blue turns green! Approaches and technologies for sustainable K8s clusters.
 
Per Anhalter zu Cloud Nativen API Gateways
Per Anhalter zu Cloud Nativen API GatewaysPer Anhalter zu Cloud Nativen API Gateways
Per Anhalter zu Cloud Nativen API Gateways
 
Aus blau wird grün! Ansätze und Technologien für nachhaltige Kubernetes-Cluster
Aus blau wird grün! Ansätze und Technologien für nachhaltige Kubernetes-Cluster Aus blau wird grün! Ansätze und Technologien für nachhaltige Kubernetes-Cluster
Aus blau wird grün! Ansätze und Technologien für nachhaltige Kubernetes-Cluster
 
How to speed up Spring Integration Tests
How to speed up Spring Integration TestsHow to speed up Spring Integration Tests
How to speed up Spring Integration Tests
 

Make Developers Fly: Principles for Platform Engineering

  • 1. qaware.de Make developers fly: Principles for platform engineering Alex Krause Software Architect, QAware @alex0ptr
  • 2. Robert Hoffmann 2 2 ehemaliger Product Owner bei Hallo Magenta co-ideation für diesen Talk “Solutions Architect @awscloud ex @DeutscheTelekom, @Samsung I move boxes around to help people move boxes around.” coole Socke 😎 🐦 @robhoffmax
  • 4. 4 QAware DevOps: Wall of Confusion Entwicklung Betrieb Wertschöpfungskette
  • 5. 5 QAware DevOps: Wall of Confusion Entwicklung Betrieb Zentrale Aufgaben: ● Schnell auf Marktänderungen reagieren und neue Funktionalitäten entwickeln. ● Erfolg wird häufig am Durchsatz der Auslieferungen gemessen. Zentrale Aufgaben: ● Stabile, sichere und zuverlässige Dienste für die Kunden. ● Erfolg wird häufig an der Zuverlässigkeit der Systeme gemessen. Folgen: ● Gegensätzliche Ziele führen zum Konflikt, Misstrauen und schlussendlich zur Bildung von Silos. ● Software wird “über den Zaun geworfen”, ohne Rücksicht auf Betriebsführbarkeit oder betriebliche Aspekte. ● Der Betrieb erschwert das Ausliefern durch bürokratische Prozesse um die Kontrolle zurückzuerhalten. ● Im schlimmsten Fall kommt es zu ständigen Ausfällen, schlechten Antwortzeiten und zum Stillstand der Wertschöpfungskette. Dies bedroht alle Geschäftsbereiche.
  • 6. 6 QAware DevOps: Definition “DevOps beschreibt einen Prozessverbesserungs-Ansatz aus den Bereichen der Softwareentwicklung und Systemadministration. [...] DevOps soll durch gemeinsame Anreize, Prozesse und Software-Werkzeuge eine effektivere und effizientere Zusammenarbeit der Bereiche Dev, Ops und Qualitätssicherung (QS) ermöglichen. Mit DevOps sollen die Qualität der Software, die Geschwindigkeit der Entwicklung und der Auslieferung sowie das Miteinander der beteiligten Teams verbessert werden.” Wikipedia
  • 7. 7 “You build it, you run it.” Werner Vogles - 2006
  • 9. 9 QAware Mehr als nur kubectl apply -f ● Security ● Compliance ● Integration ● Reliability ● Scalability ● KRITIS, DSGVO ● Cost Efficiency ● AuthX ● Maintenance
  • 11. 11 QAware Platform Engineering ● Spezialisierung der Rollen, dadurch geringerer Cognitive Load ● immer noch DevOps, zentrale Schnittstelle: Die Plattform ● Wiederverwendung und organisatorische Skalierung ● Automatisierte Integration bedeutet mehr Software Engineering “Platform engineering is the discipline of designing and building toolchains and workflows that enable self-service capabilities for software engineering organizations in the cloud-native era. Platform engineers provide an integrated product most often referred to as an “Internal Developer Platform” covering the operational necessities of the entire lifecycle of an application.” Humanitec
  • 13. 13 QAware Internal Developer Platforms - reingezoomt keine IDPs: reine Compute-Plattformen ● Konzernanforderungen und -services müssen Integriert sein ● bspw. GitLab, AuthX, Prozesse… Source: Amazon Web Services
  • 16. Decentralized Risiko teilen und schnell iterieren
  • 17. 17 QAware Zentrale Multi-Tenant Plattform Skalierung bspw. Prometheus, Opensearch, GitOps Isolierung bspw. Docker, Multi-Tenancy bspw. RBAC, Grafana Stack Koordination bspw. K8s deprecations, CRDs Single Point of Failure bspw. API Gateway Route
  • 18. 18 QAware Source: Amazon Web Services
  • 21. Developer UX ■ User Guide ■ Subtemplates, Modules, Blueprints für goldene Pfade 21 base-chart-spring: name: my-deployment version: '1-snapshot_a5d5547f_13561_master' springProfiles: - name: k8s content: | my-deployment: business: refresh-interval: PT5m api-key: ksyajdf4038dsse envSecrets: SPRING_DATASOURCE_URL: secretName: postgres-my-deployment key: jdbc allowConnectionsFrom: - nginx-ingress - my-other-deployment module "postgresql_..." { source = "git::https://.../.../modules/postgresql.git?ref=1.0.4" resource_group = azurerm_resource_group.this kube_outbound_ip = module.aks.lb_public_ip_outbound sku_name = local.config.postgres_sku_name subnet_id = module.vnet.subnet_id kube_namespace = "default" tags = local.standard_tags }
  • 22. Developer UX ■ User Guide ■ Subtemplates, Modules, Blueprints für goldene Pfade ■ Skaffolding für typische Use-Cases 22
  • 23. Developer UX ■ User Guide ■ Subtemplates, Modules, Blueprints für goldene Pfade ■ Skaffolding für typische Use-Cases ■ Tools für Observability, Debugging… 23
  • 24. Developer UX ■ User Guide ■ Subtemplates, Modules, Blueprints für goldene Pfade ■ Skaffolding für typische Use-Cases ■ Tools für Observability, Debugging… ■ Support ■ Voll integriert 24
  • 26. 26 QAware Trailmix ● abschalten von compliance enforcement ist zentrales feature ● sollte feingranular erfolgen ● Anpassungen an der Referenz z.B. per CODEOWNERS und MR steuern ● definierte Andock Schnittstellen z.B. trigger Token und Webhooks apiVersion: constraints.gatekeeper.sh/v1beta1 kind: K8sDenyLoadbalancerService metadata: name: deny-loadbalancer-service spec: match: kinds: - apiGroups: [""] kinds: ["Service"] parameters: allowedLoadbalancers : - 'traefik/traefik' /CODEOWNERS @platform-team /01-infra/ @platform-team /02-user/ @user-team-foo
  • 28. 28 QAware “Platforms reduce cognitive load by exposing useful abstractions. Good abstractions form a cohesive language and useful mental model. Omitting relevant details is tempting but ends up with dangerous illusions.” Gregor Hohpe @ PlatformCon 2023 Autor von Cloud Strategy Aufgabe für Developer Platforms: ● Verständliche Abstractions mit Escape Hatches bauen ● Die Limitationen der eigenen Abstraktionen verstehen (z.B. Build vs Runtime) ... ● ... und für die DevEx bedenken (Debugging, Alerting) ● Cloud Services bieten fertige Abstraktionen
  • 29. 29 QAware Inner Source ● Aller Code ist intern offen ● jede Instanz einer IDP ist offen ● Referenz IDP ist offen ○ Issue Tracker ○ Roadmap ○ PRs welcome ● Community Events Neue Features, Austausch…
  • 31. 31 QAware Self-Service Der Lebenszyklus einer IDP ist unter voller Kontrolle des Nutzers und benötigt im Regelfall keine Interaktion seitens des Platform Teams. ● Erzeugen, Löschen, Upgraden einer IDP Instanz wird durch Nutzer angestoßen ● Werkzeuge: CLI, UIs, Pipelines ● automatisierte Prozesse überwachen und enforcen die Compliance und Qualität ● wenige PE sind notwendig, um eine große Menge an IDPs zu betreiben
  • 33. 33 QAware IDPs versionieren wie Software ● Versioniert, mit Tags, Release Notes ● Releases durch Pipelines gesteuert ● E2E Test auf jeder Version ● Automatisierte Auslieferung (Patch, Pipeline, Test) # run from IDP template repository # create a patch file git diff v41..v42 > /tmp/v42.patch # run in concrete instance repository # test if patch is applicable in instance git apply --check v42.patch # apply changes git apply /tmp/v42.patch git commit -am "IDP upgrade v41 → v42" git push
  • 37. 37 (Platform Engineers) User-centered ✅ Self-service ✅ Decentralized ✅ Versioned ✅ Customizable ✅ AWS Proton: Developer Platform as a Service Transparent ✅
  • 40. 40 QAware CNCF/K8s Orchestrator für IDP CNCF Bausteine Git + +
  • 41. 41 QAware Capability Tool/Methode k8s/CNCF Tool/Methode AWS Provisioning Engine Terraform, ArgoCD, Kubernetes Operators AWS CloudFormation CI/CD GitLab CI, Argo Workflows AWS CodePipeline Source Code GitLab CI AWS CodeCommit Pattern Repository Git Repository AWS Proton, AWS Service Catalog Managed Services Cloud Services AWS services, AWS Private Marketplace Developer Portal Backstage, GitLab Pages AWS Proton, AWS Service Catalog CLI Code AWS CLI (Proton Commands) Deployment Service Code, Crossplane AWS Proton Managed Environments Code / Git AWS Proton, AWS Control Tower Governance Open Policy Agent, AWS Config AWS Control Tower, AWS Config, AWS SecurityHub, Amazon GuardDuty, Amazon Inspector Capabilities mit Implementierungen mappen CNCF Platforms White Paper: https://tag-app-delivery.cncf.io/whitepapers/platforms/
  • 42. 42 QAware Capability Tool/Methode k8s/CNCF Tool/Methode AWS Provisioning Engine Terraform, ArgoCD, Kubernetes Operators AWS CloudFormation CI/CD GitLab CI, Argo Workflows AWS CodePipeline Source Code GitLab CI AWS CodeCommit Pattern Repository Git Repository AWS Proton, AWS Service Catalog Managed Services Cloud Services AWS services, AWS Private Marketplace Developer Portal Backstage, GitLab Pages AWS Proton, AWS Service Catalog CLI Code AWS CLI (Proton Commands) Deployment Service Code, Crossplane AWS Proton Managed Environments Code / Git AWS Proton, AWS Control Tower Governance Open Policy Agent, AWS Config AWS Control Tower, AWS Config, AWS SecurityHub, Amazon GuardDuty, Amazon Inspector Capabilities mit Implementierungen mappen CNCF Platforms White Paper: https://tag-app-delivery.cncf.io/whitepapers/platforms/ tl;dr wähle Dein Ecosystem
  • 43. Wie baut ihr Plattformen?
  • 44. qaware.de QAware GmbH Mainz Rheinstraße 4 C 55116 Mainz Tel. +49 6131 21569-0 info@qaware.de twitter.com/qaware linkedin.com/company/qaware-gmbh xing.com/companies/qawaregmbh slideshare.net/qaware github.com/qaware