Microservices - Implementieren von Microservices in AWS

Microservices

APIs sind das Tor zu Microservices, was bedeutet, dass APIs als Einstiegspunkt für die Anwendungslogik hinter einer Reihe programmatischer Schnittstellen dienen. Dabei handelt es sich in der Regel um eine RESTful-API für Webservices. Diese API akzeptiert und verarbeitet Aufrufe von Clients und implementiert möglicherweise Funktionen wie Traffic-Management, Request-Filterung, Routing, Caching, Authentifizierung und Autorisierung.

Implementierung von Microservices

AWS hat Bausteine integriert, um die Entwicklung von Microservices zu erleichtern. Zwei gängige Ansätze sind die Verwendung von AWS Lambda und Docker-Containern mit AWS Fargate.

Mit AWS Lambda laden Sie einfach Ihren Code hoch und überlassen Lambda all das, was für die Ausführung und die Skalierung der Ausführung erforderlich ist, um Ihre tatsächliche Nachfragekurve mit hoher Verfügbarkeit zu erfüllen. Es ist keine Verwaltung der Infrastruktur erforderlich. Lambda unterstützt mehrere Programmiersprachen und kann von anderen AWS-Services ausgelöst oder direkt aus jeder Webanwendung oder mobilen Anwendung aufgerufen werden. Zu den wesentlichen Vorteilen von AWS Lambda zählt die effiziente Vorgehensweise. Da AWS die Verwaltung der Sicherheit und Skalierung übernimmt, können Sie sich auf Ihre Geschäftslogik fokussieren. Der Opinionated-Ansatz von Lambda unterstützt die Skalierbarkeit der Plattform.

Eine typische Maßnahme zur Reduzierung des operativen Aufwands für den Einsatz ist die containerbasierte Bereitstellung. Containertechnologien wie Docker haben in den vergangenen Jahren aufgrund ihrer Portierbarkeit, Produktivität und Effizienz an Popularität gewonnen. Die Lernkurve kann in Verbindung mit Containern steil sein. Außerdem müssen Sie sich Gedanken über Sicherheitsvorkehrungen für Ihre Docker-Images und die Überwachung machen. Mit Amazon Elastic Container Service (Amazon ECS) und Amazon Elastic Kubernetes Service (Amazon EKS) erübrigt sich das Installieren, Betreiben und Skalieren Ihrer eigenen Infrastruktur für die Cluster-Verwaltung. Mit API-Aufrufen können Sie Docker-fähige Anwendungen starten und stoppen, den kompletten Zustand Ihres Clusters abfragen und auf viele bekannte Funktionen wie Sicherheitsgruppen, Lastenausgleich, Amazon Elastic Block Store (Amazon EBS)-Volumes und AWS Identity and Access Management (IAM)-Rollen zugreifen.

AWS Fargate ist eine Serverless-Computing-Engine für Container, die sowohl mit Amazon ECS als auch mit Amazon EKS funktioniert. Mit Fargate brauchen Sie sich keine Gedanken mehr über die Bereitstellung der für Ihre Containeranwendungen erforderlichen Rechenressourcen zu machen. Mit Fargate lassen sich Zehntausende Container starten und auf einfache Weise für die Ausführung Ihrer geschäftskritischen Anwendungen skalieren.

Amazon ECS unterstützt Containerplatzierungsstrategien und -beschränkungen. Sie können somit festlegen, wie Aufgaben mit Amazon ECS platziert und beendet werden. Eine Platzierungsbeschränkung ist eine Regel, die bei der Aufgabenplatzierung berücksichtigt wird. Sie können Ihren Container-Instances Attribute, die im Prinzip Schlüssel-Wert-Paare sind, zuweisen und dann mit diesen Attributen in Verbindung mit einer Beschränkung Aufgaben platzieren. Mit Beschränkungen lassen sich beispielsweise bestimmte Microservices basierend auf dem Instance-Typ oder der Instance-Funktion platzieren, etwa auf GPU-basierten Instances.

Amazon EKS führt aktuelle Versionen der Open-Source-Software Kubernetes aus. Sie können somit alle bestehenden Plug-Ins und Tools der Kubernetes-Community verwenden. In Amazon EKS ausgeführte Anwendungen sind vollständig mit Anwendungen kompatibel, die in Kubernetes-Standardumgebungen ausgeführt werden – sowohl in lokalen Rechenzentren als auch in öffentlichen Clouds. Amazon EKS integriert IAM in Kubernetes. Sie können IAM-Entitäten dadurch über das native Authentifizierungssystem von Kubernetes registrieren. Das manuelle Einrichten von Anmeldeinformationen für die Authentifizierung bei der Kubernetes-Steuerebene erübrigt sich somit. Dank der Integration von IAM können Sie sich damit direkt bei der Steuerebene selbst authentifizieren und erhalten detaillierte Zugriffsrechte für den öffentlichen Endpunkt Ihrer Kubernetes-Steuerebene.

In Amazon ECS verwendete Docker-Images können in der Amazon Elastic Container Registry (Amazon ECR) gespeichert werden. Mit Amazon ECR erübrigen sich der Betrieb und die Skalierung der für Ihre Container-Registry erforderlichen Infrastruktur.

Continuous Integration und Continuous Delivery (CI/CD) sind bewährte Methoden und wichtiger Bestandteil einer DevOps-Initiative. Sie können damit schnell Softwareänderungen vornehmen, während die Stabilität und Sicherheit des Systems aufrechterhalten bleiben. Diese Methoden werden jedoch in diesem Whitepaper nicht behandelt. Weitere Informationen finden Sie im Whitepaper Continuous Integration und Continuous Delivery in AWS.

AWS PrivateLink ist eine hochverfügbare, skalierbare Technologie, die Ihnen ermöglicht, Ihre Virtual Private Cloud (VPC) privat mit unterstützten AWS-Services, von anderen AWS-Konten gehostete Services (VPC-Endpunktservices) und unterstützten AWS Marketplace-Partnerservices zu verbinden. Sie benötigen für die Kommunikation mit dem Service weder ein Internet-Gateway noch ein NAT-Gerät, eine öffentliche IP-Adresse oder eine AWS Direct Connect- oder VPN-Verbindung. Der Datenverkehr zwischen Ihrer VPC und dem Service verlässt das Amazon-Netzwerk nicht.

Private Links sind eine hervorragende Möglichkeit, die Isolation und Sicherheit der Microservices-Architektur zu erhöhen. Ein Microservice könnte beispielsweise in einer völlig separaten VPC bereitgestellt werden, mit einem Load Balancer verbunden und über einen AWS PrivateLink-Endpunkt anderen Microservices zugänglich gemacht werden. Mit diesem Setup, das AWS PrivateLink verwendet, durchläuft der Netzwerkverkehr zum und vom Microservice niemals das öffentliche Internet. Ein Anwendungsfall für eine solche Isolierung ist die Einhaltung gesetzlicher Vorschriften für Services, die sensible Daten wie PCI, HIPPA und EU/US Privacy Shield verarbeiten. Mit AWS PrivateLink können Sie Ihre Microservices über mehrere Konten und Amazon VPCs verbinden – ganz ohne Firewallregeln, Pfaddefinitionen oder Routing-Tabellen. Somit wird das Netzwerkmanagement vereinfacht. Mithilfe von PrivateLink können Software as a Service (SaaS)-Anbieter und ISVs ihre Microservices-basierten Lösungen auch mit vollständiger betrieblicher Isolation und sicherem Zugriff anbieten.