Installazione di più data center per l'API BaaS

Edge per Private Cloud v. 4.17.01

Puoi installare API BaaS in più data center utilizzando una configurazione attiva/attiva. Questo documento descrive come aggiungere un data center BaaS a un data center BaaS esistente.

Aggiunta di un data center quando il cluster Cassandra viene condiviso con Edge

Tutti i data center devono avere lo stesso numero di nodi Cassandra. Un'installazione API BaaS può utilizzare il proprio cluster Cassandra o condividere un cluster Cassandra con Edge.

Se l'installazione BaaS condivide un cluster Cassandra con Edge, devi aggiornare il server di gestione nel data center originale per configurarlo affinché riconosca i nodi Cassandra nel nuovo data center.

Aggiornamento del data center esistente

L'aggiunta di un nuovo data center BaaS (data center 2) richiede l'esecuzione della procedura di installazione e configurazione del nuovo data center, ma anche l'aggiornamento del data center BaaS originale (data center 1) . Queste modifiche sono necessarie perché:

  • Nel nuovo data center stai aggiungendo nuovi nodi Cassandra che devono essere accessibili dal data center esistente.
  • Devi configurare le informazioni di replica utilizzate dai nodi dello stack BaaS nel data center 1 per includere le informazioni del data center 2. Non puoi eseguire questa configurazione finché non sarà installato il data center 2.

Per eseguire questi aggiornamenti sul data center 1, aggiorna il file di configurazione originale utilizzato per installare il data center 1, quindi esegui nuovamente apigee-setup sui nodi Cassandra del data center 1. Se il cluster Cassandra per il data center 1 è condiviso con un'installazione Edge, devi aggiornare anche il server di gestione.

Creazione dei file di configurazione

Per installare il data center 1, utilizza la configurazione indicata in Installazione API BaaS. Il file di configurazione non deve includere alcuna informazione sul data center 2 al momento dell'installazione del data center 1.Potrai aggiungere informazioni al file di configurazione dopo l'installazione del data center 2.

Di seguito sono riportati i file di configurazione per il data center 2. Questo file di configurazione presuppone che tu stia installando dc-2 su 10 nodi, come descritto in Topologie di installazione. Modifica questo file di conseguenza se l'installazione avviene su 7 nodi.

Tieni presente che il file di configurazione per il data center 2 (dc-2) contiene informazioni sul data center 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

Aggiungere un data center BaaS

  1. Installa il primo data center come descritto in Installazione di API BaaS. Questo documento include il file di configurazione che utilizzi per installare il data center 1.
  2. Crea il file di configurazione per dc-2 come descritto sopra.
  3. Installa Cassandra, come parte di un'installazione Edge esistente o come cluster autonomo per BaaS:
    1. Installa l'utilità Edge apigee-setup sul primo nodo Cassandra di dc-2, macchina 8, utilizzando la procedura internet o non internet. Per saperne di più, consulta Installare l'utilità Edge apigee-setup.
    2. Al prompt dei comandi, esegui lo script di configurazione per installare Cassandra sul primo nodo:
      > /opt/apigee/apigee-setup/bin/setup.sh -p c -f configFile

      L'opzione "-p c" specifica di installare Cassandra.

      Il file di configurazione deve essere accessibile o leggibile dall'utente "apigee".
    3. Ripeti i passaggi 3 e 4 per i restanti nodi Cassandra, macchine 9 e 10, in dc-2.
  4. Nei nodi Cassandra di dc-1, modifica il file di configurazione per aggiungere i nodi Cassandra dal data center 2 in base a come hai installato Cassandra:

    # Elenca prima i nodi dc-1, quindi dc-2,
    # inclusi il data center Cassandra e il suffisso rack
    CASS_HOSTS="$IP11:1,1 $IP12:1,1 $IP12:1,1 $IP12:1,1 $IP
  5. Sul primo nodo Cassandra di dc-1, esegui setup.sh con il nuovo file di configurazione dc-1 che include i nodi Cassandra da dc-2:
    > /opt/apigee/apigee-setup/bin/setup.sh -p c -f configFile
  6. Ripetere i passaggi 6 e 7 per i restanti nodi Cassandra in dc-1.
  7. Se ti connetti a un cluster Cassandra per dc-1 condiviso con Edge, aggiungi i nodi Cassandra dc-2 al file di configurazione per il nodo del server di gestione di dc-1 ed esegui setup.sh:
    > /opt/apigee/apigee-setup/bin/setup.sh -p ms -f configFile
  8. Aggiorna gli spazi delle chiavi di Cassandra con il fattore di replica corretto per i due data center. Devi eseguire questo passaggio solo una volta su qualsiasi server Cassandra in entrambi i data center:

    Nota: i comandi riportati di seguito impostano il fattore di replica su "3", indicando tre nodi Cassandra nel cluster. Modifica questo valore in base alle esigenze dell'installazione.
    1. Avvia l'utilità Cassandra cqlsh:
      > /opt/apigee/apigee-cassandra/bin/cqlsh cassandraIP
    2. Esegui questi comandi CQL al prompt "cqlsh>" per impostare i livelli di replica per gli spazi delle chiavi Cassandra:
      1. cqlsh> ALTER KEYSPACE "Apigee_Baas_dc_1" WITH replica = { 'class': 'NetworkTopologyStrategy', 'dc-1': '3','dc-2': '3' };
      2. cqlsh> ALTER KEYSPACE "Apigee_Baas" WITH replicate = { 'class': 'NetworkTopologyStrategy', 'dc-1': '3','dc-2': '3' };
      3. cqlsh> ALTER KEYSPACE "Apigee_Baas_Locks" WITH replica = { 'class': 'NetworkTopologyStrategy', 'dc-1': '3','dc-2': '3' };
      4. cqlsh> ALTER KEYSPACE "system_traces" WITHplication = { 'class': 'NetworkTopologyStrategy', 'dc-1': '3','dc-2': '3' };
      5. cqlsh> ALTER KEYSPACE "system_auth" WITHplication = { 'class': 'NetworkTopologyStrategy', 'dc-1': '3','dc-2': '3' };
      6. Visualizza gli spazi delle chiavi utilizzando il comando:
        cqlsh> select * from system.schema_keyspaces;
      7. Esci da cqlsh:
        cqlsh> exit
  9. Su tutti i nodi Cassandra in dc-2, esegui il comando rebuild, specificando il nome regione di dc-1:
    > /opt/apigee/apigee-cassandra/bin/nodetool -h cassandraIP rebuild dc-1
  10. Esegui lo "stato nodetool" su ogni nodo Cassandra e verifica che tutti i nodi Cassandra abbiano il "100%" per il valore "Proprietario":
    > stato /opt/apigee/apigee-cassandra/bin/nodetool
  11. Installa BaaS in dc-2:
    1. Modifica il file di configurazione per elencare solo i nodi Cassandra in dc-2:
      # Elenca i nodi Cassandra dc-2,
      # omettendo il data center Cassandra e il suffisso del rack
      CASS_HOSTS="$IP8 $IP9 $IP10"
    2. Installa ElasticSearch sui nodi 4, 5 e 6 di dc-2:
      > /opt/apigee/apigee-setup/bin/setup.sh -p e -f configFile
    3. Installa lo stack BaaS sui nodi 4, 5 e 6 di dc-2:
      > /opt/apigee/apigee-setup/bin/setup.sh -p b -f configFile
    4. Installa il portale BaaS sulla macchina 7:
      > /opt/apigee/apigee-setup/bin/setup.sh -p p -f configFile
  12. Aggiorna i nodi BaaS Stack nel data center 1:
    1. Sul primo nodo dello stack BaaS nel data center 1, modifica /opt/apigee/customer/application/usergrid.properties in un editor. Se il file non esiste, crealo.
    2. Aggiungi le seguenti proprietà a usergrid.properties:
      # Stesso valore di BAAS_CLUSTER_SEEDS nel file di configurazione dc-2,
      # senza virgolette doppie.
      usergrid-deployment_usergrid.cluster.seeds=dc-1:dc1StackIP1,dc-1:dc1StackIP2,dc-2:dc2StackIP1,dc-2:dc2StackIP2

      # Lo stesso valore di BAAS_CASS_DC_LIST nel file di configurazione dc-2.
      usergrid-deployment_usergrid.cluster.region.list=dc-1,dc-2
    3. Ripeti i passaggi a e b sui restanti nodi dello stack BaaS.
    4. Riavvia tutti i nodi dello stack BaaS.

      Nota: quando riavvii i nodi dello stack BaaS, riavviali nello stesso ordine in cui sono elencati in BAAS_CLUSTER_SEEDS. BAAS_CLUSTER_SEEDS elenca al massimo due nodi dello stack. Dopo aver riavviato questi due nodi in ordine, puoi riavviare i nodi rimanenti in qualsiasi ordine.

      > /opt/apigee/apigee-service/bin/apigee-service baas-usergrid sostenuto
  13. Aggiorna i valori dello spazio delle chiavi BaaS. Questi spazi delle chiavi devono essere impostati per la replica al momento dell'installazione, ma non in fase di esecuzione. La rimozione della replica salva anche la memoria Cassandra.

    Devi eseguire questo passaggio una sola volta su qualsiasi server Cassandra in entrambi i data center:
    1. Avvia l'utilità Cassandra cqlsh:
      > /opt/apigee/apigee-cassandra/bin/cqlsh cassandraIP
    2. Esegui questi comandi CQL per impostare i livelli di replica per gli spazi delle chiavi Cassandra:
      1. cqlsh> ALTER KEYSPACE "Apigee_Baas_dc_1" WITH encryption = { 'class': 'NetworkTopologyStrategy', 'dc-1': '3' };
      2. cqlsh> ALTER KEYSPACE "Apigee_Baas_dc_2" WITHplication = { 'class': 'NetworkTopologyStrategy', 'dc-2': '3' };
      3. Visualizza gli spazi delle chiavi utilizzando questo comando:
        cqlsh> select * from system.schema_keyspaces;
      4. Esci da cqlsh:
        cqlsh> exit

L'installazione del secondo data center è stata completata.

Dopo aver completato l'installazione e la configurazione dei due data center, puoi convalidare l'installazione utilizzando la seguente procedura:

  1. Su tutti i nodi dello stack BaaS, controlla lo stato:
    > curl 0:8080/status
  2. Verifica che la chiamata all'API del token funzioni:
    > curl -X POST "http://localhost:8080/management/token" -d '{"grant_type":"password", "username":"adminEmail","password":"pWord"}'
  3. Prova ad accedere al portale BaaS per dc-2. Verifica che tutti i dati vengano replicati in dc-2, ad esempio le raccolte create su dc-1.