Die Cloud rückt in den letzten Jahren mehr und mehr in den Fokus. Die Möglichkeiten scheinen unbegrenzt: von virtuellen Servern bis hin zur vollständigen Verlagerung der Anwendungslogik in die Cloud (aka Serverless). Doch in welchem Kontext macht welches Szenario wirklich Sinn? Und wie sehen die konkreten Patterns aus? In der Session werden wir eine monolithische Anwendung Schritt für Schritt in die Cloud verlagern und dabei diskutieren, welche Vorteile und Herausforderungen die jeweiligen Schritte für die Anwendungsarchitektur mit sich bringen.
Im Rahmen der Session zeigt Lars Röwekamp an einem Live-Beispiel, wie sich verschiedene Aspekte/Komponenten einer Anwendung in die Cloud verlagern lassen und welche Konsequenzen dies für die Architektur, aber auch für Management und Monitoring mit sich bringt.
3. ÜBER MICH
Wer bin ich - und wenn ja, wie viele?
• CIO New Technologies
• Enterprise & Mobile
• Autor, Speaker, Coach & Mentor
• Snowboard & MTB Enthusiast
• Mehrfacher Vater, einfacher Ehemann
Lars Röwekamp (a.k.a. @mobileLarson)
#WISSENTEILEN
LR
13. „Kein Server ist
einfacher zu
verwalten, als
kein Server.“
(Werner Vogels, CTO Amazon)
out-of-the-box self-scaling
out-of-the-box
self-scaling
cloud-based
super-backend
I had a dream ...
26. #WISSENTEILEN
Road to the Cloud
IaaS (Infrastructure as a Service)
Auslagern der Infrastruktur in die Cloud, mit
dem Ziel, Provisionierung von Systemen on
demand - in Minuten statt Tagen/Wochen -
vornehmen zu können.
27. #WISSENTEILEN
Road to the Cloud
IaaS (Infrastructure as a Service)
• einmalige Anwendungen werden bezahlbar
• brachliegende Ressourcen werden frei
• plötzliches Wachstum wird realisierbar
• Lastspitzen können abgefedert werden
• keine eigene Infrastruktur für „Kuriositäten“
• vereinfachtes Testing dank Virtualisierung
30. #WISSENTEILEN
Road to the Cloud
Amazon Machine Image
Template für Instanzen,
z.B. OS, App Server,
Applications
Virtual Cloud Server
AMI Instanzen, optimiert für ...
- Datenverarbeitung
- In-Memory Apps
- I/O-Leistung
- Accelerated Computing
48. #WISSENTEILEN
Road to the Cloud
PaaS (Platform as a Service)
Verwendung von Cloud-basierten Plattform
Komponenten – Datenbank, Storage,
Massaging, Monitoring etc. - mit dem Ziel,
diese ohne administrativen Aufwand,
hochverfügbar und beliebig skalierbar der
eigenen Anwendung zur Verfügung zu stellen.
49. #WISSENTEILEN
Road to the Cloud
PaaS (Platform as a Service)
• Platform on-the-fly
• Permanente Ressourcen für „Main Business Data“
• Temporäre Ressourcen, z.B. für Batch
• weltweiter Zugriff mit „einheitlichen“ Latenzen
• keine Panik vor Data-Peaks
• keine Panik vor Datenverlusten
• verbessert agile Entwicklung für Teams
64. #WISSENTEILEN
Road to the Cloud
BaaS(Backend as a Service)
„Auslagern des Backends – Business Logik -
in die Cloud, mit dem Ziel das Rad nicht neu
erfinden zu müssen, sondern auf etablierte (de
facto) Standards zurückgreifen zu können.“
65. #WISSENTEILEN
Road to the Cloud
BaaS(Backend as a Service)
• Backend „to go“ via „Off-the-Shelf“ Komponenten
• de facto Standards vs. „Rad neu erfinden“
• geringe Einstiegshürde a.k.a. „Make or Buy“
• schnelle Reaktionszeit a.k.a. „Time to Market“
80. #WISSENTEILEN
Road to the Cloud
Wo liegt das Problem?
• Meine „monolithische“ Anwendung ist mittlerweile
auf mehrere (Backend-)Services verteilt. Aber ...
• wie sichere ich den Zugriff auf die Services ab und
• wie gehe ich mit „shared“ Data um?
?
81. #WISSENTEILEN
Road to the Cloud
JWT (JSON Web Token)
• neue, einfache Spezifikation
• sehr kompakt
• Token plus public & private „Claims“
• digitale Signatur und/oder Encryption
93. #WISSENTEILEN
Road to the Cloud
Wo liegt das Problem?
• Verschiedenste Clients mit unterschiedlichsten
Anforderungen kommunizieren mit dem Backend.
• Client ruft mehrere Services auf und aggregiert
intern das Ergebnis („Chatty Communication“).
• Direkte Kommunikation führt zu starker
Abhängigkeit zwischen Clients und Services.
?
97. #WISSENTEILEN
Road to the Cloud
Und was ist die Lösung?
API Gateway
• „Haupteingang“ für Anwendungen, um auf
Daten, Geschäftslogik oder Funktionen der
Backend-Services zuzugreifen.
• Zusätzlicher Layer zur Entkoppelung von
Client(s) und Backend-Services.
!
100. #WISSENTEILEN
Road to the Cloud
DIY vs. Out-of-theBox?
• Was genau möchte man erreichen?
• DIY macht nur selten Sinn!
• AWS Gateway
• Netflix Zuul
• Kong, Treafik, …
• viele, viele mehr …
+
113. #WISSENTEILEN
Road to the Cloud
• High Availability
• Zero Administration
• Auto-Scaling
•Your Code
114. #WISSENTEILEN
Road to the Cloud
FaaS(Function as a Service)
„Auslagern der eigenen Business Logik - in
Form von einzelnen Funktionen - in die Cloud,
mit dem Ziel, sich um keinerlei Infrastruktur
mehr Gedanken machen zu müssen.“
115. #WISSENTEILEN
Road to the Cloud
FaaS(Function as a Service)
• Serverless
• beliebige Skalierung „on-the-fly“
• optimale Ressourcennutzung
• verursachungsgerechte Kosten
124. #WISSENTEILEN
Road to the Cloud
Handler Function
Lambda
Function
</>
„...“
Event Object
Context Object
...
{
125. #WISSENTEILEN
oRoad to the Cloud
Handler Function
Lambda
Function
</>
„...“
Event Object
Context Object
...
{
126. #WISSENTEILEN
Road to the Cloud
Handler Function
Lambda
Function
</>
„...“
Event Object
Context Object
...
{
IAM Role
127. #WISSENTEILEN
Road to the Cloud
Handler Function
Lambda
Function
</>
„...“
Event Object
Context Object
...
{
IAM Role
Return Object*
128. #WISSENTEILEN
Road to the Cloud
Lambda
Function
1. Number of Calls*
2. Memory Usage**
{
IAM Role
Return Object*
(*first 1 million for free, **first 400.000 sec free for 1 GB memory)