فريق

هندسة DevOps والمنصة

نُشغّل المسارات التي يركبها كل إصدار — خط الأنابيب للبناء، وإطلاق الكناري، ومخزن الأسرار، ولوحات SLO، وذراع الرجع الذي يستطيع مهندس المناوبة شده في الثالثة فجرًا دون أن يوقظ أحدًا. لا نطلق ميزات؛ بل نطلق الثقة التي تتيح للفرق الأخرى إطلاق ميزاتها. أسبوع جيد هو أسبوع لم يلاحظه أحد، لأن شيئًا لم ينكسر.

30+

إطلاقات يوميًا، تدرّجية

<15 min

متوسط زمن الإصلاح

99.99%

الحد الأدنى لتوافر المنصة

0

أسرار في git، أبدًا

لماذا DevOps

المنصة هي العقد بين الهندسة والواقع

الميزة التي لا تستطيع الإطلاق بأمان ليست ميزة — بل مسؤولية لم نسددها بعد. نتعامل مع المنصة بوصفها العقد بين ما تكتبه الهندسة وبين ما يقبله الواقع: كل التزام يُبنى بطريقة قابلة للإعادة، وكل قطعة فنية تحمل إثبات مصدر SLSA، وكل إطلاق تدرّجي، وكل سر يعيش في مدير لا يرى git أبدًا، وكل SLO له تنبيه موصول بكتيب يستطيع المنفّذ تنفيذه في الثالثة فجرًا. نحن الفريق الذي يقول «نعم، أطلقها» — ونستحق ذلك بأن نكون الفريق الذي يستطيع أيضًا أن يقول «وإليك ذراع الرجع إن انكسرت». المنصة هي الدليل أن الثقة مهندَسة لا موعودة.

نرفض الخرافة بأن DevOps هم «الذين يعيدون تشغيل الأشياء». عملنا يبدأ في المحرر — يسحب المطوّر قالبًا يحوي CI وIaC وإدارة أسرار ورصدًا موصولًا سلفًا — وينتهي في الكتيب الذي يقرأه المنفّذ في الثالثة فجرًا. نتعامل مع البنية بوصفها كود، نراجعها ككود تطبيقي، ونختبرها ككود منتج: تغيير Terraform يمر عبر plan وpolicy وبوابات كلفة قبل أن يطبّق، وبيان Kubernetes يُنقّط ويُحرّز ضد الممارسات الفضلى، ويُكشَف انحرافه في الإنتاج. الأدوات المملّة — Postgres وKafka وKubernetes وTerraform وOpenTelemetry — مملّة عن قصد. البنية المثيرة مسؤولية لا نستطيع تحملها على مسار حرج.

ماذا نبني

المسارات التي يركبها كل إصدار. هذا ما نملكه من النهاية إلى النهاية.

خطوط CI/CD

كل التزام يُبنى بطريقة قابلة للإعادة، ويجري مجموعة الاختبارات الكاملة، ويوقّع القطعة الفنية، ويطلق خلف تدرّج. البناء الفاشل لا يصل الإنتاج أبدًا؛ والإصدار المكسور يرجع نفسه.

البنية ككود

وحدات Terraform مُراجَعة ومفحوصة بالسياسة ومُحرّزة بالكلفة قبل التطبيق. مورد سحابي ليس في التحكم بالإصدار لا يوجد في الإنتاج، بنقطة النهاية.

إدارة الأسرار والمفاتيح

الأسرار تعيش في مدير لا يرى git أبدًا؛ والمفاتيح مدوّرة ومدقّقة ومُدرجة بالوصول. السر المسرب يُكشَف ويُلغى خلال دقائق، لا يُكتشف في تقرير حادث.

الإطلاق التدرّجي

إطلاق كناري إلى 1% ثم 10% ثم 100%، مع رجع آلي عند كسر SLO. الإطلاق الذي يفشل اختبار تدفق حرج يرجع قبل أن يقرأ إنسان التنبيه.

منصة الرصد

مقاييس وسجلات وآثار مربوطة بمعرّف الأثر، تُطلق إلى لوحة واحدة. أي حادث يمكن إعادة تشغيله حدثًا بحدث؛ اللوحة تيسير، والسجل هو العقد.

SRE والمناوبة

SLOs، وميزانيات أخطاء، وكتيبات، ودوران مناوبة ينادي إنسانًا فقط حين لا تستطيع مهمة. لا نوقظ الناس على ما تستطيع الأتمتة إصلاحه.

كيف نعمل

حلقتنا منصة أولًا: المسارات تطلق قبل الميزة. هذه دورة واحدة من القالب إلى الكناري.

1

اسحب قالبًا مُراجَعًا

يسحب المطوّرون قالب خدمة يحوي CI وIaC وإدارة أسرار ورصدًا موصولًا سلفًا — الخيارات المملّة تُتخذ مرة، من فريق المنصة.

2

ابنِ بطريقة قابلة للإعادة

بناء قابل للإعادة، وقطع فنية موقّعة، وإثبات مصدر SLSA. القطعة الفنية التي تجري في الإنتاج هي نفسها التي جرت في الـ CI، بايتًا ببايت.

3

plan وpolicy وكلفة

تغييرات IaC تمر عبر terraform plan وسياسة OPA وتقدير كلفة قبل التطبيق. مورد يكسر السياسة أو يضاعف الفاتورة ثلاثًا لا يُطبّق.

4

أطلق تدرّجيًا

1% ثم 10% ثم 100%، مع رجع آلي عند كسر SLO. مجموعة اختبار التدفق الحرج تجري ضد كل مرحلة قبل الترقية.

5

راقب ونبه

لوحات SLO، وميزانيات أخطاء، وتنبيهات موصولة بكتيبات. تنبيه يطلق أكثر من مرتين يطلق تلقائيًا بندًا في تراكم إصلاح الكتيب.

6

تقرير حادث وتحسين

كل حادث ينال تقريرًا بلا لوم فيه سبب جذر وفعل وقائي يهبط ككود — تنبيه جديد، أو اختبار جديد، أو بوابة سياسة جديدة.

تعريف الجاهز

لا يُطلق تغيير منصة إلا حين يتحقق كل هذا

قابل للإعادة

بناء قابل للإعادة، وقطع فنية موقّعة، وإثبات مصدر SLSA. القطعة في الإنتاج هي بايتًا ببايت القطعة في الـ CI.

قابل للرجع

لكل تغيير مسار رجع آلي يُختبَر قبل أن يطلق مسار التقدم. الرجع يأخذ دقائق، لا نافذة صيانة.

قابل للرصد

مقاييس وسجلات وآثار مربوطة بمعرّف الأثر؛ ولوحة SLO والتنبيه موصولتان قبل أن يطلق التغيير، لا بعده.

مفحوص بالسياسة

تغييرات IaC تجتاز plan وpolicy OPA وبوابات تقدير الكلفة. مورد يكسر السياسة أو يضاعف الفاتورة ثلاثًا لا يُطبّق.

موثَّق في كتيب

كتيب المناوبة محدّث من المهندس الذي أطلق التغيير، لا مُهندَس عكسيًا لاحقًا. التنبيه بلا كتيب لا يُطلق.

الأدوات ولماذا نستخدمها

مُملّة عن قصد. اختيرت كل أداة لنمط فشلها لا لعرضها الترويجي.

Kubernetes

المنسّق المملّ. نُشغّل مستوى تحكم مُدارًا؛ وكلفة تشغيل ours تُدفع في نداءات الثالثة فجرًا لا نريدها.

Terraform

IaC مُراجَع ومُخطَّط ومفحوص بالسياسة ومُحرّز بالكلفة قبل التطبيق. مورد سحابي ليس في التحكم بالإصدار لا يوجد في الإنتاج.

ArgoCD

إطلاق تدرّجي GitOps؛ كناري إلى 1% ثم 10% ثم 100% مع رجع آلي عند كسر SLO.

OpenTelemetry

مقاييس وسجلات وآثار في معيار واحد، مربوطة بمعرّف الأثر؛ أي حادث يُعاد تشغيله حدثًا بحدث.

Vault

مدير أسرار يُديرها بالتدوير والتدقيق والإدراج بالوصول. السر المسرب يُكشَف ويُلغى خلال دقائق.

cosign + SLSA

قطع فنية موقّعة وإثبات مصدر؛ القطعة في الإنتاج هي القطعة في الـ CI، بايتًا ببايت.

OPA / Gatekeeper

سياسة ككود تبوّب IaC قبل التطبيق؛ مورد يكسر السياسة لا يُطبّق، بصرف النظر عمّن دمجه.

Grafana + Loki + Tempo

لوحة واحدة للمقاييس والسجلات والآثار. اللوحة تيسير؛ والبيانات الأساسية هي العقد.

كيف نتواصل

حيث يلتقي DevOps ببقية الشركة

الأنظمة الخلفية

الأنظمة الخلفية تملك SLO؛ ونحن نملك الكناري وذراع الرجع والكتيب. لا أحدنا يطلق مسار حرج دون توقيع الآخر.

الواجهة الأمامية

نطلق بوابة Lighthouse معًا؛ الواجهة الأمامية تملك ميزانية الأداء، ونحن نملك خط الأنابيب. انحدار أداء لا يُدمج، بصرف النظر عمّن أدخله.

الجودة

مجموعة اختبار التدفق الحرج تجري ضد كل مرحلة كناري قبل الترقية. الجودة تملك مصفوفة السيناريوهات؛ ونحن نملك الإطلاق التدرّجي الذي يجريها.

علوم البيانات

تصديرات البيانات أحداث من سجل التدقيق؛ ونحن نملك موضوع Kafka الذي يُغذّي مستودع التحليلات دون تثبيت ذاكرة الكتابة.

أسئلة تُطرح علينا

كم مرة تطلقون فعلًا إلى الإنتاج؟

أكثر من ثلاثين مرة يوميًا في يوم عادي. نستطيع الإطلاق ذلك الكثرة لأن كل إطلاق صغير ومرئي وقابل للرجع فوري — لا لأننا شجعان.

ماذا يحدث حين يكسر إطلاق الإنتاج؟

رجع آلي يطلق عند كسر SLO قبل أن يقرأ إنسان التنبيه. مجموعة اختبار التدفق الحرج تجري ضد كل مرحلة كناري؛ والفشل عند 1% يرجع خلال دقائق. أغلب الرجعات تنتهي قبل أن يستيقظ المنفّذ تمامًا.

كيف تُبقون الأسرار خارج git؟

الأسرار تعيش في Vault؛ والـ CI يحقنها وقت التشغيل. خطّاف pre-commit يمسح سلاسل الإنتروبيا العالية، وماسح CI يحظر الدمج الذي يحوي محتوى بشكل سر، والسر المسرب يُكشَف ويُلغى خلال دقائق بالتدوير.

كيف المناوبة؟

أسبوع أساسي، ثم أسبوع ثانوي، ثم أربعة أسابيع إجازة. الكتيبات يكتبها المهندس الذي أطلق النظام. لا ننادي بشرًا على ما تستطيع مهمة التقاطه؛ والتنبيه بلا كتيب لا يُطلق.

هل تستخدمون ميزانيات الأخطاء فعلًا لبوّابة الميزات؟

نعم. أنفق الميزانية على الميزات، فإذا نفدت تجمّد الإطلاقات حتى ترد الموثوقية الدين. هو القانون الموضوعي الوحيد الذي وجدناه يجعل المنتج والهندسة يجادلان عن الموثوقية بدل المشاعر.

مهمتنا

نبني المسارات التي يركبها كل إصدار — قابلة للإعادة، ومرئية، وقابلة للرجع. لا نطلق ميزات؛ بل نطلق الثقة التي تتيح للفرق الأخرى إطلاق ميزاتها. أسبوع جيد هو أسبوع لم يلاحظه أحد، لأن شيئًا لم ينكسر — ودليل ذلك على اللوحة، لا في غياب الشكاوى.