- AWS
- Microservices
Microservices
Erstellen Sie hochverfügbare Microservices, um Anwendungen jeder Größe und Skalierbarkeit zu realisieren.
Monolithische Architektur im Vergleich Microservices-Architektur
Bei monolithischen Architekturen sind alle Prozesse eng miteinander verbunden und werden als ein einziger Service ausgeführt. Dementsprechend muss die gesamte Architektur skaliert werden, wenn in einem Prozess der Anwendung eine Spitze auftritt. Das Hinzufügen oder Verbessern der Funktionen einer monolithischen Anwendung wird mit zunehmender Codebasis komplexer. Diese Komplexität begrenzt das Experimentieren und erschwert die Umsetzung neuer Konzepte. Monolithische Architekturen erhöhen das Risiko für die Anwendungsverfügbarkeit, da viele abhängige und eng miteinander verbundene Prozesse die Auswirkungen eines einzelnen Prozessausfalls erhöhen.
Mit einer Microservices-Architektur wird eine Anwendung in Form von eigenständigen Komponenten erstellt, die jeden Anwendungsprozess als Service ausführen. Diese Services kommunizieren mithilfe von schlanken APIs über eine sorgfältig definierte Schnittstelle miteinander. Services werden im Hinblick auf Unternehmensfunktionen entwickelt, wobei jeder Service eine bestimmte Funktion erfüllt. Da sie unabhängig voneinander ausgeführt werden, kann jeder Service aktualisiert, bereitgestellt und skaliert werden, um die Anforderungen an bestimmte Funktionen einer Anwendung zu erfüllen.
Eigenschaften von Microservices
Eigenständigkeit
Jeder Komponentenservice in einer Microservices-Architektur kann entwickelt, bereitgestellt, betrieben und skaliert werden, ohne die Funktionsfähigkeit anderer Services zu beeinträchtigen. Services müssen keinen Code und keine Implementierung mit anderen Services teilen. Die Kommunikation zwischen den einzelnen Komponenten erfolgt über klar definierte APIs.
Spezialisierung
Jeder Service ist für eine Reihe von Funktionen ausgelegt und konzentriert sich auf die Lösung eines bestimmten Problems. Wenn Entwickler im Laufe der Zeit mehr Code zu einem Service beisteuern und der Service komplex wird, kann er in kleinere Services unterteilt werden.
Vorteile von Microservices
Agilität
Microservices unterstützen eine Organisation von kleinen, unabhängigen Teams, die jeweils die Verantwortung für ihre eigenen Services übernehmen. Teams agieren in einem kleinen und klar definierten Kontext und haben die Möglichkeit, eigenverantwortlich und schneller zu arbeiten. Dadurch werden die Entwicklungszyklen verkürzt. Sie profitieren in erheblichem Maße von der Gesamtleistung der Organisation.
Flexible Skalierung
Microservices ermöglichen es, jeden Service unabhängig voneinander zu skalieren, um die Nachfrage nach der von ihm unterstützten Anwendungsfunktion zu decken. Auf diese Weise können Teams die Infrastrukturanforderungen anpassen, die Kosten einer Funktion genau messen und die Verfügbarkeit aufrechterhalten, wenn ein Service eine Nachfragesteigerung verzeichnet.
Einfache Bereitstellung
Microservices ermöglichen eine kontinuierliche Integration und Bereitstellung, wodurch es einfacher wird, neue Konzepte auszuprobieren und zurückzunehmen, wenn etwas nicht funktioniert. Die niedrigen Ausfallkosten ermöglichen Experimente, erleichtern die Aktualisierung von Code und verkürzen die Markteinführungszeit für neue Funktionen.
Technologische Flexibilität
Microservices-Architekturen folgen nicht dem Ansatz einer Bereitstellung von Einheitslösungen. Die Teams haben die Freiheit, das beste Tool zur Lösung ihrer spezifischen Probleme auszuwählen. Infolgedessen können Teams, die Microservices entwickeln, das beste Tool für die jeweilige Aufgabe wählen.
Wiederverwendbarer Code
Die Aufteilung der Software in kleine, klar definierte Module ermöglicht es Teams, Funktionen für verschiedene Zwecke zu nutzen. Ein für eine bestimmte Funktion geschriebener Service kann auch als Baustein für einen anderen Funktionsumfang verwendet werden. Dies ermöglicht es einer Anwendung, auf sich selbst zurückzugreifen, da Entwickler neue Funktionen erstellen können, ohne Code von Grund auf neu zu schreiben.
Ausfallsicherheit
Die Serviceunabhängigkeit erhöht die Ausfallsicherheit einer Anwendung. In einer monolithischen Architektur kann der Ausfall einer einzelnen Komponente zum Ausfall der gesamten Anwendung führen. Mit Microservices überwinden Anwendungen einen kompletten Serviceausfall, indem sie die Funktionalität beeinträchtigen und nicht die gesamte Anwendung zum Absturz bringen.
Die umfangreichste Plattform für Microservices
Speicherung und Datenbanken
Netzwerk
Messaging
Protokollieren und überwachen
DevOps
Erste Schritte
Beginnen Sie noch heute mit der Entwicklung von Microservices mithilfe dieser Ressourcen.
Microservices ohne Server
Bereitstellung von Java Microservices in Amazon Elastic Container Service
Building Scalable Applications and Microservices
Run Containerized Microservices with Amazon ECS and ALB
Mithilfe von Amazon API Gateway mit in Amazon ECS bereitgestellten Microservices
Service-Erkennung: Eine Amazon ECS-Referenzarchitektur