التكامل مع الخدمات الخارجية
صِلوا سير عمل GitHub Actions بأدوات المراقبة والتسجيل وإدارة الحوادث التابعة لجهات خارجية.
التكامل مع الخدمات الخارجية درس مجاني في DevOps Bootcamp على CoddyKit. هذا هو الدرس 2 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في DevOps Bootcamp، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة DevOps Bootcamp 4 دروس في المجموع.
اربطوا مسارات CI/CD الخاصة بكم
مرحبًا بكم في درس دمج GitHub Actions مع الخدمات الخارجية! يعتمد تطوير البرامج الحديث على عمل العديد من الأدوات معًا.
يساعد ربط مسارات CI/CD بهذه الأدوات على أتمتة التواصل ومركزة البيانات وتحسين الكفاءة العامة للفريق.
- الإشعارات: احصلوا على تنبيهات في Slack أو Teams.
- تتبع المشكلات: أنشئوا تذاكر JIRA تلقائيًا.
- المراقبة: أرسلوا البيانات إلى Datadog أو Splunk.
Webhooks: حلقة الوصل الأساسية
تستخدم العديد من الخدمات الخارجية webhooks بوصفها طريقة أساسية لتلقي المعلومات. ويمكنكم اعتبار webhook رسالة تلقائية تُرسل من تطبيق إلى آخر عند وقوع حدث معين.
عند اكتمال سير عمل GitHub Actions أو فشله أو تنفيذه خطوة معينة، يمكنه إرسال طلب POST يتضمن بيانات إلى عنوان URL الخاص بـ webhook الذي توفره خدمة خارجية. ويؤدي ذلك إلى تشغيل إجراء في تلك الخدمة.
Slack: تنبيهات فورية
يُعد تلقي إشعارات فورية حول حالة سير العمل أمرًا بالغ الأهمية. ويُعد Slack أداة شائعة جدًا لهذا الغرض.
لإرسال رسالة إلى Slack من GitHub Actions، ستحتاجون عادةً إلى Slack Incoming Webhook URL. ويمكنكم إنشاء عنوان URL هذا من إعدادات مساحة العمل في Slack (مثلًا ضمن "Apps & integrations").
مهم: خزّنوا دائمًا عنوان URL الحساس هذا باعتباره GitHub Secret، ولا تضعوه ثابتًا في الشفرة مطلقًا!
سير عمل لتنبيهات Slack
إليكم طريقة إرسال إشعار أساسي إلى Slack باستخدام أمر curl بسيط ضمن سير العمل. ويستخدم هذا الأمر عنوان webhook المخزّن في secret باسم SLACK_WEBHOOK_URL.
يُرسل هذا المثال إشعارًا عند كل عملية push إلى main.
name: Slack Notification Demo
on:
push:
branches:
- main
jobs:
notify:
runs-on: ubuntu-latest
steps:
- name: Send Slack Notification
run: |
curl -X POST -H 'Content-type: application/json' \
--data '{"text":"GitHub Actions workflow *${{ github.workflow }}* for commit `{{ github.sha }}` by _${{ github.actor }}_ on branch `${{ github.ref_name }}` has completed!"}' \
${{ secrets.SLACK_WEBHOOK_URL }}تبسيط التكامل باستخدام إجراءات Marketplace
على الرغم من أن curl يعمل، يمكن تبسيط العديد من عمليات التكامل باستخدام GitHub Marketplace Actions الجاهزة مسبقًا. إذ تغلّف هذه الإجراءات منطق التفاعل مع خدمات محددة، مما يجعل مسارات سير العمل أنظف وأسهل قراءة.
يمكنكم البحث في GitHub Marketplace عن إجراءات تتصل بالخدمة التي تريدونها. فعلى سبيل المثال، تتوفر إجراءات عديدة لـ Slack وJIRA وMicrosoft Teams وغيرها.
JIRA: أتمتة تتبع المشكلات
يمكن أن يؤدي التكامل مع أنظمة تتبع المشكلات مثل JIRA إلى أتمتة مهام مثل:
- إنشاء تذكرة خطأ جديدة عند فشل سير العمل.
- إضافة تعليقات إلى المشكلات الحالية استنادًا إلى أحداث طلبات السحب.
- تحديث حالات المشكلات مع تقدم الشفرة عبر مسار CI/CD.
يساعد ذلك على إبقاء فريقي التطوير والعمليات على توافق من دون تدخل يدوي.
سير عمل لمشكلات JIRA
يستخدم هذا المثال إجراءً شائعًا من Marketplace لإنشاء مشكلة في JIRA إذا فشل سير عمل معين (مثل سير عمل CI الخاص بكم). لاحظوا كيف يستخدم GitHub Secrets للمصادقة.
يتيح المشغّل workflow_run لسير العمل هذا الاستجابة لاكتمال سير عمل آخر.
name: JIRA Issue on Failed Workflow
on:
workflow_run:
workflows: ["Your CI Workflow Name Here"]
types:
- completed
jobs:
create_issue:
if: ${{ github.event.workflow_run.conclusion == 'failure' }}
runs-on: ubuntu-latest
steps:
- name: Create JIRA Bug Ticket
uses: atlassian/github-jira-action@v2.1.0
with:
jira-base-url: ${{ secrets.JIRA_BASE_URL }}
jira-user-email: ${{ secrets.JIRA_USER_EMAIL }}
jira-api-token: ${{ secrets.JIRA_API_TOKEN }}
project: 'DEV'
issue-type: 'Bug'
summary: 'Workflow failed: ${{ github.event.workflow_run.workflow_name }}'
description: 'Workflow run URL: ${{ github.event.workflow_run.html_url }}\nFailed commit: ${{ github.event.workflow_run.head_sha }}'الاتصال بأدوات المراقبة والسجلات
إلى جانب الإشعارات وتتبع المشكلات، يمكنكم الدمج مع أدوات متقدمة للمراقبة وتسجيل السجلات مثل Datadog وSplunk وNew Relic أو مجمّعات السجلات المخصصة.
- المقاييس: أرسلوا مقاييس مخصصة حول أوقات الإنشاء أو نتائج الاختبارات.
- السجلات: أعيدوا توجيه سجلات سير العمل لإجراء تحليل مركزي.
- التتبع: اربطوا أحداث النشر بأداء التطبيق.
غالبًا ما تتطلب عمليات التكامل هذه واجهات API محددة أو إجراءات Marketplace مخصصة يوفرها مورّدو الأدوات.
تأمين عمليات التكامل
يُعد الأمان أمرًا بالغ الأهمية عند التكامل مع الخدمات الخارجية. فغالبًا ما ستتعاملون مع مفاتيح API والرموز المميزة وعناوين URL الخاصة بـ webhook، وهي بيانات تمنح إمكانية الوصول إلى حساباتكم الخارجية.
استخدموا دائمًا GitHub Secrets لتخزين بيانات الاعتماد الحساسة هذه. ولا تضعوها ثابتة في ملفات سير العمل مباشرةً مطلقًا. فهذا يمنع كشفها عن طريق الخطأ ويحافظ على أمان بيانات الاعتماد.
اختبار سريع: أمان التكامل
تحتاجون إلى ربط سير عمل GitHub Actions الخاص بكم بنظام خارجي لإدارة الحوادث باستخدام مفتاح API. ما الطريقة الأكثر أمانًا والموصى بها للتعامل مع مفتاح API هذا في سير العمل؟
مراجعة: مسارات سير العمل المتكاملة
لقد تعلمتم كيفية دمج مسارات سير عمل GitHub Actions الخاصة بكم مع مجموعة متنوعة من الخدمات الخارجية!
- تُعد Webhooks آلية شائعة لهذه الاتصالات.
- يُعد كل من Slack وJIRA مثالين شائعين للإشعارات وتتبع المشكلات.
- تعمل GitHub Marketplace Actions على تبسيط عمليات التكامل المعقدة.
- استخدموا دائمًا GitHub Secrets لإدارة بيانات الاعتماد الحساسة، مثل مفاتيح API وعناوين URL الخاصة بـ webhook، بأمان.
تجعل عمليات التكامل هذه مسارات CI/CD الخاصة بكم أكثر قوة واتصالًا بالنظام الأوسع الذي يعمل فيه فريقكم.
الأسئلة الشائعة
هل درس «التكامل مع الخدمات الخارجية» مجاني؟
نعم — نص درس «التكامل مع الخدمات الخارجية» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة DevOps Bootcamp، انتقل إلى CoddyKit PRO. تتضمن دورة DevOps Bootcamp 4 دروس في المجموع.
ماذا ستتعلم في «التكامل مع الخدمات الخارجية»؟
صِلوا سير عمل GitHub Actions بأدوات المراقبة والتسجيل وإدارة الحوادث التابعة لجهات خارجية. تتمرن على DevOps Bootcamp مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ DevOps Bootcamp؟
لا تُشترط خبرة سابقة. DevOps Bootcamp على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 2 من أصل 4.
كم من الوقت يستغرق درس «التكامل مع الخدمات الخارجية»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس DevOps Bootcamp هذا؟
نعم. كل درس في DevOps Bootcamp يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- استراتيجيات مراقبة المسارات
- التكامل مع الخدمات الخارجية
- إعداد الإشعارات والتنبيهات
- التسجيل المنظّم والتتبّع الموزّع