Penginstalan Beberapa Pusat Data untuk BaaS API

Edge for Private Cloud v. 4.17.01

Anda dapat menginstal API BaaS di beberapa pusat data menggunakan konfigurasi aktif/aktif. Dokumen ini menjelaskan cara menambahkan pusat data BaaS ke pusat data BaaS yang ada.

Menambahkan pusat data saat cluster Cassandra dibagikan ke Edge

Semua pusat data harus memiliki jumlah node Cassandra yang sama. Penginstalan API BaaS dapat menggunakan cluster Cassandra-nya sendiri, atau dapat berbagi cluster Cassandra dengan Edge.

Jika penginstalan BaaS berbagi cluster Cassandra dengan Edge, Anda harus mengupdate Server Pengelolaan di pusat data asli untuk mengonfigurasinya agar mengenali node Cassandra di pusat data baru.

Memperbarui pusat data yang ada

Menambahkan pusat data BaaS baru (pusat data 2) mengharuskan Anda melakukan langkah-langkah untuk menginstal dan mengonfigurasi pusat data baru, tetapi juga mengharuskan Anda memperbarui pusat data BaaS asli (pusat data 1) . Perubahan ini diperlukan karena:

  • Anda menambahkan node Cassandra baru di pusat data baru yang harus dapat diakses oleh pusat data yang ada.
  • Anda harus mengonfigurasi informasi replikasi yang digunakan oleh node Stack BaaS di pusat data 1 untuk menyertakan informasi dari pusat data 2. Anda tidak dapat melakukan konfigurasi tersebut hingga pusat data 2 diinstal.

Untuk melakukan update ini di pusat data 1, Anda harus mengupdate file konfigurasi asli yang digunakan untuk menginstal pusat data 1, lalu menjalankan ulang apigee-setup di node Cassandra pusat data 1. Jika cluster Cassandra untuk pusat data 1 digunakan bersama dengan penginstalan Edge, Anda juga harus mengupdate Server Pengelolaan.

Membuat file konfigurasi

Untuk menginstal pusat data 1, gunakan konfigurasi yang ditampilkan di Penginstalan API BaaS. File konfigurasi tidak perlu menyertakan informasi apa pun tentang pusat data 2 saat Anda menginstal pusat data 1.Anda menambahkan informasi ke file konfigurasi setelah menginstal pusat data 2.

Berikut adalah file konfigurasi untuk pusat data 2. File konfigurasi ini mengasumsikan bahwa Anda menginstal dc-2 di 10 node, seperti yang dijelaskan di Topologi Penginstalan. Ubah file ini jika Anda menginstal di 7 node.

Perhatikan bahwa file konfigurasi untuk pusat data 2 (dc-2) berisi informasi tentang pusat data 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

Menambahkan pusat data BaaS

  1. Instal pusat data pertama seperti yang dijelaskan di Penginstalan API BaaS. Dokumen tersebut menyertakan file konfigurasi yang Anda gunakan untuk menginstal pusat data 1.
  2. Buat file konfigurasi untuk dc-2 seperti yang dijelaskan di atas.
  3. Instal Cassandra, baik sebagai bagian dari penginstalan Edge yang ada atau sebagai cluster mandiri untuk BaaS:
    1. Instal utilitas apigee-setup Edge pada node Cassandra pertama dc-2, mesin 8, menggunakan prosedur internet atau non-internet. Lihat Menginstal utilitas apigee-setup Edge untuk mengetahui informasi selengkapnya.
    2. Di command prompt, jalankan skrip penyiapan untuk menginstal Cassandra di node pertama:
      > /opt/apigee/apigee-setup/bin/setup.sh -p c -f configFile

      Opsi “-p c” menentukan untuk menginstal Cassandra.

      File konfigurasi harus dapat diakses atau dibaca oleh pengguna "apigee".
    3. Ulangi langkah 3 dan 4 untuk node Cassandra yang tersisa, mesin 9 dan 10, di dc-2.
  4. Pada node Cassandra dc-1, edit file konfigurasi untuk menambahkan node Cassandra dari pusat data 2 berdasarkan cara Anda menginstal Cassandra:

    # List dc-1 nodes first, then dc-2,
    # including Cassandra data center and rack suffix
    CASS_HOSTS="$IP11:1,1 $IP12:1,1 $IP13:1,1 $IP8:2,1 $IP9:2,1 $IP10:2,1"
  5. Pada node Cassandra pertama dc-1, jalankan setup.sh dengan file konfigurasi dc-1 baru yang menyertakan node Cassandra dari dc-2:
    > /opt/apigee/apigee-setup/bin/setup.sh -p c -f configFile
  6. Ulangi langkah 6 dan 7 untuk node Cassandra yang tersisa di dc-1.
  7. Jika Anda terhubung ke cluster Cassandra untuk dc-1 yang dibagikan dengan Edge, tambahkan node Cassandra dc-2 ke file konfigurasi untuk node Server Pengelolaan dc-1 dan jalankan setup.sh:
    > /opt/apigee/apigee-setup/bin/setup.sh -p ms -f configFile
  8. Perbarui keyspace Cassandra dengan faktor replikasi yang benar untuk kedua pusat data. Anda hanya perlu menjalankan langkah ini sekali di server Cassandra mana pun di salah satu pusat data:

    Catatan: Perintah di bawah ini menetapkan faktor replikasi ke "3", yang menunjukkan tiga node Cassandra dalam cluster. Ubah nilai ini seperlunya untuk penginstalan Anda.
    1. Mulai utilitas cqlsh Cassandra:
      > /opt/apigee/apigee-cassandra/bin/cqlsh cassandraIP
    2. Jalankan perintah CQL berikut di prompt "cqlsh>" untuk menetapkan tingkat replikasi untuk keyspace Cassandra:
      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 replication = { 'class': 'NetworkTopologyStrategy', 'dc-1': '3','dc-2': '3' };
      3. cqlsh> ALTER KEYSPACE "Apigee_Baas_Locks" WITH replication = { 'class': 'NetworkTopologyStrategy', 'dc-1': '3','dc-2': '3' };
      4. cqlsh> ALTER KEYSPACE "system_traces" WITH replication = { '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. Lihat keyspace menggunakan perintah:
        cqlsh> select * from system.schema_keyspaces;
      7. Keluar dari cqlsh:
        cqlsh> exit
  9. Di semua node Cassandra di dc-2, jalankan perintah rebuild, dengan menentukan nama region dc-1:
    > /opt/apigee/apigee-cassandra/bin/nodetool -h cassandraIP rebuild dc-1
  10. Jalankan "nodetool status" di setiap node Cassandra dan pastikan semua node Cassandra memiliki nilai '100%' untuk 'Owns':
    > /opt/apigee/apigee-cassandra/bin/nodetool status
  11. Instal BaaS di dc-2:
    1. Edit file konfigurasi untuk hanya mencantumkan node Cassandra di dc-2:
      # List dc-2 Cassandra nodes,
      # omitting Cassandra data center and rack suffix
      CASS_HOSTS="$IP8 $IP9 $IP10"
    2. Instal ElasticSearch di node 4, 5, dan 6 dc-2:
      > /opt/apigee/apigee-setup/bin/setup.sh -p e -f configFile
    3. Instal Stack BaaS di node 4, 5, dan 6 dc-2:
      > /opt/apigee/apigee-setup/bin/setup.sh -p b -f configFile
    4. Instal Portal BaaS di mesin 7:
      > /opt/apigee/apigee-setup/bin/setup.sh -p p -f configFile
  12. Update node Stack BaaS di pusat data 1:
    1. Pada node BaaS Stack pertama di pusat data 1, edit /opt/apigee/customer/application/usergrid.properties di editor. Jika file tidak ada, buat file tersebut.
    2. Tambahkan properti berikut ke usergrid.properties:
      # Nilai yang sama dengan BAAS_CLUSTER_SEEDS di file konfigurasi dc-2,
      # tanpa tanda petik ganda.
      usergrid-deployment_usergrid.cluster.seeds=dc-1:dc1StackIP1,dc-1:dc1StackIP2,dc-2:dc2StackIP1,dc-2:dc2StackIP2

      # Nilai yang sama dengan BAAS_CASS_DC_LIST di file konfigurasi dc-2.
      usergrid-deployment_usergrid.cluster.region.list=dc-1,dc-2
    3. Ulangi langkah a dan b pada node BaaS Stack yang tersisa.
    4. Mulai ulang semua node BaaS Stack.

      Catatan: Saat memulai ulang node BaaS Stack, mulai ulang node tersebut dalam urutan yang sama seperti yang tercantum di BAAS_CLUSTER_SEEDS. BAAS_CLUSTER_SEEDS mencantumkan maksimal dua node Stack. Setelah memulai ulang kedua node tersebut secara berurutan, Anda dapat memulai ulang node yang tersisa dalam urutan apa pun.

      > /opt/apigee/apigee-service/bin/apigee-service baas-usergrid restart
  13. Perbarui nilai keyspace BaaS. Keyspace ini harus ditetapkan untuk replikasi pada waktu penginstalan, tetapi tidak harus pada waktu proses. Menghapus replikasi juga akan menghemat memori Cassandra.

    Anda hanya perlu menjalankan langkah ini sekali di server Cassandra mana pun di salah satu pusat data:
    1. Mulai utilitas cqlsh Cassandra:
      > /opt/apigee/apigee-cassandra/bin/cqlsh cassandraIP
    2. Jalankan perintah CQL berikut untuk menetapkan tingkat replikasi untuk keyspace Cassandra:
      1. cqlsh> ALTER KEYSPACE "Apigee_Baas_dc_1" WITH replication = { 'class': 'NetworkTopologyStrategy', 'dc-1': '3' };
      2. cqlsh> ALTER KEYSPACE "Apigee_Baas_dc_2" WITH replication = { 'class': 'NetworkTopologyStrategy', 'dc-2': '3' };
      3. Lihat keyspace menggunakan perintah:
        cqlsh> select * from system.schema_keyspaces;
      4. Keluar dari cqlsh:
        cqlsh> exit

Penginstalan pusat data kedua kini telah selesai.

Setelah menyelesaikan penginstalan dan konfigurasi dua pusat data, Anda dapat memvalidasi penginstalan menggunakan prosedur berikut:

  1. Di semua node BaaS Stack, periksa statusnya:
    > curl 0:8080/status
  2. Periksa apakah panggilan API token berfungsi:
    > curl -X POST "http://localhost:8080/management/token" -d '{"grant_type":"password", "username":"adminEmail","password":"pWord"}'
  3. Coba login ke Portal BaaS untuk dc-2. Pastikan semua data direplikasi di dc-2, seperti koleksi yang dibuat di dc-1.