تثبيت عدة مراكز بيانات من أجل BaaS لواجهة برمجة التطبيقات

الإصدار 4.17.09 من Edge for Private Cloud

يمكنك تثبيت API BaaS في مراكز بيانات متعددة باستخدام إعدادات نشطة/نشطة. يوضّح هذا المستند كيفية إضافة مركز بيانات BaaS إلى مركز بيانات BaaS حالي.

إضافة مركز بيانات عند مشاركة مجموعة Cassandra مع Edge

يجب أن تحتوي جميع مراكز البيانات على العدد نفسه من عُقد Cassandra. يمكن أن يستخدم تثبيت API BaaS مجموعة Cassandra الخاصة به، أو يمكنه مشاركة مجموعة Cassandra مع Edge.

إذا كان تثبيت BaaS يشارك مجموعة Cassandra مع Edge، عليك تعديل خادم الإدارة في مركز البيانات الأصلي لضبطه للتعرّف على عُقد Cassandra في مركز البيانات الجديد.

تعديل مركز البيانات الحالي

تتطلب إضافة مركز بيانات BaaS جديد (مركز البيانات 2) تنفيذ خطوات تثبيت مركز البيانات الجديد وضبطه، ولكنها تتطلب أيضًا تحديث مركز بيانات BaaS الأصلي (مركز البيانات 1) . هذه التعديلات ضرورية للأسباب التالية:

  • أنت تضيف عُقد Cassandra جديدة في مركز البيانات الجديد الذي يجب أن يكون متاحًا لمركز البيانات الحالي.
  • عليك ضبط معلومات النسخ المتماثل التي تستخدمها عُقد BaaS Stack في مركز البيانات 1 لتشمل معلومات من مركز البيانات 2. لا يمكنك إجراء عملية الضبط هذه إلا بعد تثبيت مركز البيانات 2.

لإجراء هذه التعديلات على مركز البيانات 1، عليك تعديل ملف الإعداد الأصلي المستخدَم لتثبيت مركز البيانات 1، ثم إعادة تشغيل apigee-setup على عُقد Cassandra في مركز البيانات 1. إذا تمت مشاركة مجموعة Cassandra لمركز البيانات 1 مع تثبيت Edge، فعليك أيضًا تحديث خادم الإدارة أيضًا.

إنشاء ملفات الإعداد

لتثبيت مركز البيانات 1، استخدِم الإعدادات الموضّحة في تثبيت API BaaS. لا يحتاج ملف الإعداد إلى تضمين أي معلومات عن مركز البيانات 2 في وقت تثبيت مركز البيانات 1.يمكنك إضافة معلومات إلى ملف الإعداد بعد تثبيت مركز البيانات 2.

في ما يلي ملفات الإعداد لمركز البيانات 2. يفترض ملف الإعداد هذا أنّك تثبّت dc-2 على 10 عُقد، كما هو موضّح في مخططات التثبيت. عدِّل هذا الملف وفقًا لذلك إذا كنت تثبّت على 7 عُقد.

يُرجى ملاحظة أنّ ملف الإعداد لمركز البيانات 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
SMTPMAILFROM="My Company <myco@company.com>"

إضافة مركز بيانات BaaS

  1. ثبِّت مركز البيانات الأول كما هو موضّح في تثبيت واجهة برمجة التطبيقات BaaS. يتضمّن هذا المستند ملف الإعداد الذي تستخدمه لتثبيت مركز البيانات 1.
  2. أنشِئ ملف الإعداد لـ dc-2 كما هو موضّح أعلاه.
  3. ثبِّت Cassandra، إما كجزء من عملية تثبيت Edge حالية أو كمجموعة مستقلة لـ BaaS:
    1. ثبِّت الأداة المساعدة apigee-setup في Edge على عقدة Cassandra الأولى في dc-2، الجهاز 8، باستخدام الإجراء الذي يتطلب الاتصال بالإنترنت أو الإجراء الذي لا يتطلب الاتصال بالإنترنت. لمزيد من المعلومات، يُرجى الاطّلاع على تثبيت أداة apigee-setup في Edge.
    2. في موجِّه الأوامر، شغِّل نص التهيئة البرمجي لتثبيت Cassandra على العقدة الأولى:
      > /opt/apigee/apigee-setup/bin/setup.sh -p c -f configFile

      يحدِّد الخيار "-p c" تثبيت Cassandra.

      يجب أن يكون ملف الإعداد متاحًا أو قابلاً للقراءة من قِبل مستخدم "apigee".
    3. كرِّر الخطوتَين 3 و4 لعُقد Cassandra المتبقية، أي الجهازَين 9 و10، في dc-2.
  4. في عُقد Cassandra في dc-1، عدِّل ملف الإعداد لإضافة عُقد Cassandra من مركز البيانات 2 استنادًا إلى طريقة تثبيت Cassandra:

    # List dc-1 nodes first, then dc-2,
    # including Cassandra data center and rack suffix
    CASS_HOSTS="$IP11:1,1 $IP12:1,1 $IP13:1,1 $IP8:2,1 $IP9:2,1 $IP10:2,1"
  5. في عقدة Cassandra الأولى في dc-1، شغِّل setup.sh باستخدام ملف إعداد dc-1 الجديد الذي يتضمّن عقد Cassandra من dc-2:
    > /opt/apigee/apigee-setup/bin/setup.sh -p c -f configFile
  6. كرِّر الخطوتَين 6 و7 لعُقد Cassandra المتبقية في dc-1.
  7. في حال الاتصال بمجموعة Cassandra لمجموعة dc-1 المشتركة مع Edge، أضِف عُقد dc-2 Cassandra إلى ملف الإعداد لعقدة خادم الإدارة في dc-1 وشغِّل setup.sh:
    > /opt/apigee/apigee-setup/bin/setup.sh -p ms -f configFile
  8. عدِّل مساحات مفاتيح Cassandra باستخدام عامل النسخ المتماثل الصحيح لمركزَي البيانات. عليك تنفيذ هذه الخطوة مرة واحدة فقط على أي خادم Cassandra في أي من مركزَي البيانات:

    ملاحظة: تضبط جميع الأوامر أدناه عامل النسخ المتماثل على "3"، ما يشير إلى ثلاث عُقد Cassandra في المجموعة. عدِّل هذه القيمة حسب الحاجة لعملية التثبيت.
    1. ابدأ أداة Cassandra cqlsh:
      > /opt/apigee/apigee-cassandra/bin/cqlsh cassandraIP
    2. نفِّذ أوامر CQL التالية في الطلب "cqlsh>" لضبط مستويات النسخ المتماثل لمساحات مفاتيح 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. يمكنك عرض مساحات المفاتيح باستخدام الأمر:
        cqlsh> select * من system.schema_keyspaces;
      7. اخرج من cqlsh:
        cqlsh> exit
  9. في جميع عُقد Cassandra في dc-2، شغِّل أمر إعادة الإنشاء، مع تحديد اسم منطقة dc-1:
    > /opt/apigee/apigee-cassandra/bin/nodetool -h cassandraIP rebuild dc-1
  10. شغِّل "nodetool status" على كل عُقدة Cassandra وتأكَّد من أنّ جميع عُقد Cassandra تحتوي على القيمة "‎100%" في حقل "Owns":
    > /opt/apigee/apigee-cassandra/bin/nodetool status
  11. تثبيت BaaS في dc-2:
    1. عدِّل ملف الإعداد لإدراج عُقد Cassandra في مركز بيانات dc-2 فقط:
      # List dc-2 Cassandra nodes,
      # omitting Cassandra data center and rack suffix
      CASS_HOSTS="$IP8 $IP9 $IP10"
    2. ثبِّت ElasticSearch على العُقد 4 و5 و6 من dc-2:
      > /opt/apigee/apigee-setup/bin/setup.sh -p e -f configFile
    3. ثبِّت حزمة BaaS على العُقد 4 و5 و6 من dc-2:
      > /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. تعديل عُقد حزمة BaaS في مركز البيانات 1:
    1. في عقدة BaaS Stack الأولى في مركز البيانات 1، عدِّل /opt/apigee/customer/application/usergrid.properties في محرِّر. إذا لم يكن الملف متوفّرًا، أنشِئه.
    2. أضِف السمات التالية إلى usergrid.properties:
      # القيمة نفسها لـ BAAS_CLUSTER_SEEDS في ملف إعداد dc-2،
      # بدون علامات اقتباس مزدوجة.
      usergrid-deployment_usergrid.cluster.seeds=dc-1:dc1StackIP1,dc-1:dc1StackIP2,dc-2:dc2StackIP1,dc-2:dc2StackIP2

      # القيمة نفسها لـ BAAS_CASS_DC_LIST في ملف إعداد dc-2.
      usergrid-deployment_usergrid.cluster.region.list=dc-1,dc-2
    3. كرِّر الخطوتين (أ) و(ب) على عُقد BaaS Stack المتبقية.
    4. أعِد تشغيل جميع عُقد BaaS Stack.

      ملاحظة: عند إعادة تشغيل عُقد BaaS Stack، أعِد تشغيلها بالترتيب نفسه المُدرَج في BAAS_CLUSTER_SEEDS. تسرد BAAS_CLUSTER_SEEDS عقدتَين من عُقد Stack كحد أقصى. بعد إعادة تشغيل هاتين العقدتين بالترتيب، يمكنك إعادة تشغيل العقد المتبقية بأي ترتيب.

      > /opt/apigee/apigee-service/bin/apigee-service baas-usergrid restart
  13. عدِّل قيم مساحة مفاتيح BaaS. يجب ضبط مساحة المفاتيح هذه للنسخ المتماثل في وقت التثبيت، ولكن ليس بالضرورة في وقت التشغيل. تؤدي إزالة النسخ المتماثل أيضًا إلى توفير ذاكرة Cassandra.

    عليك تنفيذ هذه الخطوة مرة واحدة فقط على أي خادم Cassandra في أي من مركزَي البيانات:
    1. ابدأ أداة Cassandra cqlsh:
      > /opt/apigee/apigee-cassandra/bin/cqlsh cassandraIP
    2. نفِّذ أوامر CQL التالية لضبط مستويات النسخ المتماثل لمساحات مفاتيح 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. اعرض مساحات المفاتيح باستخدام الأمر:
        cqlsh> select * من system.schema_keyspaces;
      4. اخرج من cqlsh:
        cqlsh> exit

اكتمل الآن تثبيت مركز البيانات الثاني.

بعد إكمال تثبيت وضبط مركزَي البيانات، يمكنك التحقّق من صحة التثبيت باتّباع الإجراء التالي:

  1. في جميع عُقد BaaS Stack، تحقَّق من الحالة:
    > curl 0:8080/status
  2. تحقَّق من عمل طلب بيانات من واجهة برمجة التطبيقات للرمز المميّز:
    > curl -X POST "http://localhost:8080/management/token" -d '{"grant_type":"password", "username":"adminEmail","password":"pWord"}'
  3. حاوِل تسجيل الدخول إلى بوابة BaaS لـ dc-2. تحقَّق من أنّه تم نسخ جميع البيانات في dc-2، مثل المجموعات التي تم إنشاؤها على dc-1.