Installation de plusieurs centres de données pour l'API BaaS

Edge pour Private Cloud version 4.17.01

Vous pouvez installer les BaaS d'API dans plusieurs centres de données à l'aide d'une configuration en mode actif/actif. Ce document explique comment ajouter un centre de données BaaS à un centre de données BaaS existant.

Ajout d'un centre de données lorsque le cluster Cassandra est partagé avec Edge

Tous les centres de données doivent disposer du même nombre de nœuds Cassandra. Une installation d'API BaaS peut utiliser son propre cluster Cassandra ou partager un cluster Cassandra avec Edge.

Si l'installation BaaS partage un cluster Cassandra avec Edge, vous devez mettre à jour le serveur de gestion dans le centre de données d'origine pour le configurer afin qu'il reconnaisse les nœuds Cassandra dans le nouveau centre de données.

Mettre à jour le centre de données existant

Pour ajouter un nouveau centre de données BaaS (centre de données 2), vous devez suivre la procédure d'installation et de configuration du nouveau centre de données, mais également mettre à jour le centre de données BaaS d'origine (centre de données 1) . Ces modifications sont nécessaires pour les raisons suivantes:

  • Vous ajoutez des nœuds Cassandra au nouveau centre de données, qui doivent être accessibles par le centre de données existant.
  • Vous devez configurer les informations de réplication utilisées par les nœuds de pile BaaS dans le centre de données 1 afin d'inclure les informations du centre de données 2. Vous ne pouvez pas effectuer cette configuration tant que le centre de données 2 n'est pas installé.

Pour effectuer ces mises à jour sur le centre de données 1, vous devez mettre à jour le fichier de configuration d'origine utilisé pour installer le centre de données 1, puis réexécuter apigee-setup sur les nœuds Cassandra du centre de données 1. Si le cluster Cassandra pour le centre de données 1 est partagé avec une installation Edge, vous devez également mettre à jour le serveur de gestion.

Créer les fichiers de configuration

Pour installer le centre de données 1, utilisez la configuration présentée sur la page Installation d'API BaaS. Le fichier de configuration ne doit pas nécessairement inclure d'informations sur le centre de données 2 au moment de l'installation du centre de données 1.Vous devez ajouter des informations au fichier de configuration après avoir installé le centre de données 2.

Vous trouverez ci-dessous les fichiers de configuration pour le centre de données 2. Ce fichier de configuration suppose que vous installez dc-2 sur 10 nœuds, comme décrit dans la section Topologies d'installation. Modifiez ce fichier en conséquence si vous effectuez l'installation sur sept nœuds.

Notez que le fichier de configuration du centre de données 2 (dc-2) contient des informations sur le centre de données 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

Ajouter un centre de données BaaS

  1. Installez le premier centre de données comme décrit dans la section Installation d'API BaaS. Ce document inclut le fichier de configuration que vous utilisez pour installer le centre de données 1.
  2. Créez le fichier de configuration pour dc-2 comme décrit ci-dessus.
  3. Installez Cassandra dans le cadre d'une installation Edge existante ou en tant que cluster autonome pour BaaS :
    1. Installez l'utilitaire Edge apigee-setup sur le premier nœud Cassandra de dc-2, machine 8, à l'aide de la procédure Internet ou non Internet. Pour en savoir plus, consultez la section Installer l'utilitaire de configuration d'Apigee Edge.
    2. Dans l'invite de commande, exécutez le script de configuration pour installer Cassandra sur le premier nœud:
      > /opt/apigee/apigee-setup/bin/setup.sh -p c -f configFile

      L'option "-p c" indique l'installation de Cassandra.

      Le fichier de configuration doit être accessible ou lisible par l'utilisateur "apigee".
    3. Répétez les étapes 3 et 4 pour les nœuds Cassandra restants, les machines 9 et 10, dans dc-2.
  4. Sur les nœuds Cassandra de dc-1, modifiez le fichier de configuration pour ajouter les nœuds Cassandra du centre de données 2 en fonction de la façon dont vous avez installé Cassandra :

    # Répertoriez d'abord les nœuds dc-1, puis dc-2,
    # y compris le centre de données Cassandra et le suffixe du rack
    CASS_HOSTS="$IP11:1,1 $IP12:IP1:1,1 $IP12:IP1:1"
  5. Sur le premier nœud Cassandra de dc-1, exécutez setup.sh avec le nouveau fichier de configuration dc-1 qui inclut les nœuds Cassandra de dc-2:
    > /opt/apigee/apigee-setup/bin/setup.sh -p c -f configFile
  6. Répétez les étapes 6 et 7 pour les nœuds Cassandra restants dans dc-1.
  7. Si vous vous connectez à un cluster Cassandra pour dc-1 partagé avec Edge, ajoutez les nœuds Cassandra dc-2 au fichier de configuration du nœud du serveur de gestion de dc-1 et exécutez setup.sh:
    > /opt/apigee/apigee-setup/bin/setup.sh -p ms -f configFile
  8. Mettre à jour les espaces de clés Cassandra avec un facteur de réplication approprié pour les deux centres de données Vous n'avez besoin d'exécuter cette étape qu'une seule fois sur un serveur Cassandra de l'un ou l'autre des centres de données:

    Remarque: Les commandes ci-dessous définissent toutes le facteur de réplication sur "3", ce qui indique trois nœuds Cassandra du cluster. Modifiez cette valeur si nécessaire pour votre installation.
    1. Lancez l'utilitaire Cassandra cqlsh:
      > /opt/apigee/apigee-cassandra/bin/cqlsh cassandraIP
    2. Exécutez les commandes CQL suivantes dans l'invite "cqlsh>" pour définir les niveaux de réplication des espaces de clés Cassandra :
      1. cqlsh> ALTER KEYSPACE "Apigee_Baas_dc_1" WITH réplication = { 'class': 'NetworkTopology', 'dc-1': '3','dc-2': '3' };
      2. cqlsh> ALTER KEYSPACE "Apigee_Baas" WITH réplication = { 'class': 'NetworkTopologyStrategy', 'dc-1': '3','dc-2': '3' };
      3. cqlsh> ALTER KEYSPACE "Apigee_Baas_Locks" avec réplication = { 'class': 'NetworkTopology', 'dc-1': '3','dc-2': '3' };
      4. cqlsh> ALTER KEYSPACE "system_traces" WITH réplication = { 'class': 'NetworkTopologyStrategy', 'dc-1': '3','dc-2': '3' };
      5. cqlsh> ALTER KEYSPACE "system_auth" WITH réplication = { 'class': 'NetworkTopologyStrategy', 'dc-1': '3','dc-2': '3' };
      6. Affichez les espaces de clés à l'aide de la commande suivante:
        cqlsh> select * from system.schema_keyspaces;
      7. Quittez cqlsh:
        cqlsh> exit.
  9. Sur tous les nœuds Cassandra dans dc-2, exécutez la commande "rebuild", en spécifiant le nom de la région de dc-1:
    > /opt/apigee/apigee-cassandra/bin/nodetool -h cassandraIP rebuild dc-1
  10. Exécutez "nodetool status" sur chaque nœud Cassandra et vérifiez que tous les nœuds Cassandra ont la valeur "100%" pour la valeur "Propriétaire" :
    > /opt/apigee/apigee-cassandra/bin/nodetool status
  11. Installez le BaaS dans dc-2 :
    1. Modifiez le fichier de configuration pour ne lister que les nœuds Cassandra dans dc-2:
      # List dc-2 Cassandra nodes,
      # ometing Cassandra data center and rack suffixe
      CASS_HOSTS="$IP8 $IP9 $IP10"
    2. Installez ElasticSearch sur les nœuds 4, 5 et 6 de dc-2:
      > /opt/apigee/apigee-setup/bin/setup.sh -p e -f configFile
    3. Installez la pile BaaS sur les nœuds 4, 5 et 6 de dc-2:
      > /opt/apigee/apigee-setup/bin/setup.sh -p b -f configFile
    4. Installez le portail BaaS sur la machine 7:
      > /opt/apigee/apigee-setup/bin/setup.sh -p p -f configFile
  12. Mettez à jour les nœuds de la pile BaaS dans le centre de données 1 :
    1. Sur le premier nœud de pile BaaS du centre de données 1, modifiez /opt/apigee/customer/application/usergrid.properties dans un éditeur. Si le fichier n'existe pas, créez-le.
    2. Ajoutez les propriétés suivantes à usergrid.properties:
      # Valeur identique à celle de BAAS_CLUSTER_SEEDS dans le fichier de configuration dc-2,
      # sans les guillemets doubles.
      usergrid-deployment_usergrid.cluster.seeds=dc-1:dc1StackIP1,dc-1:dc1StackIP2,dc-2:dc2StackIP1,dc-2:dc2StackIP2

      # Valeur identique à celle de BAAS_CASS_DC_LIST dans le fichier de configuration dc-2.
      usergrid-deployment_usergrid.cluster.region.list=dc-1,dc-2
    3. Répétez les étapes a et b sur les autres nœuds de pile BaaS.
    4. Redémarrez tous les nœuds de la pile BaaS.

      Remarque: Lorsque vous redémarrez des nœuds de pile BaaS, redémarrez-les dans l'ordre indiqué dans BAAS_CLUSTER_SEEDS. BAAS_CLUSTER_SEEDS répertorie au maximum deux des nœuds de pile. Après avoir redémarré ces deux nœuds dans l'ordre, vous pouvez redémarrer les nœuds restants dans n'importe quel ordre.

      > /opt/apigee/apigee-service/bin/apigee-service baas-usergrid restart
  13. Met à jour les valeurs de l'espace clé BaaS. Cet espace de clés doit être défini pour la réplication au moment de l'installation, mais pas au moment de l'exécution. La suppression de la réplication permet également d'économiser la mémoire Cassandra.

    Vous n'avez besoin d'exécuter cette étape qu'une seule fois sur un serveur Cassandra de l'un des centres de données :
    1. Lancez l'utilitaire Cassandra cqlsh:
      > /opt/apigee/apigee-cassandra/bin/cqlsh cassandraIP
    2. Exécutez les commandes CQL suivantes pour définir les niveaux de réplication des espaces de clés Cassandra :
      1. cqlsh> ALTER KEYSPACE "Apigee_Baas_dc_1" WITH réplication = { 'class': 'NetworkTopologyStrategy', 'dc-1': '3' };
      2. cqlsh> ALTER KEYSPACE "Apigee_Baas_dc_2" WITH réplication = { 'class': 'NetworkTopologyStrategy', 'dc-2': '3' };
      3. Affichez les espaces de clés à l'aide de la commande suivante:
        cqlsh> select * from system.schema_keyspaces;
      4. Quittez cqlsh:
        cqlsh> exit

L'installation du deuxième centre de données est maintenant terminée.

Une fois l'installation et la configuration des deux centres de données terminées, vous pouvez valider l'installation en procédant comme suit:

  1. Sur tous les nœuds de la pile BaaS, vérifiez l'état:
    > curl 0:8080/status
  2. Vérifiez que l'appel d'API du jeton fonctionne:
    > curl -X POST "http://localhost:8080/management/token" -d '{"grant_type":"password", "username":"adminEmail","password":"pWord"}'
  3. Essayez de vous connecter au portail BaaS pour dc-2. Vérifiez que toutes les données sont répliquées dans dc-2, telles que les collections créées sur dc-1.