SlideShare ist ein Scribd-Unternehmen logo
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

PDF
Make Developers Fly: Principles for Platform Engineering
PDF
Cloud Native Migration: Wie IT-Landschaften ihren Weg auf eine Cloud-Native-P...
PPT
Software-Engineering in der Luft- und Raumfahrt mit Open-Source-Tools
PDF
1. Cloud Native Meetup Innsbruck, 23.11.2023
PDF
2023-08_RPA-ChapterEvent_Überprüfung-der-Codequalität
PDF
Agil zum Ziel: Erfolgsfaktoren für agile IT-Großprojekte
PDF
Kubernetes ist so viel mehr als ein Container Orchestrierer
PDF
Kontinuierliches (Nicht)-Funktionales Testen von Microservices auf K8s
Make Developers Fly: Principles for Platform Engineering
Cloud Native Migration: Wie IT-Landschaften ihren Weg auf eine Cloud-Native-P...
Software-Engineering in der Luft- und Raumfahrt mit Open-Source-Tools
1. Cloud Native Meetup Innsbruck, 23.11.2023
2023-08_RPA-ChapterEvent_Überprüfung-der-Codequalität
Agil zum Ziel: Erfolgsfaktoren für agile IT-Großprojekte
Kubernetes ist so viel mehr als ein Container Orchestrierer
Kontinuierliches (Nicht)-Funktionales Testen von Microservices auf K8s

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

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

Mehr von QAware GmbH (20)

PDF
QAware_Mario-Leander_Reimer_Architecting and Building a K8s-based AI Platform...
PDF
Frontends mit Hilfe von KI entwickeln.pdf
PDF
Mit ChatGPT Dinosaurier besiegen - Möglichkeiten und Grenzen von LLM für die ...
PDF
50 Shades of K8s Autoscaling #JavaLand24.pdf
PDF
Make Agile Great - PM-Erfahrungen aus zwei virtuellen internationalen SAFe-Pr...
PPTX
Fully-managed Cloud-native Databases: The path to indefinite scale @ CNN Mainz
PDF
Down the Ivory Tower towards Agile Architecture
PDF
"Mixed" Scrum-Teams – Die richtige Mischung macht's!
PDF
Der Tod der Testpyramide? – Frontend-Testing mit Playwright
PDF
Was kommt nach den SPAs
PDF
Cloud Migration mit KI: der Turbo
PDF
Migration von stark regulierten Anwendungen in die Cloud: Dem Teufel die See...
PDF
Aus blau wird grün! Ansätze und Technologien für nachhaltige Kubernetes-Cluster
PDF
Endlich gute API Tests. Boldly Testing APIs Where No One Has Tested Before.
PDF
Kubernetes with Cilium in AWS - Experience Report!
PDF
50 Shades of K8s Autoscaling
PDF
Kontinuierliche Sicherheitstests für APIs mit Testkube und OWASP ZAP
PDF
Service Mesh Pain & Gain. Experiences from a client project.
PDF
50 Shades of K8s Autoscaling
PDF
Blue turns green! Approaches and technologies for sustainable K8s clusters.
QAware_Mario-Leander_Reimer_Architecting and Building a K8s-based AI Platform...
Frontends mit Hilfe von KI entwickeln.pdf
Mit ChatGPT Dinosaurier besiegen - Möglichkeiten und Grenzen von LLM für die ...
50 Shades of K8s Autoscaling #JavaLand24.pdf
Make Agile Great - PM-Erfahrungen aus zwei virtuellen internationalen SAFe-Pr...
Fully-managed Cloud-native Databases: The path to indefinite scale @ CNN Mainz
Down the Ivory Tower towards Agile Architecture
"Mixed" Scrum-Teams – Die richtige Mischung macht's!
Der Tod der Testpyramide? – Frontend-Testing mit Playwright
Was kommt nach den SPAs
Cloud Migration mit KI: der Turbo
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
Endlich gute API Tests. Boldly Testing APIs Where No One Has Tested Before.
Kubernetes with Cilium in AWS - Experience Report!
50 Shades of K8s Autoscaling
Kontinuierliche Sicherheitstests für APIs mit Testkube und OWASP ZAP
Service Mesh Pain & Gain. Experiences from a client project.
50 Shades of K8s Autoscaling
Blue turns green! Approaches and technologies for sustainable K8s clusters.
Anzeige

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