الأتمتة: دراسة متعمقة لـ Azure DevOps في بيئة Azure

مدونة

الأتمتة: دراسة متعمقة لـ Azure DevOps في بيئة Azure

  • HOME
  • News & Blog
  • الأتمتة: دراسة متعمقة لـ Azure DevOps في بيئة Azure

نؤمن في Intwo، بأن الأتمتة عنصر جوهري لضمان جودة العمليات، إذ تُسهم في تقليل الأخطاء والحدّ من الأعباء التشغيلية.

ومن خلال منهجيتنا في DevOps ومعايير الأتمتة لدينا، ساعدنا أحد عملائنا البارزين، وهو Brunel، في تجاوز عدد من التحديات التي واجهها عند تنفيذ خدمة جديدة على Azure. وفيما يلي عرض تفصيلي لأبرز المزايا التي جُنيت عبر أسلوب الأتمتة، إلى جانب استعراض معمّق للكيفية التي نوصي بها باستخدام Azure DevOps.

Azure DevOps

نظرة عامة

كانت Brunel تسعى إلى توفير خدمات أسطح المكتب الافتراضية لموظفيها لتمكينهم من الوصول الآمن إلى مجموعة واسعة من تطبيقات الأعمال الإقليمية والعالمية في مختلف أنحاء العالم. وكانت Brunel تقدّم خدمات مماثلة عبر الحلول التقليدية المكافئة؛ غير أن الكفاءة وقابلية التوسع والتكلفة والمرونة كانت تمثّل هواجس رئيسية.

كما كانت هناك بعض التعقيدات التشغيلية القائمة. فبالإضافة إلى حاجة كل منطقة إلى تطبيقات مختلفة، كان لا بدّ من مراعاة العناصر التالية:

  • الإعداد اليدوي لتطبيقات الأعمال (LOB)
  • التطبيقات القديمة
  • العملية المستهلِكة للوقت اللازمة لإنشاء الصورة المصدرية مع كل التطبيقات المثبَّتة والمهيّأة
  • تحديثات نظام التشغيل والتطبيقات المتكررة
  • الخطأ البشري

وكما يمكنكم أن تتصوروا، فإن إنشاء الصور المصدرية وإدارتها وتحديثها كان عملية يدوية ومستهلِكة للوقت، ومن السهل أن ترهق قسم تقنية المعلومات في أي مؤسسة.

وهنا يأتي دور Azure DevOps والأتمتة لإنقاذ الموقف. فعند النظر إلى العملية، نرى فرصاً كثيرة لأتمتة المهام المتكررة والاعتيادية.

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

وتمثّلت أبرز المزايا التي حصل عليها العميل فيما يلي:

  • الوقت الذي توفّره على المستوى التشغيلي — إذ تمكّنا، لصالح Brunel، من تقليص زمن إتاحة صورة سطح المكتب المصدرية من أسابيع إلى ساعات (3.5 ساعة تحديداً)، ومن تقليص زمن طرح بنية تحتية جديدة لسطح المكتب الافتراضي مهيّأة بالكامل من أيام إلى دقائق عبر الأتمتة. كما جرى تبسيط عملية التصحيحات الشهرية المستمرة لتصبح عمليات طرح تحديثات ميسّرة.
  • تحسينات الجودة — إذ ضمنت قابلية التكرار بين مناطق العميل نشر البنية التحتية والإعدادات ذاتها بصورة متسقة. فقد أُنشئت الأتمتة مرة واحدة وفقاً لكل المتطلبات (الحجم، والأمن، والامتثال)، ثم شُغّلت في جميع المناطق. ولم تعد الأخطاء البشرية أو التباينات بين الإعدادات اليدوية، التي عادةً ما تحدث، مصدر قلق؛ لأن الرمز البرمجي نفسه استُخدم لكل منطقة.
  • تتبّع التغييرات — إذ يُوثَّق كل شيء ويُختم زمنياً. فكل عملية نشر أو تعديل أو تحديث أو إزالة، وما إلى ذلك، مُوثَّقة. على سبيل المثال، حدثت مشكلة في صورة مضيف جديدة لـ Azure Virtual Desktop (AVD) كانت قيد النشر والاختبار. وقد زوّدنا التتبّع داخل Azure DevOps بكل عنصر تغيّر منذ آخر صورة سليمة معروفة. فتمكّنا من تحديد المشكلة بمجرد التراجع عن التغييرات ذات الصلة.

إذاً، ما هو DevOps؟

DevOps هو منهجية محدّدة للتسليم الرشيق والمرِن للبنية التحتية أو البرمجيات، تقوم على دمج التطوير والعمليات بصورة سلسة ومتكاملة.

كيفية البدء بـ DevOps في Azure

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

في Intwo، ومن أجل عمليات النشر والتشغيل الجديدة على Azure، فإن سلاحنا المفضّل هو Azure DevOps مع مستودعات Git.

البنية التحتية بوصفها رمزاً برمجياً (ARM Templates, CLI, PowerShell, Terraform etc.)

البنية التحتية بوصفها رمزاً برمجياً (IaC) هي عملية إدارة خدمات Azure وتزويدها من خلال ملفات تعريفية (قابلة للقراءة من قِبَل Azure Resource Manager في حالة Azure Cloud)، بدلاً من التفاعل اليدوي. وهناك عدة طرق لتحقيق ذلك على منصة Azure. والمنصة الأساسية تُعرف باسم Azure Resource Manager.

Azure Resource Manager هو خدمة النشر والإدارة الخاصة بـ Azure Cloud. وهو يوفّر طبقة الإدارة التي تُمكّنكم من التفاعل مع المنصة بطريقة قابلة للبرمجة لإنشاء الموارد أو تحديثها أو حذفها.

Infrastructure as Code

هناك عدة طرق يمكنكم من خلالها التفاعل مع طبقة الإدارة هذه. وفيما يلي بعضها:

  • قوالب Json (ARM Templates)
  • Rest API
  • PowerShell
  • Azure CLI
  • Azure SDKs
  • أدوات الطرف الثالث مثل Terraform/Packer.

يمكنكم استخدام أي من الخيارات المذكورة أعلاه، بأي مزيج، بحسب متطلباتكم. وبمجرد اختيار سلاحكم المفضّل (ARM Templates, PowerShell etc.)، عليكم البدء بتدوين الموارد المطلوبة واعتماد اصطلاح تسمية للموارد.

ويمكنكم استخدام IaC لإدارة دورة حياة الموارد، مثل الإنشاء والتهيئة والتحديث والحذف أو التقاعد.

المنصة

بمجرد أن تبدؤوا بالرمز البرمجي، ستحتاجون إلى مكان مركزي لتخزين ذلك الرمز، وأمامنا هنا أيضاً عدة خيارات متاحة، مثل:

  • Azure DevOps
  • GitHub
  • Bitbucket
  • Microsoft DevOps Server (on Premises)، المعروف سابقاً باسم TFS Server

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

المستودع

المستودع، المعروف اختصاراً بـ repo، هو المكان الذي يُحفظ فيه كل الرمز البرمجي الخاص بكم. ويمكنكم امتلاك مستودعات منفصلة لمشاريع مختلفة.

Repository

الفروع

تُيسّر الفروع عزل العمل الجاري عن العمل المُنجَز، وبيئة الإنتاج عن بيئة الاختبار، وهكذا.

بنية التفريع

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

  • فرع جديد لكل ميزة جديدة أو إصلاح خطأ
  • الاحتفاظ بفرع إنتاج مستقر ومنفصل

استخدام اصطلاح تسمية جيد للفروع لتسهيل التمييز. على سبيل المثال:

  • Production/ReleaseV1
  • Acceptance/BugfixNameOrCode
  • Dev/FeatureNameOrCode

خطوط الأنابيب (Build & Release)

والآن بعد أن أصبح لدينا IaC (قوالب، وسكربتات، وما إلى ذلك)، نحتاج إلى وسيلة لتنفيذها، وهنا يأتي دور خطوط أنابيب Azure. تجمع خطوط الأنابيب بين التكامل المستمر والتسليم المستمر (CI/CD)؛ ويمكن كذلك إضافة الاختبار. ويمكن استخدام خطوط الأنابيب لتنفيذ مراحل مختلفة من نشر البنية التحتية، مثل landing zones والخدمات وتهيئة تلك الخدمات.

بنية خط الأنابيب

يمكنكم تنظيم خطوط الأنابيب الخاصة بكم بطريقة استراتيجية، فمثلاً بإنشاء خط أنابيب لطرح landing zone، وخط أنابيب منفصل لنشر IaaS وتهيئتها، أو يمكنكم إنشاء خط أنابيب لبيئتَي التطوير والإنتاج.

Pipeline Structure

المهام (Jobs)

تُقسَّم خطوط الأنابيب كذلك إلى مهام (jobs)، فمثلاً يمكن أن تكون لديكم مهمة لإنشاء شبكة، ومهمة ثانية لإنشاء بوابة VPN، وهكذا.

Jobs

المهام الفرعية (Tasks)

تُقسَّم المهام (Jobs) كذلك إلى مهام فرعية (tasks). فعلى سبيل المثال، يمكنكم إنشاء آلة افتراضية (VM) في المهمة الفرعية الأولى، ثم إضافتها إلى نطاق (domain) في المهمة الفرعية التالية.

تخزين بيانات الاعتماد بأمان

ستستلزم أتمتة أي عملية نشر بيانات اعتماد للوصول إلى البيئة. ويكتسي تخزين هذه البيانات واستخدامها أهمية بالغة لضمان بقاء الوصول إلى البيئة آمناً.

ويُعدّ تخزين بيانات الاعتماد في Azure Key Vault بوصفها Secrets وسيلة ممتازة لإدارة من أو ما يمكنه الوصول إليها، وتتبّع ذلك الوصول، والتأكد من إتاحتها لمجموعة الأدوات الخاصة بكم.

يوفّر Azure DevOps عدة طرق مختلفة للتكامل مع Azure Key Vaults. ومن الطرق البسيطة للتكامل إنشاء Library Variable Group في Azure DevOps. ويمكن اختيار الاشتراك المحدد وkey vault والمفاتيح لاستخدامها بوصفها متغيرات ضمن خطوط الأنابيب. كما يمكن كذلك تحديد خطوط الأنابيب المحدّدة التي يجوز لها استخدام المفاتيح، تطبيقاً لمبدأ الحدّ الأدنى من الصلاحيات.

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

إدارة المنتج/المشروع

من المكوّنات المفيدة الأخرى المتاحة ضمن Azure DevOps تلك المتعلقة بالإدارة. إذ يمكن استخدام Boards داخل Azure DevOps لإدارة عناصر العمل، وقائمة الأعمال المتراكمة (backlog)، وتتبّع المشكلات، والـ sprints، والمزيد. وتُدعم منهجيتا Scrum وAgile افتراضياً لتيسير العمل بين أعضاء الفريق كله. ويمكن تتبّع كل شيء في مكان واحد، وهو ما يُبسّط منظومة DevOps برمّتها من خلال توفير مكان واحد لإدارة عمليات النشر التقنية وعناصر المشروع.

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

الأسئلة الشائعة

نعم، يمكن لمزوّد Azure المُدار مثل Intwo تصميم وتنفيذ خطوط أنابيب CI/CD (التكامل المستمر والنشر المستمر) لتطبيقاتكم. فنحن نُؤتمت عمليات البناء والاختبار والنشر لديكم بحيث تنساب تغييرات الرمز البرمجي من التطوير إلى الإنتاج بأقل قدر ممكن من الجهد اليدوي. وتُفيد خطوط أنابيب CI/CD في تقليل الأخطاء، وتسريع الإصدارات، والحفاظ على الاتساق. وتعمل Intwo مع أدوات مثل Azure DevOps وGitHub Actions أو خدمات الطرف الثالث، بما يتوافق مع ممارسات التطوير لديكم. وهدفنا هو تعزيز التعاون بين الفرق، وتقصير دورات الإصدار، وتقديم أتمتة موثوقة تتوسّع مع نمو أعمالكم.

نعم، تدعم فرق Azure المُدارة في Intwo أتمتة البنية التحتية باستخدام Terraform وAzure Bicep وقوالب ARM. وتتيح لكم هذه الأدوات تعريف البنية التحتية السحابية بوصفها رمزاً برمجياً، وهو ما يجعل عمليات النشر قابلة للتكرار ومُصدَّرة وقابلة للتدقيق. ويعمل Terraform جيداً في البيئات متعددة السُحُب، في حين يعمل Bicep وقوالب ARM جيداً في Azure. ويختار فريقنا الأداة المناسبة بحسب أهداف المشروع ومدى تعقيده وخبرة الفريق. وباستخدام البنية التحتية بوصفها رمزاً برمجياً، تُقلّلون عدد الخطوات اليدوية، وتُلغون انحراف الإعدادات، وتُبسّطون البيئات من التطوير إلى الإنتاج. ونساعد أيضاً في إدارة إصدارات القوالب، والتصميم المعياري، والتكامل مع خطوط الأنابيب المُؤتمتة.

نعم. من ضمن القدرات التي تقدّمها خدمات Azure المُدارة في Intwo أتمتة DevOps. ويعني ذلك أننا ندعم سير عمل البناء والاختبار والتسليم المُؤتمت، والبنية التحتية بوصفها رمزاً برمجياً، وتنبيهات المراقبة، وتحسين خط أنابيب التسليم. ويمكن لأتمتة DevOps أن تُساعد الفرق على العمل بسرعة أكبر، وارتكاب أخطاء أقل، والحفاظ على الاتساق بين بيئات كل إصدار. وتشمل خدماتنا صيانة خطوط الأنابيب، والتكامل مع التحكم في الإصدارات، وإدارة القطع الأثرية (artifacts)، وممارسات التحسين المستمر. وبإدخال الأتمتة إلى العمليات اليومية، نُتيح دورات تسليم أسرع، وعمليات أكثر مرونة، وتعاوناً مُعزَّزاً بين فرق التطوير والعمليات.

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

تُساعد الأتمتة على تحسين جودة النشر لأنها تُلغي الخطوات اليدوية التي قد تُدخل أخطاء أو حالات عدم اتساق. وتُنفَّذ الاختبارات المُؤتمتة في كل مرة يتغيّر فيها الرمز البرمجي، وهو ما يُساعد على اكتشاف العيوب مبكراً. وتُساعد خطوط أنابيب CI/CD على توحيد الطريقة التي يُبنى بها الرمز البرمجي ويُتحقّق منه ويُسلَّم عبر البيئات. ويُتيح التزويد المُؤتمت للبنية التحتية الوصول إلى إعدادات معروفة وسليمة. وتُفضي هذه الممارسات إلى عمليات نشر قابلة للتنبؤ، وخيارات تراجع أبسط، ومفاجآت أقل في بيئة الإنتاج. وتُركّز Intwo على بناء أتمتة تُتيح السرعة والاستقرار معاً، بحيث تكون عمليات النشر موثوقة وقابلة للتكرار.

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

تشمل الأدوات الشائعة لأتمتة Azure خدمات Azure DevOps وGitHub Actions وTerraform وAzure Bicep وقوالب ARM وسكربتات Azure CLI. ويُوفّر Azure DevOps لوحات (Boards) ومستودعات وخطوط أنابيب وخطط اختبار متكاملة. ويُقدّم GitHub Actions أتمتة مرنة عبر سير عمل أصلي مع Git. ويُساعد Terraform وBicep على إدارة البنية التحتية بوصفها رمزاً برمجياً. وتعمل هذه الأدوات معاً لأتمتة البناء والنشر وتزويد البيئات. وتختار Intwo الأدوات الأنسب بناءً على منظومتكم القائمة، ومهارات الفريق، والأهداف بعيدة المدى لتقديم أتمتة فاعلة تنمو مع أعمالكم.

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

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

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

X
هل تحتاج إلى مساعدة؟
تواصل معنا →