الدمج السلس لـ Microsoft Fabric مع GitHub وAzure DevOps
By Mirko Peters · · Updated
عند إدارة أحمال عمل البيانات والتحليلات الحديثة، يصبح ضمان إدارة قوية للإصدارات والحوكمة أمرًا لا غنى عنه. وكقادة تقنيين، نجد أنفسنا باستمرار نوازن بين سرعة المطورين والامتثال على مستوى المؤسسات. ولهذا السبب أصبح ربط مساحات عمل Microsoft Fabric بمستودعات خارجية مثل GitHub وAzure DevOps نقطة تحول حقيقية في هندسة التحليلات. نستعرض في هذه المقالة كيفية إنشاء تكاملات سلسة، وتقييم ملكية عمليات النشر، و
Automatically translated with AI from the original post. Read the English original
عند إدارة أحمال عمل البيانات والتحليلات الحديثة، يصبح ضمان إدارة قوية للإصدارات والحوكمة أمرًا لا غنى عنه. وكقادة تقنيين، نجد أنفسنا باستمرار نوازن بين سرعة المطورين والامتثال على مستوى المؤسسات. ولهذا السبب أصبح ربط مساحات عمل Microsoft Fabric بمستودعات خارجية مثل GitHub وAzure DevOps نقطة تحول حقيقية في هندسة التحليلات. نستعرض في هذه المقالة كيفية إنشاء تكاملات سلسة، وتقييم ملكية عمليات النشر، والاستفادة من نقاط القوة المميزة لكل منصة.
للتعمق أكثر في هذا الموضوع والاستماع إلى تحليلات الخبراء حول طريقة تفاعل هذه المنظومات، تأكد من الاستماع إلى الحلقة البودكاست المرافقة: GitHub vs Azure DevOps for Microsoft Fabric CI/CD.
GitHub مقابل Azure DevOps: 5 حقائق مفاجئة
- أصول مختلفة وميزات متقاربة: على الرغم من أن كلتيهما تستهدفان التكامل والتسليم المستمرين والتعاون، نشأ GitHub كمنصة للبرمجة الاجتماعية، بينما تطور Azure DevOps من أدوات إدارة دورة حياة التطبيقات المؤسسية من Microsoft (Team Foundation Server)، لذلك تختلف سير عملهما وتكاملاتهما المؤسسية بشكل كبير.
- قابلية نقل خطوط الأنابيب: يمكن لخطوط أنابيب Azure DevOps القائمة على YAML تشغيل عمليات البناء على منصات متعددة، بل وإعادة استخدام المهام من خطوط أنابيبها الكلاسيكية، في حين يوفر GitHub Actions سوقًا عامة أكبر تضم إجراءات أنشأها المجتمع. وبالتالي، فإن قابلية النقل تعتمد غالبًا على الإجراءات المتاحة في السوق مقارنةً بمكتبات المهام المدمجة في Azure.
- فلسفة Boards مقابل Issues: يتضمن Azure DevOps نظام عناصر عمل متكاملاً (Boards) مع قوالب عمليات قابلة للتخصيص وتقارير موجهة للتخطيط المؤسسي، بينما تُعد GitHub Issues أبسط وأكثر طابعًا اجتماعيًا. وهذا أمر مفاجئ للفرق التي تتوقع تتبعًا متطابقًا للمشاريع في مقارنة "github vs azure devops".
- الامتثال على مستوى المؤسسات والخيارات المحلية: يوفر Azure DevOps Server استضافة محلية ناضجة وضوابط امتثال غالبًا ما تشترطها المؤسسات الخاضعة للتنظيم، بينما يقدم GitHub خادم GitHub Enterprise Server لكنه ركّز تاريخيًا على سير العمل السحابي أولًا، مما يجعل الخيارين مختلفين تمامًا للفرق التي تركز على الامتثال.
- الاختلافات في التسعير ونموذج المستخدم: يتمحور تسعير GitHub ونموذج المتعاونين فيه حول المستودعات والمؤسسات، مع مستويات مجانية سخية للمصادر المفتوحة، بينما يعتمد Azure DevOps على الترخيص لكل مستخدم لبعض الميزات (Test Plans وArtifacts)، ويمكن أن يكون أكثر قابلية للتنبؤ بالتكلفة ضمن اتفاقيات الترخيص المؤسسية الكبيرة، وهو عامل غير متوقع عند مقارنة "github vs azure devops".
شرح ملكية عمليات النشر

ما هي ملكية عمليات النشر
تعني ملكية عمليات النشر أن لديك السيطرة على كل خطوة في عملية DevOps. أنت تقرر كيف تنتقل شيفرتك من التطوير إلى التسليم. وتدير من يمكنه الوصول إلى أدوات DevOps الخاصة بك وكيفية تتبع التغييرات. كما تضع قواعد الأتمتة وتضمن التزام فريقك بها.
الشيفرة والمخرجات
أنت تتولى الشيفرة المصدرية والمخرجات في منصات DevOps. تشكل هذه المكونات أساس خط أنابيب التسليم الخاص بك. فيما يلي الأجزاء الرئيسية التي تكوّن ملكية عمليات النشر في أدوات DevOps الحديثة:
- تتبع الشيفرة المصدرية
- الاختبار
- النشر
- إدارة البنية التحتية
- تتبع عمليات البناء
- إدارة الأسرار
- إدارة الإصدارات
تستخدم أدوات DevOps لأتمتة هذه الخطوات. تساعدك الأتمتة على تسليم التحديثات بشكل أسرع وتقليل الأخطاء. تحافظ على أمان شيفرتك وتتأكد من مطابقة المخرجات للإصدارات التي تم اختبارها. وتتتبع عمليات البناء والإصدارات للحفاظ على الاتساق عبر البيئات.
الوصول والحوكمة
تتحكم في الوصول إلى أدوات DevOps وتضع سياسات الحوكمة. تقرر من يمكنه العرض أو التعديل أو نشر الشيفرة. تستخدم الأتمتة لفرض القواعد ومراقبة النشاط. تضمن الحوكمة التزام فريقك بالمعايير أثناء التطوير والتسليم. تسجل الإجراءات وتراجع التغييرات لحماية عملية تطوير البرمجيات لديك.
لماذا تهم الملكية
تمنحك الملكية القدرة على التحكم في بيئة DevOps الخاصة بك. تحمي خط أنابيب التسليم من المخاطر وتحافظ على أمان تطويرك. تحافظ على الامتثال للوائح وتدعم التحكم التشغيلي.
تستخدم أدوات devops لبناء إطار حوكمة قوي. تكتسب استقلالية وتتيح للفرق العمل بشكل مستقل. تدير المخاطر وتحافظ على موثوقية عملية التسليم. تدعم الأتمتة هذه الأهداف من خلال جعل التطوير والتسليم أكثر كفاءة.
نصيحة: عندما تتولى ملكية خط أنابيب devops الخاص بك، يمكنك الاستجابة بسرعة للتغييرات والحفاظ على سير تطوير برمجياتك وفق الخطة.
تحتاج إلى فهم ملكية النشر لاتخاذ قرارات ذكية بشأن أدوات devops. تعمل على تحسين سرعة التسليم، وحماية شيفرتك، والحفاظ على التحكم في عملية التطوير.
نموذج ملكية GitHub
تخزين الشيفرة والعناصر الناتجة
تستخدم github كمكان مركزي لإدارة التحكم في المصدر. عندما تدفع شيفرتك إلى github.com، تحتفظ بسجل واضح لكل تغيير. يساعدك ذلك على تتبع من أجرى التحديثات ومتى. يمكنك تخزين شيفرتك في مستودعات عامة أو خاصة، حسب احتياجاتك. إذا كنت تستخدم github Enterprise، فستحصل على ميزات إضافية للمؤسسات الكبيرة، مثل أدوات الأمان المتقدم والامتثال.
بالنسبة للعناصر الناتجة عن النشر، تقدم github حزم github Packages. تتيح لك هذه الخدمة تخزين مخرجات البناء وصور الحاويات والملفات الأخرى إلى جانب شيفرتك. يمكنك الوصول إلى هذه العناصر مباشرة من سير العمل الخاص بك. مع ذلك، توفر حزم github Packages بيانات وصفية أساسية فقط، مثل تاريخ الإنشاء وعدد مرات التنزيل. لا يمكنك إضافة خصائص مخصصة أو استخدام استعلامات متقدمة لإدارة العناصر. تقدم منصات أخرى، مثل JFrog، خيارات أكثر للبيانات الوصفية والاستعلام.
الوصول والأذونات
تتحكم في من يمكنه رؤية شيفرتك وتعديلها على github.com. تُسند الأدوار للمستخدمين والفرق، مع التأكد من أن كل شخص يملك الوصول الذي يحتاجه فقط. يتبع هذا مبدأ أقل الامتيازات. يمكنك إنشاء فرق داخل مؤسستك وتحديد أذونات مختلفة لكل فريق. على سبيل المثال، قد تمنح المطورين صلاحية الكتابة، مع قصر صلاحيات المسؤول على الأعضاء الموثوق بهم.
يمكنك أتمتة إدارة الوصول عبر ربط github بنظام إدارة الهوية والوصول (IAM) لديك. يسهّل ذلك إضافة المستخدمين أو إزالتهم مع تغير فريقك. ينبغي أيضًا وضع سياسات واضحة للتحكم في الوصول ومراجعتها بانتظام. تتيح لك github مراجعة سجلات التدقيق لاكتشاف أي نشاط غير اعتيادي.
- أسند الأدوار والأذونات على مستوى المستودع أو المؤسسة أو المؤسسة الكبرى (Enterprise).
- استخدم code owners لاشتراط مراجعات للتغييرات المهمة في الشيفرة.
- قيّد وصول المسؤول واستخدمه فقط عند الضرورة.
- راجع سجلات التدقيق بانتظام للكشف عن الإجراءات غير المصرح بها.
الحوكمة والامتثال
تحتاج إلى حوكمة قوية للحفاظ على أمان عمليات النشر والتزامها بالمتطلبات. توفر لك github عدة أدوات لإدارة ذلك. يمكنك إعادة استخدام سير العمل عبر المشاريع، مما يوفر الوقت ويضمن الاتساق. تتيح لك github Actions أتمتة عمليات النشر وفرض القواعد على كل بيئة.
يمكنك استخدام artifact attestations للتحقق من عدم تعديل ملفات النشر. تدعم github بروتوكول OpenID Connect (OIDC) لعمليات النشر الآمنة على منصات السحابة. يمكنك التحكم في عمليات النشر بتحديد من يحق له النشر ومتى. كما تتيح لك github عرض سجل عمليات النشر، وهو ما يساعد في عمليات التدقيق وفحوصات الامتثال.
ملاحظة: تتكامل github Actions مع Microsoft Fabric، لذا يمكنك أتمتة عمليات النشر وإدارة حلول التحليلات ضمن نفس ضوابط الحوكمة.
اعتبارات الأمان
يجب أن تولي اهتمامًا كبيرًا للأمان عند استخدام github في خطوط أنابيب النشر. يمكن أن تظهر التهديدات الأمنية في نقاط عديدة من سير عملك. قد يحاول المهاجمون حقن برمجيات خبيثة في شيفرتك المصدرية أو عناصر البناء. يمكن أن تتعرض البيانات الحساسة، مثل مفاتيح الوصول وكلمات المرور، للكشف إذا لم تتبع أفضل الممارسات. يمكن للوصول غير المصرح به أن يمنح المهاجمين السيطرة على خط الأنابيب وبيئة الإنتاج. قد تُدخل التبعيات القديمة ثغرات تهدد النظام بأكمله.
يجب أن تحمي مستودعات github باستخدام ضوابط وصول قوية. ينبغي تفعيل المصادقة الثنائية لجميع المستخدمين. يمكنك استخدام إدارة الأسرار للحفاظ على أمان بيانات الاعتماد والرموز. يجب تجنب تخزين المعلومات الحساسة مباشرة في الشيفرة. ينبغي مراجعة الأذونات بانتظام وإزالة الوصول للمستخدمين الذين لم يعودوا بحاجة إليه.
نصيحة: يمكنك تحسين وضعك الأمني بالجمع بين الأدوات المدمجة في github وحلول خارجية. يمكنك استخدام أدوات فحص من أطراف ثالثة أو الدمج مع منصات أمان السحابة لحماية إضافية.
ابدأ مع GitHub كمستودع - قائمة تحقق (github مقابل azure devops)
قائمة عملية للبدء في استخدام GitHub كمستودع لشيفرتك.
- إنشاء حساب على GitHub أو تسجيل الدخول إليه
- الاختيار بين حساب شخصي أو حساب مؤسسة لملكية الفريق
- إنشاء مستودع جديد (عام أو خاص) واختيار مستوى الرؤية المناسب
- إضافة اسم واضح للمستودع وملف README.md وصفي
- إضافة ملف LICENSE يناسب متطلبات المشروع
- إضافة ملف .gitignore مخصص للغة البرمجة أو الإطار المستخدم
- تهيئة المستودع بفرع افتراضي (main) وقواعد حماية الفروع
- إعداد CODEOWNERS وإرشادات المساهمة (CONTRIBUTING.md)
- إعداد قوالب للمشكلات وقالب لطلب السحب
- إعداد الوسوم والمعالم ولوحات المشاريع لتتبع المشكلات
- إعداد سير عمل GitHub Actions لعمليات التكامل المستمر والنشر المستمر (CI/CD) أو دمجه مع خطوط الأنابيب الحالية
- إضافة أسرار المستودع الخاصة بالتكامل المستمر والنشر والخدمات الخارجية
- إعداد قواعد حماية الفروع: المراجعات المطلوبة، وفحوصات الحالة، والإيداعات الموقعة المطلوبة عند الحاجة
- تفعيل Dependabot لتحديثات التبعيات وتنبيهات الأمان
- تفعيل ميزات الأمان: فحص الكود، وفحص الأسرار، وتنبيهات الثغرات الأمنية
- إعداد الخطافات (Webhooks) أو التكاملات مع أدوات التكامل المستمر أو ChatOps أو الخدمات الخارجية
- دعوة المتعاونين أو أعضاء الفريق وتحديد أذونات المستودع
- نقل المستودعات والمشكلات الحالية (في حال الانتقال من Azure DevOps، ضعوا خطة للنقل وقوموا بربط عناصر العمل)
- توثيق بنية المستودع وسير عمل التطوير وعملية الإصدار في الويكي أو في مجلد الوثائق
- إعداد المراقبة والتنبيهات للإصدارات وعمليات النشر وسير العمل المهمة
- مراجعة سير العمل ومقارنته بالبدائل (GitHub مقابل Azure DevOps) لتحسين خيارات CI/CD وإدارة المشاريع
- مراجعة الوصول إلى المستودع والأسرار وإعدادات الأمان بشكل دوري
نموذج ملكية Azure DevOps
المستودعات وخطوط الأنابيب
عند استخدام Azure DevOps تحصلون على منصة موحدة لإدارة الكود والعناصر الناتجة وعمليات النشر. تجمع خدمات Azure DevOps بين مستودعات الكود وتتبع العمل وأدوات الاختبار وتخزين العناصر الناتجة. يساعدكم هذا التكامل على التحكم في كل مرحلة من مراحل دورة حياة تسليم البرمجيات. ويمكنكم تتبع كل تشغيل لخط الأنابيب وربطه بالإيداعات أو طلبات السحب أو عناصر العمل المحددة، مما يمنحكم رؤية واضحة لعملية التطوير.
تستخدم خطوط أنابيب Azure DevOps هويات للوصول إلى الموارد. ويمكن تعيين هذه الهويات على مستوى المجموعة أو المشروع. تساعد هويات مستوى المشروع على قصر الوصول على الموارد اللازمة لكل مشروع فقط، مما يعزز الأمان. ويمكنكم أيضًا إضافة حماية إلى موارد المستودع باستخدام الفحوصات وأذونات خط الأنابيب. يتيح لكم ذلك إدارة ملكية حقوق التعديل على الكود وعلى سير عمل النشر.
يدعم Azure DevOps عمليات التكامل المستمر والنشر المستمر (CI/CD) بشكل مبسط، فيمكنكم أتمتة عمليات البناء والاختبار والنشر. ومع Azure Pipelines تحصلون على التكامل المستمر والتسليم المستمر، مما يساعدكم على تقديم التحديثات بسرعة وموثوقية. وقد صممت Microsoft منصة Azure DevOps لتعمل بكفاءة مع الحوسبة السحابية، مما يجعل توسيع نطاق مشاريعكم أمرًا سهلًا مع نمو احتياجاتكم.
التحكم في الوصول
تتحكمون في من يستطيع الوصول إلى خدمات Azure DevOps باستخدام التحكم في الوصول المستند إلى الأدوار. يتيح لكم هذا النموذج تعيين الأذونات استنادًا إلى الأدوار، بحيث يحصل كل مستخدم على الوصول الذي يحتاجه فقط. ويمكنكم تنظيم المستخدمين في مجموعات أمان وتعيين الأذونات على مستوى المؤسسة أو المشروع أو الكائن. توصي Microsoft باتباع مبدأ أقل الامتيازات، أي منح المستخدمين الأذونات اللازمة لمهامهم فقط.
- تعيين الأدوار للمستخدمين والمجموعات لتحقيق تحكم دقيق في الوصول.
- استخدام مجموعات الأمان لإدارة الأذونات على المستويات المختلفة.
- مراجعة الأذونات وتدقيقها بشكل دوري لرصد أي استخدام غير متوقع.
الحوكمة والنهج
تُعد الحوكمة القوية ضرورية لعمليات نشر آمنة وموثوقة. تفرض Azure DevOps الحوكمة من خلال نهج الفروع وضوابط الوصول والأدوار المخصصة. تتيح لكم نهج الفروع تعيين الفحوصات والمتطلبات قبل دمج الكود، بحيث لا يصل إلى بيئة الإنتاج إلا الكود عالي الجودة. ويمكنكم تعيين كيانات الأمان للأدوار استنادًا إلى مبدأ أقل الامتيازات، مما يقلل من مخاطر الوصول غير المصرح به.
- تعيين نهج الفروع لاشتراط مراجعات الكود والفحوصات قبل الدمج.
- تعيين أدوار مخصصة لكيانات الخدمة لمنع الإجراءات المدمرة في بيئة الإنتاج.
- استخدام ضوابط الوصول لتقييد من يستطيع النشر في البيئات الحساسة.
نصيحة: راجعوا إعدادات الحوكمة في Azure DevOps بشكل دوري للحفاظ على أمان عمليات النشر وامتثالها.
الأمان والامتثال
تحتاج إلى ضوابط أمنية والتزام قوية عند إدارة عمليات النشر لديك. توفر Azure DevOps مجموعة واسعة من الأدوات التي تساعدك على حماية الشيفرة البرمجية وبياناتك وسير العمل لديك. يمكنك استخدام ميزات الأمان المدمجة للحفاظ على أمان عملية التطوير والتزامها بمعايير الصناعة.
تستخدم Azure DevOps التحكم في الوصول المستند إلى الأدوار لتقييد من يمكنه عرض موارده أو تعديلها. تعيّن الأذونات للمستخدمين والمجموعات، بما يضمن أن يصل إليها الأشخاص المناسبون فقط. يمكنك أيضًا استخدام اتصالات الخدمة للتحكم في طريقة تفاعل خطوط الأنابيب مع خدمات Azure الأخرى. يساعد ذلك على تقليل خطر الإجراءات غير المصرح بها.
نصيحة: راجِع إعدادات الأمان في Azure DevOps بشكل متكرر. حدِّث النهج والأذونات كلما نما فريقك أو تغيّرت مشاريعك.
البدء باستخدام Azure DevOps مستودعًا — قائمة التحقق (GitHub مقابل Azure DevOps)
- أنشئ مؤسسة Azure DevOps أو سجّل الدخول إليها
- أنشئ مشروعًا جديدًا (اختر الرؤية: خاص/عام) وحدد نظام التحكم في الإصدارات: Git
- أنشئ أول مستودع لك أو استورد مستودعًا موجودًا (من GitHub أو من جهازك المحلي)
- أضف ملف README.md وصفيًا وملف ترخيص
- أضف ملف .gitignore مخصصًا للغة مشروعك أو إطار عمله
- حدد استراتيجية الفروع واصطلاحات التسمية (main وdevelop وfeature/* وhotfix/*)
- احمِ فرع main: فعّل نهج الفروع والمراجعين المطلوبين وفحوصات الحالة
- أنشئ قوالب لطلبات السحب وإرشادات للمساهمين
- اضبط أذونات المستودع والمجموعات (Readers وContributors وProject Administrators)
- أعدّ اتصالات الخدمة لعمليات النشر (Azure وAWS وسجلات Docker وموفري Git الخارجيين)
- أنشئ خطوط أنابيب CI (Azure Pipelines بصيغة YAML أو الصيغة الكلاسيكية) وتحقق من صحة عمليات البناء عند طلبات السحب
- أنشئ خطوط أنابيب CD أو خطوط أنابيب الإصدار للبيئات (dev وstage وprod) وبوابات الموافقة
- ادمج مع Boards: أنشئ عناصر العمل واربط عمليات الإيداع وطلبات السحب بعناصر العمل
- اضبط Webhooks أو Service Hooks للتكاملات الخارجية (Slack وTeams وJenkins)
- اضبط نهج الاستبقاء للفروع في المستودع ونهج استبقاء عمليات البناء
- فعّل التدقيق وأعدّ ضوابط الالتزام والأمان المطلوبة
- أعدّ فحص الشيفرة وتحليل الأمان وفحوصات التبعيات (قد يوفر GitHub أدوات إضافية، فقارن بينها وبين احتياجاتك)
- أعدّ مصدر الحزم (Artifacts feed) إذا كنت تحتاج إلى استضافة حزم (NuGet وnpm وMaven)
- أنشئ ويكي أو موقعًا للتوثيق، واحتفظ بالتوثيق داخل المستودع حيثما يناسب ذلك
- خطّط لخطوات الترحيل إذا كنت تنتقل من GitHub: ارسم خريطة للمستودعات والمشكلات وطلبات السحب وCI/CD وحسابات الخدمة
- ادعُ أعضاء الفريق وتحقق من وصولهم باستخدام حساباتهم
- نفّذ اختبارًا أوليًا شاملًا: استنساخ، ثم إيداع، ثم دفع، ثم فتح طلب سحب، ثم تشغيل خط الأنابيب، ثم النشر في بيئة الاختبار
- راقب الاستخدام وخطوط الأنابيب، وكرّر التحسين على النهج والأتمتة
تكامل Microsoft Fabric
تكامل Git
يمكنك ربط مساحة عمل Microsoft Fabric مباشرة بمستودع GitHub. يوفر هذا الربط تحكمًا قويًا في الإصدارات لمشاريع التحليلات لديك. تربط مساحة العمل بفرع develop في GitHub. يتيح لك هذا الإعداد تتبع كل تغيير والتراجع عنه عند الحاجة. يمكنك استخدام خطوط أنابيب النشر في Microsoft Fabric لنقل المحتوى من بيئة التطوير إلى الاختبار، ثم إلى الإنتاج. تساعد هذه العملية على تجنب مشكلات المزامنة بين البيئات.
عندما تريد إصدار الميزات المستقرة، تنشئ فرع إصدار (release). تستخدم خطوط أنابيب النشر لدفع هذه التغييرات إلى بيئة الإنتاج. إذا احتجت إلى إصلاح مشكلات عاجلة، تنشئ فرع hotfix. تدمج هذا الفرع في فرع main للنشر. ينبغي أن تستخدم قواعد بيانات منفصلة لكل بيئة. تحمي هذه الممارسة بيانات الإنتاج من التغييرات العرضية أثناء الاختبار أو التطوير.
CI/CD مع Azure DevOps وGitHub
يمكنك إعداد خطوط أنابيب CI/CD في Microsoft Fabric باستخدام Azure DevOps أو GitHub Actions. تساعدك هذه الأدوات على أتمتة خطوات البناء والاختبار والنشر. ينبغي أن تمنح خطوط أنابيب النشر لديك أسماء واضحة ووصفية. يسهّل ذلك التعرف على غرض كل خط أنابيب. يمكنك استخدام مساحات العمل الحالية أو إنشاء مساحات جديدة لمراحل مختلفة من خط الأنابيب، مثل التطوير والاختبار والإنتاج.
ينبغي أن تقارن المحتوى بين المراحل بشكل متكرر. يضمن هذا الفحص نشر جميع العناصر بشكل صحيح. يمكنك نشر التطبيقات من أي مساحة عمل في خط الأنابيب. تتيح هذه الخطوة للمستخدمين النهائيين اختبار الميزات قبل النشر النهائي. ينبغي أن تحتفظ بفروع منفصلة لكل مطور أو ميزة. تساعد هذه الممارسة على تجنب تعارضات الدمج. تساعدك استراتيجية تفريع قوية، مثل Gitflow، على إدارة التطوير والإصدارات وإصلاحات hotfix.
حوكمة البيانات
ترسّخ Microsoft Fabric الحوكمة في كل مرحلة من مراحل دورة حياة البيانات. تدير جمع البيانات وتخزينها وتحليلها ضمن بيئة واحدة. يُصنّف Microsoft Purview بياناتك ويتتبع أصلها ومسارها. يوفّر OneLake تخزينًا مركزيًا، ما يسهّل تطبيق نهج الحوكمة. يمنحك Microsoft Entra ID تحكمًا بالوصول يستند إلى الأدوار، فتقرر من يمكنه عرض البيانات أو تعديلها.
تُطبّق نهج الحوكمة على مستوى OneLake. تنتقل هذه القواعد مع بياناتك عبر مساحات العمل ومجموعات البيانات. يحافظ هذا الأسلوب على اتساق التعامل مع بياناتك وسرعته. لا حاجة إلى إعداد قواعد منفصلة لكل مساحة عمل. يساعدك تصميم Microsoft Fabric على الحفاظ على التحكم وتلبية متطلبات الامتثال مع نمو بياناتك.
الأمان والامتثال
تحتاج إلى ضوابط قوية للأمان والامتثال عند إدارة البيانات وعمليات النشر في Microsoft Fabric. توفر المنصة أدوات متقدمة لحماية معلوماتك وتلبية المتطلبات التنظيمية. يمكنك تصنيف البيانات الحساسة وحمايتها ضمن خطوط أنابيب Data Factory. يساعدك ذلك على إبقاء المعلومات المهمة بعيدة عن الوصول غير المصرح به.
يتكامل Microsoft Fabric مع Microsoft Defender for Cloud Apps. يمنحك هذا التكامل رؤية أفضل وتحكمًا أكبر في عملياتك. يمكنك مراقبة الأنشطة وضبط التنبيهات للسلوكيات المحفوفة بالمخاطر. ويمكنك أيضًا تتبع مسار البيانات، فتتيح لك هذه الميزة رؤية انتقال البيانات عبر نظامك. استخدم هذه المعلومات للتحقق من الامتثال وفهم تدفق البيانات الحساسة.
نصيحة: راجع إعدادات الأمان والامتثال بانتظام. تساعدك عمليات الفحص المنتظمة على مواكبة المخاطر الجديدة والحفاظ على أمان بياناتك.
GitHub مقابل Azure DevOps مقابل Fabric: مقارنة الملكية
موقع المستودع
تحتاج إلى معرفة مكان وجود الكود الخاص بك. في النقاش حول github vs azure devops، تُعد هذه نقطة محورية. يخزّن GitHub المستودعات في السحابة، ويمكنك الاختيار بين الخيارات العامة والخاصة. تستخدم مشاريع المصادر المفتوحة الكثيرة github لأنه سهل المشاركة والتعاون. يخزّن azure devops الكود في السحابة أيضًا، لكنه يركز على المشاريع الخاصة ذات المستوى المؤسسي. تحصل بذلك على تحكم أكبر في من يمكنه رؤية الكود وتعديله. يتصل Microsoft Fabric بكل من github وazure devops لإدارة الإصدارات. تدير مشاريع التحليلات الخاصة بك في Fabric، لكن الكود الفعلي موجود في المستودع المرتبط.
ينبغي أن تختار المنصة التي تناسب احتياجاتك. إذا كنت تريد التعاون المفتوح، فإن github خيار مناسب. وإذا احتجت إلى تحكم صارم، يوفّر azure devops خيارات أكثر. يتيح لك Microsoft Fabric استخدام أيٍّ منهما، فتتكيّف مع سير عملك.
إدارة العناصر الناتجة (Artifacts)
إدارة العناصر الناتجة هي الطريقة التي تتعامل بها مع مخرجات البناء والحزم والملفات التي تنشئها مشاريعك. في مقارنة github vs azure devops، تلاحظ فروقًا كبيرة. يستخدم GitHub خدمة GitHub Packages لتخزين العناصر الناتجة، وتحصل من خلالها على ميزات أساسية مثل تخزين الحزم ومشاركتها. يقدّم azure devops خدمة Azure Artifacts التي توفر ضوابط متقدمة. يمكنك إدارة الإصدارات وإعداد الخلاصات وتتبع الاستخدام. يركز Microsoft Fabric على عناصر التحليلات، مثل تقارير Power BI والنماذج الدلالية. يرتبط بالمستودع لإدارة الإصدارات، ويستخدم خطوط أنابيب النشر لنقل العناصر بين البيئات.
نصيحة: طبّق مبدأ الحد الأدنى من الأذونات. امنح المستخدمين الوصول الذي يحتاجونه فقط. يقلل ذلك المخاطر ويساعدك على الحفاظ على الأمان.
الحوكمة والامتثال
تحتاج إلى حوكمة وامتثال قويين لحماية عمليات النشر لديك وتلبية المعايير الصناعية. تقدّم كل منصة، وهي GitHub وazure devops وMicrosoft Fabric، أدوات ومقاربات مختلفة لهذه الاحتياجات.
يمنحك GitHub حوكمة مرنة. يمكنك ضبط قواعد حماية الفروع، واشتراط مراجعات الكود، واستخدام ملفات CODEOWNERS. تساعدك هذه الميزات على التحكم في من يمكنه إجراء التغييرات على الكود. ويمكنك أيضًا استخدام سجلات التدقيق لتتبع الإجراءات في مستودعاتك.
يركز azure devops على الحوكمة المؤسسية. يمكنك ضبط نهج الفروع وبوابات الموافقة والأدوار المخصصة. تساعدك هذه الضوابط على فرض المعايير عبر مشاريعك. ويتيح لك azure devops استخدام تتبع عناصر العمل لربط تغييرات الكود بمتطلبات الأعمال.
يجلب Microsoft Fabric الحوكمة إلى سير عمل تحليلات البيانات. تستخدم Microsoft Purview لفهرسة البيانات وتتبع مسارها. تضبط النهج على مستوى OneLake، فتُطبَّق عبر جميع مساحات العمل. يجعل هذا النهج الموحد إدارة الامتثال أسهل مع نمو بياناتك.
نصيحة: راجع إعدادات الحوكمة بانتظام. فالحوكمة القوية تساعدك على تلبية متطلبات الامتثال وتحافظ على أمان عمليات النشر لديك.
وضعية الأمان
يجب عليك حماية التعليمات البرمجية والبيانات وعمليات النشر من التهديدات. تقدم كل منصة ميزات وضوابط أمان مختلفة.
تساعدك GitHub على تأمين مستودعاتك من خلال المصادقة الثنائية وإدارة الأسرار وحماية الفروع. ويمكنك استخدام GitHub Actions لأتمتة فحوصات الأمان والتحقق من الثغرات الأمنية.
تمنحك Azure DevOps ضوابط أمان متقدمة. تستخدم التحكم في الوصول المستند إلى الأدوار لتقييد الأذونات. وتخزّن Azure DevOps الأسرار بشكل آمن وتربطها بخطوط الإنتاج الخاصة بك.
تركز Microsoft Fabric على أمان البيانات. تستخدم Microsoft Defender for Cloud Apps لمراقبة النشاط وضبط التنبيهات عند ملاحظة سلوك محفوف بالمخاطر. ويمكنك تصنيف البيانات الحساسة وحمايتها ضمن خطوط المعالجة الخاصة بك.
ملاحظة: ينبغي أن تجمع بين ميزات الأمان في المنصة وأفضل الممارسات. درّب فريقك، وراجع الإعدادات، وحدّث النهج كلما تغيرت التهديدات.
سيناريوهات DevOps الواقعية
المصادر المفتوحة مع GitHub
عند العمل على مشاريع المصادر المفتوحة، تمنحك GitHub طريقة بسيطة لإدارة ملكية عمليات النشر. يمكنك أتمتة عملية النشر وإبقاء مشروعك متاحًا مع كل تغيير في التعليمات البرمجية. إليك كيفية عمل الملكية في سير عمل DevOps نموذجي للمصادر المفتوحة باستخدام GitHub:
- تدفع التعليمات البرمجية إلى مستودع عام على GitHub.
- يؤدي كل دفع إلى الفرع الرئيسي إلى تشغيل نشر تلقائي.
- لست بحاجة إلى طلب موافقة أو انتظارها قبل النشر.
- تحافظ على التحكم في البنية التحتية السحابية من خلال استخدام حساب AWS الخاص بك أو خدمات مماثلة.
- يبقى مشروعك متاحًا على بنية تحتية بمستوى الإنتاج في جميع الأوقات.
المؤسسات مع Azure DevOps
في بيئة المؤسسات، تستخدم Azure DevOps غالبًا لإدارة المشاريع المعقدة. تحتاج إلى تحقيق توازن بين السرعة والأمان والامتثال. قد تصبح الملكية في هذه البيئة تحديًا. يجب عليك تحديد أدوار ومسؤوليات واضحة لفريقك. تساعدك Azure DevOps على ذلك من خلال السماح لك بتعيين الأذونات واستخدام التحكم في الوصول المستند إلى الأدوار.
تحليلات البيانات مع Fabric
عند إدارة مشاريع تحليلات البيانات، تمنحك Microsoft Fabric ملكية قوية لعمليات النشر. تتحكم في من يمكنه النشر أو التحرير أو عرض كل عنصر في مساحة العمل الخاصة بك. تحصل على تحكم واضح في أصول التحليلات لديك. عند نشر عنصر جديد، تصبح مالكه. وإذا نشرت إلى مرحلة يوجد فيها العنصر مسبقًا، تبقى الملكية كما هي.
نصيحة: استخدم خطوط نشر Microsoft Fabric وأذونات مساحة العمل للحفاظ على أمان بياناتك وإنتاجية فريقك.
عمليات النشر الهجينة
غالبًا ما تحتاج إلى استخدام أكثر من منصة واحدة لإدارة عمليات النشر لديك. هذا أمر شائع في المؤسسات الكبيرة أو عندما تريد الجمع بين نقاط القوة في أدوات مختلفة. تتيح لك عمليات النشر الهجينة استخدام GitHub لإدارة المصدر، وAzure DevOps للخطوط، وMicrosoft Fabric للتحليلات. يمكنك ربط هذه المنصات لإنشاء سير عمل يناسب احتياجاتك.
نصيحة: راجع إعدادات الوصول والحوكمة على كل منصة. تأكد من أن الأشخاص المناسبين فقط يمكنهم النشر أو تغيير التعليمات البرمجية الخاصة بك. هذا يحافظ على أمان سير العمل لديك.
اختيار منصة DevOps المناسبة
أسئلة أساسية حول الملكية
عليك طرح الأسئلة المناسبة قبل اختيار منصة DevOps. تساعدك هذه الأسئلة على فهم طريقة تعامل كل أداة مع الملكية والحوكمة والتكامل. فكّر في النقاط التالية:
- من يتحكم في الوصول إلى التعليمات البرمجية والعناصر الأثرية الخاصة بك؟
- كيف تفرض المنصة الحوكمة والامتثال؟
- هل يمكنك أتمتة تذكيرات بشأن البيانات الوصفية المفقودة في عمليات النشر؟
- هل تدعم المنصة التكامل مع أدواتك الحالية؟
- كيف تتعامل المنصة مع ملكية الخدمات والبيانات الوصفية؟
نصيحة: اطرح هذه الأسئلة مبكرًا. ستتجنب الالتباس وتبني أساسًا قويًا لسير عمل DevOps لديك.
نقاط قوة المنصات
تقدم كل منصة DevOps نقاط قوة فريدة. عليك مطابقة هذه النقاط مع احتياجات مشروعك. يمكنك استخدام GitHub Actions للتبني السريع والتكامل السهل. تمنحك Azure DevOps ضوابط متقدمة لسير العمل المعقد. وتوفر Microsoft Fabric تحليلات وحوكمة موحدة. يمكنك ربط مساحة العمل بـ GitHub أو Azure DevOps للتحكم في الإصدارات والنشر.
ملاحظة: ينبغي أن تختار منصة تناسب سير عملك واحتياجات الحوكمة لديك. تدعم كل منصة نقاط قوة مختلفة في ملكية DevOps.
تكتسب ملكية واضحة لعمليات النشر عندما تفهم كيفية إدارة GitHub وAzure DevOps وMicrosoft Fabric للكود والمخرجات والوصول والحوكمة. اختر منصةً تتوافق مع احتياجاتك الأمنية ومتطلبات الامتثال. حدِّد نهج إدارة نقاط النهاية، وأرسِ ملكية مشتركة بين الفرق، وحدِّد ضوابط الأمان الأساسية. راجع ميزات المنصة بانتظام للبقاء متقدماً على المخاطر. وامزج اختيار المنصة مع نُهج الذكاء الاصطناعي المسؤول، بما يشمل الإنصاف والموثوقية والمساءلة. يساعدك هذا النهج على حماية بياناتك والحفاظ على حوكمة قوية.
لمواصلة رحلة التعلم واستكشاف رؤى أعمق حول هذا الموضوع، استمع مباشرةً إلى الحلقة ذات الصلة: GitHub vs Azure DevOps for Microsoft Fabric CI/CD.
الأسئلة المتداولة
ماذا تعني ملكية النشر في منصات DevOps؟
تعني ملكية النشر أنك تتحكم في الكود والمخرجات والوصول والحوكمة. أنت تقرر من يمكنه النشر، وتتتبع التغييرات، وتفرض القواعد. تساعدك الملكية على حماية مشاريعك والحفاظ على الامتثال.
كيف تتعامل GitHub وAzure DevOps وMicrosoft Fabric مع التحكم في الوصول؟
تحدد الأدوار والأذونات في كل منصة. تستخدم GitHub الفرق ومالكي الكود (code owners). تستخدم Azure DevOps مجموعات الأمان والوصول المستند إلى الأدوار. تعتمد Microsoft Fabric على Microsoft Entra ID في أذونات مساحات العمل.
هل يمكنك أتمتة عمليات النشر عبر المنصات الثلاث؟
نعم، يمكنك أتمتة عمليات النشر باستخدام GitHub Actions أو Azure Pipelines أو خطوط أنابيب النشر في Microsoft Fabric. تساعدك الأتمتة على تسليم التحديثات بسرعة أكبر وتقلل الأخطاء.
كيف تتكامل Microsoft Fabric مع GitHub وAzure DevOps؟
تربط مساحة عمل Fabric الخاصة بك بمستودع GitHub أو Azure DevOps. يمنحك هذا التكامل التحكم في الإصدارات، وعمليات النشر الآلية، وحوكمة تحليلية موحدة.
ما ميزات الأمان التي تحمي عمليات النشر؟
تستخدم المصادقة الثنائية، وإدارة الأسرار، والفحوصات الأمنية الآلية. تضيف Azure DevOps بوابات الموافقة وDefender for Cloud. توفر Microsoft Fabric منع فقدان البيانات (Data Loss Prevention) وأدوات إدارة الخصوصية.
كيف تدير الامتثال في هذه المنصات؟
تحدد نهج الفروع وسجلات التدقيق وقواعد الحوكمة. تدعم Azure DevOps وMicrosoft Fabric أطر الامتثال مثل GDPR وISO. توفر GitHub Enterprise أدوات امتثال متقدمة للمؤسسات.
من يملك عناصر التحليلات المنشورة في Microsoft Fabric؟
تصبح المالك عندما تنشر عنصراً جديداً. إذا نشرت إلى مرحلة تحتوي على عنصر موجود، تبقى الملكية كما هي. تساعدك أدوار مساحة العمل والأذونات على إدارة الوصول.
ما الفروق الجوهرية بين Azure DevOps وGitHub؟
Azure DevOps (ado) مجموعة من أدوات المطورين تقدم Azure Boards وPipelines وRepos وTest Plans وإدارة المخرجات، وتركز على إدارة المشاريع المؤسسية وCI/CD، في حين أن GitHub منصة تركز على git أولاً، وتتمحور حول مستودعات git وطلبات السحب ومجتمع المطورين، مع ميزات مثل GitHub Repos وGitHub Enterprise Cloud وGitHub Actions. يُفضَّل Azure DevOps غالباً لتتبع عناصر العمل المتكامل وإرثه من Visual Studio Team Services (TFS)، بينما توفر GitHub منظومة واسعة من المشاريع مفتوحة المصدر وميزات تعاون حديثة.
أي أداة أستخدم للتحكم في الإصدارات: Azure Repos أم GitHub Repos؟
تدعم الأداتان مستودعات git والتحكم في الإصدارات. يتكامل Azure Repos بشكل وثيق مع Azure Boards وAzure Pipelines، ما يجعله جذاباً للفرق التي تعمل ضمن سير عمل Microsoft Azure DevOps. أما GitHub Repos (المستضاف على GitHub) فيتفوق في المستودعات العامة والخاصة، وإدارة المشاريع مفتوحة المصدر، والمساهمات المجتمعية، وميزات مثل سير عمل طلبات السحب. اختر بحسب تفضيلك لـ Azure Boards المتكامل أو لمنصة GitHub الأوسع ومجتمعها.
هل يمكنني نقل المستودعات من Azure Repos إلى GitHub؟
نعم، يمكنك نقل المستودعات من Azure Repos إلى GitHub؛ تقوم فرق كثيرة بتصدير مستودعات git من Azure Repos ثم استيرادها إلى مستودع GitHub، أو تستخدم أدوات الترحيل. يتضمن الترحيل غالباً الحفاظ على سجل الالتزامات (commit history)، وإدارة المستخدمين المُدارين للمؤسسة في GitHub Enterprise Cloud، وتحديث تكاملات CI/CD من Azure Pipelines إلى GitHub Actions إذا رغبت في ذلك.
كيف تقارن Azure Boards بقضايا GitHub (GitHub issues) في إدارة المشاريع الرشيقة؟
يوفّر Azure Boards إدارة مشاريع رشيقة متكاملة تشمل عناصر العمل وقوائم الانتظار والسباقات (Sprints)، مع تكامل عميق مع خطوط الأنابيب و Test Plans، ما يجعله أداة قوية لإدارة المشاريع في المؤسسات الكبيرة. أما مشكلات GitHub (ولوحات المشاريع) فهي أبسط وأنسب لسير العمل في المشاريع مفتوحة المصدر ومجتمعات المطورين، وإن كان GitHub قد توسّع ليدعم ميزات أكثر لتخطيط المشاريع. ويختار بعض الفرق الاستفادة من الميزات الأفضل في المنصتين عبر ربط مستودعات GitHub بـ Azure Boards.
هل يتوفر GitHub Copilot لمستخدمي Azure DevOps؟
يتكامل GitHub Copilot في المقام الأول مع أدوات المطورين مثل Visual Studio Code و Visual Studio، لذلك يمكن لمطوري Azure DevOps الاستمرار في استخدام Copilot داخل بيئات التطوير المتكاملة (IDEs) الخاصة بهم. وقد جعل إطلاق GitHub Copilot وميزات مساحة العمل Copilot اللاحقة منه متاحًا للمطورين بغض النظر عن منظومة التكامل والنشر المستمر (CI/CD) المستخدمة في الخلفية، غير أن بعض ضوابط المؤسسات وترخيصها يعتمدان على ما إذا كنت تستخدم GitHub Enterprise Cloud أو تفضّل البيئات التي تديرها Azure DevOps.
أي المنصتين أفضل للمستخدمين المُدارين على مستوى المؤسسة والأمان: GitHub أم Azure DevOps؟
تقدّم المنصتان قدرات مؤسسية: إذ يوفّر Microsoft Azure DevOps تحكمًا دقيقًا في الوصول وتكاملًا مع Azure AD وميزات امتثال متقدمة، بينما يتضمن GitHub Enterprise Cloud المستخدمين المُدارين على مستوى المؤسسة وGitHub Advanced Security for Azure الذي يضيف فحص الشيفرة وفحص الأسرار وإدارة التبعيات. ويعتمد الاختيار على احتياجات المؤسسة: قد يتكامل Azure DevOps بشكل أفضل مع أدوات Microsoft القائمة، بينما يوفّر GitHub ميزات أقوى للمصادر المفتوحة والمجتمعات، إضافةً إلى خيارات أمان متقدمة.
كيف تقارن خطوط الأنابيب في Azure Pipelines مع GitHub Actions في التكامل والنشر المستمر (CI/CD)؟
يقدّم Azure Pipelines (وهو جزء من Azure Boards و Azure Pipelines) منظومة قوية للتكامل والنشر المستمر تعمل على منصات متعددة، ومع تكامل وثيق مع Azure DevOps وVisual Studio. أما GitHub Actions فمتكامل بإحكام مع منصة GitHub، ويوفّر سير عمل مرنًا يُشغَّل بأحداث المستودع، مع أتمتة سلسة لطلبات السحب (Pull Requests). وكلاهما يدعم الحاويات والنشر على السحابة والمشغّلات المستضافة ذاتيًا (Self-hosted Runners)؛ فاختر أداة DevOps التي تناسب سير عملك، أو استفد من الميزات الأفضل في المنصتين بربطهما ببعض.
هل يمكنني استخدام Visual Studio وVS Code مع المنصتين معًا؟
نعم، يدعم كل من Visual Studio وVisual Studio Code (VS Code) كلاً من GitHub وAzure DevOps. يتضمن Visual Studio تكاملات مدمجة مع Azure Repos و ADO، بينما يعمل VS Code بكفاءة مع مستودعات GitHub وGitHub Copilot ومستودعات git العامة. ويمكن للمطورين استخدام هذه الأدوات عبر المنصتين لتحرير الشيفرة وتشغيل الاختبارات والتفاعل مع طلبات السحب أو عناصر العمل.
وماذا عن الاختبار: هل توجد Azure Test Plans على GitHub؟
تُعد Azure Test Plans حلًا متكاملًا للاختبار في Azure DevOps، يوفّر أدوات للاختبار اليدوي والاستكشافي. لا يقدّم GitHub منتجًا مدمجًا مطابقًا لخطط الاختبار، لكن يمكنك دمج أطر الاختبار والإجراءات وأدوات إدارة الاختبار من أطراف ثالثة مع مستودعات GitHub لتحقيق قدرات مماثلة في أتمتة الاختبار وإعداد التقارير.
كيف يختلف التسعير والاستضافة: الاستضافة على GitHub مقابل Microsoft Azure DevOps؟
يقدّم GitHub خدمات مستضافة (GitHub.com وGitHub Enterprise Cloud) بخطط متدرجة للفرق والمؤسسات، مع التركيز على المستودعات العامة والخاصة والوصول المجتمعي. كما تقدّم Microsoft Azure DevOps Services خيارات سحابية مستضافة بتسعير قائم على المستخدمين، إضافةً إلى نسخ محلية (مثل TFS وVisual Studio Team Services سابقًا). وتشمل عناصر تحديد التكلفة دقائق خطوط الأنابيب، وتخزين المخرجات (Artifacts)، والمستخدمين المُدارين على مستوى المؤسسة، وما إذا كنت تحتاج إلى استضافة محلية.
هل يمكن للفرق استخدام GitHub وAzure DevOps معًا؟
نعم، تجمع مؤسسات كثيرة بين GitHub لاستضافة الشيفرة والتعاون المجتمعي وAzure DevOps لإدارة المشاريع أو خطوط الأنابيب أو خطط الاختبار. يمنحك هذا النهج الأفضل من المنصتين: نقاط قوة GitHub للمستودعات والمجتمع، وميزات Azure DevOps مثل Azure Boards. وتسهّل التكاملات والموصلات مزامنة المستودعات من Azure Repos إلى GitHub، أو ربط أحداث مستودعات GitHub بلوحات ADO.
أي أداة يفضّلها المطورون في مجتمع التطوير: GitHub أم Azure DevOps؟
يفضّل المساهمون في المشاريع مفتوحة المصدر والعديد من المطورين الأفراد منصة GitHub لأنها تعزّز روح المجتمع، وتوفّر مستودعات عامة وخاصة، وسير عمل متكاملًا للمراجعة، في حين يفضّل مطورو المؤسسات والفرق التي تحتاج إلى إدارة مشاريع شاملة منصة Azure DevOps. وتعتمد التفضيلات أيضًا على الاستثمار القائم في Visual Studio وMicrosoft Azure، وعلى ما إذا كانت ميزات مثل GitHub Copilot أو GitHub Advanced Security for Azure تحظى بالأولوية.
ما الاعتبارات التي ينبغي أن تأخذها الفرق في الحسبان عند الاختيار بين GitHub وAzure DevOps؟
ضع في اعتبارك احتياجاتك لإدارة الإصدارات، والتكامل مع Visual Studio أو VS Code، والحاجة إلى إدارة المشاريع الرشيقة (Azure Boards)، ومتطلبات الأمان والامتثال، والحاجة إلى Azure Test Plans، ومدى الظهور في المجتمع ومشاريع المصدر المفتوح، وما إذا كنت تريد ميزات مثل GitHub Copilot أو فحص الأمان المتقدم. قيّم أي أداة DevOps تناسب سير عملك، أو اعتمد نموذجًا هجينًا للاستفادة من المستودعات في Azure Repos، أو استخدم مستودعات GitHub مع Azure Boards وخطوط الأنابيب.