[ English | español | Deutsch | Indonesia | русский | English (United Kingdom) ]

Service-Architektur

Einführung

OpenStack-Ansible verfügt über ein flexibles Bereitstellungskonfigurationsmodell, mit dem alle Dienste in separaten Computercontainern oder auf bestimmten Hosts ohne Verwendung von Containern bereitgestellt werden können und der gesamte Netzwerkdatenverkehr entweder über eine einzige Netzwerkschnittstelle oder über zahlreiche Netzwerkschnittstellen erfolgt.

Dank dieser Flexibilität können die Implementierer wählen, wie OpenStack für den jeweiligen Anwendungsfall entsprechend bereitgestellt wird.

In den folgenden Abschnitten werden die Dienste beschrieben, die von OpenStack-Ansible bereitgestellt werden.

Infrastrukturdienste

OpenStack-Ansible implementiert die folgenden Infrastrukturkomponenten:

  • MariaDB mit Galera

    Alle OpenStack-Dienste erfordern eine zugrunde liegende Datenbank. MariaDB mit Galera implementiert eine Multimaster-Datenbankkonfiguration, die die Verwendung als hoch verfügbare Datenbank mit einem einfachen Failovermodell vereinfacht.

  • RabbitMQ

    OpenStack-Dienste verwenden RabbitMQ für Advanced Message Queuing Protocol (AMQP). OSA setzt RabbitMQ in einer Clusterkonfiguration mit allen zwischen den Clusterknoten gespiegelten Warteschlangen ein. Da der Nachrichtenwarteschlangenverkehr in der Telemetrie (Ceilometer) ziemlich hoch ist, empfehlen wir für große Umgebungen, Telemetriebenachrichtigungen in einen separaten RabbitMQ-Cluster zu trennen.

  • Memcached

    OpenStack-Dienste verwenden Memcached für In-Memory-Caching, wodurch Transaktionen beschleunigt werden. Beispielsweise verwendet der OpenStack Identity-Dienst (Keystone) Memcached zum Zwischenspeichern von Authentifizierungstoken, wodurch sichergestellt wird, dass bei der Tokenüberprüfung nicht jedes Mal eine Datenträger- oder Datenbanktransaktion ausgeführt werden muss, wenn der Dienst aufgefordert wird, ein Token zu validieren.

  • Repository

    Das Repository enthält den Referenzsatz von Artefakten, die für die Installation der Umgebung verwendet werden. Die Artefakte umfassen:

    • Ein Git-Repository, das eine Kopie des Quellcodes enthält, mit dem die Pakete für alle OpenStack-Dienste vorbereitet werden

    • Python Wheels für alle Dienste, die in der Umgebung eingesetzt werden

    • Ein apt/yum-Proxy-Cache, der zum Zwischenspeichern von in der Umgebung installierten Verteilungspaketen verwendet wird

  • Lastenausgleicher

    Für eine Bereitstellung ist mindestens ein Lastenausgleich erforderlich. OSA bietet eine Bereitstellung von HAProxy, aber wir empfehlen die Verwendung einer physischen Lastenausgleichs-Appliance für Produktionsumgebungen.

  • Dienstprogramm-Container

    Wenn für ein Werkzeug oder Objekt kein dedizierter Container erforderlich ist oder wenn das Erstellen eines neuen Containers für ein einzelnes Werkzeug oder Objekt nicht praktikabel ist, wird es im Dienstprogrammcontainer installiert. Der Dienstprogrammcontainer wird auch verwendet, wenn Tools nicht direkt auf einem Host installiert werden können. Der Dienstprogrammcontainer wird mit den entsprechenden Anmeldeinformationen und Clients vorbereitet, um die OpenStack-Umgebung zu verwalten. Es ist so eingestellt, dass es automatisch die internen Service-Endpunkte verwendet.

  • Unbound DNS-Container

    Container, die einen Unbound DNS Caching-Dienst ausführen, können optional zum Cachen von DNS-Lookups und zur internen DNS-Namensauflösung implementiert werden. Wir empfehlen, diesen Service für große Produktionsumgebungen zu verwenden, da die Bereitstellung erheblich schneller wird. Wenn dieser Dienst nicht verwendet wird, ändert OSA /etc/hosts Einträge für alle Hosts in der Umgebung.

OpenStack-Dienste

OSA kann eine Vielzahl von Diensten bereitstellen. Sehen Sie sich die Rollenmaturitätsmatrix an, um den Status des Dienstes zu kennen, den Sie bereitstellen möchten.