Die grossen Public Cloud-Anbieter bieten ein enormes Spektrum an Services an. Eines davon ist das Serverless Computing, welches ermöglicht eine Anwendung zu erstellen und auszuführen ohne dabei den Server selbst verwalten zu müssen. Der nachstehende Beitrag beschreibt wie man die Basis für Serverless-Dienste mittels CloudFormation bei AWS bereitstellt.
Was ist Serverless Computing?
Serverless (Serverlos) Computing heisst nicht, dass es keine Server mehr braucht, sondern dass die Serverinfrastruktur vom Cloud-Anbieter selbst betreut und verwaltet wird. Man kann sich auf die Datenverwaltung, Codebereitstellung und Integration von Anwendungen konzentrieren und muss sich nicht mehr um die Server selbst kümmern.
AWS bietet Serverless-Dienste für folgende drei Ebenen
- Datenverabeitung: AWS Lambda, AWS Fargate
- Integration: Amazon EventBridge, AWS Step Functions, Amazon SQS, Amazon SNS, Amazon API Gateway, AWS AppSync
- Datenspeicher: Amazon S3, Amazon DynamoDB, Amazon RDS Proxy
Vorteile von Serverless
- Da Serverless die Umstellung auf DevOps vorantreibt, führt dies für höhere Entwicklerproduktivität und geringere Betriebskosten.
- Es minimiert die Routineaufgaben, da die Infrastruktur vom Cloud-Anbieter verwaltet wird.
- Ein weiterer Vorteil ist die Minimierung der Betriebskosten. Man bezahlt nur noch die Nutzung des Service (pay-as-you-use). Falls der Service in der Nacht nicht genutzt wird, zahlt man auch nicht dafür.
- Der Serverless-Anbieter kümmert sich um die automatische Fehlertoleranz und Skalierung des Services.
Nachteile von Serverless
- Es besteht eine Serviceabhängigkeit zum Cloud-Anbieter und könnte unerwartete Kosten bei einer Migration mitbringen. (Vendor Lock-in)
- Man verliert die Kontrolle und Verantwortung, was wiederum das Debugging erschweren kann.
- Die Funktion der Serverless Services können nicht geändert werden.
Ein kleines Praxis Beispiel zum nachbauen
Falls du noch keinen AWS Account hast erstelle dir nach folgender Anleitung einen.
Basis Serverless Stack mit S3 Bucket
Als erstes erstellen wir ein Stack in AWS CloudFormation mittels Template welches ich auf github hochgeladen habe.
- Melde dich an und navigiere zu CloudFormation
- Erstelle ein neuen Stack (Mit neuen Ressourcen)
- Lade das zusammengestellte Template von mir hoch (github)
- Fülle die Stack Details entsprechend mit deinen eigenen Werten aus
- Als letztes kommt die Konfiguration der Stack Optionen. Fülle die Tags ein oder erweitere diese beliebig.
Das Ergebnis ist unter «Amazon S3» zu finden. Dort sieht man nun unseren S3 Bucket mit dem Namen «blogging».
Der erstelle S3 Bucket hat eine Regel, welche die Daten nach 90 Tagen auslaufen und nach weiteren 90 Tagen gelöscht werden. Für ein tieferes Learning empfehle ich mein Template mit den Informationen auf der Weboberfläche zu vergleichen.
Weiterführende Links
https://aws.amazon.com/de/serverless/
https://www.redhat.com/de/topics/cloud-native-apps/what-is-serverless
https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-cli-creating-stack.html