🌐 Detecting your location…
📢 Advertisement — Configure AdSense in Appearance → Customize → AdSense Settings

أسئلة مقابلة CI/CD لعام 2026: الأعلام الزرقاء والخضراء والكناري والأعلام المميزة

⏱️3 min read  ·  457 words

تختبر أسئلة مقابلة CI/CD فهمك للتكامل المستمر وخطوط النشر واستراتيجيات الاختبار وأنماط إصدار الإنتاج. يغطي هذا الدليل أسئلة CI/CD الأكثر شيوعًا لمهندسي DevOps وكبار المطورين في عام 2026.

مفاهيم CI/CD الأساسية

1. ما الفرق بين التكامل المستمر والتسليم والنشر؟

  • التكامل المستمر (CI): يقوم المطورون بدمج التعليمات البرمجية بشكل متكرر (يوميًا). يؤدي كل دمج إلى إجراء اختبارات تلقائية.
  • التسليم المستمر (قرص مضغوط): الكود دائمًا في حالة قابلة للنشر. يتم النشر في الإنتاج يدويًا (نقرة واحدة).
  • النشر المستمر: يتم نشر كل إصدار عابر تلقائيًا في الإنتاج. لا حاجة للموافقة اليدوية.

2. ما الذي يجب أن يتضمنه خط أنابيب CI؟

# Ideal CI pipeline stages (GitHub Actions example)
name: CI Pipeline
on: [push, pull_request]

jobs:
  # Stage 1: Fast feedback (< 2 min)
  fast-checks:
    steps:
      - lint         # code style
      - type-check   # TypeScript/mypy
      - security-scan  # pip-audit, npm audit, SAST
      - build        # compile/bundle

  # Stage 2: Tests (< 10 min)
  test:
    needs: fast-checks
    steps:
      - unit-tests      # fast, isolated
      - integration-tests  # with real DB

  # Stage 3: Quality gates
  quality:
    needs: test
    steps:
      - coverage-check   # fail if < 80%
      - performance-test  # detect regressions

  # Stage 4: Build artifact
  build-image:
    needs: quality
    steps:
      - docker-build
      - docker-push      # push to registry
      - container-scan   # Trivy vulnerability scan

3. شرح النشر باللونين الأزرق والأخضر

Blue-Green Deployment:
  Blue environment: current production (v1.0)
  Green environment: new version (v1.1)

Steps:
  1. Deploy v1.1 to green (separate environment)
  2. Run smoke tests on green
  3. Switch load balancer to point to green
  4. Blue is now idle (keep for rollback)
  5. If issues: switch back to blue instantly

Benefits:
  - Zero downtime deployment
  - Instant rollback (flip load balancer back)
  - Can run full tests on green before switching

Drawback:
  - Requires 2x infrastructure cost
  - DB schema changes are tricky (must be backward compatible)

4. ما هو نشر الكناري؟

Canary Deployment: gradually shift traffic to new version

10% users → new version
   Monitor error rates, latency, business metrics
   If OK: increase to 25%, 50%, 100%
   If bad: route 100% back to old version

Tools:
  - Kubernetes: traffic splitting via Ingress/Istio
  - AWS: Application Load Balancer weighted target groups
  - Cloudflare: percentage-based routing

Canary vs Blue-Green:
  Canary: gradual rollout, real user testing, slower
  Blue-Green: instant switch, all-or-nothing

5. كيف يمكنك تطبيق علامات الميزات في CI/CD؟

# Feature flags decouple deployment from release
# Deploy code → behind flag → enable for subset of users

# Simple feature flag
ENABLE_NEW_CHECKOUT = os.getenv("ENABLE_NEW_CHECKOUT", "false") == "true"

if ENABLE_NEW_CHECKOUT:
    return new_checkout_flow()
else:
    return legacy_checkout()

# Advanced: Unleash or LaunchDarkly
from unleash_client import UnleashClient

client = UnleashClient(url="https://unleash.mycompany.com")
client.initialize_client()

# Gradual rollout to % of users
if client.is_enabled("new-dashboard", context={"userId": user_id}):
    return new_dashboard()
else:
    return old_dashboard()

# Benefits:
# - Separate deployment from release
# - A/B testing built-in
# - Instant kill switch if issues
# - Roll out to % of users

6. ما هو اختبار التحول إلى اليسار؟

Shift-left: نقل الاختبار مبكرًا في دورة التطوير.

  • تقليدي: كتابة التعليمات البرمجية → اختبارات فريق ضمان الجودة → العثور على الأخطاء في وقت متأخر = باهظ الثمن
  • التحول لليسار: اختبارات الكتابة أولاً (TDD)، اختبارات الوحدة في CI، الآلية في كل العلاقات العامة
  • فوائد: الأخطاء الموجودة في عملية التطوير تكلف إصلاحها أقل بـ 10 مرات من الأخطاء الموجودة في الإنتاج

7. شرح استراتيجيات النشر لعمليات ترحيل قاعدة البيانات

Database migrations are the hardest part of zero-downtime deployments.

Pattern: Expand and Contract (3-phase deployment)

Phase 1: Expand (add new column, keep old)
  ALTER TABLE users ADD COLUMN email_v2 VARCHAR(255);
  Application writes to BOTH old and new column

Phase 2: Backfill
  UPDATE users SET email_v2 = email WHERE email_v2 IS NULL;

Phase 3: Contract (remove old column)
  Application reads from new column only
  ALTER TABLE users DROP COLUMN email;

Why not just ALTER TABLE in one step?
  - Large tables lock for minutes/hours
  - pg_repack or pt-online-schema-change for zero-downtime ALTER
  - Requires coordination with application deployment

نجاح مقابلة CI/CD: معرفة الفرق بين CI وCD (التسليم) وCD (النشر)، وشرح اللون الأزرق والأخضر مقابل الكناري بوضوح مع المقايضات، ومناقشة علامات الميزات لتقليل المخاطر، وإظهار المعرفة باستراتيجيات ترحيل قاعدة البيانات لعمليات النشر بدون توقف. تركز الأدوار العليا على مقاييس الموثوقية (مقاييس DORA: تكرار النشر، والمهلة الزمنية، وMTTR، ومعدل فشل التغيير).

✍️ Leave a Comment

Your email address will not be published. Required fields are marked *

🌐 Read in:🇬🇧 English🇩🇪 Deutsch🇧🇷 Português🇸🇦 العربية🇮🇳 हिन्दी🇧🇩 বাংলা