Optimieren Sie das Management Ihrer containerisierten Anwendungen mit OCI-Containerinstanzen
Die Ausführung von containerisierten Anwendungen kann erheblichen Overhead erfordern, einschließlich der Instanziierung virtueller Maschinen, der Installation von Komponenten zur Ausführung von Containerimages und aller Abhängigkeiten, um sie zu unterstützen, einschließlich Software- und Betriebssystemupdates und der Überwachung von Anwendungen, während sie ausgeführt werden, um die optimale Ausführung sicherzustellen, verfügbar zu sein und nicht gefährdet wurden.
Containerinstanzen sind ein vollständig verwalteter Oracle Cloud Infrastructure-(OCI-)Compute-Service, mit dem Kunden containerisierte Anwendungen ohne Serververwaltung ausführen können. So erhalten Kunden eine serverlose Erfahrung, die ihren Anwendungen einen Mehrwert verschaffen kann, anstatt Infrastruktur bereitzustellen und zu verwalten.
Um eine containerisierte Anwendung ohne Containerinstanzen auszuführen, müssen Kunden eine virtuelle Maschine instanziieren und alle Komponenten installieren, um ein Containerimage auszuführen. Dazu gehören die Containerlaufzeit, wie Docker oder Podman, und alle zugehörigen Abhängigkeiten. Darüber hinaus müssen Kunden die virtuelle Maschine sichern, indem sie die neuesten Sicherheitspatches installieren und die richtigen Sicherheitseinstellungen anwenden. Nach der Einführung neuer Updates für Software und Betriebssysteme müssen Updates und Patches konsistent eingespielt werden. Wenn die Anwendung ausgeführt wird, muss die Überwachung aktiviert sein, damit die Anwendung optimal ausgeführt, verfügbar und nicht gefährdet wird.
Bei Containerinstanzen müssen Kunden nur die Containerimages der Anwendung erstellen und in einer Container-Registry speichern. Die containerisierte Anwendung kann dann mit Containerinstanz mit CLI-Befehlen oder einem geführten GUI-Assistenten in der OCI-Konsole mit den folgenden Schritten bereitgestellt werden.
- Containerinstanzparameter definieren: Der Kunde definiert die OCI-Region zur Ausführung der Containerinstanz und optional der Availability-Domain und Faultdomain. Als Nächstes wählt der Kunde die Compute-Ausprägung für die Containerinstanz aus. Sie können für jede Instanz bis zu der CPU und dem Arbeitsspeicher der ausgewählten Compute-Ausprägung zuweisen. Beispiel: Wenn Sie eine AMD-Ausprägung E3/E4 gewählt haben, können Sie in einer Containerinstanz 64 OCPUs (128 vCPU) und 1024 GB Arbeitsspeicher verwenden. Als Nächstes fügen Sie die Netzwerkeinstellungen hinzu, beispielsweise ob für die Containerinstanz eine öffentliche IP-Adresse und das Subnetz für die Containerinstanz zusammen mit optionalen erweiterten Netzwerkkonfigurationen erforderlich sind. In diesem Schritt können Sie auch einen privaten DNS-Datensatz und einen Hostnamen angeben, der einen vollqualifizierten Domainnamen für die Containerinstanz generieren würde. Es gibt auch eine optionale erweiterte Option zum Festlegen der Containerneustart-Policy.
- Geben Sie die Startkonfiguration für die Anwendung an: In diesem Schritt wird der Speicherort des auszuführenden Containerimages zusammen mit allen erforderlichen Umgebungsvariablen für das Containerimage angegeben. Das Image kann sich in Oracle Cloud Infrastructure Registry oder in einer öffentlichen oder privaten Open Container Initiative-konformen Registry befinden, in der die Containerinstanz über IP-Konnektivität verfügt. Für private Registrys müssen Sie Zugangsdaten für den Zugriff auf das Containerimage angeben.
- Prüfen und erstellen: Im letzten Schritt werden alle Konfigurationen geprüft. Wenn alles korrekt ist, können Sie mit der Erstellung fortfahren, und eine Containerinstanz wird in Sekundenschnelle gestartet.
Kunden werden lediglich die CPU- und Speicherressourcen in Rechnung gestellt, die ihren Instanzen zum gleichen Preis zugewiesen sind wie normale Oracle Cloud Infrastructure Compute. Durch einfache Erfahrung, nahtlose Vorgänge und keine zusätzlichen Kosten für das serverlose Erlebnis erhalten Containerinstanzen den besten Mehrwert für die Ausführung von Containern in der Cloud. Kunden können auch Containerinstanzen mit anderen OCI-Services wie dem MySQL-Service und Oracle Autonomous Database mit Standardverfahren für die Datenbankverbindung integrieren, sodass andere OCI-Services für containerisierte Anwendungen einfach genutzt werden können.
Architektur
Diese Architektur stellt eine containerisierte WordPress-Anwendung mit einer integrierten MySQL-Datenbank mit Containerinstanzen bereit. Die Containerinstanz wird in einem öffentlichen Subnetz mit einer öffentlichen IP-Adresse bereitgestellt, auf die über das Internet zugegriffen werden kann.
Containerinstanzen sind für eigenständige Anwendungen konzipiert, für die keine Containerorchestrierung erforderlich ist. Dazu gehören APIs, Web-Apps, CI/CD-Jobs, Automatisierungsaufgaben, Daten- und Medienverarbeitung, Entwicklungs- und Testumgebungen usw. Für containerisierte Anwendungen, die Orchestrierung erfordern, stellt OCI Oracle Container Engine for Kubernetes (OKE), einem verwalteten Kubernetes-Service, mit einer serverlosen Option mit virtuellen Knoten bereit.
Jede Containerinstanz kann mehrere Container ausführen. Alle Container in einer Containerinstanz verwenden denselben Lebenszyklus, dieselben Ressourcen, dasselbe Netzwerk und denselben Speicher. Container in einer Containerinstanz haben dasselbe Konzept wie ein Pod in Kubernetes mit dem Hauptanwendungscontainer und den Nebenfahrzeugcontainern. Die Seitenwagenbehälter sind dort vorhanden, um die Funktionalitäten des Hauptanwendungsbehälters zu verbessern oder zu erweitern. Beispiel: Eine Containerinstanz mit der Hauptwebanwendung und einem Sidecar-Container, der die Webanwendungslogs auf einen Logging-Server exportiert.
Hinweis:
Die Ausführung eines Datenbankcontainers zusammen mit einem Anwendungscontainer ist nur für Entwicklung und Tests geeignet. Verwendung von Oracle MySQL Database Service für Produktions-Deployments in Erwägung ziehen.Wir stellen WordPress mit einer integrierten Datenbank mit Containerinstanzen in dieser Referenzarchitektur bereit. Das folgende Video durchläuft den Prozess.
Das folgende Diagramm veranschaulicht diese Referenzarchitektur.
OCI-Container-instance-wordpress-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 entspricht einem Unternehmen oder einer Organisation. Normalerweise hat ein Unternehmen einen einzelnen Mandanten und spiegelt seine Organisationsstruktur innerhalb dieses 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 ein oder mehrere Data Center, so genannte Availability-Domains, enthält. Regionen sind von anderen Regionen unabhängig, und große Distanzen können diese voneinander trennen (über Länder oder sogar Kontinente).
- Compartment
Compartments sind regionsübergreifende logische Partitionen in einem Oracle Cloud Infrastructure-Mandanten. Organisieren Sie Ihre Ressourcen in Oracle Cloud mit Compartments, kontrollieren Sie den Zugriff auf die Ressourcen, und legen Sie Nutzungsquoten fest. Um den Zugriff auf die Ressourcen in einem bestimmten Compartment zu kontrollieren, definieren Sie Policys, mit denen angegeben wird, wer auf die Ressourcen zugreifen kann und welche Aktionen sie ausführen können.
- 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 Fehlertoleranz bietet. Availability-Domains haben keine gemeinsame Infrastruktur wie Stromversorgung, Kühlung oder das interne Availability-Domainnetzwerk. Es ist also unwahrscheinlich, dass der Ausfall 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 umfasst drei Faultdomains mit unabhängiger Stromversorgung und Hardware. Wenn Sie Ressourcen über mehrere Faultdomains verteilen, können Ihre Anwendungen Fehler, Systemwartung und Stromausfälle innerhalb einer Faultdomain tolerieren.
- Virtuelles Cloud-Netzwerk (VCN) und Subnetz
Ein VCN ist ein anpassbares, softwaredefiniertes Netzwerk, das Sie in einer Oracle Cloud Infrastructure-Region einrichten. Wie bei herkömmlichen Data-Center-Netzwerken haben 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 für eine Region oder eine Availability-Domain gelten können. Jedes Subnetz besteht aus einem zusammenhängenden Adressbereich, der sich nicht mit den anderen Subnetzen im VCN überschneidet. 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 Traffictyp angeben, die in das Subnetz ein- und ausgehen dürfen.
- Network Address Translation-(NAT-)Gateway
Ein NAT-Gateway ermöglicht privaten Ressourcen in einem VCN den Zugriff auf Hosts im Internet, ohne dass diese Ressourcen für eingehende Internetverbindungen freigegeben werden.
- Servicegateway
Das Servicegateway ermöglicht den Zugriff von einem VCN auf andere Services, wie Oracle Cloud Infrastructure Object Storage. Der Traffic vom VCN zum Oracle-Service durchläuft die Oracle-Netzwerk-Fabric und nie das Internet.
- Container-Registry
Von Oracle verwaltete Registry, mit der Sie Ihren Entwicklungs- bis Produktionsworkflow vereinfachen können.
Empfehlungen
- VCN
Wenn Sie ein VCN erstellen, bestimmen Sie die Anzahl der erforderlichen CIDR-Blöcke und die Größe jedes Blocks basierend auf der Anzahl der Ressourcen, die Sie an Subnetze im VCN anhängen möchten. Verwenden Sie CIDR-Blöcke, die sich im privaten Standardadressbereich befinden.
Wählen Sie CIDR-Blöcke aus, die sich nicht mit einem anderen Netzwerk (in Oracle Cloud Infrastructure, Ihrem On-Premise-Data Center oder einem anderen Cloud-Provider) überschneiden, für das Sie private Verbindungen einrichten möchten.
Nachdem Sie ein VCN erstellt haben, können Sie die zugehörigen CIDR-Blöcke ändern, hinzufügen und entfernen.
Berücksichtigen Sie bei der Entwicklung der Subnetze Ihren Trafficfluss und Ihre Sicherheitsanforderungen. Hängen Sie alle Ressourcen innerhalb einer bestimmten Tier oder Rolle an dasselbe Subnetz an, das als Sicherheitsgrenze dienen kann.
- Sicherheit
Mit Oracle Cloud Guard können Sie die Sicherheit Ihrer Ressourcen in Oracle Cloud Infrastructure proaktiv überwachen und verwalten. Cloud Guard verwendet Detektorrezepte, die Sie definieren können, um Ihre Ressourcen auf Sicherheitsschwächen zu untersuchen und Operatoren und Benutzer auf riskante Aktivitäten zu überwachen. Wenn falsche oder unsichere Aktivitäten erkannt werden, empfiehlt Cloud Guard Korrekturmaßnahmen und hilft Ihnen, diese Aktionen basierend auf den verfügbaren Responder-Rezepten auszuführen.
Für Ressourcen, die maximale Sicherheit erfordern, empfiehlt Oracle, Sicherheitszonen zu verwenden. Eine Sicherheitszone ist ein Compartment, das mit einem von Oracle definierten Rezept der Sicherheits-Policys verknüpft ist, die auf Best Practices basieren. Beispiel: Die Ressourcen in einer Sicherheitszone dürfen nicht über das öffentliche Internet zugänglich sein und müssen mit vom Kunden verwalteten Schlüsseln verschlüsselt werden. Wenn Sie Ressourcen in einer Sicherheitszone erstellen und aktualisieren, validiert Oracle Cloud Infrastructure die Vorgänge anhand der Policys im Sicherheitszonenrezept und lehnt Vorgänge ab, die eine der Policys verletzen.
- Cloud Guard
Klonen und passen Sie die von Oracle bereitgestellten Standardrezepte an, um benutzerdefinierte Detektor- und Responder-Rezepte zu erstellen. Mit diesen Rezepten können Sie angeben, welche Art von Sicherheitsverletzungen eine Warnung generieren und welche Aktionen für sie ausgeführt werden dürfen. Beispiel: Sie möchten Object Storage-Buckets ermitteln, deren Sichtbarkeit auf "Öffentlich" gesetzt ist.
Wenden Sie Cloud Guard auf Mandantenebene an, um den weitesten Geltungsbereich abzudecken und den administrativen Aufwand bei der Verwaltung mehrerer Konfigurationen zu reduzieren.
Sie können auch das Feature "Verwaltete Liste" verwenden, um bestimmte Konfigurationen auf Detektoren anzuwenden.
- Sicherheitszonen
Für Ressourcen, die maximale Sicherheit erfordern, empfiehlt Oracle, Sicherheitszonen zu verwenden. Eine Sicherheitszone ist ein Compartment, das mit einem von Oracle definierten Rezept der Sicherheits-Policys verknüpft ist, die auf Best Practices basieren. Beispiel: Die Ressourcen in einer Sicherheitszone dürfen nicht über das öffentliche Internet zugänglich sein und müssen mit vom Kunden verwalteten Schlüsseln verschlüsselt werden. Wenn Sie Ressourcen in einer Sicherheitszone erstellen und aktualisieren, validiert Oracle Cloud Infrastructure die Vorgänge anhand der Policys im Sicherheitszonenrezept und lehnt Vorgänge ab, die eine der Policys verletzen.
- Netzwerksicherheitsgruppen (NSGs)
Mit NSGs können Sie ein Set von Ingress- und Egress-Regeln definieren, die für bestimmte VNICs gelten. Wir empfehlen die Verwendung von NSGs anstelle von Sicherheitslisten, da Sie mit NSGs die Subnetzarchitektur des VCN von den Sicherheitsanforderungen Ihrer Anwendung trennen können.
- Load-Balancer-Bandbreite
Beim Erstellen des Load Balancers können Sie entweder eine vordefinierte Ausprägungen mit fester Bandbreite auswählen oder eine benutzerdefinierte (flexible) Ausprägungen angeben, bei der Sie einen Bandbreitenbereich festlegen und der Service die Bandbreite automatisch basierend auf Trafficmustern skalieren lässt. Bei beiden Lösungen können Sie die Ausprägungen nach dem Erstellen des Load Balancers jederzeit ändern.