فهم مهمة نشر قاعدة البيانات
يؤدي دمج مهام توزيع قاعدة البيانات في مهام سير عمل CI/CD Azure Pipelines وGitHub Actions إلى أتمتة توفير قاعدة البيانات وتحديثها جنبا إلى جنب مع عمليات توزيع التطبيقات. يتيح هذا التكامل التنسيق السلس بين دورات حياة التطبيق وقاعدة البيانات مع تقليل الأخطاء والتناقضات من عمليات النشر اليدوية. تعمل أتمتة توفير قاعدة البيانات على تسريع دورات الإصدار وتقليل الأخطاء البشرية وتعزيز التعاون بين فرق التطوير والعمليات وقواعد البيانات.
الاعتبارات
تتطلب عمليات النشر التلقائية لقاعدة البيانات دراسة متأنية لسلامة البيانات ومنع الخسارة. معالجة هذه المخاطر من خلال الأحكام التالية:
- فصل البيانات: الحفاظ على فصل واضح بين تغييرات مخطط قاعدة البيانات وعمليات معالجة البيانات. يجب إدارة تغييرات مخطط قاعدة البيانات، مثل تعديلات الجدول أو تحديثات المخطط، بشكل منفصل عن عمليات معالجة البيانات، مثل إدخال البيانات الأولية أو استيراد مجموعات البيانات وتصديرها.
- الاحتفاظ بالبيانات: تنفيذ استراتيجيات للحفاظ على البيانات الموجودة أثناء إعادة توزيع المسار أو سير العمل. قد يتضمن ذلك إجراء نسخ احتياطي للبيانات الهامة قبل نشر التغييرات أو استخدام البرامج النصية لترحيل البيانات لنقل البيانات بين البيئات دون الكتابة فوق البيانات الموجودة.
- عمليات متكررة: تأكد من أن عمليات نشر قاعدة البيانات متكررة، ما يعني أنه يمكن إعادة تشغيلها بأمان عدة مرات مما يؤدي دائما إلى نفس النتيجة. يجب أن يلغي التكرار إمكانية إنشاء كائنات أو سجلات مخطط مكررة.
- تعيين الإصدار والتراجع: الحفاظ على التحكم في الإصدار على تغييرات مخطط قاعدة البيانات وترحيل البيانات والبرامج النصية للتوزيع لتعقب التغييرات وتسهيل إجراءات التراجع. استخدم مستودعات التحكم بالمصادر لإدارة البرامج النصية لقاعدة البيانات، وتطبيق علامات الإصدار أو التسميات على تغييرات قاعدة البيانات، وتنفيذ استراتيجيات التراجع التي تعيد تغييرات قاعدة البيانات.
- الاختبار والتحقق من الصحة: قم بإجراء اختبار شامل والتحقق من صحة تغييرات قاعدة البيانات في بيئة التقسيم المرحلي أو الاختبار قبل النشر في الإنتاج. استخدم أطر عمل الاختبار التلقائية واختبارات وحدة قاعدة البيانات واختبارات التكامل للتحقق من عمليات نشر قاعدة البيانات وضمان التوافق مع البيانات الموجودة.
- المراقبة والتنبيه: تنفيذ آليات المراقبة والتنبيه للكشف عن الحالات الشاذة أو الأخطاء أو مشكلات الأداء أثناء عمليات نشر قاعدة البيانات. مراقبة مقاييس سلامة قاعدة البيانات، وتعقب سجلات التدقيق، وتكوين التنبيهات التي يتم تشغيلها بواسطة أي سلوك أو فشل غير متوقع.
تشترك مهام سير عمل Azure Pipelines وGitHub Actions في مفاهيم وأنشطة متشابهة لنشر قاعدة البيانات. يتطلب دمج نشر قاعدة البيانات في Azure Pipelines العديد من مهام التنفيذ:
- إنشاء برامج نصية لتوزيع قاعدة البيانات لتعريف مخطط قاعدة البيانات والبيانات الأولية وتطبيق أي تكوينات إضافية. يجب أن تتواجد البرامج النصية في مستودع التحكم بالمصادر لتسهيل تعقب التغيير وتعيين الإصدار.
- إنشاء سلاسل اتصال قاعدة البيانات وتخزينها بأمان كمتغيرات سرية أو أسرار Azure key vault. وهذا يتطلب أيضا منح البنية الأساسية لبرنامج ربط العمليات التجارية حق الوصول إلى الأسرار.
- استخدام مهام Azure DevOps أو ملحقات الجهات الخارجية لتنفيذ البرامج النصية لتوزيع قاعدة البيانات كجزء من البنية الأساسية لبرنامج ربط العمليات التجارية.
- تكوين البنية الأساسية لبرنامج ربط العمليات التجارية لنشر أي تبعيات ضرورية، مثل مثيلات SQL Server، جنبا إلى جنب مع الأدوات والأدوات المساعدة المطلوبة.
- تضمين مهام اختبار قاعدة البيانات في البنية الأساسية لبرنامج ربط العمليات التجارية للتحقق من صحة تغييرات قاعدة البيانات والتأكد من نجاح عمليات النشر. يتضمن هذا عادة تشغيل اختبارات وحدة قاعدة البيانات أو اختبارات التكامل أو التحقق من صحة البيانات.
- تنفيذ آليات التراجع والاسترداد في البنية الأساسية لبرنامج ربط العمليات التجارية لمعالجة حالات فشل النشر أو الأخطاء غير المتوقعة. قد يتضمن ذلك إنشاء لقطات قاعدة البيانات أو النسخ الاحتياطية أو البرامج النصية للتراجع عن المعاملات للعودة إلى التغييرات في حالة حدوث مشكلات.
تختلف تفاصيل مهمة التنفيذ اختلافا كبيرا بناء على تقنية قاعدة البيانات المستهدفة. يفحص القسم التالي هذه التفاصيل لعمليات توزيع خدمة Azure SQL.
تقنيات وأدوات SQL Server وAzure SQL الخاصة
عند العمل مع SQL Server أو قاعدة بيانات Azure SQL في البنية الأساسية لبرنامج ربط العمليات التجارية CI/CD، هناك العديد من الأدوات والتقنيات التي يمكنك الاستفادة منها، بما في ذلك تلك التالية:
- أدوات بيانات SQL Server (SSDT): مجموعة أدوات تطوير تمكن مطوري قاعدة البيانات من إنشاء مخططات قاعدة البيانات والكائنات وتصحيحها وصيانتها وإعادة بناءها في Visual Studio. يمكنك استخدام مشاريع SSDT لإدارة تغييرات مخطط قاعدة البيانات وإنشاء برامج نصية للتوزيع ل SQL Server أو قاعدة بيانات Azure SQL.
- SQLPackage.exe: أداة مساعدة سطر الأوامر المضمنة في SSDT التي تبسط عمليات النشر التلقائي لقواعد بيانات SQL Server باستخدام ملفات مكون تطبيق طبقة البيانات (DACPAC). يمكنك استخدام SQLPackage.exe في البنية الأساسية لبرنامج ربط العمليات التجارية CI/CD لنشر تغييرات قاعدة البيانات إلى SQL Server أو قاعدة بيانات Azure SQL.
- مهام Azure DevOps: المهام المضمنة مثل نشر قاعدة بيانات Azure SQL وSqlAzureDacpacDeployment التي تسمح لك بنشر تغييرات قاعدة البيانات مباشرة من ملفات DACPAC إلى قاعدة بيانات Azure SQL. تدمج هذه المهام نشر قاعدة البيانات في مسارات CI/CD دون الحاجة إلى البرمجة النصية المخصصة.
- Azure Command-Line Interface (CLI): أداة مساعدة تسمح لك بالتفاعل مع موارد Azure، بما في ذلك قاعدة بيانات Azure SQL، من سطر الأوامر. يمكنك استخدام أوامر Azure CLI في مسارات CI/CD لأتمتة مهام توفير قاعدة البيانات وتكوينها ونشرها، مثل إنشاء خوادم قاعدة البيانات ونشر ملفات DACPAC وتنفيذ البرامج النصية SQL.
- SQL Server Management Studio (SSMS): أداة رسومية توفرها Microsoft لإدارة قواعد بيانات SQL Server. بينما تستخدم بشكل أساسي لمهام الإدارة اليدوية، يمكن ل SSMS أيضا إنشاء برامج نصية للتوزيع وأتمتة عمليات نشر قاعدة البيانات باستخدام معالج إنشاء البرامج النصية أو ميزة نشر قاعدة البيانات إلى قاعدة بيانات Microsoft Azure SQL.
- إطار عمل الكيان (EF): تقنية برمجية تدعم وظيفة Object-Relational Mapper (ORM). يمكنك الاستفادة من إمكانية الترحيل المستندة إلى EF لإدارة تغييرات مخطط قاعدة البيانات وأتمتة عمليات ترحيل قاعدة البيانات في مسارات CI/CD. تمكنك عمليات ترحيل EF من تحديد التغييرات على مخطط قاعدة البيانات باستخدام عمليات الترحيل الأولى للتعليمات البرمجية وتطبيقها تلقائيا أثناء بدء تشغيل التطبيق.
- البرامج النصية المخصصة: البرامج النصية PowerShell أو Bash أو SQL التي تعمل على أتمتة مهام نشر قاعدة البيانات في مسارات CI/CD. يمكن لهذه البرامج النصية استخدام وحدات SQLCMD أو Azure PowerShell لتنفيذ البرامج النصية SQL أو نشر ملفات DACPAC أو التفاعل مع قاعدة بيانات Azure SQL برمجيا.