Varias instalaciones de centros de datos para BaaS de API

Edge para la nube privada v4.18.01

Puedes instalar BaaS de API en varios centros de datos con una configuración activa/activa. En este documento, se describe cómo agregar un centro de datos de BaaS a uno existente.

Agrega un centro de datos cuando el clúster de Cassandra se comparta con Edge

Todos los centros de datos deben tener la misma cantidad de nodos de Cassandra. Una instalación de API de BaaS puede usar su propio clúster de Cassandra o compartir un clúster de Cassandra con Edge.

Si la instalación de BaaS comparte un clúster de Cassandra con Edge, debes actualizar el servidor de administración en el centro de datos original a fin de configurarlo para que reconozca los nodos de Cassandra en el centro de datos nuevo.

Actualiza el centro de datos existente

Para agregar un centro de datos nuevo de BaaS (centro de datos 2), debes seguir los pasos de instalación y configuración del centro de datos nuevo, pero también debes actualizar el centro de datos original (centro de datos 1) . Estas modificaciones son necesarias por los siguientes motivos:

  • Estás agregando nodos de Cassandra nuevos en el centro de datos nuevo a los que debe poder acceder el centro de datos existente.
  • Debes configurar la información de replicación que usan los nodos de pila de BaaS en el centro de datos 1 para incluir información del centro de datos 2. No puedes realizar esa configuración hasta que se instale el centro de datos 2.

A fin de realizar estas actualizaciones en el centro de datos 1, debes actualizar el archivo de configuración original que se usa para instalar el centro de datos 1 y, luego, volver a ejecutar apigee-setup en los nodos de Cassandra del centro de datos 1. Si el clúster de Cassandra del centro de datos 1 se comparte con una instalación de Edge, también debes actualizar el servidor de administración.

Crea los archivos de configuración

Para instalar el centro de datos 1, usa la configuración que se muestra en Instalación de la BaaS de la API. No es necesario que el archivo de configuración incluya información sobre el centro de datos 2 en el momento en que lo instalas. 1. Debes agregar información al archivo de configuración después de instalar el centro de datos 2.

A continuación, se muestran los archivos de configuración del centro de datos 2. En este archivo de configuración, se supone que estás instalando dc-2 en 10 nodos, como se describe en Topologías de instalación. Modifica este archivo según corresponda si realizas la instalación en 7 nodos.

Ten en cuenta que el archivo de configuración del centro de datos 2 (dc-2) contiene información sobre el centro de datos 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
SMTPMAILFROM="My Company <myco@company.com>"

Agrega un centro de datos BaaS

  1. Instala el primer centro de datos como se describe en Instalación de la BaaS de la API. En ese documento, se incluye el archivo de configuración que usas para instalar el centro de datos 1.
  2. Crea el archivo de configuración para dc-2 como se describió antes.
  3. Instala Cassandra, ya sea como parte de una instalación de Edge existente o como un clúster independiente para BaaS:
    1. Instala la utilidad apigee-setup de Edge en el primer nodo de Cassandra de dc-2, máquina 8, con el procedimiento de Internet o el que no es de Internet. Consulta Instala la utilidad apigee-setup de Edge para obtener más información.
    2. En el símbolo del sistema, ejecuta la secuencia de comandos de configuración para instalar Cassandra en el primer nodo:
      >/opt/apigee/apigee-setup/bin/setup.sh -p c -f configFile

      La opción “-p c” especifica la instalación de Cassandra.

      El usuario de “apigee” debe poder acceder o leer el archivo de configuración.
    3. Repite los pasos 3 y 4 para los nodos de Cassandra restantes, las máquinas 9 y 10, en dc-2.
  4. En los nodos de Cassandra de dc-1, edita el archivo de configuración para agregar los nodos de Cassandra del centro de datos 2 según cómo instalaste Cassandra:

    # Primero, enumera los nodos dc-1, luego dc-2,
    # lo que incluye el centro de datos de Cassandra y el sufijo del bastidor
    CASS_HOSTS="$IP11:1,1 $IP12:1,$2IP,$IP1,$IP1,$IP1
  5. En el primer nodo de Cassandra de dc-1, ejecuta setup.sh con el nuevo archivo de configuración dc-1 que incluye los nodos de Cassandra de dc-2:
    >/opt/apigee/apigee-setup/bin/setup.sh -p c -f configFile
  6. Repite los pasos 6 y 7 para los nodos de Cassandra restantes en dc-1.
  7. Si te conectas a un clúster de Cassandra para dc-1 compartido con Edge, agrega los nodos de Cassandra dc-2 al archivo de configuración para el nodo de Management Server de dc-1 y ejecuta setup.sh:
    > /opt/apigee/apigee-setup/bin/setup.sh -p ms -f configFile
  8. Actualizar los espacios de claves de Cassandra con el factor de replicación correcto para los dos centros de datos Solo debes ejecutar este paso una vez en cualquier servidor de Cassandra en cualquiera de los centros de datos:

    Nota: Los siguientes comandos establecen el factor de replicación en “3”, lo que indica tres nodos de Cassandra en el clúster. Modifica este valor según sea necesario para la instalación.
    1. Inicia la utilidad de Cassandra cqlsh:
      >/opt/apigee/apigee-cassandra/bin/cqlsh cassandraIP
    2. Ejecuta los siguientes comandos de CQL en el mensaje “cqlsh>" para configurar los niveles de replicación de los espacios de claves de Cassandra:
      1. cqlsh> ALTERAR KEYSPACE "Apigee_Baas_dc_1" WITH replica = { 'class': 'NetworkTopologyStrategy', 'dc-1': '3','dc-2': '3' };
      2. cqlsh> ALTERAR EL ESPACIO DE CLAVE “Apigee_Baas” CON Replicación = { 'clase': 'NetworkTopologyStrategy', 'dc-1': '3','dc-2': '3' };
      3. cqlsh> ALTERAR EL ESPACIO DE CLAVE "Apigee_Baas_Locks" CON Replicación = { 'class': 'NetworkTopologyStrategy', 'dc-1': '3','dc-2': '3' };
      4. cqlsh> ALTER KEYSPACE "system_traces" WITH replica = { 'class': 'NetworkTopologyStrategy', 'dc-1': '3','dc-2': '3' };
      5. cqlsh> ALTERAR KEYSPACE "system_auth" WITH replica = { 'class': 'NetworkTopologyStrategy', 'dc-1': '3','dc-2': '3' };
      6. Visualiza los espacios de claves con el comando:
        cqlsh> select * from system.schema_keyspaces;
      7. Sal de cqlsh:
        cqlsh> exit
  9. En todos los nodos de Cassandra en dc-2, ejecuta el comando de recompilación y especifica el nombre de la región de dc-1:
    > /opt/apigee/apigee-cassandra/bin/nodetool -h cassandraIP vuelve a compilar dc-1
  10. Ejecuta el “nodetool status” en cada nodo de Cassandra y verifica que todos los nodos de Cassandra tengan “100%” para el valor “Owns”:
    >/opt/apigee/apigee-cassandra/bin/nodetool status
  11. Instala BaaS en dc-2:
    1. Edita el archivo de configuración para enumerar solo los nodos de Cassandra en dc-2:
      # Enumera los nodos de Cassandra dc-2,
      # omite el centro de datos Cassandra y el sufijo del bastidor
      CASS_HOSTS="$IP8 $IP9 $IP10"
    2. Instala ElasticSearch en los nodos 4, 5 y 6 de dc-2:
      >/opt/apigee/apigee-setup/bin/setup.sh -p e -f configFile
    3. Instala la pila de BaaS en los nodos 4, 5 y 6 de dc-2:
      >/opt/apigee/apigee-setup/bin/setup.sh -p b -f configFile
    4. Instala el portal de BaaS en la máquina 7:
      >/opt/apigee/apigee-setup/bin/setup.sh -p p -f configFile
  12. Actualiza los nodos de pila BaaS en el centro de datos 1:
    1. En el primer nodo de BaaS Stack del centro de datos 1, edita /opt/apigee/customer/application/usergrid.properties en un editor. Si el archivo no existe, créalo.
    2. Agrega las siguientes propiedades a usergrid.properties:
      # Same value as BAAS_CLUSTER_FINDDS en el archivo de configuración dc-2,
      # sin comillas dobles.
      usergrid-deployment_usergrid.cluster.seeds=dc-1:dc1StackIP1,dc-1:dc1StackIP2,dc-2:dc2StackIP1,dc-2:dc2StackIP2

      presenta el mismo valor que BAAS_CASS_DC_LIST en el archivo de configuración dc-2.
      usergrid-deployment_usergrid.cluster.region.list=dc-1,dc-2
    3. Repite los pasos a y b en los nodos restantes de pila BaaS.
    4. Reinicia todos los nodos de pila de BaaS.

      Nota: Cuando reinicies los nodos de pila de BaaS, reinícialos en el mismo orden en el que se enumeran en BAAS_CLUSTER_SEEDS. BAAS_CLUSTER_SEEDS muestra dos de los nodos de la pila como máximo. Después de reiniciar esos dos nodos en orden, puedes reiniciar los nodos restantes en cualquier orden.

      > /opt/apigee/apigee-service/bin/apigee-service baas-usergrid restart
  13. Actualiza los valores de espacio de claves de BaaS. Este espacio de claves se debe configurar para la replicación en el momento de la instalación, pero no es necesario en el tiempo de ejecución. Si quitas la replicación, también se guardará la memoria de Cassandra.

    Solo debes ejecutar este paso una vez en cualquier servidor de Cassandra en cualquiera de los centros de datos:
    1. Inicia la utilidad de Cassandra cqlsh:
      >/opt/apigee/apigee-cassandra/bin/cqlsh cassandraIP
    2. Ejecuta los siguientes comandos de CQL para establecer los niveles de replicación de los espacios de claves de Cassandra:
      1. cqlsh> ALTERAR KEYSPACE “Apigee_Baas_dc_1” WITH replica = { 'class': 'NetworkTopologyStrategy', 'dc-1': '3' };
      2. cqlsh> ALTERAR KEYSPACE "Apigee_Baas_dc_2" WITH replica = { 'class': 'NetworkTopologyStrategy', 'dc-2': '3' };
      3. Visualiza los espacios de claves con el comando:
        cqlsh> select * from system.schema_keyspaces;
      4. Sal de cqlsh:
        cqlsh> exit

La instalación del segundo centro de datos ya está completa.

Después de completar la instalación y configuración de los dos centros de datos, puedes validar la instalación mediante el siguiente procedimiento:

  1. En todos los nodos de pila BaaS, verifica el estado:
    > curl 0:8080/status
  2. Comprueba que la llamada a la API del token funcione:
    > curl -X POST "http://localhost:8080/management/token" -d '{"grant_type":"password", "username":"adminEmail","password":"pWord"}'
  3. Intenta acceder al portal de BaaS para dc-2. Verifica que todos los datos estén replicados en dc-2, como las colecciones creadas en dc-1.