Cài đặt nhiều trung tâm dữ liệu cho API BaaS

Edge cho đám mây riêng tư phiên bản 4.18.01

Bạn có thể cài đặt API BaaS trên nhiều trung tâm dữ liệu bằng cách sử dụng cấu hình đang hoạt động/đang hoạt động. Tài liệu này mô tả cách thêm một trung tâm dữ liệu BaaS vào một trung tâm dữ liệu BaaS hiện có.

Thêm trung tâm dữ liệu khi Cụm Cassandra được chia sẻ với Edge

Tất cả trung tâm dữ liệu phải có cùng số lượng nút Cassandra. Một bản cài đặt API BaaS có thể sử dụng cụm Cassandra riêng hoặc có thể chia sẻ cụm Cassandra với Edge.

Nếu bản cài đặt BaaS dùng chung một cụm Cassandra với Edge, thì bạn phải cập nhật Máy chủ quản lý trong trung tâm dữ liệu ban đầu để định cấu hình máy chủ này nhằm nhận dạng các nút Cassandra trong trung tâm dữ liệu mới.

Cập nhật trung tâm dữ liệu hiện có

Để thêm một trung tâm dữ liệu BaaS mới (trung tâm dữ liệu 2), bạn cần thực hiện các bước cài đặt và định cấu hình trung tâm dữ liệu mới, nhưng bạn cũng cần cập nhật trung tâm dữ liệu BaaS ban đầu (trung tâm dữ liệu 1) . Những thay đổi này là cần thiết vì:

  • Bạn đang thêm các nút Cassandra mới trong trung tâm dữ liệu mới mà trung tâm dữ liệu hiện có phải truy cập được.
  • Bạn phải định cấu hình thông tin sao chép mà các nút BaaS Stack sử dụng trong trung tâm dữ liệu 1 để bao gồm thông tin từ trung tâm dữ liệu 2. Bạn không thể thực hiện cấu hình đó cho đến khi trung tâm dữ liệu 2 được cài đặt.

Để thực hiện các bản cập nhật này trên trung tâm dữ liệu 1, bạn cập nhật tệp cấu hình ban đầu dùng để cài đặt trung tâm dữ liệu 1, sau đó chạy lại apigee-setup trên các nút Cassandra của trung tâm dữ liệu 1. Nếu cụm Cassandra cho trung tâm dữ liệu 1 được chia sẻ với một bản cài đặt Edge, thì bạn cũng phải cập nhật cả Máy chủ quản lý.

Tạo tệp cấu hình

Để cài đặt trung tâm dữ liệu 1, hãy sử dụng cấu hình được trình bày tại phần Cài đặt API BaaS. Tệp cấu hình không cần chứa bất kỳ thông tin nào về trung tâm dữ liệu 2 tại thời điểm bạn cài đặt trung tâm dữ liệu 1.Bạn sẽ thêm thông tin vào tệp cấu hình sau khi cài đặt trung tâm dữ liệu 2.

Dưới đây là các tệp cấu hình cho trung tâm dữ liệu 2. Tệp cấu hình này giả định rằng bạn đang cài đặt dc-2 trên 10 nút, như mô tả trong phần Cấu trúc liên kết cài đặt. Sửa đổi tệp này cho phù hợp nếu bạn đang cài đặt trên 7 nút.

Lưu ý rằng tệp cấu hình cho trung tâm dữ liệu 2 (dc-2) chứa thông tin về trung tâm dữ liệu 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>"

Thêm trung tâm dữ liệu BaaS

  1. Cài đặt trung tâm dữ liệu đầu tiên như mô tả trong phần Cài đặt API BaaS. Tài liệu đó bao gồm tệp cấu hình mà bạn dùng để cài đặt trung tâm dữ liệu 1.
  2. Tạo tệp cấu hình cho dc-2 như mô tả ở trên.
  3. Cài đặt Cassandra, dưới dạng một phần của bản cài đặt Edge hiện có hoặc dưới dạng một cụm độc lập cho BaaS:
    1. Cài đặt tiện ích apigee-setup của Edge trên nút Cassandra đầu tiên của dc-2, máy 8, bằng quy trình có kết nối Internet hoặc không có kết nối Internet. Hãy xem phần Cài đặt tiện ích apigee-setup của Edge để biết thêm thông tin.
    2. Tại dấu nhắc lệnh, hãy chạy tập lệnh thiết lập để cài đặt Cassandra trên nút đầu tiên:
      > /opt/apigee/apigee-setup/bin/setup.sh -p c -f configFile

      Tuỳ chọn "-p c" chỉ định cài đặt Cassandra.

      Người dùng "apigee" phải truy cập hoặc đọc được tệp cấu hình.
    3. Lặp lại các bước 3 và 4 cho các nút Cassandra còn lại, máy 9 và 10, trong dc-2.
  4. Trên các nút Cassandra của dc-1, hãy chỉnh sửa tệp cấu hình để thêm các nút Cassandra từ trung tâm dữ liệu 2 dựa trên cách bạn cài đặt Cassandra:

    # Liệt kê các nút dc-1 trước, sau đó là dc-2,
    # bao gồm cả trung tâm dữ liệu Cassandra và hậu tố giá đỡ
    CASS_HOSTS="$IP11:1,1 $IP12:1,1 $IP13:1,1 $IP8:2,1 $IP9:2,1 $IP10:2,1"
  5. Trên nút Cassandra đầu tiên của dc-1, hãy chạy setup.sh bằng tệp cấu hình dc-1 mới bao gồm các nút Cassandra từ dc-2:
    > /opt/apigee/apigee-setup/bin/setup.sh -p c -f configFile
  6. Lặp lại bước 6 và 7 cho các nút Cassandra còn lại trong dc-1.
  7. Nếu bạn đang kết nối với một cụm Cassandra cho dc-1 được chia sẻ với Edge, hãy thêm các nút Cassandra dc-2 vào tệp cấu hình cho nút Máy chủ quản lý của dc-1 rồi chạy setup.sh:
    > /opt/apigee/apigee-setup/bin/setup.sh -p ms -f configFile
  8. Cập nhật không gian khoá Cassandra bằng hệ số sao chép chính xác cho hai trung tâm dữ liệu. Bạn chỉ phải chạy bước này một lần trên bất kỳ máy chủ Cassandra nào trong một trong hai trung tâm dữ liệu:

    Lưu ý: Tất cả các lệnh dưới đây đều đặt hệ số sao chép thành "3", cho biết ba nút Cassandra trong cụm. Sửa đổi giá trị này nếu cần cho quá trình cài đặt của bạn.
    1. Bắt đầu tiện ích cqlsh của Cassandra:
      > /opt/apigee/apigee-cassandra/bin/cqlsh cassandraIP
    2. Thực thi các lệnh CQL sau tại dấu nhắc "cqlsh>" để đặt mức sao chép cho không gian khoá 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. Xem không gian khoá bằng cách sử dụng lệnh:
        cqlsh> select * from system.schema_keyspaces;
      7. Thoát cqlsh:
        cqlsh> exit
  9. Trên tất cả các nút Cassandra trong dc-2, hãy chạy lệnh tạo lại, chỉ định tên khu vực của dc-1:
    > /opt/apigee/apigee-cassandra/bin/nodetool -h cassandraIP rebuild dc-1
  10. Chạy "nodetool status" trên mọi nút Cassandra và xác minh rằng tất cả các nút Cassandra đều có "100%" cho giá trị "Owns":
    > /opt/apigee/apigee-cassandra/bin/nodetool status
  11. Cài đặt BaaS trong dc-2:
    1. Chỉnh sửa tệp cấu hình để chỉ liệt kê các nút Cassandra trong dc-2:
      # List dc-2 Cassandra nodes,
      # omitting Cassandra data center and rack suffix
      CASS_HOSTS="$IP8 $IP9 $IP10"
    2. Cài đặt ElasticSearch trên các nút 4, 5 và 6 của dc-2:
      > /opt/apigee/apigee-setup/bin/setup.sh -p e -f configFile
    3. Cài đặt BaaS Stack trên các nút 4, 5 và 6 của dc-2:
      > /opt/apigee/apigee-setup/bin/setup.sh -p b -f configFile
    4. Cài đặt Cổng BaaS trên máy 7:
      > /opt/apigee/apigee-setup/bin/setup.sh -p p -f configFile
  12. Cập nhật các nút BaaS Stack trong trung tâm dữ liệu 1:
    1. Trên nút BaaS Stack đầu tiên trong trung tâm dữ liệu 1, hãy chỉnh sửa /opt/apigee/customer/application/usergrid.properties trong trình chỉnh sửa. Nếu tệp không tồn tại, hãy tạo tệp.
    2. Thêm các thuộc tính sau vào usergrid.properties:
      # Cùng giá trị với BAAS_CLUSTER_SEEDS trong tệp cấu hình dc-2,
      # không có dấu ngoặc kép.
      usergrid-deployment_usergrid.cluster.seeds=dc-1:dc1StackIP1,dc-1:dc1StackIP2,dc-2:dc2StackIP1,dc-2:dc2StackIP2

      # Same value as BAAS_CASS_DC_LIST in the dc-2 config file.
      usergrid-deployment_usergrid.cluster.region.list=dc-1,dc-2
    3. Lặp lại các bước a và b trên các nút BaaS Stack còn lại.
    4. Khởi động lại tất cả các nút BaaS Stack.

      Lưu ý: Khi khởi động lại các nút BaaS Stack, hãy khởi động lại theo cùng thứ tự như trong BAAS_CLUSTER_SEEDS. BAAS_CLUSTER_SEEDS liệt kê tối đa hai nút Stack. Sau khi khởi động lại hai nút đó theo thứ tự, bạn có thể khởi động lại các nút còn lại theo thứ tự bất kỳ.

      > /opt/apigee/apigee-service/bin/apigee-service baas-usergrid restart
  13. Cập nhật giá trị không gian khoá BaaS. Các không gian khoá này phải được đặt để sao chép tại thời điểm cài đặt, nhưng không nhất thiết phải đặt tại thời điểm chạy. Việc xoá bản sao cũng giúp tiết kiệm bộ nhớ Cassandra.

    ?Bạn chỉ cần chạy bước này một lần trên bất kỳ máy chủ Cassandra nào trong một trong hai trung tâm dữ liệu:
    1. Bắt đầu tiện ích cqlsh của Cassandra:
      > /opt/apigee/apigee-cassandra/bin/cqlsh cassandraIP
    2. Thực thi các lệnh CQL sau để đặt mức sao chép cho không gian khoá 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. Xem không gian khoá bằng lệnh:
        cqlsh> select * from system.schema_keyspaces;
      4. Thoát cqlsh:
        cqlsh> exit

Quá trình cài đặt trung tâm dữ liệu thứ hai hiện đã hoàn tất.

Sau khi hoàn tất việc cài đặt và định cấu hình hai trung tâm dữ liệu, bạn có thể xác thực quá trình cài đặt bằng cách làm theo quy trình sau:

  1. Trên tất cả các nút BaaS Stack, hãy kiểm tra trạng thái:
    > curl 0:8080/status
  2. Kiểm tra xem lệnh gọi API mã thông báo có hoạt động hay không:
    > curl -X POST "http://localhost:8080/management/token" -d '{"grant_type":"password", "username":"adminEmail","password":"pWord"}'
  3. Hãy thử đăng nhập vào Cổng BaaS cho dc-2. Xác minh rằng tất cả dữ liệu đều được sao chép trong dc-2, chẳng hạn như các tập hợp được tạo trên dc-1.