Multitier- und regionsübergreifende Entwicklungsumgebungen mit Compartments isolieren

Nutzen Sie die Vorteile von Compartments, um eine Vorlage für sichere Multi-Tier- und regionsübergreifende Entwicklungs- und Testumgebungen zu erstellen, mit der Sie Unternehmenslösungen auf Oracle Cloud Infrastructure erstellen können.

Um geschäftskritische Projekte zu implementieren, verwalten Unternehmen in der Regel separate Umgebungen für die Entwicklung und das Testen, bevor sie das Projekt in einer Produktionsumgebung freigeben. In einer Umgebung können Sie Oracle Cloud-Services PaaS und Oracle Cloud Infrastructure als eine einzelne Entity definieren und verwalten. Es ist wichtig, über die richtigen Ressourcen, die richtige Struktur und das richtige Design über Umgebungen hinweg zu verfügen, um sie effizient zu verwalten.

Compartments sind ein leistungsstarkes Feature in Oracle Cloud Infrastructure (OCI) zur Sicherheitsisolierung und Zugriffskontrolle. Durch die Policy-Durchsetzung bieten sie die richtige Zugriffsebene gemäß den von der Organisation für das Ressourcenmanagement und die delegierte Administration definierten Parametern.

Architektur

Diese Referenzarchitektur zeigt, wie Sie mit Compartments verschiedene Umgebungen auf Oracle Cloud Infrastructure entwerfen und konfigurieren und wie Ressourcen zur Unterstützung der Softwareentwicklung und des Releaselebenszyklus bereitgestellt werden. Die Architektur verwendet eine Multi-Tier-Webanwendung als Referenzpunkt, während Ressourcen verschiedenen Organisationen innerhalb eines Unternehmens zugewiesen werden, um die Implementierung zu veranschaulichen.

Im folgenden Diagramm wird diese Architektur dargestellt.



OCI-dev-env-Architektur-oracle.zip

Diese Architektur enthält die folgenden Komponenten:

  • Mandant

    Ein Mandant ist eine sichere und isolierte Partition, die Oracle bei der Registrierung für Oracle Cloud Infrastructure in Oracle Cloud einrichtet. 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 (innerhalb von Ländern oder sogar Kontinenten).

  • Compartment

    Compartments sind regionsübergreifende logische Partitionen in einem Oracle Cloud Infrastructure-Mandanten. In Compartments können Sie Ihre Ressourcen in Oracle Cloud organisieren, den Zugriff auf die Ressourcen kontrollieren und Nutzungs-Quotas festlegen. 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.

  • Policy

    Eine Oracle Cloud Infrastructure Identity and Access Management-Policy gibt an, wer auf welche Ressourcen und wie zugreifen kann. Der Zugriff wird auf Gruppen- und Compartment-Ebene erteilt, d.h. Sie können eine Policy schreiben, mit der eine Gruppe einen bestimmten Zugriffstyp in einem bestimmten Compartment oder auf den Mandanten erhält.

  • Load Balancer

    Der Oracle Cloud Infrastructure Load Balancing-Service ermöglicht automatisierte Trafficverteilung von einem einzelnen Einstiegspunkt zu mehreren Servern im Backend.

  • 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. Nach dem Erstellen einer Compute-Instanz können Sie sicher auf die Compute-Instanz zugreifen, sie neu starten, Datenträger anhängen und trennen und sie 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 und keine Software installieren. Oracle Cloud Infrastructure verwaltet das Erstellen der Datenbank sowie Backup, Patching, Upgrade und Optimierung der Datenbank.

Empfehlungen

Verwenden Sie die folgenden Empfehlungen als Ausgangspunkt. Ihre Anforderungen können unterschiedlich sein.

  • VCN

    Bestimmen Sie beim Erstellen eines VCN 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 innerhalb des standardmäßigen privaten IP-Adressraums.

    Wählen Sie CIDR-Blöcke aus, die sich mit keinem anderen Netzwerk (in Oracle Cloud Infrastructure, Ihrem On-Premise-Data Center oder einem anderen Cloud-Provider) überschneiden, zu dem 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 Verkehrsfluss und Ihre Sicherheitsanforderungen. Hängen Sie alle Ressourcen innerhalb einer bestimmten Ebene oder Rolle an dasselbe Subnetz an, das als Sicherheitsgrenze dienen kann.

    Verwenden Sie regionale Subnetze.

  • Compartment

    Standardmäßig verfügt jeder Oracle Cloud-Mandant über ein Standard-Root Compartment, das nach dem Mandanten selbst benannt ist. Der Mandantenadministrator (Standardadministrator des Root Compartments) ist ein beliebiger Benutzer, der Mitglied der Standardadministratorengruppe ist.

    Für diese Architektur erstellen wir zwei übergeordnete Compartments (HR und Vertrieb) für zwei verschiedene Organisationen im Root Compartment. Diese Compartments werden von zwei Gruppen verwaltet: HR-Admins und Sales-Admins. Unter dem Compartment der obersten HR-Ebene erstellen wir die Sub-Compartments HR-Prod, HR-Dev, HR-Staging und HR-Test. Diese Compartments werden von Gruppen HR-Prod-Admins, HR-Dev-Admins, HR-Staging-Admins und HR-Test-Admins verwaltet. Unter dem Compartment Sales der obersten Ebene erstellen wir die Sub-Compartments Sales-Prod, Sales-Dev, Sales-Staging und Sales-Test. Diese Compartments werden von den Gruppen "Sales-Prod-Admins", "Sales-Dev-Admins", "Sales-Staging-Admins" bzw. "Sales-Test-Admins" verwaltet.

  • Policy

    Die Compartment-Zugriffskontrolle wird von Policys gesteuert. Policys bestehen aus Anweisungen, die ein Subject (immer eine Benutzergruppe) mit Aktionen für ausgewählte Ressourcen (oder Ressourcenfamilie) in einem Mandanten oder Compartment verknüpfen. Sie können die Policy-Anweisung weiter qualifizieren, indem Sie Bedingungen hinzufügen, die die Zugriffskontrolle verfeinern.

    In dieser Implementierung delegieren wir die Administration von Oracle Cloud Infrastructure Compute-Ressourcen über Policys und Compartments für Compartments der obersten Ebene und Sub-Compartments. Ziel ist es, jedes Compartment unabhängig und vollständig voneinander zu isolieren.

Hinweise

Beachten Sie beim Deployment dieser Referenzarchitektur die folgenden Punkte.

  • Skalierbarkeit

    Oracle Cloud Infrastructure unterstützt eine Compartment-Hierarchie von bis zu sechs Ebenen. Der Administrator eines Compartments verfügt über vollständige Berechtigungen über seine verschachtelten Compartments. Bei dieser Implementierung werden drei Ebenen verwendet.

    Oracle Cloud Infrastructure-Ressourcen wie Oracle Cloud Infrastructure Compute, Load Balancing Service und Autonomous Transaction Processing werden in jedem Compartment regionsübergreifend und über Umgebungen bereitgestellt. In diesem Beispiel werden Ressourcen für eine einfache Webanwendung als Referenzpunkt für den Lebenszyklus einer Softwareentwicklung und -release zugewiesen.

    Oracle Cloud Infrastructure Compute bietet das Autoscaling-Feature, mit dem Sie für Endbenutzer in Perioden mit hohem Bedarf eine konsistente Performance bereitstellen und Ihre Kosten in Perioden mit geringem Bedarf reduzieren können. Sie können auch das Autoscaling-Feature für Oracle Autonomous Transaction Processing verwenden. Wenn die automatische Skalierung aktiviert ist, verwendet die Datenbank bei Bedarf automatisch mehr CPU- und I/O-Ressourcen, ohne dass manuelle Eingriffe erforderlich sind. Der Load Balancer unterstützt die dynamische Änderung der Bandbreite einer Ausprägungen.

  • Verfügbarkeit

    Im Allgemeinen stellen Sie eine Anwendung in der Region bereit, in der sie am stärksten genutzt wird, weil die Verwendung nahegelegener Ressourcen schneller ist als die Verwendung entfernterer Ressourcen. Die Availability-Domains innerhalb derselben Region sind über ein Netzwerk mit niedriger Latenz und hoher Bandbreite miteinander verbunden. Dieses Netzwerk bietet eine High-Availability-Konnektivität zum Internet und zu On-Premise-Geräten, damit Sie replizierte Systeme in mehreren Availability-Domains für High Availability und Disaster Recovery erstellen können.

    Oracle Autonomous Transaction Processing beseitigt Ausfallzeiten von Sites, indem eine Remote-Kopie einer Produktionsdatenbank in Echtzeit verwaltet und mit Oracle Data Guard automatisch von der Primärdatenbank zur Remote-Kopie gewechselt wird.

  • Verwaltbarkeit
    Da Compartments das Ressourcenmanagement trennen, können Sie Ressourcen über Compartments hinweg gemeinsam nutzen. Beispiel: Um eine Compute-Instanz von HR-Dev für Sales-Dev freizugeben, stehen zwei Optionen zur Verfügung:
    • Erstellen Sie ein benutzerdefiniertes Image der Gruppe "HR-Dev-Admins", exportieren Sie das Image in Oracle Cloud Infrastructure Object Storage, und stellen Sie es der Gruppe "Sales-Dev-Admins" zur Verfügung.
    • Sie können das Boot-Volume der Instanz auch in HR-Dev in das Compartment "Sales-Dev" exportieren.

    Planen Sie als Administrator im Voraus, wie Sie verfügbare CIDR-Bereiche über verschiedene Organisationsbereiche hinweg partitionieren. Stellen Sie sicher, dass die VCNs keine sich überschneidenden CIDR-Bereiche aufweisen. Diese Planung verhindert unbeabsichtigtes Peering zwischen zwei VCNs in verschiedenen Compartments.

    Schließlich verwalten Sie die Architektur, indem Sie die Infrastruktur- und Ressourcenzuweisung mit Terraform automatisieren.

  • Sicherheit

    Konfigurieren Sie Sicherheitslisten, die als virtuelle Firewalls fungieren, damit Ressourcen in verschiedenen Compartments kommunizieren können. Beispiel: Eine Datenbankinstanz im HR-Compartment kann eine Verbindung zu einer Datenbankinstanz im Sales Compartment herstellen, solange die entsprechenden Sicherheitslisten richtig konfiguriert sind.

    Stellen Sie einen privaten Endpunkt für die Oracle Autonomous Transaction Processing-Datenbank bereit, indem Sie die Datenbank an ein privates Subnetz anhängen.

    Berücksichtigen Sie beim Entwerfen der Subnetze Verkehrswert- und Sicherheitsanforderungen. Hängen Sie alle Ressourcen innerhalb einer bestimmten Ebene oder Rolle an dasselbe Subnetz an, das als Sicherheitsgrenze dienen kann. Fügen Sie Routentabellen und Gateways (virtuelle Router) zum VCN hinzu, um den Datenverkehr abhängig von dem erforderlichen Zugriffstyp zu verwalten. Beispiel: Möglicherweise müssen Sie eine Verbindung über das öffentliche Internet, ein privates Internet, ein On-Premise-Netzwerk, einen anderen Oracle-Service oder ein anderes VCN-Netzwerk im Mandanten herstellen.

    Sie sollten Oracle Cloud Infrastructure Compute Web Application Firewall (WAF) verwenden, um die Anwendung vor böswilligem Traffic aus dem öffentlichen Internet zu schützen. Diese Architektur basiert auf Policys, die einschränken, wer auf welche Oracle Cloud Infrastructure Compute-Ressourcen in einem bestimmten Compartment zugreifen kann.

Stellen Sie

Der Terraform-Code zum Erstellen von mehrstufigen Compartment-Umgebungen zur Entwicklung von Unternehmenslösungen ist unter GitHub verfügbar.

  1. Gehen Sie zu GitHub.
  2. Klonen Sie das Repository, oder laden Sie es auf den lokalen Rechner herunter.
  3. Befolgen Sie die Anweisungen im Dokument README.

Änderungslog

In diesem Log werden wichtige Änderungen aufgeführt: