API BaaS için Çoklu Veri Merkezi Yüklemesi

Edge for Private Cloud v. 4.17.05

Etkin/etkin bir yapılandırma kullanarak API BaaS'ı birden fazla veri merkezine yükleyebilirsiniz. Bu belgede, mevcut bir BaaS veri merkezine BaaS veri merkezinin nasıl ekleneceği açıklanmaktadır.

Cassandra kümesi Edge ile paylaşıldığında veri merkezi ekleme

Tüm veri merkezlerinin aynı sayıda Cassandra düğümüne sahip olması gerekir. Bir API BaaS kurulumu kendi Cassandra kümesini kullanabilir veya Edge ile bir Cassandra kümesini paylaşabilir.

BaaS kurulumu Edge ile bir Cassandra kümesi paylaşıyorsa orijinal veri merkezindeki Yönetim Sunucusu'nu yeni veri merkezindeki Cassandra düğümlerini tanıyacak şekilde yapılandırmak için güncellemeniz gerekir.

Mevcut veri merkezi güncelleniyor

Yeni bir BaaS veri merkezi (veri merkezi 2) eklemek için, yeni veri merkezini kurma ve yapılandırma adımlarını uygulamanız gerekir. Ancak orijinal BaaS veri merkezini (veri merkezi 1) güncellemeniz de gerekir. Bu değişiklikler aşağıdaki nedenlerle gereklidir:

  • Yeni veri merkezine, mevcut veri merkezi tarafından erişilebilir olması gereken yeni Cassandra düğümleri ekliyorsunuz.
  • Veri merkezi 1'deki BaaS Yığın düğümleri tarafından kullanılan çoğaltma bilgilerini, veri merkezi 2'deki bilgileri içerecek şekilde yapılandırmanız gerekir. Veri merkezi 2 yüklenmeden bu yapılandırmayı gerçekleştiremezsiniz.

Veri merkezi 1'de bu güncellemeleri gerçekleştirmek için veri merkezi 1'i yüklemek amacıyla kullanılan orijinal yapılandırma dosyasını günceller ve ardından veri merkezi 1'in Cassandra düğümlerinde apigee-setup aracını yeniden çalıştırırsınız. Veri merkezi 1 için Cassandra kümesi bir Edge kurulumuyla paylaşılıyorsa Yönetim Sunucusu'nu da güncellemeniz gerekir.

Yapılandırma dosyalarını oluşturma

Veri merkezi 1'i yüklemek için API BaaS Yükleme bölümünde gösterilen yapılandırmayı kullanın. Yapılandırma dosyasının, veri merkezi 1 kurulumunu yaptığınız sırada veri merkezi 2 ile ilgili herhangi bir bilgi içermesi gerekmez.Veri merkezi 1'i yükledikten sonra yapılandırma dosyasına bilgi eklersiniz.

Aşağıda 2. veri merkezi için yapılandırma dosyaları gösterilmektedir. Bu yapılandırma dosyası, Yükleme Topolojileri bölümünde açıklandığı gibi, dc-2 düğümünü 10 düğüme yüklediğinizi varsayar. 7 düğüme yükleme yapıyorsanız bu dosyayı uygun şekilde değiştirin.

Veri merkezi 2'nin yapılandırma dosyasının (dc-2) veri merkezi 1 (dc-1) ile ilgili bilgiler içerdiğine dikkat edin:

# 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

BaaS veri merkezi ekleme

  1. API BaaS Yükleme bölümünde açıklandığı şekilde ilk veri merkezini yükleyin. Bu belge, veri merkezi 1'i yüklemek için kullandığınız yapılandırma dosyasını içerir.
  2. dc-2 için yapılandırma dosyasını yukarıda açıklandığı gibi oluşturun.
  3. Cassandra'yı mevcut bir Edge yüklemesinin parçası olarak veya BaaS için bağımsız bir küme olarak yükleyin:
    1. Edge apigee-setup yardımcı programını internet veya internet dışı prosedürü kullanarak dc-2, makine 8'in ilk Cassandra düğümüne yükleyin. Daha fazla bilgi için Edge Apigee-setup yardımcı programını yükleme bölümüne bakın.
    2. Cassandra'yı ilk düğüme yüklemek için komut isteminde kurulum komut dosyasını çalıştırın:
      > /opt/../..//impression-setup/bin/setup.sh -p c -f configFile

      "-p c" seçeneği, Cassandra'nın yüklenmesini belirtir.

      Yapılandırma dosyası, "Apigee" kullanıcısı tarafından erişilebilir ve okunabilir olmalıdır.
    3. dc-2'de kalan Cassandra düğümleri (9 ve 10) için 3 ve 4. adımları tekrarlayın.
  4. dc-1'in Cassandra düğümlerinde, Cassandra'yı nasıl kurduğunuza bağlı olarak veri merkezinden 2'den Cassandra düğümlerini eklemek için yapılandırma dosyasını düzenleyin:

    # Önce dc-1 düğümlerini listeleyin, ardından dc-2,
    Cassandra veri merkezi ve raf son ekini içeren
    CASS_HOSTS="$IP11, $IP2: $IP2, $11:1:1,1 $1138:1:1
  5. dc-1'in ilk Cassandra düğümünde, setup.sh'i dc-2'deki Cassandra düğümlerini içeren yeni dc-1 yapılandırma dosyasıyla çalıştırın:
    > /opt/impression/become-setup/bin/setup.sh -p c -f configFile
  6. dc-1'deki kalan Cassandra düğümleri için 6. ve 7. adımları tekrarlayın.
  7. Edge ile paylaşılan dc-1 için bir Cassandra kümesine bağlanıyorsanız dc-2 Cassandra düğümlerini dc-1'in Yönetim Sunucusu düğümünün yapılandırma dosyasına ekleyin ve şu komutu çalıştırın: setup.sh:
    > /opt/Apigee/impression-setup/bin/setup.sh -p ms -f configFile
  8. Cassandra anahtar alanlarını, iki veri merkezi için doğru çoğaltma faktörüyle güncelleyin. Bu adımı her iki veri merkezindeki bir Cassandra sunucusunda yalnızca bir kez çalıştırmanız yeterlidir:

    Not: Aşağıdaki komutlar, çoğaltma faktörünü "3" olarak ayarlayarak kümedeki üç Cassandra düğümünü belirtir. Bu değeri, yüklemeniz için gereken şekilde değiştirin.
    1. Cassandra cqlsh yardımcı programını başlatın:
      > /opt/../..//Apigee-cassandra/bin/cqlsh cassandraIP
    2. Cassandra anahtar alanları için çoğaltma düzeylerini ayarlamak için "cqlsh>" isteminde aşağıdaki CQL komutlarını yürütün:
      1. cqlsh> ALTER KEYSPACE "Apigee_Baas_dc_1" WITH çoğaltma = { 'class': 'NetworkTopologyStrategy', 'dc-1': '3','dc-2': '3' };
      2. cqlsh> ALTER KEYSPACE "Apigee_Baas" WITH çoğaltma = { 'class': 'NetworkTopologyStrategy', 'dc-1': '3','dc-2': '3' };
      3. cqlsh> ALTER KEYSPACE "Apigee_Baas_Locks" WITH çoğaltma = { 'class': 'NetworkTopologyStrategy', 'dc-1': '3','dc-2': '3' };
      4. cqlsh> ALTER KEYSPACE "system_traces" WITH çoğaltma = { 'class': 'NetworkTopologyStrategy', 'dc-1': '3','dc-2': '3' };
      5. cqlsh> ALTER KEYSPACE "system_auth" WITH çoğaltma = { 'class': 'NetworkTopologyStrategy', 'dc-1': '3','dc-2': '3' };
      6. Şu komutu kullanarak tuş alanlarını görüntüleyin:
        cqlsh> system.schema_keyspaces;
      7. cqlsh'den çıkış:
        cqlsh> exit
  9. dc-2'deki tüm Cassandra düğümlerinde, dc-1 bölge adını belirterek rebuild komutunu çalıştırın:
    > /opt/become/Apigee-cassandra/bin/nodetool -h cassandraIP rebuild dc-1
  10. Her Cassandra düğümünde "nodetool status" komutunu çalıştırın ve tüm Cassandra düğümlerinin "Owns" değeri için "%100" değerine sahip olduğunu doğrulayın:
    > /opt/../..//Apigee-cassandra/bin/nodetool status
  11. dc-2'ye BaaS'yi yükleyin:
    1. Yapılandırma dosyasını yalnızca dc-2'deki Cassandra düğümlerini listeleyecek şekilde düzenleyin:
      # dc-2 Cassandra düğümlerini listeleme,
      # Cassandra veri merkezi ve raf son eki hariç
      CASS_HOSTS="$IP8 $IP9 $IP10"
    2. dc-2 düğümünün 4, 5 ve 6 numaralı düğümlerine Elastik Search'ü yükleyin:
      > /opt/become/impression-setup/bin/setup.sh -p e -f configFile
    3. BaaS Grubunu dc-2 düğümlerinin 4, 5 ve 6 numaralı düğümlerine yükleyin:
      > /opt/../..//become-setup/bin/setup.sh -p b -f configFile
    4. 7. makineye BaaS Portalı'nı yükleyin:
      > /opt/../..//Apigee-setup/bin/setup.sh -p p -f configFile
  12. Veri merkezi 1'deki BaaS Yığın düğümlerini güncelleyin:
    1. Veri merkezi 1'deki ilk BaaS Yığını düğümünde, bir düzenleyicide /opt/apigee/customer/application/usergrid.properties öğesini düzenleyin. Dosya yoksa oluşturun.
    2. Aşağıdaki özellikleri usergrid.properties dosyasına ekleyin:
      # dc-2 yapılandırma dosyasındaki BAAS_ADGROUP_SeeDS ile aynı değere sahip olur,
      # çift tırnak olmadan.
      usergrid- Distribution_usergrid.cluster.seeds=dc-1:dc1StackIP1,dc-1:dc1StackIP2,dc-2:dc2StackIP1,dc-2:dc2StackIP2

      # dc-2 yapılandırma dosyasındaki BAAS_CASS_DC_LIST ile aynı değer.
      usergrid-deployment_usergrid.cluster.region.list=dc-1,dc-2
    3. Kalan BaaS Yığın düğümleri üzerinde a ve b adımlarını tekrarlayın.
    4. Tüm BaaS Yığın düğümlerini yeniden başlatın.

      Not: BaaS Yığını düğümlerini yeniden başlatırken, baaS Yığını düğümlerini BAAS_CLUSTER_SEEDS'de listelendikleri sırayla yeniden başlatın. BAAS_CLUSTER_SEEDS, Yığın düğümlerinden en fazla ikisini listeler. Bu iki düğümü sırasıyla yeniden başlattıktan sonra, kalan düğümleri istediğiniz sırada yeniden başlatabilirsiniz.

      > /opt/../..//Apigee-service/bin/ teslim-hizmeti baas-usergrid yeniden başlatma
  13. BaaS anahtar alanı değerlerini güncelleyin. Bu anahtar alanının yükleme anında çoğaltma için ayarlanması gerekir ancak çalışma zamanında olması gerekmez. Çoğaltmanın kaldırılması Cassandra belleğinden de tasarruf sağlar.

    Bu adımı her iki veri merkezindeki herhangi bir Cassandra sunucusunda yalnızca bir kez çalıştırmanız gerekir:
    1. Cassandra cqlsh yardımcı programını başlatın:
      > /opt/../..//Apigee-cassandra/bin/cqlsh cassandraIP
    2. Cassandra anahtar alanlarının çoğaltma düzeylerini ayarlamak için aşağıdaki CQL komutlarını yürütün:
      1. cqlsh> ALTER KEYSPACE "Apigee_Baas_dc_1" WITH çoğaltma = { 'class': 'NetworkTopologyStrategy', 'dc-1': '3' };
      2. cqlsh> ALTER KEYSPACE "Apigee_Baas_dc_2" WITH çoğaltma = { 'class': 'NetworkTopologyStrategy', 'dc-2': '3' };
      3. Şu komutu kullanarak tuş alanlarını görüntüleyin:
        cqlsh> system.schema_keyspaces;
      4. cqlsh'den çıkış:
        cqlsh> exit

İkinci veri merkezinin kurulumu tamamlandı.

İki veri merkezinin kurulumunu ve yapılandırmasını tamamladıktan sonra aşağıdaki prosedürü uygulayarak kurulumu doğrulayabilirsiniz:

  1. Tüm BaaS Yığın düğümlerinde durumu kontrol edin:
    > curl 0:8080/status
  2. Jeton API çağrısının çalışıp çalışmadığını kontrol edin:
    > curl -X POST "http://localhost:8080/management/token" -d '{"grant_type":"password", "username":"adminEmail","password":"pWord"}'
  3. dc-2 için BaaS Portalı'na giriş yapmayı deneyin. Tüm verilerin dc-1'de oluşturulan koleksiyonlar gibi dc-2'de çoğaltıldığını doğrulayın.