Penginstalan Beberapa Pusat Data untuk BaaS API

Edge untuk 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 sudah ada.

Menambahkan pusat data saat cluster Cassandra dibagikan ke Edge

Semua pusat data harus memiliki jumlah node Cassandra yang sama. Penginstalan BaaS API 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 guna mengenali node Cassandra di pusat data yang baru.

Memperbarui pusat data yang ada

Penambahan pusat data BaaS baru (pusat data 2) mengharuskan Anda melakukan langkah-langkah untuk menginstal dan mengonfigurasi pusat data baru, tetapi Anda juga harus mengupdate pusat data BaaS yang asli (pusat data 1) . Modifikasi 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 BaaS Stack di pusat data 1 untuk menyertakan informasi dari pusat data 2. Anda tidak dapat melakukan konfigurasi tersebut hingga pusat data 2 diinstal.

Untuk menjalankan update ini di pusat data 1, perbarui file konfigurasi asli yang digunakan untuk menginstal pusat data 1, lalu jalankan kembali apigee-setup pada node Cassandra dari 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 BaaS API. 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 pada 10 node, seperti yang dijelaskan pada Topologi Penginstalan. Ubah file ini sesuai kebutuhan 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 pada Penginstalan BaaS API. Dokumen tersebut berisi 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 sudah ada maupun 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. Pada command prompt, jalankan skrip penyiapan untuk menginstal Cassandra pada 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:

    # Cantumkan node dc-1 terlebih dahulu, lalu dc-2,
    # termasuk pusat data Cassandra dan akhiran rak
    CASS_HOSTS="$IP11:1,1 $IP12:1,1 $2"IP12:1,1 $2"
  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 simpul 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 Management Server dc-1 dan jalankan setup.sh:
    > /opt/apigee/apigee-setup/bin/setup.sh -p ms -f configFile
  8. Mengupdate keyspace Cassandra dengan faktor replikasi yang benar untuk kedua pusat data. Anda hanya perlu menjalankan langkah ini satu kali pada server Cassandra mana pun di salah satu pusat data:

    Catatan: Semua perintah di bawah menetapkan faktor replikasi ke "3", yang menunjukkan tiga node Cassandra dalam cluster. Ubah nilai ini seperlunya untuk penginstalan Anda.
    1. Mulai utilitas Cassandra cqlsh:
      > /opt/apigee/apigee-cassandra/bin/cqlsh cassandraIP
    2. Jalankan perintah CQL berikut pada permintaan "cqlsh>" guna 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 cqlsh:
        cqlsh> exit
  9. Pada 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" pada setiap node Cassandra dan pastikan semua node Cassandra memiliki '100%' untuk nilai 'Owns':
    > /opt/apigee/apigee-cassandra/bin/nodetool status
  11. Instal BaaS di dc-2:
    1. Edit file konfigurasi untuk mencantumkan hanya node Cassandra di dc-2:
      # Mencantumkan node Cassandra dc-2,
      # menghilangkan akhiran rak dan pusat data Cassandra
      CASS_HOSTS="$IP8 $IP9 $IP10"
    2. Instal ElasticSearch pada node 4, 5, dan 6 dari dc-2:
      > /opt/apigee/apigee-setup/bin/setup.sh -p e -f configFile
    3. Instal BaaS Stack pada node 4, 5, dan 6 dari dc-2:
      > /opt/apigee/apigee-setup/bin/setup.sh -p b -f configFile
    4. Instal Portal BaaS di komputer 7:
      > /opt/apigee/apigee-setup/bin/setup.sh -p p -f configFile
  12. Update node BaaS Stack 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 seperti BAAS_CLUSTER_SEEDS dalam file konfigurasi dc-2,
      # tanpa tanda kutip ganda.
      usergrid-deployment_usergrid.cluster.seeds=dc-1:dc1StackIP1,dc-1:dc1StackIP2,dc-2:dc2StackIP1,dc-2:dc2StackIP2

      # Nilai yang sama seperti 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 BaaS Stack 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 mulai ulang
  13. Memperbarui nilai keyspace BaaS. Keyspace ini harus ditetapkan untuk replikasi pada waktu penginstalan, tetapi tidak harus pada saat runtime. Menghapus replikasi juga menghemat memori Cassandra.

    Anda hanya perlu menjalankan langkah ini sekali di server Cassandra di salah satu pusat data:
    1. Mulai utilitas Cassandra cqlsh:
      > /opt/apigee/apigee-cassandra/bin/cqlsh cassandraIP
    2. Jalankan perintah CQL berikut guna 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 cqlsh:
        cqlsh> exit

Penginstalan pusat data kedua ini sekarang telah selesai.

Setelah menyelesaikan penginstalan dan konfigurasi kedua pusat data, Anda dapat memvalidasi penginstalan dengan 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 BaaS Portal untuk dc-2. Pastikan, semua data direplikasi di dc-2, seperti koleksi yang dibuat pada dc-1.