Erfahren Sie, wie Sie monolithische Apps in containerisierte Services in Oracle Cloud konvertieren
Monolithische Anwendungen sind naturgemäß fest und linear, wodurch sie im Laufe der Zeit schwer zu verwalten und zu aktualisieren sind.
Da monolithische Architekturmuster verwendet werden, um eine komplette Anwendung als eine Einheit zu entwerfen und zu entwickeln, kann Zuverlässigkeit ein großes Problem sein, insbesondere bei Verwicklungen und Kupplungen. Das liegt daran, dass die gesamte Anwendung bei einem Fehler in einem Modul unbrauchbar werden kann.
Wenn Ihre Anwendung Skalierbarkeit, Zuverlässigkeit, Agilität und Autonomie erfordert, sollten Sie eine Microservices-Architektur in Betracht ziehen. Im Gegensatz zu festen und linearen Monolithen hängt eine Microservices-Architektur von der Entwicklung, Entwicklung und Bereitstellung einer Anwendung als Sammlung von lose gekoppelten Services ab, die unabhängig bereitgestellt und getestet werden können.
Einer der größten Vorteile von Microservices-Architekturen besteht darin, dass sie sich nicht auf die Entwicklung und Bereitstellung anderer Services und deren Funktionen auswirken. Sie können einen bestimmten Microservice unabhängig von anderen Microservices skalieren. Dabei können Sie einen Technologiestack und eine Programmiersprache für jeden Service auswählen.
Architektur
Das folgende Architekturdiagramm zeigt das endgültige Deployment, bei dem die containerisierten Anwendungen unabhängig voneinander ausgeführt werden.
apps-multiservices-arch-oracle.zip
Die Architektur umfasst die folgenden Komponenten:
- Mandant
Ein Mandant ist eine sichere und isolierte Partition, die Oracle in Oracle Cloud einrichtet, wenn Sie sich für Oracle Cloud Infrastructure registrieren. Sie können Ihre Ressourcen in Oracle Cloud in Ihrem Mandanten erstellen, organisieren und verwalten. Ein Mandant ist synonym zu einem Unternehmen oder einer Organisation. In der Regel verfügt ein Unternehmen über einen einzelnen Mandanten und spiegelt dessen Organisationsstruktur in diesem Mandanten wider. Ein einzelner Mandant ist in der Regel mit einem einzelnen Abonnement verknüpft, und ein einzelnes Abonnement hat in der Regel nur einen Mandanten.
- Region
Eine Oracle Cloud Infrastructure-Region ist ein lokalisierter geografischer Bereich, der mindestens ein Data Center enthält, das als Availability-Domains bezeichnet wird. Regionen sind unabhängig von anderen Regionen, und große Entfernungen können sie voneinander trennen (über Länder oder sogar Kontinente).
- Availability-Domain
Availability-Domains sind eigenständige, unabhängige Data Center innerhalb einer Region. Die physischen Ressourcen in jeder Availability-Domain sind von den Ressourcen in den anderen Availability-Domains isoliert, was eine Fehlertoleranz sicherstellt. Availability-Domains haben keine gemeinsame Infrastruktur wie Stromversorgung oder Kühlung oder das interne Availability-Domainnetzwerk. Aus diesem Grund ist es wahrscheinlich, dass ein Fehler in einer Availability-Domain sich auf die anderen Availability-Domains in der Region auswirkt.
- Faultdomain
Eine Faultdomain ist eine Gruppierung aus Hardware und Infrastruktur innerhalb einer Availability-Domain. Jede Availability-Domain verfügt über drei Faultdomains mit unabhängiger Stromversorgung und Hardware. Wenn Sie Ressourcen auf mehrere Faultdomains verteilen, können Ihre Anwendungen physische Serverausfälle, Systemwartungen und Stromausfälle innerhalb einer Faultdomain tolerieren.
- Virtuelles Cloud-Netzwerk (VCN) und Subnetze
Ein VCN ist ein anpassbares, softwaredefiniertes Netzwerk, das Sie in einer Oracle Cloud Infrastructure-Region einrichten. Wie herkömmliche Data Center-Netzwerke erhalten Sie mit VCNs vollständige Kontrolle über Ihre Netzwerkumgebung. Ein VCN kann mehrere sich nicht überschneidende CIDR-Blöcke aufweisen, die Sie nach dem Erstellen des VCN ändern können. Sie können ein VCN in Subnetze segmentieren, die sich auf eine Region oder eine Availability-Domain beschränken. Jedes Subnetz besteht aus einem Bereich zusammenhängender Adressen, die sich nicht mit anderen Subnetzen im VCN überschneiden. Sie können die Größe eines Subnetzes nach der Erstellung ändern. Ein Subnetz kann öffentlich oder privat sein.
- Sicherheitsliste
Für jedes Subnetz können Sie Sicherheitsregeln erstellen, die Quelle, Ziel und Typ des Traffics angeben, der in das und aus dem Subnetz zugelassen werden muss.
- Routentabelle
Virtuelle Routentabellen enthalten Regeln, mit denen Traffic von Subnetzen zu Zielen außerhalb eines VCN, normalerweise über Gateways, weitergeleitet wird.
- Load Balancer
Der Oracle Cloud Infrastructure Load Balancing-Service bietet eine automatisierte Trafficverteilung von einem einzelnen Einstiegspunkt auf mehrere Server im Backend.
- Container Engine for Kubernetes
Oracle Cloud Infrastructure Container Engine for Kubernetes ist ein vollständig verwalteter, skalierbarer und hochverfügbarer Service, mit dem Sie Ihre containerisierten Anwendungen in der Cloud bereitstellen können. Sie geben die Compute-Ressourcen an, die Ihre Anwendungen erfordern, und Container Engine for Kubernetes stellt sie in einem vorhandenen Mandanten auf Oracle Cloud Infrastructure bereit. Container Engine for Kubernetes verwendet Kubernetes, um das Deployment, die Skalierung und die Verwaltung containerisierter Anwendungen über Hostcluster hinweg zu automatisieren.
- Compute
Mit dem Oracle Cloud Infrastructure Compute-Service können Sie Compute-Hosts in der Cloud bereitstellen und verwalten. Sie können Compute-Instanzen mit Ausprägungen starten, die Ihren Ressourcenanforderungen für CPU, Arbeitsspeicher, Netzwerkbandbreite und Speicher entsprechen. Nachdem Sie eine Compute-Instanz erstellt haben, können Sie sicher auf sie zugreifen, sie neu starten, Volumes anhängen und trennen und beenden, wenn Sie sie nicht mehr benötigen.
- Autonomous Transaction Processing
Oracle Autonomous Transaction Processing ist ein für Transaktionsverarbeitungs-Workloads optimierter, selbstsichernder und selbstreparierender Datenbankservice. Sie müssen keine Hardware konfigurieren oder verwalten oder Software installieren. Oracle Cloud Infrastructure verwaltet das Erstellen der Datenbank sowie Backup, Patching, Upgrade und Optimierung der Datenbank.