spinny:~/writing $ vim platform-engineering-internal-developer-platform.md
1~2مع تزايد تعقيد أنظمة البرمجيات - الخدمات المصغرة، Kubernetes، السحابة المتعددة، خطوط أنابيب CI/CD، أدوات المراقبة - يقضي المطورون وقتًا أكبر على البنية التحتية ووقتًا أقل في بناء المنتجات. يحل **Platform Engineering** هذه المشكلة من خلال إنشاء منصة داخلية تجرد التعقيد وتوفر للمطورين أدوات خدمة ذاتية للتسليم بشكل أسرع.3~4تتوقع Gartner أنه بحلول عام 2027، ستنشئ **80% من مؤسسات هندسة البرمجيات** فرق منصات. في هذا الدليل، سنستكشف ما هو Platform Engineering، ولماذا هو مهم، وكيفية بناء Internal Developer Platform من الصفر.5~6## ما هو Platform Engineering؟7~8Platform Engineering هو تخصص تصميم وبناء سلاسل الأدوات وسير العمل التي تمكن قدرات الخدمة الذاتية لمؤسسات هندسة البرمجيات. الناتج هو **Internal Developer Platform (IDP)** - طبقة تقع بين المطورين والبنية التحتية.9~10```mermaid11graph TD12 subgraph "Developers"13 D1[Frontend Team]14 D2[Backend Team]15 D3[Data Team]16 end17~18 subgraph "Internal Developer Platform"19 Portal[Developer Portal]20 Templates[Service Templates]21 CICD[CI/CD Pipelines]22 Infra[Infrastructure Abstraction]23 end24~25 subgraph "Infrastructure"26 K8s[Kubernetes]27 Cloud[Cloud Services]28 DB[Databases]29 Monitor[Monitoring]30 end31~32 D1 --> Portal33 D2 --> Portal34 D3 --> Portal35 Portal --> Templates36 Portal --> CICD37 Portal --> Infra38 Infra --> K8s39 Infra --> Cloud40 Infra --> DB41 CICD --> Monitor42```43~44### Platform Engineering مقابل DevOps45~46Platform Engineering ليس بديلاً عن DevOps - إنه التطور التالي. قال DevOps "أنت تبنيه، أنت تشغله." يقول Platform Engineering "سنجعل البناء والتشغيل بلا جهد."47~48| الجانب | DevOps | Platform Engineering |49|--------|--------|---------------------|50| **التركيز** | الثقافة والممارسات | المنتجات والخدمة الذاتية |51| **النهج** | كل فريق يدير البنية التحتية | فريق المنصة يجرد البنية التحتية |52| **العبء المعرفي** | عالي (كل فريق يتعلم كل شيء) | منخفض (المسارات الذهبية متوفرة) |53| **الناتج** | خطوط أنابيب CI/CD، سكربتات IaC | Internal Developer Platform |54| **المستخدمون** | جميع الهندسة | فريق المنصة يخدم الهندسة |55~56## لماذا Platform Engineering مهم57~58### مشكلة العبء المعرفي59~60في مؤسسة حديثة نموذجية، يحتاج المطور إلى فهم:61~62- سير عمل Git واستراتيجيات التفريع63- تكوين خطوط أنابيب CI/CD64- بناء الحاويات وإدارة السجلات65- ملفات Kubernetes و Helm Charts66- خدمات مزود السحابة (AWS/GCP/Azure)67- الشبكات، DNS، شهادات TLS68- إعداد المراقبة والتسجيل والتنبيه69- توفير قواعد البيانات والترحيلات70- سياسات الأمان والامتثال71~72هذا عبء معرفي هائل يصرف الانتباه عن المنتج الفعلي.73~74### المسار الذهبي75~76يقدم Platform Engineering مفهوم **المسارات الذهبية** - مسارات محددة الرأي، مدعومة جيدًا وموثقة للمهام الشائعة. المسار الذهبي ليس إلزاميًا؛ يمكن للمطورين *الانحراف*، لكن المنصة تجعل الشيء الصحيح هو الشيء السهل.77~78```mermaid79flowchart LR80 Dev[Developer] -- "Create new service" --> Portal[Portal]81 Portal -- "Select template" --> Template[Service Template]82 Template -- "Auto-provision" --> Repo[Git Repository]83 Template --> Pipeline[CI/CD Pipeline]84 Template --> Infra[Kubernetes Namespace]85 Template --> Monitor[Dashboards + Alerts]86 Repo --> Ready[Ready to Code!]87```88~89**مثال على المسار الذهبي لإنشاء خدمة مصغرة جديدة:**901. يختار المطور "خدمة خلفية جديدة" في البوابة912. يختار اللغة/الإطار (Node.js، Go، Python)923. تنشئ المنصة تلقائيًا: مستودع Git، خط أنابيب CI/CD، فضاء أسماء Kubernetes، لوحات مراقبة، وقواعد تنبيه934. يستنسخ المطور المستودع ويبدأ البرمجة فورًا94~95## بناء Internal Developer Platform96~97### الطبقة 1: بوابة المطورين98~99البوابة هي نقطة الدخول الوحيدة للمطورين. الخيار مفتوح المصدر الأكثر شعبية هو **Backstage** (أنشأته Spotify، وهو الآن مشروع CNCF).100~101الميزات الرئيسية:102- **كتالوج الخدمات**: كل خدمة، مالكها، وثائقها وتبعياتها103- **قوالب البرمجيات**: هيكلة للخدمات الجديدة مع أفضل الممارسات المدمجة104- **الوثائق التقنية**: التوثيق كرمز، معروض وقابل للبحث105- **نظام الإضافات**: قابل للتوسيع بوظائف مخصصة106~107```yaml108# backstage/catalog-info.yaml109apiVersion: backstage.io/v1alpha1110kind: Component111metadata:112 name: user-service113 description: Manages user accounts and authentication114 annotations:115 github.com/project-slug: myorg/user-service116 backstage.io/techdocs-ref: dir:.117spec:118 type: service119 lifecycle: production120 owner: team-auth121 system: identity-platform122 dependsOn:123 - resource:postgresql-main124 providesApis:125 - user-api126```127~128### الطبقة 2: تجريد البنية التحتية129~130لا ينبغي للمطورين كتابة Terraform أو Kubernetes YAML مباشرة. يجب أن توفر المنصة تجريدات.131~132**الأدوات:**133- **Crossplane**: توفير بنية تحتية أصلية لـ Kubernetes134- **Terraform مع الوحدات**: وحدات بنية تحتية مبنية مسبقًا ومختبرة135- **Pulumi**: البنية التحتية كرمز حقيقي (TypeScript، Python، Go)136~137```yaml138# Example: Crossplane composition for a database139apiVersion: database.example.com/v1140kind: PostgreSQLInstance141metadata:142 name: user-db143spec:144 size: small # Abstraction: small = 2 vCPU, 4GB RAM145 version: "16"146 backup: daily147 team: auth-team148```149~150بدلاً من تكوين معاملات RDS، شبكات VPC الفرعية، مجموعات الأمان، وسياسات النسخ الاحتياطي، يحدد المطور ببساطة `size: small` و `backup: daily`. المنصة تتولى الباقي.151~152### الطبقة 3: توحيد CI/CD153~154قم بتوحيد CI/CD حتى لا يبني كل فريق خطوط أنابيبه الخاصة.155~156```yaml157# .github/workflows/platform-ci.yml158# Teams just include the shared workflow159name: Build and Deploy160on:161 push:162 branches: [main]163~164jobs:165 pipeline:166 uses: myorg/platform-workflows/.github/workflows/standard-pipeline.yml@v2167 with:168 language: node169 deploy-target: production170 secrets: inherit171```172~173**الممارسات الرئيسية:**174- قوالب CI/CD مشتركة تضمها الفرق (لا تنسخها)175- فحص أمني تلقائي (SAST، تدقيق التبعيات)176- استراتيجيات نشر موحدة (canary، blue/green)177- تراجع تلقائي عند فشل فحوصات الصحة178~179### الطبقة 4: المراقبة180~181مراقبة مكونة مسبقًا حتى يحصل المطورون على لوحات المعلومات والتنبيهات جاهزة للاستخدام.182~183- **المقاييس**: Prometheus + Grafana مع لوحات معلومات قياسية لكل خدمة184- **التسجيل**: تسجيل منظم مع جمع مركزي (Loki، ELK)185- **التتبع**: تتبع موزع مع OpenTelemetry186- **التنبيه**: تكامل PagerDuty/Opsgenie مع إعدادات افتراضية معقولة187~188```mermaid189graph LR190 Service[Your Service] -- "OpenTelemetry SDK" --> Collector[OTel Collector]191 Collector --> Prometheus[Prometheus]192 Collector --> Loki[Loki]193 Collector --> Tempo[Tempo]194 Prometheus --> Grafana[Grafana Dashboards]195 Loki --> Grafana196 Tempo --> Grafana197 Grafana --> PagerDuty[PagerDuty Alerts]198```199~200## قياس النجاح201~202كيف تعرف أن منصتك تعمل؟ تتبع هذه المقاييس:203~204### مقاييس DORA205- **تكرار النشر**: كم مرة يصل الكود إلى الإنتاج206- **وقت التسليم للتغييرات**: الوقت من الالتزام إلى الإنتاج207- **معدل فشل التغيير**: نسبة عمليات النشر المسببة للأعطال208- **متوسط وقت الاستعادة**: الوقت لاستعادة الخدمة بعد حادث209~210### مقاييس خاصة بالمنصة211- **وقت النشر الأول**: كم من الوقت من "خدمة جديدة" إلى أول نشر إنتاجي212- **رضا المطورين (NPS)**: استطلع آراء مستخدميك بانتظام213- **نسبة الخدمة الذاتية**: % من طلبات البنية التحتية المعالجة بدون تذاكر214- **تبني المسار الذهبي**: % من الخدمات التي تتبع المسار الموصى به215~216## الأخطاء الشائعة217~218### 1. بناء الكثير مبكرًا جدًا219ابدأ بأكبر نقطة ألم، وليس برؤية كبرى. إذا كان النشر مؤلمًا، ابدأ من هناك. إذا كان التوفير يستغرق أسابيع، ابدأ من هناك.220~221### 2. عدم معاملة المنصة كمنتج222يحتاج فريق المنصة إلى مدير منتج، وأبحاث مستخدمين، وحلقات تغذية راجعة. المطورون هم عملاؤك - افهم احتياجاتهم.223~224### 3. الإلزام بدلاً من الجذب225أفضل المنصات يتم تبنيها طوعًا لأنها تجعل حياة المطورين أسهل. إذا كان عليك إلزام الاستخدام، فمنصتك ليست جيدة بما فيه الكفاية.226~227### 4. تجاهل تجربة المطور228منصة ذات تجربة مستخدم سيئة لن يتم استخدامها. استثمر في توثيق واضح، ورسائل خطأ مفيدة، وحلقات تغذية راجعة سريعة.229~230## البداية231~232خارطة طريق عملية لبناء أول IDP لك:233~234```mermaid235flowchart TD236 A[Month 1-2: Discovery] --> B[Month 3-4: MVP]237 B --> C[Month 5-6: Iterate]238 C --> D[Month 7+: Scale]239~240 A --> A1[Interview developers]241 A --> A2[Map pain points]242 A --> A3[Choose first golden path]243~244 B --> B1[Deploy Backstage]245 B --> B2[First service template]246 B --> B3[Standardized CI/CD]247~248 C --> C1[Gather feedback]249 C --> C2[Add infrastructure abstraction]250 C --> C3[Improve docs and onboarding]251~252 D --> D1[More templates and golden paths]253 D --> D2[Self-service infrastructure]254 D --> D3[Advanced observability]255```256~257### المنصة الأدنى القابلة للتطبيق258~2591. **كتالوج الخدمات** (Backstage) - معرفة ما هو موجود ومن يملكه2602. **قالب خدمة واحد** - مسار ذهبي لأكثر أنواع خدماتك شيوعًا2613. **CI/CD موحدة** - خط أنابيب مشترك تضمه الفرق2624. **وثائق أساسية** - كيفية استخدام المنصة، وأين تحصل على المساعدة263~264يمكنك بناء هذا MVP في 2-3 أشهر مع فريق من 2-3 مهندسين.265~266## الخاتمة267~268Platform Engineering لا يتعلق ببناء المنصة المثالية من اليوم الأول. يتعلق الأمر بتقليل العبء المعرفي على المطورين تدريجيًا حتى يتمكنوا من التركيز على بناء المنتجات. ابدأ صغيرًا، قس التأثير، وكرر بناءً على ملاحظات المطورين.269~270المؤسسات التي تستثمر في Platform Engineering ستحصل على ميزة تنافسية كبيرة: تسليم أسرع، ومطورون أكثر سعادة، وأنظمة أكثر موثوقية.271~272**الموارد:**273- [Team Topologies](https://teamtopologies.com/) - الكتاب الذي شاع فرق المنصات274- [Backstage](https://backstage.io/) - بوابة المطورين مفتوحة المصدر من Spotify275- [CNCF Platforms White Paper](https://tag-app-delivery.cncf.io/whitepapers/platforms/) - تعريف المجتمع وأفضل الممارسات276- [platformengineering.org](https://platformengineering.org/) - المجتمع والفعاليات والموارد277~
NORMAL · platform-engineering-internal-developer-platform.md [readonly]277 lines · :q to close