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

Edge for Private Cloud - الإصدار 4.17.01

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

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

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

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

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

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

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

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

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

لتثبيت مركز البيانات 1، استخدِم الإعدادات الموضّحة في تثبيت نظام 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

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

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

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

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

    # إدراج عقدة dc-1 أولاً، ثم dc-2،
    # بما في ذلك مركز بيانات Cassandra والرفوف
    CASS_IPS="$IP11:1,1 $11:1,$1,$12:$1,1 $IP11:1,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 File
  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 applyation = { 'class': 'NetworkTopologyStrategy', 'dc-1': '3','dc-2': '3' };
      2. cqlsh> ALTER KEYSPACE "Apigee_Baas" WITHliketion = { 'class': 'NetworkTopologyStrategy', 'dc-1': '3','dc-2': '3' };
      3. cqlsh> ALTER KEYSPACE "Apigee_Baas_Locks" WITHيُسمح بها = { 'class': 'NetworkTopologyStrategy', '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 duplicatesation = { 'class': 'NetworkTopologyStrategy', 'dc-1': '3','dc-2': '3' };
      6. اطّلِع على مسافات المفاتيح باستخدام الأمر:
        cqlsh> select * from system.schema_keyspaces;
      7. اخرج من cqlsh:
        cqlsh> خروج
  9. على جميع عُقد Cassandra في dc-2، شغِّل أمر إعادة الإنشاء، مع تحديد اسم المنطقة dc-1:
    > /opt/apigee/apigee-cassandra/bin/nodetool -h cassandraIP في إعادة إنشاء dc-1
  10. نفِّذ "nodetool status" في كل عقدة Cassandra وتحقَّق من أنّ جميع عُقد Cassandra تحتوي على "100%" لقيمة "يمتلك" على النحو التالي:
    > /opt/apigee/apigee-cassandra/bin/nodetool
  11. تثبيت BaaS في dc-2:
    1. عدِّل ملف الإعداد لإدراج عُقد Cassandra في dc-2 فقط:
      # إدراج عُقد dc-2 Cassandra،
      # حذف مركز بيانات Cassandra ولاحقة الحامل
      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 Stack على العُقد 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 Stack في مركز البيانات 1:
    1. في عقدة BaaS Stack الأولى في مركز البيانات 1، عدِّل /opt/apigee/customer/application/usergrid.properties في محرِّر. إذا لم يكن الملف موجودًا، فأنشئه.
    2. أضِف السمات التالية إلى usergrid.properties:
      # نفس قيمة BAAS_Legacy_SEEDS في ملف الإعداد dc-2،
      # بدون علامات اقتباس مزدوجة.
      usergrid-publish_usergrid.cluster.seeds=dc-1:dc1StackIP1,dc-1:dc1StackIP2,dc-2:dc2StackIP1,dc-2:dc2StackIP2,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 عُقدتين على الأكثر من عُقد المكدس. بعد إعادة تشغيل هاتين العُقدتين بالترتيب، يمكنك إعادة تشغيل العُقد المتبقية بأي ترتيب.

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

    لن يُطلب منك تنفيذ هذه الخطوة سوى مرة واحدة على أي خادم Cassandra في أي من مركزَي البيانات:
    1. شغِّل الأداة المساعدة Cassandra cqlsh:
      > /opt/apigee/apigee-cassandra/bin/cqlsh cassandraIP
    2. نفِّذ أوامر CQL التالية لضبط مستويات النسخ المماثل لمساحات مفاتيح Cassandra:
      1. cqlsh> ALTER KEYSPACE "Apigee_Baas_dc_1" WITH signtion = { 'class': 'NetworkTopologyStrategy', 'dc-1': '3' };
      2. cqlsh> ALTER KEYSPACE "Apigee_Baas_dc_2" WITH أيٍation = { 'class': 'NetworkTopologyStrategy', 'dc-2': '3' };
      3. يمكنك عرض مسافات المفاتيح باستخدام الأمر:
        cqlsh> select * from system.schema_keyspaces;
      4. اخرج من cqlsh:
        cqlsh> خروج

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

بعد الانتهاء من تثبيت مركزَي البيانات وإعدادهما، يمكنك التأكّد من عملية التثبيت باستخدام الإجراء التالي:

  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.