Cloud is the new normal”, so Andrew R. Jassy (CIO AWS). Was also liegt näher, als genau jetzt den Schritt in die Cloud zu wagen? Denn schließlich wollen wir ja alle irgendwie ein klein wenig „normal“ sein. Aber ist dieser Schritt wirklich so einfach, wie uns die verschiedenen Cloudanbieter glauben machen? Lässt sich eine klassische Enterprise-Architektur einfach so in die Cloud überführen oder bedarf es neuer, cloudspezifischer Architekturmuster? Was unterscheidet dabei die verschiedenen As-a-Service-Varianten (IaaS, PaaS, BaaS und FaaS) voneinander und für welchen Anwendungsfall nimmt man was? Fragen über Fragen – aber keine Panik, der Talk liefert Antworten.
5. From idea to App
The biggest advantage of a cloud(-native)
architecture is that it takes you from idea
to app in the quickest possible time.
“
(Pavan Belagatti, Groth Marketing Manager, jfrog)
16. Road to the Cloud
Running applications on the cloud is not a
binary decision. You don‘t just move to the
cloud and call it a day.
“
(Paul Fremantle, VP Product Engineering at Weaveworks)
28. Lift & Shift
Superpower
„Entsorgen der eigenen Infrastruktur.“
1. Nutzen von Cloud Servern
2. Schnelle und einfache Provisionierung
3. An der Anwendung keine Änderungen
Keine große Umgewöhnung
33. Lift & Shift
Limitations
„Cloud? Auch nur Server – halt woanders.“
1. Kaum (Cloud-)Mehrwerte gehoben
2. In der Regel teurer als on-premise
3. Performance / Latency / Security Risiko*
4. Mainframe Migration nicht möglich
*fehlendes Verständnis für die Cloud
41. Vendor Lock-in
Superpower
„Alles aus einer Hand.“
1. Hoher Grad an Integration
2. Full-Service Component Management
3. Gutes Preis-/Leistungsverhältnis
4. No more DIY ;-)
60. Vendor Lock-in
Limitation
„Wie war das mit dem ewig binden?“
1. Kaum bis keine Portierbarkeit / Flexibilität
2. Häufig proprietäres Wissen / Format
3. Abhängig von Support Cycles / End-of-Life
Wechsel ist möglich und oft wenig aufwendig,
aber der Zeitpunkt ist nicht selbstbestimmt!
70. ClickOps aka „Wie geht das?“
AWS Cloud
Availability Zone 1
VPC
Public subnet
NAT gateway
Private subnet
Auto Scaling
group
Bastion host
Availability Zone 2
Public subnet
NAT gateway
Private subnet
Availability Zone 3
Public subnet
NAT gateway
Private subnet
Amazon
EKS
Kubernetes nodes Kubernetes nodes Kubernetes nodes
Auto Scaling
group
Source: https://github.com/aws-ia/cloudformation-base-eks
71. ClickOps
Superpower
„Nur einen Klick entfernt.“
1. Anlegen / Ändern via Wizards
2. Kein Stress mit Rollen & Rechten
3. Vereinfachung der Provisionierung
Gut für den Aufbau von Verständnis / Wissen
77. ClickOps
Limitation
„Alles ganz einfach, aber …“
1. Grenzen der Reproduzierbarkeit
2. Grenzen der Wiederverwendung
3. Grenzen der Versionierung
4. Grenzen der Testbarkeit
78. AWS Cloud
Availability Zone 1
VPC
Public subnet
NAT gateway
Private subnet
Auto Scaling
group
Bastion host
Availability Zone 2
Public subnet
NAT gateway
Private subnet
Availability Zone 3
Public subnet
NAT gateway
Private subnet
Amazon
EKS
Kubernetes nodes Kubernetes nodes Kubernetes nodes
Auto Scaling
group
Source: https://github.com/aws-ia/cloudformation-base-eks
CLI & IaC „Sag mir, was du willst!“
83. 1. terraform init
2. terraform plan
3. terraform apply
4. terraform destroy
deklarative
Beschreibung
des Zielbilds
CLI & IaC „Sag mir, was du willst!“
84. 1. terraform init
2. terraform plan
3. terraform apply
4. terraform destroy
deklarative
Beschreibung
des Zielbilds
CLI & IaC „Sag mir, was du willst!“
„MOI?“
Na, dann
vielen Dank!
85. Shared Responsibility Model Security
Customer Data
Platform, Applications, Identity & Access Management
Operating System, Network & Firewall Configuration
Client-side Data
Encryption & Data
Integrity Authentication
Server-side Encryption
(File System an/or Data)
Network Traffic Protection
(Encryption/Integrity/Identity)
Customer
Responsibility for
security „in“
the cloud
Application
Development
Team
Compute Storage Database Networking
Edge
Locations
Regions
Availability Zones
AWS
Responsibility for
security „of“
the cloud
Cloud
Service
Provider
AWS Global
Infrastructure
86. Shared Responsibility Model Security
Acct Mgmt AMI Bakery 3rd Party Vendor Mgmt
Security & GRC Framework
Monitoring & Logging Framework
Client
PaaS
Responsibility for
security „in“
the cloud platform
Cloud
Platform
Team
Customer Data
Platform, Applications, Identity & Access Management
Operating System, Network & Firewall Configuration
Client-side Data
Encryption & Data
Integrity Authentication
Server-side Encryption
(File System an/or Data)
Network Traffic Protection
(Encryption/Integrity/Identity)
Customer Responsibility for
security „in“
the cloud
Application
Development
Team
Compute Storage Database Networking
Edge
Locations
Regions
Availability Zones
AWS
Responsibility for
security „of“
the cloud
Cloud
Service
Provider
AWS Global
Infrastructure
94. NCRS
Limitation
„Das ist aber ganz schön teuer!“
1. Verlagerung des Dev-Lifecycles
2. gefährliches Halbwissen
3. Missachtung des PoLP*
4. fehlende Kostenoptimierung
*Principle of Least Privilege
95. Cost Optimization
Step 1:
Architect for
cost efficency aka
„Pay for what you
think you need.“
Step 2:
Optimize usage
cost aka
„Pay for what
you realy use.“
Step 3:
Take advantage of
benefits over time aka
„Pay for what you
really need.“
Step-by-Step Ansatz
96. Cost Optimization
Am Beispiel von EC2 Instanzen
On-Demand Instances:
• Pay-as-you-go auf Basis von angefangenen Stunden*
• vorheriges Commitment nicht notwendig
*bei einigen Systemen auch pro angefangener Minute
97. Cost Optimization
Am Beispiel von EC2 Instanzen
Reserved Instances:
• Up-front-Fee auf Basis des Commitments
• Pay-as-you-go zu günstigeren Preisen auf Basis von angefangenen Stunden*
• vorheriges Commitment für ein oder drei Jahre notwendig
• Marketplace für kürzere Commitments
• 10% Preisvorteil bei einem Commitment auf min. 1200 Stunden / Jahr
• 30% - 60% Preisvorteil bei einem Commitment auf ein bis drei Jahre
98. Cost Optimization
Am Beispiel von EC2 Instanzen
Spot Instances:
• Pay-what-you-want für „freie“ Kapazitäten
• Instanz läuft, wenn Bet-Preis den Spot-Preis übersteigt
• Bei Verfügbarkeit extremes Sparpotential
• 40% - 60% Preisvorteil bei Spot Blocks von 2-6 Stunden
• bis zu 85% Preisvorteil bei echten Spots mit 2 Minuten „Warnzeit“
99. Cost Optimization
Am Beispiel von EC2 Instanzen
Real-Life Szenario:
• RIs für planbare / bekannte Workload
• Autoscale-Groups für den Rest
• Spot Instances, wenn möglich
• On-Demand Instances, alternativ
Reserved Spot On-Demand
100. Cost Optimization
Am Beispiel von S3 Object Store
On-Demand:
• flexibler Object Store
• Zugriff im Millisekundenbereich
• automatische Object Versionierung
• beliebig on-demand skalierbar
• 99,99% Verfügbarkeit
• 99,999999999% Zuverlässigkeit (Durability)
101. Cost Optimization
Am Beispiel von S3 Object Store
Reduced Redundancy:
• alles wie bei „on-demand“, außer
• 99.99% Zuverlässigkeit (Durability)
• einer statt zwei fehlertollerante Standorte
• einige wenige % Preisvorteil
102. Cost Optimization
Am Beispiel von S3 Object Store
Infrequent Access:
• alles wie bei „on-demand“, außer …
• weniger als zwei Zugriffe je Data / Monat
• bis zu 50% Preisvorteil bei Zugriff in Millisekunden
103. Cost Optimization
Am Beispiel von S3 Object Store
Glacier:
• alles wie bei „on-demand“, außer …
• verlängerte Zugriffszeit von 1 Minute bis 12 Stunden*
• bis zu 65% Preisvorteil bei Minuten
• bis zu 95% Preisvorteil bei Stunden
*für Archivierung, Long-Term Backups und alte Daten
109. Architektur
Superpower
„Der Multi-Tier Monolith: EIN-fach einfach!“
1. einfach in der Entwicklung
2. einfach im Testing
3. einfach im Deployment
4. einfach im Monitoring
5. einfach im Debugging
110. Systems for the Cloud
For systems to behave well on the cloud,
they need to be written for the cloud.*
“
* Applications vs. Software-as-a-Service
(Paul Fremantle, VP Product Engineering at Weaveworks)
111.
112. Eine Codebase
Explizite Abhängigkeiten
Konfiguration via EnvVars
Unterstützende Dienste
Build, Release, Run
Stateless Prozesse
Bindung an Ports
Nebenläufigkeit
Elastizität & Verfügbarkeit
Dev-Prod Vergleichbarkeit
Logs als Streams
Admin-Prozesse
VII.
VIII.
IX.
X.
XI.
XII.
I.
II.
III.
IV.
V.
VI.
113. Eine Codebase
Explizite Abhängigkeiten
Konfiguration via EnvVars
Unterstützende Dienste
Build, Release, Run
Stateless Prozesse
Bindung an Ports
Nebenläufigkeit
Elastizität & Verfügbarkeit
Dev-Prod Vergleichbarkeit
Logs als Streams
Admin-Prozesse
VII.
VIII.
IX.
X.
XI.
XII.
I.
II.
III.
IV.
V.
VI.
APP
DESIGN
MANAGE
BUILD &
RELEASE
114. Architektur
Limitation
„Der Multi-Tier Monolith: EIN-fach zu einfach!“
1. single Build - & Deployment Unit
2. starre Kopplung von Komponenten
3. Skalierung via „all-or-nothing“
4. meist kein API-first Design
115. Routing
Queue
Backing
Services
File Storage Archive
RDBMS noSQL
PROD
ALB
Controller
myApp
myApp
myApp
Availability Zone A
Availability Zone B
Availability Zone C
Elastic Kubernetes Service
Architektur aka „EIN-fach zu einfach“
No
SaaS
Exception
116. Routing
Queue
Backing
Services
File Storage Archive
RDBMS noSQL
PROD
ALB
Controller
Availability Zone A
Availability Zone B
Availability Zone C
Elastic Kubernetes Service
Architektur aka „Software-as-a-Service“
MS
MS
MS
MS
MS
MS
MS
117. Routing
Queue
Backing
Services
File Storage Archive
RDBMS noSQL
PROD
ALB
Controller
Availability Zone A
Availability Zone B
Availability Zone C
Elastic Kubernetes Service
Architektur aka „Software-as-a-Service“
MS
MS
MS
MS
MS
MS
MS
API
Gateway
API
API
API
118. Routing
Backing
Services
File Storage Archive
RDBMS noSQL
PROD
ALB
Controller
Availability Zone A
Availability Zone B
Availability Zone C
Elastic Kubernetes Service
Architektur aka „Software-as-a-Service“
MS
MS
MS
MS
MS
MS
MS
API
Gateway
API
API
API
EventBridge
Domain
Events
Infra &
Domain
Events
Infra
Events
126. Routing
Backing
Services
File Storage Archive
RDBMS noSQL
PROD
ALB
Controller
Availability Zone A
Availability Zone B
Availability Zone C
MS
MS
MS
MS
MS
MS
MS
API
Gateway
API
API
API
EventBridge
Domain
Events
Infra &
Domain
Events
Infra
Events
Elastic Kubernetes Service
SaaS Architecture
Access via APIs
Modularization via Services
Communication via Events
127. Routing
Backing
Services
File Storage Archive
RDBMS noSQL
PROD
ALB
Controller
Availability Zone A
Availability Zone B
Availability Zone C
EKS
MS
MS
MS
MS
MS
MS
MS
API
Gateway
API
API
API
EventBridge
Infra
Events
myApp
myApp
Common
Code
Base
Declarative API
CI/CD
Monitorring
Components
self
healing
Users
IAM
Cert
Security
Domain
Events
Infra &
Domain
Events
Platform Team
Cloud Templates
Cloud Governance
Common Security
Common Observability
CI/CD via IaC & CLI
128. Cloud all-in
Cloud-native Architecture
Road to
the Cloud
Cloud DevOps
für reproduzierbare Bereitstellung
Die ersten Schritte
Orientierung via Lift & Shift
Plattform Mgmt.
Monitoring, Resilience
Extended Services
für vereinfachte Bereitstellung
Managed Services
verstehen und nutzen
132. Mut und Willen zur Veränderung
System-Design
• fachliches Splitten der Monolithen
• fachliches Splitten der Daten
• Einführung von Containerisierung
• leichtgewichtige Prozesse*
*Choreographie wenn möglich, Orchestrierung wenn nötig
133. Mut und Willen zur Veränderung
Organisation
• Einführung Business Capability Teams
• Einführung Platform Operation Team
134. Mut und Willen zur Veränderung
Kultur
• DevOps vs Silos
• Continuous Delivery vs Releases
• Autonomie vs Governance*
• Fault Tolerant vs Static Systems
*gilt für Micro Architektur, nicht für Marco Architektur