Installation mehrerer Rechenzentren für API BaaS

Edge for Private Cloud Version 4.17.01

Sie können API-BaaS mithilfe einer Aktiv/Aktiv-Konfiguration in mehreren Rechenzentren installieren. In diesem Dokument wird beschrieben, wie Sie einem vorhandenen BaaS-Rechenzentrum ein BaaS-Rechenzentrum hinzufügen.

Rechenzentrum hinzufügen, wenn der Cassandra-Cluster mit Edge geteilt wird

Alle Rechenzentren müssen die gleiche Anzahl von Cassandra-Knoten haben. Eine API-BaaS-Installation kann einen eigenen Cassandra-Cluster oder einen Cassandra-Cluster mit Edge verwenden.

Wenn die BaaS-Installation einen Cassandra-Cluster mit Edge teilt, müssen Sie den Management Server im ursprünglichen Rechenzentrum aktualisieren, um ihn so zu konfigurieren, dass er die Cassandra-Knoten im neuen Rechenzentrum erkennt.

Vorhandenes Rechenzentrum aktualisieren

Wenn Sie ein neues BaaS-Rechenzentrum (Rechenzentrum 2) hinzufügen, müssen Sie die Schritte zur Installation und Konfiguration des neuen Rechenzentrums ausführen, aber auch das ursprüngliche BaaS-Rechenzentrum (Rechenzentrum 1) aktualisieren. Diese Änderungen sind aus folgenden Gründen erforderlich:

  • Sie fügen dem neuen Rechenzentrum neue Cassandra-Knoten hinzu, die vom bestehenden Rechenzentrum zugänglich sein müssen.
  • Sie müssen die Replikationsinformationen, die von den BaaS-Stack-Knoten im Rechenzentrum 1 verwendet werden, so konfigurieren, dass sie Informationen aus Rechenzentrum 2 enthalten. Sie können diese Konfiguration erst ausführen, wenn Rechenzentrum 2 installiert ist.

Um diese Aktualisierungen im Rechenzentrum 1 durchzuführen, aktualisieren Sie die ursprüngliche Konfigurationsdatei, die zur Installation von Rechenzentrum 1 verwendet wurde, und führen Sie dann apigee-setup auf den Cassandra-Knoten von Rechenzentrum 1 noch einmal aus. Wenn der Cassandra-Cluster für Rechenzentrum 1 für eine Edge-Installation freigegeben ist, müssen Sie auch den Verwaltungsserver aktualisieren.

Konfigurationsdateien erstellen

Verwenden Sie für die Installation von Rechenzentrum 1 die Konfiguration unter API-BaaS-Installation. Die Konfigurationsdatei muss bei der Installation von Rechenzentrum 1 keine Informationen über Rechenzentrum 2 enthalten.Sie fügen der Konfigurationsdatei Informationen nach der Installation von Rechenzentrum 2 hinzu.

Unten sehen Sie die Konfigurationsdateien für Rechenzentrum 2. Diese Konfigurationsdatei geht davon aus, dass Sie dc-2 auf 10 Knoten installieren, wie unter Installationstopologien beschrieben. Passen Sie diese Datei entsprechend an, wenn Sie eine Installation auf 7 Knoten vornehmen.

Die Konfigurationsdatei für Rechenzentrum 2 (dc-2) enthält Informationen zu Rechenzentrum 1 (dc-1):

# Specify IP address or DNS name of node for dc-2.
IP1=192.168.1.1   # ElasticSearch
IP2=192.168.1.2   # ElasticSearch
IP3=192.168.1.3   # ElasticSearch
IP4=192.168.1.4   # API BaaS Stack
IP5=192.168.1.5   # API BaaS Stack
IP6=192.168.1.6   # API BaaS Stack
IP7=192.168.1.7   # API BaaS Portal
IP8=192.168.1.8   # Cassandra dc-2 (shared with Edge or standalone)
IP9=192.168.1.9   # Cassandra dc-2 (shared with Edge or standalone)
IP10=192.168.1.10  # Cassandra dc-2 (shared with Edge or standalone)

# Specify node information for dc-1
IP11=192.168.1.11   # Cassandra dc-1 (shared with Edge or standalone)
IP12=192.168.1.12   # Cassandra dc-1 (shared with Edge or standalone)
IP13=192.168.1.13   # Cassandra dc-1 (shared with Edge or standalone)
IP14=192.168.1.14   # API BaaS Stack
IP15=192.168.1.15   # API BaaS Stack

# Must resolve to IP address or DNS name of host - not to 127.0.0.1 or localhost.
HOSTIP=$(hostname -i)

# Define the API BaaS administrator account.  
AS_ADMIN="superuser"    # User name - default is "superuser".
AS_ADMIN_EMAIL=stackAdmin@email.com
AS_PASSWD=stackAdminPWord

# Specify Cassandra data center and rack suffix.
# List dc-2 nodes first, then dc-1.
# Must use IP addresses for CASS_HOSTS, not DNS names.
# CASS_HOSTS="$IP8:2,1 $IP9:2,1 $IP10:2,1 $IP11:1,1 $IP12:1,1 $IP13:1,1"

# Specify the Cassandra region.
REGION=dc-2

# Cassandra uname/pword.
# Even if Cassandra authentication is disabled,
# you must still pass values for these properties.
CASS_USERNAME=cassandra    # Default value
CASS_PASSWORD=cassandra    # Default value

# Specify BaaS Cassandra connection information.
# Specify the data center name as dc-2.
BAAS_CASS_LOCALDC=dc-2    

# Specify both data centers.
BAAS_CASS_DC_LIST=dc-1,dc-2

# Replication is in the form "dataCenterName:#CassandraNodes". 
# Specify both data centers.
BAAS_CASS_REPLICATION=dc-1:3,dc-2:3

# Defines the initial contact points for members of the BaaS cluster. 
# Specify the IP address of no more than two Stack nodes per data center.
# Specify both data centers. 
BAAS_CLUSTER_SEEDS="dc-1:$IP14,dc-1:$IP15,dc-2:$IP4,dc-2:$IP5"

# ElasticSearch IPs or DNS names, separated by spaces, for dc-2.
ES_HOSTS="$IP1 $IP2 $IP3"

# API BaaS Stack information.
# Default cluster name is "apigee_baas"
BAAS_USERGRID_CLUSTERNAME="apigee_baas" 

# URL and port of the load balancer for the API BaaS Stack nodes, 
# or IP/DNS and port 8080 of a single Stack node with no load balancer.
BAAS_USERGRID_URL=http://myloadbalancer:8443

# API BaaS Portal information.
# URL and port number of load balancer, if there is one in front of the Portal,
# or the URL and port of the Portal node.  
BAAS_PORTAL_URL="http://$IP7:9000"

# Portal port. Default value is 9000.
BAAS_PORTAL_LISTEN_PORT=9000 

# SMTP information. BaaS requires an SMTP server.
SMTPHOST=smtp.gmail.com
SMTPPORT=465
SMTPUSER=your@email.com
SMTPPASSWORD=yourEmailPassword
SMTPSSL=y

BaaS-Rechenzentrum hinzufügen

  1. Installieren Sie das erste Rechenzentrum wie unter API-BaaS-Installation beschrieben. Dieses Dokument enthält die Konfigurationsdatei, die Sie zum Installieren von Rechenzentrum 1 verwenden.
  2. Erstellen Sie die Konfigurationsdatei für dc-2 wie oben beschrieben.
  3. Installieren Sie Cassandra entweder als Teil einer vorhandenen Edge-Installation oder als eigenständigen Cluster für BaaS:
    1. Installieren Sie das Edge-Dienstprogramm apigee-setup auf dem ersten Cassandra-Knoten von dc-2, Maschine 8 mit dem Internet- oder Nicht-Internet-Verfahren. Weitere Informationen finden Sie unter Edge-Dienstprogramm für Apigee-Einrichtung installieren.
    2. Führen Sie an der Eingabeaufforderung das Setup-Skript aus, um Cassandra auf dem ersten Knoten zu installieren:
      > /opt/apigee/apigee-setup/bin/setup.sh -p c -f configFile

      Die Option „-p c“ gibt an, dass Cassandra installiert werden soll.

      Die Konfigurationsdatei muss für den Nutzer „apigee“ zugänglich oder lesbar sein.
    3. Wiederholen Sie die Schritte 3 und 4 für die verbleibenden Cassandra-Knoten, Maschinen 9 und 10, in dc-2.
  4. Bearbeiten Sie auf den Cassandra-Knoten von dc-1 die Konfigurationsdatei, um die Cassandra-Knoten aus Rechenzentrum 2 je nach Installation von Cassandra hinzuzufügen:

    # Listen Sie zuerst dc-1-Knoten auf, dann dc-2,
    # einschließlich Cassandra-Rechenzentrum und Rack-Suffix
    CASS_HOSTS="$IP11:1,1 $IP1, $IP1,1, $IP13:1", $IP1, $IP1,1, $IP13:1
  5. Führen Sie auf dem ersten Cassandra-Knoten von dc-1 setup.sh mit der neuen dc-1-Konfigurationsdatei aus, die die Cassandra-Knoten von dc-2 enthält:
    > /opt/apigee/apigee-setup/bin/setup.sh -p c -f configFile
  6. Wiederholen Sie die Schritte 6 und 7 für die verbleibenden Cassandra-Knoten in dc-1.
  7. Wenn Sie eine Verbindung zu einem Cassandra-Cluster für dc-1 herstellen, der für Edge freigegeben ist, fügen Sie die dc-2-Cassandra-Knoten der Konfigurationsdatei für den Management Server-Knoten von dc-1 hinzu und führen Sie setup.sh aus:
    > /opt/apigee/apigee-setup/bin/setup.sh -p ms -f configFile
  8. Aktualisieren Sie die Cassandra-Schlüsselbereiche mit dem korrekten Replikationsfaktor für die beiden Rechenzentren. Sie müssen diesen Schritt nur einmal auf einem Cassandra-Server in einem der beiden Rechenzentren ausführen:

    Hinweis: Die folgenden Befehle setzen den Replikationsfaktor auf „3“, was drei Cassandra-Knoten im Cluster angibt. Ändern Sie diesen Wert bei Bedarf für Ihre Installation.
    1. Starten Sie das Dienstprogramm Cassandra cqlsh:
      > /opt/apigee/apigee-cassandra/bin/cqlsh cassandraIP
    2. Führen Sie die folgenden CQL-Befehle in der Eingabeaufforderung "cqlsh>" aus, um die Replikationsebenen für Cassandra-Schlüsselbereiche festzulegen:
      1. cqlsh> ALTER KEYSPACE "Apigee_Baas_dc_1" WITH Replication = { 'class': 'NetworkTopologyStrategy', 'dc-1': '3','dc-2': '3' };
      2. cqlsh> ALTER KEYSPACE "Apigee_Baas" WITH Replikation = { 'class': 'NetworkTopologyStrategy', 'dc-1': '3','dc-2': '3' };
      3. cqlsh> ALTER KEYSPACE "Apigee_Baas_Locks" WITH Replikation = { 'class': 'NetworkTopologyStrategy', 'dc-1': '3','dc-2': '3' };
      4. cqlsh> ALTER KEYSPACE "system_traces" WITH Replikation = { 'class': 'NetworkTopologyStrategy', 'dc-1': '3','dc-2': '3' };
      5. cqlsh> ALTER KEYSPACE "system_auth" WITH Replication = { 'class': 'NetworkTopologyStrategy', 'dc-1': '3','dc-2': '3' };
      6. Rufen Sie die Schlüsselbereiche mit folgendem Befehl auf:
        cqlsh> select * from system.schema_keyspaces;.
      7. Beenden Sie „cqlsh“:
        cqlsh> exit
  9. Führen Sie auf allen Cassandra-Knoten in dc-2 den Befehl zur Neuerstellung aus und geben Sie den Regionsnamen von dc-1 an:
    > /opt/apigee/apigee-cassandra/bin/nodetool -h cassandraIP rebuild dc-1
  10. Führen Sie auf jedem Cassandra-Knoten „nodetool status“ aus und prüfen Sie, ob alle Cassandra-Knoten „100 %“ für den Wert „Eigene“ haben:
    > /opt/apigee/apigee-cassandra/bin/nodetool status
  11. Installieren Sie BaaS in dc-2:
    1. Bearbeiten Sie die Konfigurationsdatei so, dass nur die Cassandra-Knoten in dc-2 aufgelistet werden:
      # Cassandra-Knoten dc-2 auflisten,
      # Cassandra-Rechenzentrums- und Rack-Suffix auslassen
      CASS_HOSTS="$IP8 $IP9 $IP10"
    2. Installieren Sie ElasticSearch auf den Knoten 4, 5 und 6 von dc-2:
      > /opt/apigee/apigee-setup/bin/setup.sh -p e -f configFile
    3. Installieren Sie den BaaS-Stack auf den Knoten 4, 5 und 6 von dc-2:
      > /opt/apigee/apigee-setup/bin/setup.sh -p b -f configFile
    4. Installieren Sie das BaaS-Portal auf Maschine 7:
      > /opt/apigee/apigee-setup/bin/setup.sh -p p -f configFile
  12. Aktualisieren Sie die BaaS-Stack-Knoten in Rechenzentrum 1:
    1. Bearbeiten Sie auf dem ersten BaaS-Stack-Knoten im Rechenzentrum 1 /opt/apigee/customer/application/usergrid.properties in einem Editor. Wenn die Datei nicht vorhanden ist, erstellen Sie sie.
    2. Fügen Sie der Datei usergrid.properties die folgenden Eigenschaften hinzu:
      # Gleicher Wert wie BAAS_CLUSTER_SEEDS in der dc-2-Konfigurationsdatei,
      # ohne doppelte Anführungszeichen.
      usergrid-deployment_usergrid.cluster.seeds=dc-1:dc1StackIP1,dc-1:dc1StackIP2,dc-2:dc2StackIP1,dc-2:dc2StackIP2

      # Gleicher Wert wie BAAS_CASS_DC_LIST in der dc-2-Konfigurationsdatei.
      usergrid-deployment_usergrid.cluster.region.list=dc-1,dc-2
    3. Wiederholen Sie die Schritte a und b für die verbleibenden BaaS-Stack-Knoten.
    4. Starten Sie alle BaaS-Stack-Knoten neu.

      Hinweis: Wenn Sie BaaS-Stack-Knoten neu starten, starten Sie sie in derselben Reihenfolge neu, in der sie in BAAS_CLUSTER_SEEDS aufgeführt sind. BAAS_CLUSTER_SEEDS listet höchstens zwei Stack-Knoten auf. Nachdem Sie diese beiden Knoten der Reihe nach neu gestartet haben, können Sie die verbleibenden Knoten in beliebiger Reihenfolge neu starten.

      > /opt/apigee/apigee-service/bin/apigee-service baas-usergrid neu starten
  13. BaaS-Schlüsselraumwerte aktualisieren. Dieser Schlüsselbereich muss für die Replikation bei der Installation festgelegt werden, aber nicht während der Laufzeit. Durch das Entfernen der Replikation wird auch Cassandra-Arbeitsspeicher gespart.

    Sie müssen diesen Schritt nur einmal auf einem Cassandra-Server in einem der beiden Rechenzentren ausführen:
    1. Starten Sie das Cassandra-Dienstprogramm cqlsh:
      > /opt/apigee/apigee-cassandra/bin/cqlsh cassandraIP
    2. Führen Sie die folgenden CQL-Befehle aus, um die Replikationsebenen für Cassandra-Schlüsselbereiche festzulegen:
      1. cqlsh> ALTER KEYSPACE "Apigee_Baas_dc_1" WITH Replication = { 'class': 'NetworkTopologyStrategy', 'dc-1': '3' };
      2. cqlsh> ALTER KEYSPACE "Apigee_Baas_dc_2" WITH Replikation = { 'class': 'NetworkTopologyStrategy', 'dc-2': '3' };
      3. Rufen Sie mit folgendem Befehl die Schlüsselbereiche auf:
        cqlsh> select * from system.schema_keyspaces;
      4. cqlsh beenden:
        cqlsh> beenden

Die Installation des zweiten Rechenzentrums ist nun abgeschlossen.

Nachdem Sie die Installation und Konfiguration der beiden Rechenzentren abgeschlossen haben, können Sie die Installation folgendermaßen validieren:

  1. Prüfen Sie auf allen BaaS-Stack-Knoten den Status:
    > curl 0:8080/status
  2. Prüfen Sie, ob der Token-API-Aufruf funktioniert:
    > curl -X POST "http://localhost:8080/management/token" -d '{"grant_type":"password", "username":"adminEmail","password":"pWord"}'
  3. Versuchen Sie, sich für dc-2 im BaaS-Portal anzumelden. Prüfen Sie, ob alle Daten in dc-2 repliziert werden, z. B. Sammlungen, die auf dc-1 erstellt wurden.