How Is This Serverless Tool Built? Der PROTOS CloudAdvisor

Unser Serverless AWS Webtool: Der PROTOS Technologie CloudAdvisor

Mit dem CloudAdvisor geben wir Ihnen die Möglichkeit, in 5 Minuten und mit nur ein paar Klicks eine Einschätzung Ihrer bestehenden Cloud Infrastruktur zu erhalten. Falls Sie noch nicht den Schritt in die Cloud gewagt haben, hilft Ihnen der CloudAdvisor dabei Ihre Potenziale und Möglichkeiten in der Cloud zu erschließen. 

Bei PROTOS Technologie sind wir spezialisiert auf all things Cloud. Wir haben den CloudAdvisor als Tool für unsere Partner:innen, Kund:innen und alle Interessierten konzipiert. Natürlich cloud-native, Serverless und per Infrastructure-as-Code. Im Folgenden stellen wir Ihnen unsere Umsetzung einer modernen Webapplication vor, die Ihnen eine schnelle Entwicklung, einen simplen Betrieb und eine hohe Skalierbarkeit erlaubt. 

Distribution 

Die einfachste Art eine Website in der AWS Cloud zu hosten und weltweit hochverfügbar zur Verfügung zu stellen ist die Kombination aus einem Amazon Simple Storage Service (Amazon S3) Bucket und einer CloudFront Distribution. In einem Amazon Simple Storage Service (S3) Bucket sind die Inhalte sicher, da sie privat gespeichert werden. Die CloudFront Distribution stellt Usern die Inhalte als Teil des Amazon Content Delivery Network (CDN) zur Verfügung.  

AWS bietet dazu eine Bandbreite an Services, die zur Umsetzung des Website Hostings genutzt werden können: so z.B. den AWS Certificate Manager, der einem erlaubt ein von AWS verwaltetes SSL/TLS Zertifikat anzufordern oder ein bestehendes zu importieren, um es der CloudFront Distribution zuzuordnen. Außerdem lassen sich User Zugriffe mittels AWS Route53 einfach routen, einem hochverfügbaren und skalierbaren Domain Name System (DNS) Service für die Cloud.  

Damit ist die wesentliche Auslieferung der Inhalte bereits möglich: User rufen mit ihren Endgeräten eine gesicherte URL, zum Beispiel https://cloudadvisor.protos-cloudsolutions.de auf, werden von Route53 auf die CloudFront Distribution geleitet und erhalten, mit unserem hinterlegten Zertifikat gesichert, die Inhalte des S3 Buckets bereitgestellt. 

Funktionalität

Doch unsere Website bzw. Webapplikation soll nicht nur statische Inhalte darstellen, sondern auch eigene Funktionalität erhalten. Jedoch ohne eigene Compute Server, die den Programmcode ausführen, sondern Serverless – es wird nur on-demand auf Anfrage-Events reagiert. In der AWS Cloud wird dazu die Kombination aus Amazon API Gateway, zur einfachen Erstellung und Verwaltung von RESTful-APIs, und AWS Lambda, dem managed Service für on-demand Rechenleistung zur Ausführung von Programmcode, verwendet.  

Lambda bildet das Herzstück und ermöglicht es, Programmcode (Python, JavaScript, Go usw.) einfach hochzuladen und sofort auszuführen (Functions-as-a-Service). Dabei ist die Integration in die AWS Umgebung reibungslos und der Zugriff erfolgt über das gängige Berechtigungsprinzip (IAM). So wird beispielsweise der sichere Zugriff auf S3 Buckets gewährleistet oder die API-Kommunikation über das API Gateway erlaubt.   

Eine gängige Funktionalität die häufig nötig ist, ist ein Kontaktformular oder eine sonstige Art der Kommunikation mit dem User, um Ihnen Ihre Ergebnisse am Ende zusenden zu können, so auch beim CloudAdvisor. Dazu bietet Lambda natürlich die Möglichkeit externe APIs von z.B. CRM oder Marketing Tools einzubinden oder auf den AWS eigenen Simple E-Mail-Service (SES) zurückzugreifen. Damit kann die Information aus dem Kontaktformular im Frontend einfach und sicher mittels API-Aufruf der eigenen REST-API über das API Gateway zur Ausführung des Codes an die Lambda Funktion übergeben werden. Dort können Daten verarbeitet werden und mittels der AWS SDK (siehe z.B. boto3 für Python) weitere Services integriert werden. Dies erfolgt insbesondere sicher durch die Nutzung des AWS System Mangers, der einem die Speicherung von API Keys und den sicheren Zugriff darauf über dessen Parameter Store erlaubt. So werden entsprechend der Fragebogenantworten für die User des CloudAdvisors Ergebnisse und eine E-Mail erstellt, die per SES API-Aufruf versendet wird.  

Damit stehen Ihnen alle Möglichkeiten offen verschiedenste Systeme und Anbindungen in Ihre Webapplikation zu integrieren und sich ausschließlich auf die Funktionalität und die Inhalte zu konzentrieren. Denn während Sie sich auf Ihre Schwerpunkte fokussieren übernimmt der Cloud Provider das komplette Management aller Services und erlaubt stets skalierbaren und hochverfügbaren Zugriff auf Ihre Inhalte. 

Entwicklung 

Doch man möchte nicht nur fertige Inhalte in der Cloud zur Verfügung stellen, sondern auch von den Vorteilen moderner Entwicklungsparadigmen in einem Cloud Umfeld profitieren. Deshalb werden sowohl die Infrastruktur als auch die Inhalte über AWS Entwicklertools und deren Stack für Continuous Integration und Deployment (CI/CD) ausgerollt. Auch der CloudAdvisor wurde mit einem DevOps Ansatz entwickelt und zur Zufriedenheit unseres Product Owners nach 5 Sprints in agiler Scrum Methodik zu seinem ersten Release gebracht.  

Zur Entwicklung der Webapplikation gibt es für die Frontend Entwickler:innen einen eigenen Zugriff (IAM Rolle) auf ein AWS CodeCommit Repository, den git basierten Versionskontrollservice von AWS. Commiten sie Änderungen an der React Codebase wird automatisch eine AWS CodePipeline ausgelöst, die mittels AWS CodeBuild, die Änderungen kompiliert, testet und das Artefakt zunächst auf einem S3 Bucket speichert zum anschließenden Deployment durch AWS CodeDeploy auf das Hosting S3 Bucket.  

Das Infrastrukturmanagement wird von den Backend Entwickler:innen ebenfalls per Pipeline vorgenommen. Mittels des open-source Tools Terraform werden sämtliche AWS Services und Konfigurationen als Infrastructure-as-Code (IaC) deklariert und als Terraform Code in ein AWS CodeCommit Repository eingecheckt. Änderungen lösen wieder eine AWS CodePipeline aus, die zunächst mit einem AWS CodeBuild den Terraform Code testet (terraform plan) und das erzeugte Artefakt im dafür vorgesehenen S3 Bucket ablegt, um schließlich mit Ausführung des Terraform Plans (mittels terraform apply) die im Code spezifizierten Änderungen an der Infrastruktur in der AWS Umgebung zu provisionieren. 

Weitere Informationen

Für weitere Informationen zum Thema Cloud, Infrastructure-as-Code, Terraform, Serverless und DevOps sehen Sie sich gern auch einmal den Blog von PROTOS Technologie.

Abschließend noch einige nützliche Links zum Thema: 

Setting up Amazon CloudFront

Registry Terraform | Resource: aws_codepipeline

AWS Lösungen für die Cloud | Welche ist die richtige für Sie?

Deep Dive AWS Lambda Teil I

  • .
  • .

Das 5 Minuten Assessment für Cloud Computing Der CloudAdvisor

Unsere Kunden und Kundinnen fragen uns häufig, wo man bei einer Cloud Migration beginnt. Wir sagen, mit dem PROTOS CloudAdvisor. Sollten Sie noch keine Cloud Technologien nutzen ist der CloudAdvisor der ideale Startpunkt, der Ihnen durch individuell ausgewählte Use Cases den Nutzen und die Vielseitigkeit von Cloud Technologien näher bringt.

Auch wenn Sie bereits Cloud Technologien einsetzen ist der CloudAdvisor der erste Schritt zu einer Einschätzung ihrer Architektur durch unsere Cloudexperten und -Expertinnen. In fünf Minuten erhalten Sie eine Ersteinschätzung zu den Stärken und Schwachstellen Ihrer Architektur und können diese im Anschluss mit den PROTOS Cloudexperten unverbindlich besprechen.