تعرف على كيفية توفير المستأجرين الجدد وتسجيلهم في الكتالوج

ينطبق على: قاعدة بيانات Azure SQL

في هذا البرنامج التعليمي، تتعلم كيفية توفير وفهرسة أنماط SaaS. كما يمكنك أيضًا معرفة كيفية تنفيذها في تطبيق قاعدة بيانات Wingtip Tickets SaaS لكل مستأجر. قمت بإنشاء وتهيئة قواعد بيانات مستأجر جديد وتسجيلها في كتالوج مستأجر التطبيق. الكتالوج هو قاعدة بيانات تحافظ على التعيين بين العديد من مستأجري التطبيق SaaS وبياناتهم. الكتالوج يلعب دورًا هامًّا في توجيه طلبات التطبيق والإدارة إلى قاعدة البيانات الصحيحة.

في هذا البرنامج التعليمي، تتعلم كيفية:

  • توفير مستأجر جديد واحد.
  • توفير دفعة من المستأجرين الإضافيين.

لإكمال هذا البرنامج التعليمي، تأكد من إكمال المتطلبات الأساسية التالية:

مقدمة لنمط كتالوج SaaS

في تطبيق SaaS متعدد المستأجرين المدعوم بقاعدة بيانات، من المهم معرفة مكان تخزين المعلومات لكل مستأجر. في نمط كتالوج SaaS، يتم استخدام قاعدة بيانات كتالوج للاحتفاظ بالتعيين بين كل مستأجر وقاعدة البيانات التي يتم تخزين البيانات الخاصة بها. ينطبق هذا النمط كلما تم توزيع بيانات المستأجر عبر قواعد بيانات متعددة.

يتم تعريف كل مستأجر بواسطة مفتاح في الكتالوج ويتم تعيينه إلى موقع قاعدة البيانات الخاصة به. في تطبيق Wingtip Tickets، يتم تشكيل المفتاح من تجزئة اسم المستأجر. يسمح هذا النظام للتطبيق ببناء المفتاح من اسم المستأجر المضمن في عنوان URL للتطبيق. يمكن استخدام مخططات مفتاح المستأجر الأخرى.

الكتالوج يسمح بتغيير اسم أو موقع قاعدة البيانات مع تأثير الحد الأدنى في التطبيق. في نموذج قاعدة بيانات متعددة المستأجرين، تستوعب هذه الإمكانية أيضًا نقل مستأجر بين قواعد البيانات. يمكن استخدام الكتالوج أيضًا للإشارة إلى ما إذا كان المستأجر أو قاعدة البيانات غير متصل للصيانة أو إجراءات أخرى. يتم استكشاف هذه الإمكانية في البرنامج التعليمي لاستعادة المستأجر الواحد.

يمكن للكتالوج أيضًا تخزين بيانات تعريف إضافية للمستأجر أو بيانات تعريف قاعدة البيانات، مثل إصدار المخطط أو خطة الخدمة أو SLAs المقدمة للمستأجرين. يمكن للكتالوج تخزين معلومات أخرى تمكن إدارة التطبيقات أو دعم العملاء أو DevOps.

إلى جانب تطبيق SaaS، يمكن للكتالوج تمكين أدوات قاعدة البيانات. في نموذج قاعدة بيانات Wingtip Tickets SaaS لكل مستأجر، يتم استخدام الكتالوج لتمكين الاستعلام عبر المستأجر، والذي يتم استكشافه في البرنامج التعليمي الخاص بالإبلاغ. يتم استكشاف إدارة الوظائف عبر قاعدة البيانات في دروس إدارة المخطط وتحليلات المستأجر.

في نماذج تذاكر Wingtip SaaS، يتم تنفيذ الكتالوج باستخدام ميزات إدارة Shard لمكتبة عميل قاعدة البيانات المرنة (EDCL). يتوفر EDCL في Java و.NET Framework. تمكن EDCL تطبيقًا لإنشاء وإدارة واستخدام مخطط قطعة ذات قاعدة بيانات.

تحتوي خريطة القطع على قائمة القطع (قواعد البيانات) والتعيين بين المفاتيح (المستأجرون) والقطع. يتم استخدام الدالات EDCL أثناء توفير المستأجر لإنشاء الإدخالات في مخطط القطع. يتم استخدامها في وقت التشغيل من قبل التطبيقات للاتصال بقاعدة البيانات الصحيحة. تقوم EDCL بتخزين معلومات الاتصال لتقليل حركة المرور إلى قاعدة بيانات الكتالوج وتسريع التطبيق.

هام

يمكن الوصول إلى بيانات التعيين في قاعدة بيانات الكتالوج، ولكن لا تقم بتحريرها. قم بتحرير بيانات التعيين باستخدام واجهات برمجة التطبيقات "مكتبة عميل قاعدة بيانات مرنة" فقط. معالجة بيانات التعيين مباشرة تخاطر بإفساد الكتالوج وهي غير معتمدة.

مقدمة في نمط توفير SaaS

عند إضافة مستأجر جديد في تطبيق SaaS يستخدم طراز قاعدة بيانات مستأجر واحد، يجب توفير قاعدة بيانات مستأجر جديد. يجب إنشاء قاعدة البيانات في الموقع وفئة الخدمة المناسبين. كما يجب أن تتم تهيئته مع المخطط المناسب والبيانات المرجعية. ويجب أن تكون مسجلة في الكتالوج تحت مفتاح المستأجر المناسب.

ويمكن استخدام نهج مختلفة لتوفير قاعدة البيانات. يمكنك تنفيذ SQL البرامج النصية أو نشر bacpac أو نسخ قاعدة بيانات قالب.

يجب أن يكون توفير قاعدة البيانات جزءًا من إستراتيجية إدارة المخطط. يجب التأكد من أن قواعد البيانات الجديدة يتم توفيرها مع أحدث مخطط. يتم استكشاف هذا المطلب في البرنامج التعليمي لإدارة المخطط.

يقدم تطبيق قاعدة بيانات Wingtip Tickets لكل مستأجرين جدد عن طريق نسخ قاعدة بيانات قالب تسمى basetenantdb، والتي يتم نشرها على خادم الكتالوج. يمكن دمج التوفير في التطبيق كجزء من تجربة الاشتراك. كما يمكن دعمها دون اتصال باستخدام البرامج النصية. يستكشف هذا البرنامج التعليمي توفيرًا باستخدام PowerShell.

توفير البرامج النصية نسخ قاعدة بيانات basetenantdb لإنشاء قاعدة بيانات مستأجر جديد في تجمع مرن. يتم إنشاء قاعدة بيانات المستأجر في خادم المستأجر المعين إلى الاسم المستعار DNS newtenant. يحتفظ هذا الاسم المستعار بإشارة إلى الخادم المستخدم لتوفير مستأجرين جدد ويتم تحديثه للإشارة إلى خادم مستأجر استرداد في البرامج التعليمية لاسترداد الأخطاء الفادحة(DR باستخدام georestore، DR باستخدام georeplication). تقوم البرامج النصية من ثم بتهيئة قاعدة البيانات مع المعلومات الخاصة بالمستأجر وتسجيلها في مخطط قطع الكتالوج. يتم إعطاء قواعد بيانات المستأجر أسماء استنادًا إلى اسم المستأجر. نظام التسمية هذا ليس جزءًا مهمًّا من النمط. يقوم الكتالوج بتعيين مفتاح المستأجر إلى اسم قاعدة البيانات، بحيث يمكن استخدام أي اصطلاح تسمية.

احصل على البرامج النصية للتطبيق لقاعدة بيانات كل مستأجر في Wingtip Tickets SaaS

تتوفر قاعدة بيانات البرامج النصية ومصدر التطبيق وكود Wingtip Tickets SaaS متعدد المستأجرين في WingtipTicketsSaaS-DbPerTenant GitHub repo. يجب التحقق من الإرشادات العامة لخطوات تنزيل وإلغاء حظر البرامج النصية لـ Wingtip Tickets SaaS.

شرح التوفير والكتالوج المفصل

لفهم كيف يقوم تطبيق Wingtip Tickets بتوفير المستأجر الجديد، قم بإضافة نقطة توقف ثم اتبع سير العمل أثناء توفير مستأجر.

  1. في PowerShell ISE، افتح ... \ Learning Modules \ ProvisionAndCatalog \Demo-ProvisionAndCatalog.ps1 وقم بتعيين المعلمات التالية:

    • $TenantName = اسم المكان الجديد (على سبيل المثال، Bushwillow Blues).
    • $VenueType = أحد أنواع الأماكن المحددة مسبقًا: blues, classicalmusic, dance, jazz, judo, motor racing, multipurpose, opera, rockmusic, soccer.
    • $DemoScenario = 1، توفير مستأجر واحد.
  2. لإضافة نقطة توقف، ضع المؤشر في أي مكان على السطر الذي يتضمن New-Tenant ` . ثم اضغط F9.

    Screenshot shows a script with New-Tenant highlighted for adding a breakpoint.

  3. لتشغيل البرنامج النصي، اضغط F5.

  4. بعد توقف تنفيذ البرنامج النصي عند نقطة التوقف، اضغط F11 للانتقال للتعليمات البرمجية.

    Debugging

تتبع تنفيذ البرنامج النصي باستخدام خيارات القائمة Debug. اضغط F10 وF11 للانتقال إلى الدالات المسماة أو فيها. لمزيد من المعلومات حول تصحيح البرامج النصية PowerShell، راجع تلميحات على العمل مع البرامج النصية PowerShell وتصحيحها.

لا تحتاج إلى متابعة سير العمل هذا بشكل صريح. وهو ما يفسر كيفية تصحيح البرنامج النصي.

  • قم باستيراد الوحدة النمطية CatalogAndDatabaseManagement.psm1. توفر كتالوجًا وتجريدًا على مستوى المستأجر على وظائف إدارة القطع. تشمل هذه الوحدة معظم نمط الكتالوج وتستحق الاستكشاف.

  • استيراد الوحدة النمطية SubscriptionManagement.psm1. هي تحتوي على وظائف لتسجيل الدخول إلى Azure وتحديد اشتراك Azure الذي تريد العمل معه.

  • احصل على تفاصيل التكوين. انتقل إلى Get-Configuration باستخدام F11، وانظر كيف يتم تحديد تكوين التطبيق. يتم تعريف أسماء الموارد والقيم الأخرى الخاصة بالتطبيق هنا. لا تقم بتغيير هذه القيم حتى تكون على دراية بنصوص البرنامج النصي.

  • احصل على كائن الكتالوج. انتقل إلى Get-Catalog، الذي يقوم بإنشاء كائن كتالوج والذي يتم استخدامه في البرنامج النصي ذي المستوى الأعلى وإرجاعه. تستخدم هذه الدالة وظائف إدارة القطع التي يتم استيرادها من AzureShardManagement.psm1. يتكون كائن الكتالوج من العناصر التالية:

    • تم إنشاء ‎$catalogServerFullyQualifiedName باستخدام القسم القياسي بالإضافة إلى اسم المستخدم الخاص بك: catalog-<user>.database.windows .net.
    • يتم استرداد $catalogDatabaseName من التكوين: tenantcatalog.
    • تتم تهيئة الكائن $shardMapManager من قاعدة بيانات الكتالوج.
    • تتم تهيئة الكائن $shardMap من مخطط قطع tenantcatalog في قاعدة بيانات الكتالوج. يتم تركيب كائن كتالوج وإرجاعه. يتم استخدامه في البرنامج النصي على مستوى أعلى.
  • قم بحساب مفتاح المستأجر الجديد. يتم استخدام دالة تجزئة لإنشاء مفتاح المستأجر من اسم المستأجر.

  • تحقق مما إذا كان مفتاح المستأجر موجودًا بالفعل. يتم التحقق من الكتالوج للتأكد من توفر المفتاح.

  • يتم توفير قاعدة بيانات المستأجر مع قاعدة بيانات المستأجر الجديد. استخدم F11 للخطوة في كيفية توفير قاعدة البيانات باستخدام قالب إدارة موارد Azure.

    يتم إنشاء اسم قاعدة البيانات من اسم المستأجر لتوضيح أي قطعة تنتمي إلى المستأجر. يمكنك أيضًا استخدام اصطلاحات تسمية قاعدة بيانات أخرى. يقوم قالب إدارة موارد بإنشاء قاعدة بيانات مستأجر عن طريق نسخ قاعدة بيانات قالب (baseTenantDB) على ملقم الكتالوج. كبديل، يمكنك إنشاء قاعدة بيانات وتهيئتها عن طريق استيراد bacpac. أو يمكنك تنفيذ برنامج نصي للتهيئة من موقع معروف.

    قالب إدارة الموارد في ملف …\Learning Modules\Common\: tenantdatabasecopytemplate.json

  • تتم تهيئة قاعدة بيانات المستأجر. تتم إضافة اسم المكان (المستأجر) ونوع المكان. يمكنك أيضًا القيام بالتهيئة الأخرى هنا.

  • قاعدة بيانات المستأجر مسجلة في الكتالوج. يتم تسجيله مع Add-TenantDatabaseToCatalog باستخدام مفتاح المستأجر. استخدم F11 للتعمق في التفاصيل:

    • تتم إضافة قاعدة بيانات الكتالوج إلى مخطط القطع (قائمة قواعد البيانات المعروفة).
    • يتم إنشاء التعيين الذي يربط قيمة المفتاح إلى قطعة.
    • تتم إضافة بيانات تعريف إضافية حول المستأجر (اسم المكان) إلى جدول المستأجرين في الكتالوج. جدول المستأجرين ليس جزءًا من مخطط إدارة Shard، ولا يتم تثبيته بواسطة EDCL. يوضح هذا الجدول كيفية توسيع قاعدة بيانات الكتالوج لدعم بيانات إضافية خاصة بالتطبيق.

بعد اكتمال التوفير، يعود التنفيذ إلى البرنامج النصي Demo-ProvisionAndCatalog الأصلي. تفتح صفحة الأحداث للمستأجر الجديد في المستعرض.

Events page

توفير دفعة من المستأجرين

هذا التمرين يوفر دفعة من 17 مستأجرًا. نوصي بتوفير هذه الدفعة من المستأجرين قبل بدء تشغيل برامج تعليمية أخرى لقاعدة بيانات Wingtip Tickets SaaS لكل مستأجر. هناك أكثر من مجرد قواعد بيانات قليلة للعمل بها.

  1. في PowerShell ISE، افتح ...\Learning Modules\ProvisionAndCatalog\Demo-ProvisionAndCatalog.ps1. قم بتغيير المعلمة $DemoScenario إلى 3:

    • $DemoScenario = 3، توفير دفعة من المستأجرين.
  2. لتشغيل البرنامج النصي، اضغط F5.

يقوم البرنامج النصي بنشر دفعة إضافية من المستأجرين. يستخدم قالب إدارة موارد Azure الذي يتحكم في الدفعة ويفوض توفير كل قاعدة بيانات إلى قالب مرتبط. باستخدام القوالب بهذه الطريقة، يسمح مدير الموارد Azure بالتوسط في عملية توفير البرنامج النصي الخاص بك. تقوم القوالب بتوفير قواعد البيانات بالتوازي ومعالجة إعادة المحاولة، إذا لزم الأمر. البرنامج النصي هو غير مأزم، لذلك إذا فشل أو توقف لأي سبب من الأسباب، فقم بتشغيله مرة أخرى.

تحقق من دفعة المستأجرين التي تم نشرها بنجاح

  • في المدخل Azure، استعرض للوصول إلى قائمة الملقمات وافتح خادم tenants1. حدد قواعد البيانات SQL، وتحقق من أن الدفعة من قواعد البيانات الإضافية 17 موجودة الآن في القائمة.

    Database list

أنماط توفير أخرى

أنماط التوفير الأخرى غير المدرجة في هذا البرنامج التعليمي:

قواعد بيانات ما قبل التوفير: يستغل نمط ما قبل التوفير حقيقة أن قواعد البيانات في تجمع مرن لا تضيف تكلفة إضافية. الفواتير هي لتجمع مرن، وليس قواعد البيانات. قواعد البيانات الخاملة تستهلك أي موارد. قبل توفير قواعد البيانات في تجمع وتخصيصها عند الحاجة، يمكنك تقليل الوقت لإضافة المستأجرين. ويمكن تعديل عدد قواعد البيانات التي سبق توفيرها حسب الحاجة للحفاظ على مخزن مؤقت مناسب لمعدل التوفير المتوقع.

التوفير التلقائي: في نمط التوفير التلقائي، تقوم خدمة التوفير بتوفير الخوادم والتجمعات وقواعد البيانات تلقائيا، حسب الحاجة. إذا أردت، يمكنك تضمين قواعد بيانات ما قبل التوفير في تجمعات مرنة. وإذا سحبت قواعد البيانات من الخدمة وحذفتها، يمكن سد الثغرات في المجمعات المرنة عن طريق خدمة التوفير. ويمكن أن تكون هذه الخدمة بسيطة أو معقدة، مثل التعامل مع توفير الخدمات عبر مناطق جغرافية متعددة وإعداد النسخ المتماثل الجغرافي للتعافي من الكوارث.

مع نمط التوفير التلقائي، يقدم تطبيق العميل أو البرنامج النصي طلب توفير إلى قائمة انتظار لتتم معالجتها بواسطة خدمة التوفير. ثم يقوم باستطلاع الخدمة لتحديد الاكتمال. إذا تم استخدام التوفير المسبق، تتم معالجة الطلبات بسرعة. تقدم الخدمة قاعدة بيانات بديلة في الخلفية.

الخطوات التالية

في هذا البرنامج التعليمي، تعلمت كيفية:

  • توفير مستأجر جديد واحد.
  • توفير دفعة من المستأجرين الإضافيين.
  • الانتقال في تفاصيل توفير المستأجرين وتسجيلها في الكتالوج.

جرب البرنامج التعليمي لمراقبة الأداء.

الموارد الإضافية