एपीआई बास के लिए एक से ज़्यादा डेटा सेंटर लगाना

Edge for Private Cloud v. 4.17.05

किसी चालू/ऐक्टिव कॉन्फ़िगरेशन का इस्तेमाल करके, कई डेटा सेंटर में API BaaS इंस्टॉल किया जा सकता है. इस दस्तावेज़ में, मौजूदा BaaS डेटा सेंटर में BaaS डेटा सेंटर जोड़ने का तरीका बताया गया है.

कैसेंड्रा क्लस्टर को Edge के साथ शेयर करने पर डेटा सेंटर जोड़ा जा सकता है

सभी डेटा सेंटर में एक जैसी संख्या में कैसेंड्रा नोड होने चाहिए. API BaaS इंस्टॉलेशन में, खुद के कैसेंड्रा क्लस्टर का इस्तेमाल किया जा सकता है या यह Edge के साथ कैसेैंडा क्लस्टर को शेयर कर सकता है.

अगर BaaS इंस्टॉलेशन, Edge के साथ Cassandra क्लस्टर शेयर करता है, तो आपको मूल डेटा सेंटर में मैनेजमेंट सर्वर को अपडेट करना होगा. ऐसा करके, नए डेटा सेंटर में कैसंड्रा नोड की पहचान करने के लिए इसे कॉन्फ़िगर किया जा सकता है.

मौजूदा डेटा सेंटर को अपडेट करना

नया BaaS डेटा सेंटर (डेटा सेंटर 2) जोड़ने के लिए, आपको नए डेटा सेंटर को इंस्टॉल और कॉन्फ़िगर करने की प्रोसेस पूरी करनी होगी. हालांकि, इसके लिए आपको ओरिजनल BaaS डेटा सेंटर (डेटा सेंटर 1) को भी अपडेट करना होगा. ये बदलाव इसलिए ज़रूरी हैं, क्योंकि:

  • आप नए डेटा सेंटर में नए कैसांड्रा नोड जोड़ रहे हैं. इन्हें मौजूदा डेटा सेंटर से ऐक्सेस किया जाना ज़रूरी है.
  • डेटा सेंटर 2 की जानकारी शामिल करने के लिए, आपको डेटा सेंटर 1 में BaaS स्टैक नोड के ज़रिए इस्तेमाल की गई प्रतिरूप की जानकारी को कॉन्फ़िगर करना होगा. जब तक डेटा सेंटर 2 इंस्टॉल नहीं हो जाता, तब तक यह कॉन्फ़िगरेशन नहीं किया जा सकता.

डेटा सेंटर 1 पर ये अपडेट करने के लिए, आपको उस मूल कॉन्फ़िगरेशन फ़ाइल को अपडेट करना होगा जिसका इस्तेमाल डेटा सेंटर 1 को इंस्टॉल करने के लिए किया गया था. इसके बाद, डेटा सेंटर 1 के कैसंड्रा नोड पर apigee-setup फिर से चलाएं. अगर डेटा सेंटर 1 के लिए Cassandra क्लस्टर को Edge इंस्टॉलेशन के साथ शेयर किया गया है, तो आपको मैनेजमेंट सर्वर भी अपडेट करना होगा.

कॉन्फ़िगरेशन फ़ाइलें बनाना

डेटा सेंटर 1 को इंस्टॉल करने के लिए, API BaaS इंस्टॉलेशन में दिखाए गए कॉन्फ़िगरेशन का इस्तेमाल करें. डेटा सेंटर इंस्टॉल करते समय, कॉन्फ़िगरेशन फ़ाइल को डेटा सेंटर 2 के बारे में कोई जानकारी शामिल करने की ज़रूरत नहीं होती 1.आप डेटा सेंटर इंस्टॉल करने के बाद, कॉन्फ़िगरेशन फ़ाइल में जानकारी जोड़ें 2.

डेटा सेंटर 2 की कॉन्फ़िगरेशन फ़ाइलें नीचे दिखाई गई हैं. यह कॉन्फ़िगरेशन फ़ाइल यह मानकर चलती है कि आप 10 नोड पर dc-2 इंस्टॉल कर रहे हैं, जैसा कि इंस्टॉलेशन टॉपोलॉजी में बताया गया है. अगर सात नोड पर इंस्टॉल किया जा रहा है, तो इस फ़ाइल में ज़रूरत के हिसाब से बदलाव करें.

ध्यान दें कि डेटा सेंटर 2 (dc-2) की कॉन्फ़िगरेशन फ़ाइल में, डेटा सेंटर 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

BaaS डेटा सेंटर जोड़ना

  1. API BaaS इंस्टॉलेशन में बताए गए तरीके से पहला डेटा सेंटर इंस्टॉल करें. उस दस्तावेज़ में वह कॉन्फ़िगरेशन फ़ाइल शामिल होती है जिसका इस्तेमाल, डेटा सेंटर 1 को इंस्टॉल करने के लिए किया जाता है.
  2. ऊपर बताए गए तरीके से, dc-2 के लिए कॉन्फ़िगरेशन फ़ाइल बनाएं.
  3. Cassandra को किसी मौजूदा EDGE इंस्टॉलेशन के हिस्से के तौर पर या BaaS के लिए स्टैंडअलोन क्लस्टर के तौर पर इंस्टॉल करें:
    1. dc-2, मशीन 8 के पहले Cassandra नोड पर Edge apigee-setup यूटिलिटी इंस्टॉल करें. इसके लिए, इंटरनेट या बिना इंटरनेट वाले तरीके का इस्तेमाल करें. ज़्यादा जानकारी के लिए, Edge apigee-setup यूटिलिटी इंस्टॉल करें देखें.
    2. निर्देश मिलने पर, पहले नोड पर Cassandra को इंस्टॉल करने के लिए सेटअप स्क्रिप्ट चलाएं:
      > /opt/apigee/apigee-setup/bin/setup.sh -p c -f configFile

      “-p c” विकल्प से कैसंड्रा को इंस्टॉल किया जा सकता है.

      यह ज़रूरी है कि "apigee" उपयोगकर्ता कॉन्फ़िगरेशन फ़ाइल को ऐक्सेस कर सके या उसे पढ़ सके.
    3. dc-2 में बाकी के कैसेंड्रा नोड, मशीन 9 और 10 के लिए, तीसरे और चौथे चरण को दोहराएं.
  4. dc-1 के कैसंड्रा नोड पर, कॉन्फ़िगरेशन फ़ाइल में बदलाव करके, डेटा सेंटर 2 से कैसंड्रा नोड जोड़ें. इस आधार पर कि आपने Cassandra को इंस्टॉल किया है:

    # सूची dc-1 नोड पहले, फिर dc-2,
    # इनमें Cassandra डेटा सेंटर और रैक सफ़िक्स शामिल है
    CASS_HostS="$IP11:1:1,12, $IP12:$IP12:$IP12:$IP12:
  5. dc-1 के पहले Cassandra नोड पर, नई dc-1 कॉन्फ़िगरेशन फ़ाइल के साथ setup.sh चलाएं, जिसमें dc-2 से कैसंड्रा नोड शामिल हैं:
    > /opt/apigee/apigee-setup/bin/setup.sh -p c -f configFile
  6. dc-1 में बाकी के कैसंड्रा नोड के लिए, छठा और सातवां चरण दोहराएं.
  7. अगर आप Edge के साथ शेयर किए गए dc-1 के लिए Cassandra क्लस्टर से कनेक्ट कर रहे हैं, तो dc-1 के मैनेजमेंट सर्वर नोड में dc-2 कैसेंड्रा नोड जोड़ें और setup.sh चलाएं:
    > /opt/apigee/apigee-setup/bin/opt/apigee/apigee-setup/bin/opt.sh -p mssetup -f File
  8. दोनों डेटा सेंटर के लिए, सही रेप्लिकेशन फ़ैक्टर के साथ Cassandra कीस्पेस अपडेट करें. आपको किसी भी डेटा सेंटर के किसी भी Cassandra सर्वर पर यह चरण सिर्फ़ एक बार पूरा करना होगा:

    ध्यान दें: नीचे दिए गए कमांड, रेप्लिकेशन फ़ैक्टर को "3" पर सेट करते हैं. इससे क्लस्टर में तीन कैसंड्रा नोड दिखते हैं. इंस्टॉल करने की प्रोसेस के लिए, इस वैल्यू में ज़रूरत के हिसाब से बदलाव करें.
    1. Cassandra cqlsh यूटिलिटी शुरू करें:
      > /opt/apigee/apigee-cassandra/bin/cqlsh cassandraIP
    2. "cqlsh>" प्रॉम्प्ट पर नीचे दिए गए CQL कमांड लागू करें, ताकि कैसांद्रा कीस्पेस के लिए रेप्लिकेशन लेवल सेट किए जा सकें:
      1. cqlsh> ALTER KEYSPACE "Apigee_Baas_dc_1" WITH रेप्लिका = { 'class': 'NetworkTopology Strategies', 'dc-1': '3','dc-2': '3' };
      2. cqlsh> ALTER KEYSPACE "Apigee_Baas" WITH रेप्लिका = { 'class': 'NetworkTopologyStrategy', 'dc-1': '3','dc-2': '3' };
      3. cqlsh> ALTER KEYSPACE "Apigee_Baas_Locks" with प्रतिरूप = { 'class': 'NetworkTopology Strategies', 'dc-1': '3','dc-2': '3' };
      4. cqlsh> ALTER KEYSPACE "system_traces" WITH रेप्लिका = { 'class': 'NetworkTopologyStrategy', 'dc-1': '3','dc-2': '3' };
      5. cqlsh> ALTER KEYSPACE "system_auth" WITH रेप्लिका = { 'class': 'NetworkTopologyStrategy', 'dc-1': '3','dc-2': '3' };
      6. निर्देश का इस्तेमाल करके, keyspaces देखें:
        cqlsh> system.schema_keyspaces से * चुनें;
      7. cqlsh से बाहर निकलें:
        cqlsh> बाहर निकलें
  9. dc-2 में सभी कैसांड्रा नोड पर, रीबिल्ड कमांड चलाएं. इसमें dc-1 का क्षेत्र नाम बताया गया है:
    > /opt/apigee/apigee-cassandra/bin/nodetool -h cassandraIP फिर से बनाएं dc-1
  10. हर कैसेंड्रा नोड पर "नोडटूल स्टेटस" चलाएं और पुष्टि करें कि 'मालिक' वैल्यू के लिए, सभी कैसंड्रा नोड में '100%' है:
    > /opt/apigee/apigee-cassandra/bin/nodetool स्थिति
  11. dc-2 में BaaS इंस्टॉल करें:
    1. dc-2 में सिर्फ़ Cassandra नोड की सूची बनाने के लिए, कॉन्फ़िगरेशन फ़ाइल में बदलाव करें:
      # dc-2 कैसेंड्रा नोड की सूची बनाएं,
      # Cassandra डेटा सेंटर और रैक सफ़िक्स को छोड़ना
      CASS_HostS="$IP8 $9 $IP10"
    2. dc-2 के नोड 4, 5, और 6 पर ElasticSearch इंस्टॉल करें:
      > /opt/apigee/apigee-setup/bin/setup.sh -p e -f configFile
    3. dc-2 के नोड 4, 5, और 6 पर BaaS स्टैक इंस्टॉल करें:
      > /opt/apigee/apigee-setup/bin/setup.sh -p b -f configFile
    4. मशीन पर BaaS पोर्टल इंस्टॉल करें 7:
      > /opt/apigee/apigee-setup/bin/setup.sh -p p -f configFile
  12. डेटा सेंटर 1 में BaaS Stack नोड अपडेट करें:
    1. डेटा सेंटर 1 में पहले BaaS स्टैक नोड पर, एडिटर में /opt/apigee/customer/application/usergrid.properties में बदलाव करें. अगर फ़ाइल मौजूद नहीं है, तो उसे बनाएं.
    2. नीचे दी गई प्रॉपर्टी को usergrid.properties में जोड़ें:
      # वही वैल्यू, जो dc-2 की कॉन्फ़िगरेशन फ़ाइल में BAAS_ मॉडल_SEEDS के जैसी है,
      #, बिना डबल कोट के.
      usergrid-deployment_usergrid.cluster.seeds=dc-1:dc1StackIP1,dc-1:dc1StackIP2,dc-2:dc2StackIP1,dc-2:dc2StackIP2

      # dc-2 कॉन्फ़िगरेशन फ़ाइल में मौजूद BAAS_CASS_DC_LIST की वैल्यू एक जैसी है.
      usergrid-deployment_usergrid.cluster.region.list=dc-1,dc-2
    3. बाकी के BaaS स्टैक नोड पर a और b चरण दोहराएं.
    4. सभी BaaS स्टैक नोड रीस्टार्ट करें.

      ध्यान दें: BaaS स्टैक नोड को रीस्टार्ट करते समय, उन्हें उसी क्रम में फिर से शुरू करें जिस क्रम में वे BAAS_CLUSTER_SEEDS में दिए गए हैं. BAAS_CLUSTER_SEEDS स्टैक नोड में से ज़्यादा से ज़्यादा दो में सूचियां होती हैं. उन दो नोड को क्रम से लगाने के बाद, बाकी बचे नोड को किसी भी क्रम में फिर से शुरू किया जा सकता है.

      > /opt/apigee/apigee-service/bin/apigee-service baas-usergrid फिर से शुरू करें
  13. BaaS कीस्पेस वैल्यू अपडेट करें. इंस्टॉल के समय, इन कीस्पेस को बार-बार इस्तेमाल करने के लिए सेट किया जाना ज़रूरी है. हालांकि, इन्हें रन टाइम के दौरान सेट करना ज़रूरी नहीं है. रेप्लिकेशन को हटाने से कैसंड्रा की मेमोरी भी सेव होती है.

    आपको किसी भी डेटा सेंटर के किसी भी Cassandra सर्वर पर यह चरण सिर्फ़ एक बार चलाना होगा:
    1. Cassandra cqlsh यूटिलिटी शुरू करें:
      > /opt/apigee/apigee-cassandra/bin/cqlsh cassandraIP
    2. Cassandra कीस्पेस के लिए रेप्लिका लेवल सेट करने के लिए, नीचे दिए गए CQL कमांड लागू करें:
      1. cqlsh> ALTER KEYSPACE "Apigee_Baas_dc_1" WITH प्रतिरूप = { 'class': 'NetworkTopologyStrategy', 'dc-1': '3' };
      2. cqlsh> ALTER KEYSPACE "Apigee_Baas_dc_2" WITH रेप्लिकेशन = { 'class': 'NetworkTopology Strategies', 'dc-2': '3' };
      3. निर्देश का इस्तेमाल करके, keyspaces देखें:
        cqlsh> system.schema_keyspaces से * चुनें;
      4. cqlsh से बाहर निकलें:
        cqlsh> बाहर निकलें

दूसरे डेटा सेंटर को इंस्टॉल करने की प्रक्रिया पूरी हो गई है.

दोनों डेटा सेंटर को इंस्टॉल करने और उनके कॉन्फ़िगरेशन की प्रक्रिया पूरी करने के बाद, इस तरीके का इस्तेमाल करके इंस्टॉलेशन की पुष्टि की जा सकती है:

  1. सभी BaaS स्टैक नोड पर, स्टेटस देखें:
    > curl 0:8080/status
  2. जांच टोकन एपीआई कॉल काम कर रहा है:
    > curl -X POST "http://localhost:8080/management/token" -d '{"grant_type":password", "username -->adminEmail","password\"pWord"}'
  3. dc-2 के लिए BaaS पोर्टल में लॉग इन करें. पुष्टि करें, सभी डेटा को dc-2 में कॉपी किया गया है, जैसे कि dc-1 पर बनाया गया कलेक्शन.