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

منصات المطورين الداخلية (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: أساسيات هندسة المنصات

خذ الاختبار
نشرة أسبوعية مجانية

ابقَ على مسار النيرد

بريد واحد أسبوعياً — دورات، مقالات معمّقة، أدوات، وتجارب ذكاء اصطناعي.

بدون إزعاج. إلغاء الاشتراك في أي وقت.