أساسيات هندسة المنصات

منصات المطورين الداخلية (IDPs)

4 دقيقة للقراءة

منصة المطور الداخلية (IDP) هي طبقة من الأدوات والأتمتة تقع بين المطورين والبنية التحتية الأساسية. إنها التنفيذ الملموس لمبادئ هندسة المنصات.

بنية IDP

IDP مصممة جيداً لها خمس طبقات أساسية:

┌─────────────────────────────────────────────────────────┐
│                    بوابة المطور                         │
│              (Backstage, Port, Cortex)                   │
│    ┌──────────┬──────────┬──────────┬──────────┐        │
│    │ الكتالوج │ القوالب  │ التوثيق  │ الإضافات │        │
│    └──────────┴──────────┴──────────┴──────────┘        │
├─────────────────────────────────────────────────────────┤
│                  طبقة الخدمة الذاتية                    │
│    ┌──────────────────────────────────────────┐         │
│    │ مطالبات البنية التحتية • نشر التطبيقات   │         │
│    │ طلبات البيئة • إدارة الأسرار             │         │
│    └──────────────────────────────────────────┘         │
├─────────────────────────────────────────────────────────┤
│                    طبقة GitOps                          │
│    ┌──────────────────────────────────────────┐         │
│    │    ArgoCD • Flux • مستودعات Git          │         │
│    └──────────────────────────────────────────┘         │
├─────────────────────────────────────────────────────────┤
│              توفير البنية التحتية                       │
│    ┌──────────────────────────────────────────┐         │
│    │  Crossplane • Terraform • واجهات السحابة │         │
│    └──────────────────────────────────────────┘         │
├─────────────────────────────────────────────────────────┤
│                  طبقة Kubernetes                        │
│    ┌──────────────────────────────────────────┐         │
│    │   المجموعات • مساحات الأسماء • الموارد    │         │
│    └──────────────────────────────────────────┘         │
└─────────────────────────────────────────────────────────┘

مواصفات مكونات IDP

إليك مواصفات تفصيلية لكل مكون:

# مواصفات بنية IDP
apiVersion: platform.io/v1
kind: InternalDeveloperPlatform
metadata:
  name: acme-platform
spec:

  # الطبقة 1: بوابة المطور
  developerPortal:
    tool: backstage
    features:
      - serviceCatalog: true
      - softwareTemplates: true
      - techDocs: true
      - searchEnabled: true
    plugins:
      - kubernetes
      - github
      - pagerduty
      - prometheus

  # الطبقة 2: الخدمة الذاتية
  selfService:
    capabilities:
      - type: "infrastructure"
        provider: "crossplane"
        resources:
          - databases
          - caches
          - queues
          - storage
      - type: "environments"
        provider: "vcluster"
        options:
          - dev
          - staging
          - preview
      - type: "secrets"
        provider: "vault"

  # الطبقة 3: GitOps
  gitops:
    tool: argocd
    repositories:
      - type: "infrastructure"
        path: "infra/"
      - type: "applications"
        path: "apps/"
    syncPolicy:
      automated: true
      selfHeal: true

  # الطبقة 4: البنية التحتية
  infrastructure:
    provisioner: crossplane
    providers:
      - aws
      - gcp
    compositions:
      - AppDatabase
      - AppCache
      - AppQueue

  # الطبقة 5: Kubernetes
  kubernetes:
    clusters:
      - name: "production"
        provider: "eks"
      - name: "staging"
        provider: "eks"
    policies:
      - opa-gatekeeper
      - kyverno

قدرات الخدمة الذاتية

قوة IDP في الخدمة الذاتية. يجب أن يكون المطورون قادرين على:

القدرة التقليدي مع IDP
إنشاء خدمة جديدة تقديم تذكرة، انتظار 2-3 أيام استخدام قالب، 5 دقائق
طلب قاعدة بيانات تقديم تذكرة، انتظار أسبوع مطالبة المورد، 10 دقائق
النشر للتجهيز سؤال DevOps، انتظار ساعات دفع إلى Git، تلقائي
الحصول على السجلات/المقاييس طلب الوصول من SRE لوحات ذاتية الخدمة
إنشاء بيئة معاينة غير متاح إنشاء بنقرة واحدة
# مثال: سير عمل الخدمة الذاتية للمطور
developer_workflow:

  step1_create_service:
    action: "استخدام قالب Backstage"
    input: "اسم الخدمة، المالك، اللغة"
    output: "مستودع Git، خط أنابيب CI/CD، إدخال الكتالوج"
    time: "5 دقائق"

  step2_request_database:
    action: "تقديم مطالبة Crossplane"
    input: "نوع قاعدة البيانات، الحجم"
    output: "مثيل RDS، سلسلة الاتصال في Vault"
    time: "10 دقائق"

  step3_deploy:
    action: "الدمج إلى main"
    input: "تغييرات الكود"
    output: "ArgoCD ينشر للتجهيز"
    time: "تلقائي"

  step4_promote_production:
    action: "إنشاء علامة إصدار"
    input: "رقم الإصدار"
    output: "نشر الإنتاج"
    time: "5 دقائق"

مستويات نضج IDP

تتقدم المؤسسات عبر مستويات النضج:

المستوى 0: عشوائي
├─ لا يوجد فريق منصة
├─ كل فريق يدير بنيته التحتية
└─ معرفة قبلية

المستوى 1: موحد
├─ خطوط أنابيب CI/CD مركزية
├─ مجموعات Kubernetes مشتركة
└─ توثيق أساسي

المستوى 2: خدمة ذاتية
├─ بوابة المطور (Backstage)
├─ قوالب البرمجيات
└─ بعض الخدمة الذاتية للبنية التحتية

المستوى 3: آلي
├─ سير عمل GitOps كامل
├─ Crossplane لكل البنية التحتية
└─ تطبيق السياسة كرمز

المستوى 4: محسّن
├─ عمليات بمساعدة الذكاء الاصطناعي
├─ التوسع التنبؤي
└─ أتمتة تحسين التكلفة

معايير نجاح IDP

IDP ناجحة عندما:

success_criteria:

  developer_experience:
    - "المطورون الجدد منتجون في < يوم واحد"
    - "النشر الأول في < ساعة واحدة"
    - "لا تذاكر بنية تحتية للمهام الروتينية"

  operational_efficiency:
    - "90%+ من عمليات النشر آلية"
    - "MTTR < 30 دقيقة"
    - "توفير بنية تحتية بدون لمس"

  security_compliance:
    - "100% من عمليات النشر تجتاز فحوصات السياسة"
    - "الأسرار أبداً في Git"
    - "سجل تدقيق لجميع التغييرات"

  cost_optimization:
    - "استخدام الموارد > 60%"
    - "تنظيف تلقائي للموارد غير المستخدمة"
    - "رؤية التكلفة لكل فريق/خدمة"

في الدرس التالي، سنستكشف المسارات الذهبية والطرق الممهدة—سير العمل الموجّه الذي يجعل الخدمة الذاتية قوية. :::

اختبار

اختبار الوحدة 1: أساسيات هندسة المنصات

خذ الاختبار