التكلفة وتجربة المنصة
التكلفة وتجربة المنصة
في شركات مثل Google وAirbnb وStripe، تمتلك فرق المنصة مسؤوليتين يسهل التقليل من شأنهما حتى تتحولا إلى أزمات: الإبقاء على فاتورة السحابة قابلة للتنبؤ، وجعل المنصة شيئاً يرغب المهندسون فعلاً في استخدامه. تمنع ضمانات FinOps ظهور فاتورة مفاجئة بقيمة 400 ألف دولار بسبب autoscaler واحد مُهيّأ بشكل خاطئ. أما الخدمة الذاتية للمطورين — المسارات الذهبية وكتالوجات الخدمات وواجهات سطر الأوامر — فهي ما يُميّز منصة قادرة على التوسع ليخدمها 1000 مهندس عن منصة تغرق في تذاكر دعم Slack عند عتبة 50 مهندس. يتناول هذا الدرس كلا الموضوعين بعمق إنتاجي حقيقي.
ضمانات FinOps
حصص موارد Namespace هي خط الدفاع الأول. يجب أن يحمل كل namespace خاص بفريق ResourceQuota يضع سقفاً لكل من الطلبات والحدود. بدونه، يمكن لعمل واحد مفلت أن يُشبع مجموعة عقد بأكملها ويُطلق سلاسل autoscaler تستغرق 20 دقيقة لتفريغها. يُطبّق الحصر عند وقت القبول — إذا كان مجموع موارد Pod سيتجاوز سقف الـ namespace، يرفضه API server فوراً قبل أي جدولة.
دمج Karpenter وميزانيات Spot. مع تشغيل Karpenter من الدرس الرابع، تتمثل أبرز عتلات FinOps في: ضبط consolidationPolicy: WhenUnderutilized على جميع NodePools العامة، وتكوين كتلة disruption.budgets حتى لا يُخلي الدمج أكثر من 20% من الـ Pods في كل NodePool دفعة واحدة، والتحويل الجذري لأعباء العمل غير الحرجة — خطوط المعالجة الدُّفعية وعُمّال CI والعمليات غير المتزامنة — إلى Spot. يُشغّل الفريق الموهوب 60-70% من إجمالي حوسبة الكلاستر على Spot، بوفورات تتراوح بين 1.2 و1.8 مليون دولار سنوياً في المقياس المتوسط (كلاستر من 200 عقدة، مزيج m6i.4xlarge في us-east-1).
توزيع تكلفة السحابة بالعلامات المُطبَّقة في IaC. يجب أن يحمل كل مورد AWS أنشأه Terraform على الأقل: team وenv وservice وcost-centre. طبّق ذلك بكتلة required_providers في Terraform وسياسة OPA تُفحص في CI — فأي دمج يُدخل موارد بدون هذه العلامات يُفشل الخطة. في Kubernetes، ضع تعليقاً توضيحياً على الـ namespaces بـteam وcost-centre واستخدم Kubecost (أو OpenCost) لعرض الإنفاق يومياً لكل namespace.
تنبيهات الميزانية والحدود الصارمة. في AWS، استخدم Cost Anomaly Detection مع موضوع SNS يُنبّه من يتولى المناوبة عندما يتجاوز الإنفاق خلال 24 ساعة لأي علامة خدمة 150% من متوسط الـ 7 أيام الماضية. اقرنه بإجراء AWS Budget يُطلق تلقائياً Lambda لتقليص مجموعة autoscaling عند تجاوز عتبة الميزانية اليومية. هذا النمط رصد انحداراً في DynamoDB بتكلفة 60 ألف دولار يومياً لدى إحدى شركات التكنولوجيا المالية بعد ساعتين فقط من طرحه — قبل أن يمر الليل.
سطح الخدمة الذاتية للمطورين
المنصة التي تستلزم فتح تذكرة Jira للحصول على namespace جديد ليست منصة — بل هي بيروقراطية مُلفوفة بـ YAML. سطح الخدمة الذاتية هو مجموعة الواجهات التي من خلالها يُهيّئ المهندسون الموارد ويُنشرون ويُراقبون ويُحلّون المشكلات دون تنبيه فريق المنصة. عند مقياس الشركات الكبرى، يتكون هذا السطح من ثلاث طبقات معيارية: كتالوج خدمات وواجهة سطر أوامر للمنصة وقوالب المسار الذهبي.
كتالوج الخدمات (Backstage أو ما يعادله). Backstage المطوَّر بواسطة Spotify هو المعيار الفعلي لبوابة المطورين الداخلية في الشركات التي تتجاوز 500 مهندس. تُسجّل كل خدمة نفسها عبر catalog-info.yaml في جذر مستودعها. يستوعب Backstage هذا الملف ويربطه بلوحات Grafana وسياسات التصعيد في PagerDuty وكتيّبات التشغيل في Confluence وحالة أعباء العمل Kubernetes. يتعرف المهندسون على خدمة جديدة — تبعياتها ومستويات SLO ودورة المناوبة وتاريخ النشر — في دقائق عوضاً عن ساعات.
واجهة سطر أوامر المنصة — plat. تُطلق فرق المنصة الكبيرة واجهة CLI داخلية (تُسمى عادةً plat أو kit أو dx) تُغلّف kubectl وhelm وargocd وأدوات AWS/GCP خلف أوامر فرعية موجَّهة بالرأي. الهدف هو إلغاء كُتيّب "إعداد خدمة جديدة" المكوّن من 14 خطوة واستبداله بأمر واحد. أبرز الأوامر الفرعية الشائعة:
plat new service payments-api --template go-grpc— يُهيّئ المستودع ويُسجّل في Backstage ويُنشئ تطبيق ArgoCD ويُهيّئ الـ namespace بالحصة الافتراضية وNetworkPolicyplat promote payments-api --from staging --to production— يُثبّت digest الصورة وينشئ PR لـ GitOps على الطبقة الإنتاجية مربوطاً بتذكرة إدارة التغييراتplat logs payments-api --tail 200 --env production— يبثّ البيانات من مُجمّع Loki/CloudWatch لـ Pods الخدمة دون الحاجة لمعرفة محددات التصنيفplat status payments-api— يُظهر حالة الطرح ومعدل حرق SLO وآخر 5 عمليات نشر في عرض واحد
قوالب المسار الذهبي. المسار الذهبي هو طريقة موجَّهة ومُعتمدة مسبقاً لبناء نوع معين من الخدمات ونشرها — خدمة Go gRPC أو تطبيق React SPA أو عامل Python ML — مدمجٌ فيها كل إعدادات المنصة الافتراضية: طلبات الموارد وNetworkPolicy وتعليقات Istio التوضيحية وحقن sidecar لـ OTel وسجلات الصور المُعتمدة بـ Kyverno وpipeline CI/CD عاملة. يُنفق الفِرَق التي تسلك المسار الذهبي وقتاً صفرياً على تهيئة المنصة ويُركّزون كلياً على شيفرة المنتج. يحتفظ فريق المنصة بالقوالب في مستودع platform-templates؛ تُطلق قوالب Backstage البرمجية cookiecutter أو copier وتفتح PR ضد مستودع جديد في منظمة GitHub الهندسية.
الطرق المُمهَّدة ومخارج الطوارئ. في منصات الشركات الكبرى الناضجة (Netflix Paved Roads وSpotify System Model وAirbnb OneTouch)، يوجد مخرج طوارئ مقصود: الفرق التي لديها سبب مشروع للانحراف عن المسار الذهبي تستطيع ذلك عبر عملية RFC، لكنها تتحمل العبء التشغيلي للانحراف. يُنشئ هذا حلقة تغذية راجعة إيجابية — كلما كان الحفاظ على الانحراف مُكلفاً، كلما تقارب عدد أكبر من الفرق نحو الطريق الممهّد. يراجع فريق المنصة الانحرافات ربع سنوياً ويستوعب الأنماط التي أثبتت جدارتها في مسارات ذهبية جديدة.
بنهاية هذا الدرس، أصبحت لمنصة المشروع الختامي كل ضماناتها في مكانها: ضوابط FinOps تمنع مفاجآت التكلفة، وكتالوج خدمات يمنح كل مهندس نافذة عرض واحدة، وواجهة CLI ومكتبة قوالب تجعل الصواب هو الأسهل. يُجمّع الدرس العاشر الصورة الكاملة ويناقش مسار هذه المهنة وما يليه.