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 một cấu hình đ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 một trung tâm dữ liệu khi cụm Cassandra được chia sẻ với Edge

Tất cả các trung tâm dữ liệu phải có cùng số nút Cassandra. Quá trình cài đặt API BaaS có thể sử dụng cụm Cassandra riêng hoặc có thể dùng chung cụm Cassandra với Edge.

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

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

Để thêm một trung tâm dữ liệu BaaS (trung tâm dữ liệu 2) mới, 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 cũng cần phải cập nhật trung tâm dữ liệu BaaS gốc (trung tâm dữ liệu 1) . Những nội dung sửa đổi này là cần thiết vì:

  • Bạn đang thêm các nút Cassandra mới vào 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 để đưa vào 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 cài đặt trung tâm dữ liệu 2.

Để thực hiện những nội dung 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 gốc 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 của trung tâm dữ liệu 1 được chia sẻ khi cài đặt Edge, thì bạn cũng phải cập nhật 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 trong bài viết Cài đặt API BaaS. Tệp cấu hình không cần bao gồm 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 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 bạn đang cài đặt dc-2 trên 10 nút, như mô tả tại Cấu trúc liên kết cài đặt. Hãy 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 trong quá trình 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 cách sử dụng quy trình Internet hoặc không có Internet. Hãy xem bài viết Cài đặt tiện ích thiết lập apigee 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” sẽ chỉ định việc cài đặt Cassandra.

      Người dùng "apigee" phải truy cập được 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, 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 trung tâm dữ liệu và giá đỡ Cassandra và giá đỡ
    CASS_HOSTS="$IP11:1, $IP1, $IP12:
  5. Trên nút Cassandra đầu tiên của dc-1, hãy chạy setup.sh với 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 dc-2 Cassandra vào tệp cấu hình cho nút Máy chủ quản lý của dc-1 và chạy setup.sh:
    > /opt/apigee/apigee-setup/bin/setup.sh -p ms -f config
  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 trung tâm dữ liệu:

    Lưu ý: Tất cả các lệnh bên dưới đều đặt hệ số nhân bản thành "3", cho biết có 3 nút Cassandra trong cụm. Hãy sửa đổi giá trị này nếu cần cho chế độ cài đặt của bạn.
    1. Khởi động tiện ích Cassandra cassah:
      > /opt/apigee/apigee-cassandra/bin/làm việc cassandraIP
    2. Thực thi các lệnh CQL sau đây tại lời nhắc "cpclsh>" để đặt mức sao chép cho không gian phím Cassandra:
      1. cqualsh> ALTER KEYSPACE "Apigee_Baas_dc_1" WITH copytion = { 'class': 'NetworkTopologyStrategy', 'dc-1': '3','dc-2': '3' };
      2. cClsh> ALTER KEYSPACE "Apigee_Baas" WITH sao chép = { 'class': 'NetworkTopologyStrategy', 'dc-1': '3','dc-2': '3' };
      3. cClsh> ALTER KEYSPACE "Apigee_Baas_Locks" WITH copytion = { 'class': 'NetworkTopologyStrategy', 'dc-1': '3','dc-2': '3' };
      4. cpclsh> ALTER KEYSPACE "system_traces" WITH sao chép = { 'class': 'NetworkTopologyStrategy', 'dc-1': '3','dc-2': '3' };
      5. cpclsh> ALTER KEYSPACE "system_auth" WITH copytion = { 'class': 'NetworkTopologyStrategy', 'dc-1': '3','dc-2': '3' };
      6. Xem các không gian phím bằng cách dùng lệnh:
        cpclsh> select * from system.schema_keyspaces;
      7. Thoát cquash:
        cqualsh> thoát
  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 vùng của dc-1:
    > /opt/apigee/apigee-cassandra/bin/nodetool -h cassandraIP khôi phục lại dc-1
  10. Chạy "nodetool status" (trạng thái công cụ) trên mọi nút Cassandra và xác minh rằng tất cả các nút Cassandra đều có giá trị "Owns" là "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:
      # Liệt kê các nút Cassandra dc-2,
      # bỏ qua trung tâm dữ liệu và hậu tố giá đỡ Cassandra
      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 Ngăn xếp BaaS 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 thông tin 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 Ngăn xếp BaaS đầ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. Hãy tạo tệp nếu chưa có.
    2. Thêm các thuộc tính sau vào usergrid.properties:
      # Có cùng giá trị với BAAS_METRIC_ cú pháp trong tệp cấu hình dc-2,
      # không có dấu ngoặc kép.
      usergrid-development_usergrid.cluster.seeds=dc-1:dc1StackIP1,dc-1:dc1StackIP2,dc-2:dc2StackIP1,dc-2:dc2StackIP2

      # Có giá trị giống với BAAS_CASS_DC_LIST trong tệp cấu hình dc-2.
      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ả nút BaaS Stack.

      Lưu ý: Khi khởi động lại các nút Ngăn xếp BaaS, hãy khởi động lại các nút đó theo thứ tự như được liệt kê trong BAAS_CLUSTER_SEEDS. BAAS_CLUSTER_SEEDS liệt kê ở hầu hết 2 nút Ngăn xếp. Sau khi khởi động lại 2 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 khởi động lại
  13. Cập nhật giá trị không gian khoá BaaS. Bạn phải thiết lập những không gian khoá này để nhân bản tại thời điểm cài đặt, nhưng không nhất thiết phải vào thời gian chạy. Việc xoá bản sao cũng giúp tiết kiệm bộ nhớ Cassandra.

    ?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 trung tâm dữ liệu:
    1. Khởi động phần mềm tiện ích Cassandra cpclsh:
      > /opt/apigee/apigee-cassandra/bin/cpclsh cassandraIP
    2. Thực thi các lệnh CQL sau đây để đặt cấp sao chép cho không gian phím Cassandra:
      1. cClsh> ALTER KEYSPACE "Apigee_Baas_dc_1" WITH copytion = { 'class': 'NetworkTopologyStrategy', 'dc-1': '3' };
      2. cquash> ALTER KEYSPACE "Apigee_Baas_dc_2" WITH copytion = { 'class': 'NetworkTopologyStrategy', 'dc-2': '3' };
      3. Xem các không gian phím bằng cách dùng lệnh:
        dư cuộc gọi để chọn * từ hệ thống.schema_keyspaces;
      4. Thoát cqualsh:
        pClsh> 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 cho hai trung tâm dữ liệu này, bạn có thể xác thực việc cài đặt 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. Lệnh gọi API mã thông báo đang hoạt động:
    > curl -X POST "http://localhost:8080/management/token" -d '{"grant_type":"password", "username":"adminEmail","password":"pWord"}'
  3. Thử đăng nhập vào Cổng thông tin 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 bộ sưu tập được tạo trên dc-1.