Azure Microsoft Cloud Account: استنادًا إلى Azure DevOps GitHub Actions ، قم بإنشاء محاكاة أتمتة CI/CD

سحابة 2026-06-01 阅读 10
cloud

في التطوير اليومي للعديد من فرق البحث والتطوير ، يمكنك غالبًا رؤية مشهد "غريب الخياطة" السخيف:

تستخدم إدارة المشروع Jira باهظ الثمن ، ويتم استضافة الكود في GitLab الذي تم إنشاؤه محليًا ، ويستخدم البناء الآلي (CI) التصحيحات ، وغالبًا ما يتم تعليق Jenkins بسبب فائض الذاكرة ، ويتم إعادة إصدار المشروع النهائي والمستندات في Microsoft Teams أو SharePoint. بمجرد إصدار الإصدار الجديد ، حث مدير المنتج بشكل محموم في Jira. تم تطويره في GitLab لذكر Merge Request. أثناء عبادة الآلهة ، ذهب إلى Jenkins يدويًا "لبناء" ، وأخيراً خرج من Bug. كان الجميع بين منصات مختلفة.

سلسلة أدوات "Wanguo" هذه ليست فقط "جزيرة معلومات" مع تكاليف صيانة مخيفة وانفصال بين الأنظمة المختلفة ، ولكنها أيضًا القاتل الأول الذي يخنق رشاقة الفريق.

في الواقع ، بعد أن استحوذت Microsoft على GitHub وأعادت بناء Azure بشكل جذري ، قامت بالفعل بلحام مجموعة من DevOps الحديثة ذات المستوى الحاكم في جميع أنحاء العالم. في الهندسة المعمارية العليا للمصنعين الكبار ، هناك نوع من "الملاكمة المدمجة لبرميل عائلة Microsoft" التي تعتبر سقوفًا فعالة:

استخدم Azure Boards للحصول على لوحة إعلانات المشروع الرشيقة ، وحبس الكود في مستودع GitHub ، واستخدم قوة الحوسبة السحابية الأصلية لـ GitHub Actions لقصف CI (التكامل المستمر) ، وأخيراً تصوير المنتجات المترجمة في خدمة تطبيقات Azure (النشر المستمر ، القرص المضغوط).

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

المرحلة الأولى: التفكيك العميق ، "نموذج الربط المكاني والزماني رباعي الأبعاد" للدلو العائلي

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

مركز القيادة: أزور واردز (المتطلبات والتقدم): هذا هو "عقل" المشروع. كتب مدير المنتج قصة User هنا ، وقام المهندس المعماري بتفكيك Task. أفضل ما في الأمر هو أن كل عنصر عمل هنا لديه معرف خاص (مثل #45).

مكتبة أصول الكود: GitHub Enterprise (حامل الجسد): بعد أن تلقى المطور مهمة #45 ، اكتب الكود محليًا. عندما يقومون بنقل الرمز إلى GitHub ، ما عليك سوى كتابة Fixes AzureBoards في معلومات Commit

#45 ، سيتم فتح نفق الزمان والمكان بين GitHub و Azure Boards على الفور ، وستظهر البطاقات الموجودة على كانبان تلقائيًا من "قيد التطوير" إلى "مكتملًا" ، وسيتم تثبيت تاريخ تغيير الكود تلقائيًا أسفل أمر الطلب لتحقيق تتبع تدقيق مستوى البكسل.

قاذفة القنابل الثقيلة: GitHub Actions (التكامل المستمر ، CI): طالما تم دمج الكود في الفرع الرئيسي ، سيتم إيقاظ الجهاز الظاهري (Runner) المستضاف بالكامل في خلفية GitHub على الفور. لا تحتاج إلى تزويد الخادم بنفسك ، فسوف يسحب البيئة تلقائيًا ، ويختبر الوحدة ، ويعبئتها في حزمة ضغط ثنائية.

نقطة النهاية: خدمة تطبيقات Azure (النشر المستمر ، القرص المضغوط): يتم حقن الحزمة المترجمة مباشرة بسلاسة في حاوية الويب التي يستضيفها Azure من خلال قناة خالية من الأسرار على الشبكة الداخلية الآمنة من Microsoft. يرى المستخدمون العالمون وظائف جديدة عبر الإنترنت على مستوى الثواني.

المرحلة الثانية: التمرين القتالي الفعلي 1-تقاطع العهدين لفتح نفق الزمكان بين Boards و GitHub

تأكد من أن لديك بالفعل حساب GitHub وحساب Azure.

1. بناء مقر رشيق الخاص بك

قم بتسجيل الدخول إلى بوابة Azure DevOps ، وقم بإنشاء مؤسسة جديدة ، وقم بإنشاء مشروع جديد يسمى Project-omega ، وتحدد العملية Scrum أو Agile.

بعد الدخول إلى المشروع ، انقر على "إعدادات المشروع" في الزاوية اليسرى السفلية.

في القائمة اليسرى ، ابحث عن "اتصالات GitHub" وانقر على "Connect your GitHub account".

بعد الانتهاء من التفويض ، حدد بدقة مستودع GitHub الخاص (مثل تطبيق أوميغا ويب) الذي أعدته لهذه التجربة ، وانقر على حفظ.

2. كتابة رمز مع "رمز سري"

الآن ، إلى أزور واردز

Boards (كانبان)

قم بإنشاء مهمة جديدة ، بافتراض أن المعرف الذي يعيّده النظام تلقائيًا هو

5

.

تستخدم محليا. NET 8 أو Java اكتب بضعة أسطر من رموز الويب البسيطة. عند إرسال الرمز في سطر الأوامر ، اكتب عمدًا الرمز السري لـ Commit لمواصفات المصنع الرئيسية التالية:

باش

Git add.

Git commit -m "feat: تم الانتهاء من تطوير واجهة تسجيل الدخول الأساسية ، ربط Boards AB #5"

Git push origin main

حدثت معجزة:

في هذه المرحلة ، تعود إلى صفحة Azure Boards ، قم بتحديثها ، وستجد معرف

5

بالنسبة للبطاقة ، قامت منطقة التطوير الداخلية بسحب إرسال GitHub تلقائيًا وحتى الأسطر التي تم تغييرها من الكود بوضوح. العوالم متصلة تمامًا!

المرحلة الثالثة: التمرين القتالي الفعلي 2

-- اكتب خط تجميع GitHub Actions ، مباشرة إلى السحابة

تم وضع الرمز في GitHub ، والآن يتعين علينا سحب GitHub Actions والسماح لها بتصوير المنتج النهائي تلقائيًا على Azure App Service في لحظة دمج الكود.

الخطوة 1: اذهب إلى جانب Azure للتقدم بطلب للحصول على "تصريح مجاني" (ملف عام)

يُحظر تمامًا على بنية المصنع الكبير كتابة كلمة مرور حساب المسؤول في السحابة في الكود. سنستخدم تدفق بيانات الاعتماد الأكثر أمانًا.

قم بتسجيل الدخول إلى وحدة التحكم في Azure للدخول إلى صفحة تفاصيل خدمة تطبيقات Azure التي قمت بإنشائها مسبقًا.

في شريط القوائم أعلاه مباشرة ، انقر فوق "Get Publish profile" (للحصول على ملف تعريف النشر).

في هذا الوقت سوف يقوم جهاز الكمبيوتر الخاص بك تلقائيا تحميل مفتاح التشفير الذي يحتوي على تعقيد. PublishSettings ملف نصي. افتحه ونسخه بالكامل.

بالعودة إلى صفحة مستودع GitHub الخاصة بك ، انقر على "Settings"-> "Secrets and variables"-> "Actions".

انقر فوق "New repository secret" ، الاسم يسمى AZURE_WEBAPP_PUBLISH_PROFILE ، قم بنشر المحتوى الذي تم نسخه للتو ، وانقر فوق حفظ. قفل بوابة السلامة!

الخطوة 2: YAML ، ترتيب خط التجميع التلقائي بالكامل

تحت جذر المشروع المحلي ، قم بإنشاء دليل مخفي جديد

. Github/workflows/

، قم ببناء اسم في الداخل

Deploy. yml

الملفات.

هذه الوثيقة هي "مخطط الطباعة الفولاذية" الخاص بنا. يجب أن نستخدم بناء جملة بيان نقي للسماح لـ GitHub Actions باللعب تلقائيًا:

Name: أوميغا الحديثة خط CI-CD أوتوماتيكي بالكامل

# شروط الزناد: طالما أن فرع main به رمز لدفعه ، سيتم إطلاق 10000 بندقية على الفور

On:

Push:

Branches: ["main"]

Jobs:

Build-and-deploy:

Runs-on: ubuntu-latest # أحدث قاذفات Linux مع استضافة مجانية رسمية من GitHub

Steps:

#1-سحب الكود إلى بيئة بناء الجهاز الظاهري

-Name: الخطوة الأولى: سحب أحدث شفرة المصدر

Uses: ac

Tions/checkout @ v4

#2. حقن. بيئة تشغيل NET (قم بالتبديل إلى actions/setup-java إذا كانت Java)

-Name: الخطوة الثانية: تهيئة مايكروسوفت الأساسية. بيئة NET

Uses: actions/setup-dotnet @ v4

مع:

Dotnet-version: '8.0.x'

#3. الاعتماد على الانتعاش والتجميع الأساسية

-Name: الخطوة الثالثة: الاعتماد على الانتعاش والتجميع على المستوى الصناعي

Run: |

Dotnet restore

Dotnet publish -c Release -o. /Publish-folder

#4-التسليم السلس عبر الحدود إلى Azure

-Name: الخطوة الرابعة: التسليم السلس عبر الحدود إلى Azure App Service

Uses: azure/webapps-deploy @ v3

مع:

App-name: 'your-azure-webapp-name '# استبدل لك اسم تطبيق الويب الحقيقي على Azure

Publish-profile: $ {secrets.AZURE_WEBAPP_PUBLISH_PROFILE }} # اتصل بأوراق اعتماد الأمان التي أغلقناها في GitHub

Package:. /Publish-folder

حفظ هذا الملف مباشرة

Git push

قصف في جيثب.

المرحلة الرابعة: شاهد لحظة المعجزة-اترك لوحة المفاتيح بكلتا يديه ، واستمتع بهدوء بالأتمتة

في اللحظة التي يتم فيها دفع الرمز لأعلى ، قم بسحب مستودع GitHub الخاص بك على الفور ، انقر فوق الجزء العلوي

"Actions"

علامات التبويب.

سترى دائرة تقدم ذهبية تدور بشكل محموم. انقر للداخل ، يمكنك أن ترى أن الخطوات الأربع التي كتبتها للتو في YAML تضيء الخطاف الأخضر مثل العرض العسكري (

).

جزء البناء: أكمل الجهاز الظاهري Ubuntu الذي يستضيفه GitHub سحب الكود وتجميعها في أقل من 15 ثانية.

قسم النشر: الحزمة الثنائية المترجمة ، من خلال قناة مفتاح PUBLISH_PROFILE المدفونة للتو ، عبر دفاع الشبكة العامة ، وحقنها مباشرة في حاوية Microsoft السحابية.

عادة ما تحتاج العملية برمتها فقط

45 ثانية إلى دقيقة واحدة

. عندما يضيء البند الأخير باللون الأخضر ، تقوم بسحب المتصفح وإدخال اسم نطاق موقع Azure الخاص بك ، ويتم تقديم وظائف الأعمال الجديدة تمامًا للعالم.

إذا نظرنا إلى الوراء في لوحة إعلانات أزور ، لأنك دفنت الرمز في اللجنة ، فإن هذا المعرف هو

5

تم أرشفة المهام تلقائيًا بأناقة للغاية في عمود "عبر الإنترنت". لم يعقد فريق العملية الكاملة اجتماع محاذاة ، ولم يذهب إلى وحدة التحكم ونقر بالماوس مرة واحدة ، وتم تشغيل الرمز النقي ، وكان الحرير مريحًا للغاية.

المرحلة الخامسة: تاريخ الدم والدموع في تجنب الحفر في ظل هيكل دلو الأسرة على مستوى المؤسسة

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

1. قطع الأسلوب الأصلي لـ "الفرع الرئيسي" (حماية الفرع)

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

Main

على الفرع

Push

رمز.

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

عملية تجنب الحفر القياسية للمصنع الكبير: يجب فتح "قفل حماية الفرع". أدخل إعدادات مستودع GitHub وأغلق فرع min بالقوة. الأمر التنفيذي: يمنع منعا باتا أي شخص فرع رئيسي مباشرة! يجب أولاً إنشاء فرع وظيفي محليًا ، ثم تقديمه إلى Pull Request (PR) بعد الكتابة. والتكوين في GitHub: فقط عندما تكون نتائج التكامل المستمر لـ GitHub Actions (اختبار الوحدة قيد التشغيل) مضاءة باللون الأخضر وتوقيع أحد كبار المهندسين المعماريين على الأقل بالعين المجردة ، يكون للشفرة الحق في الاندماج في الفرع الرئيسي. استخدم العملية للتشبث بالأخطاء منخفضة المستوى.

2. احذر من الإفراط في الإنفاق الحسابي الناجم عن "بناء المصفوفة"

GitHub Actions قوية جدا

كبير ، فإنه يدعم واحد يسمى

Strategy: matrix

تسمح لك تقنية Black بكتابة بضعة أسطر من التعليمات البرمجية ، فقط على Windows و Linux و macOS في نفس الوقت. NET 6 ، 7 ، 8 عدة إصدارات مختلفة

إجراء اختبار تجميع 9 مجموعات بالتوازي في نفس الوقت

.

التعرض من الداخل: توفر Microsoft حصة محدودة من القوة الحسابية لـ GitHub Actions لكل حساب مجاني (عادةً 2000 دقيقة في الشهر). إذا قمت بتشغيل بناء المصفوفة بشكل أعمى في مشروع كبير على مستوى المؤسسة ، في كل مرة يذكر فيها شخص ما العلاقات العامة ، فسوف يستهلك 9 أضعاف وقت الجهاز الافتراضي. في غضون أيام قليلة ، سيتم حرق حصة القوة الحسابية المجانية للشهر على قيد الحياة ، مما يؤدي إلى CI/CD بأكملها. يضرب خط التجميع مباشرة.

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

الخلاصة

باستخدام دلو العائلة من Microsoft لإنشاء خط التجميع الآلي CI/CD ، تم تبسيط الجوهر الصناعي الأساسي في الواقع إلى ستة عشر كلمة:

تشير kanban إلى الطريق ، والعلامة السرية ، والتجميع السحابي ، والمرافقة.

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

دفع التغييرات إلى Git

، يتم تسليم الباقي بأناقة إلى خط التجميع الأصلي للسحابة مع وميض سرعة الضوء.

1
← 返回新闻中心