آخر تحديث: 27 أكتوبر 2026 · 8 فروع خدمة · قراءة تقديرية 32 دقيقة

لماذا أصبحت الحوسبة السحابية وDevOps ضرورة تشغيلية؟

تغيّر شكل الأعمال الرقمية في السعودية خلال سنوات قليلة. المتجر الإلكتروني لم يعد صفحة تعرض منتجات، بل نظام يتصل بالمخزون والدفع والشركات اللوجستية وخدمة العملاء. والتطبيق المؤسسي لم يعد برنامجًا يعمل على جهاز واحد، بل خدمات متعددة تتشارك البيانات وتحتاج إلى تحديث مستمر. ومع هذا التغير، لم يعد السؤال «هل نستخدم السحابة؟» هو السؤال المهم، بل «كيف نبني تشغيلًا سحابيًا يمكن الاعتماد عليه وفهم تكلفته؟».

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

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

هنا يأتي دور DevOps. ليس لأنه مصطلح رائج، بل لأنه يعالج فجوة حقيقية بين من يبني النظام ومن يشغّله. عندما يصبح النشر عملية آلية ومتكررة، وينتقل التغيير عبر اختبارات ومراجعات بيئة واضحة، تنخفض المفاجآت. وعندما تكون البنية التحتية مكتوبة ككود، تصبح قابلة للمراجعة والاستعادة. وعندما تكون المراقبة مرتبطة بمؤشرات خدمة مفهومة، يصبح الفريق قادرًا على التصرف قبل أن يتحول العطل الصغير إلى انقطاع.

السحابة ليست نسخة من الخادم القديم

أكبر خطأ نراه هو التعامل مع السحابة كأنها «غرفة خوادم مستأجرة». السحابة تمنحك مرونة وقدرة على التوسع، لكنها تتطلب تصميمًا مختلفًا: موارد تُنشأ وتُحذف آليًا، وصلاحيات تُبنى على الهوية، وتكلفة تُقاس بالاستهلاك. نقل الخادم كما هو قد يعمل، لكنه غالبًا يحمل معه التكلفة والتعقيد نفسه، ويضيف طبقة إدارة جديدة لا يستفيد منها أحد.

من «نقل الخادم» إلى «بناء منصة تشغيل»

الفرق بين مشروع ترحيل ناجح ومشروع تحول حقيقي هو ما يحدث بعد الانتقال. الترحيل ينقل أحمال العمل إلى السحابة؛ بناء المنصة يحدد كيف تُنشأ البيئات، وكيف تُنشر التغييرات، وكيف تُراقب الخدمة، وكيف تُستعاد عند الحاجة، وكيف تُحاسب الفرق على التكلفة. الأول قد ينتهي في تاريخ محدد. الثاني يبقى قدرة داخل المؤسسة.

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

الضغط التنظيمي: البيانات والامتثال في السياق السعودي

التعامل مع السحابة في السعودية لا يمكن فصله عن البيئة التنظيمية. نظام حماية البيانات الشخصية (PDPL) يضع إطارًا لمعالجة البيانات الشخصية وحقوق الأفراد، وضوابط الأمن السيبراني للحوسبة السحابية الصادرة عن الهيئة الوطنية للأمن السيبراني (NCA) تقدم إطارًا للجهات التي تستخدم الخدمات السحابية، والإطار التنظيمي للحوسبة السحابية الصادر عن هيئة الاتصالات والفضاء والتقنية (CST) ينظم تقديم الخدمات السحابية في المملكة. هذه الأطر ليست تفاصيل قانونية يمكن تأجيلها إلى ما بعد الإطلاق؛ لأنها تؤثر على اختيار المزود، وتصميم الحسابات، ومتطلبات إقامة البيانات، وطريقة الوصول إليها.

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

ضغط التكلفة والكفاءة على الشركات الصغيرة والمتوسطة

كثير من الشركات السعودية الصغيرة والمتوسطة تعمل بفريق تقني صغير، وليس لديها رفاهية توظيف متخصصين في الشبكات والأمن والمنصات والتكاليف. في هذه الحالة، يصبح الاختيار بين «نبني كل شيء بأنفسنا» و«نستخدم خدمات مُدارة» قرارًا استراتيجيًا. الخدمات المُدارة تقلل العبء، لكنها قد تخفي التكلفة أو تربطك بتفاصيل مزود واحد. والبناء الداخلي يمنح مرونة، لكنه قد يستهلك الفريق في مهام تشغيلية لا تميز الأعمال.

DevOps الجيد لا يعني أتمتة كل شيء من اليوم الأول. يعني تحديد الخطوات المتكررة التي تستهلك الوقت، وأتمتتها بترتيب يحقق أثرًا. وخط النشر البسيط الذي يعمل بثبات أفضل من منصة معقدة لا يستخدمها الفريق. ولوحة تكاليف واضحة تُقرأ شهريًا أفضل من أداة متقدمة لا يفتحها أحد. نركز على ما يقلل المخاطر ويحرر وقت الفريق، ثم نتوسع عندما تصبح الحاجة واضحة.

من يحتاج هذه الخدمات؟

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

إذا كنت غير متأكد من نقطة البداية، فالتقييم السريع للبيئة الحالية يكشف عادة أين يوجد أكبر أثر بأقل تغيير. قد تكون البداية ترحيل قاعدة بيانات، أو بناء خط نشر واحد، أو إصلاح نسخ احتياطي غير مُختبر، أو وضع حد إنفاق شهري. المهم أن تكون البداية مرتبطة بمشكلة تشغيلية حقيقية، لا برغبة في تجربة أداة جديدة.

ما الذي يشمله قسم الحوسبة السحابية وDevOps؟

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

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

خريطة فروع الحوسبة السحابية وDevOps الثمانية: الترحيل، CI/CD، الحاويات، البنية التحتية ككود، المراقبة، FinOps، التعافي من الكوارث، وGitOps
ثمانية فروع مترابطة: يمكن البدء بأكثرها إلحاحًا ثم بناء المنصة تدريجيًا.

مبادئ نبني عليها

  • أصغر منصة تحقق الهدف: لا نضيف تعقيدًا لا يخدم حاجة تشغيلية واضحة.
  • الأتمتة قبل التوسع: لا نضاعف البيئات قبل أن تصبح عملية الإنشاء قابلة للتكرار.
  • الأمان ليس طبقة لاحقة: الهوية والشبكة والأسرار تدخل في التصميم من البداية.
  • التكلفة مؤشر تشغيلي: كل مورد يجب أن يكون له مالك وسبب وميزانية.
  • القابلية للاستعادة: النسخة الاحتياطية لا تُعد ناجحة حتى تُختبر عملية الاستعادة.
  • التوثيق والتسليم: المنصة التي لا يفهمها الفريق تصبح اعتمادًا على شخص واحد.

ما لا يشمله القسم

نوضح الحدود منذ البداية لتكون التوقعات دقيقة. لا نبيع تراخيص سحابية بالنيابة عن المزودين، ولا نقدم ضمانًا بأن التكلفة ستنخفض بنسبة محددة، ولا نستبدل المستشار القانوني في تفسير PDPL أو العقود. كما لا ندير تطبيقات لا نملك وصولًا آمنًا إليها أو لا توجد لها ملكية واضحة داخل المؤسسة. دورنا هو التصميم والتنفيذ والتمكين، مع تعاون وثيق مع فريقك ومزودك.

كيف نحدد أولوية البداية؟

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

الفروع والخدمات الثمانية

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

01

الترحيل إلى السحابة

AWS / Azure / GCP
تقييم وموجات ترحيل
انتقال قابل للتراجع

الترحيل إلى السحابة لا يعني نسخ ملفات من خادم إلى آخر. قبل أن تنتقل أي خدمة، نحتاج إلى معرفة ما تعتمد عليه: قاعدة البيانات، وخدمات المصادقة، وواجهات الدفع، ومهام الجدولة، والتكاملات مع الأنظمة الداخلية، وسياسات النسخ الاحتياطي. ثم نختار لكل تطبيق استراتيجية مناسبة: إعادة الاستضافة دون تغيير، أو إعادة المنصة بتحسين محدود، أو إعادة البناء لخدمات تحتاج إلى مرونة أكبر، أو استبدال تطبيق قديم بخدمة جاهزة، أو تأجيل ما لا توجد له قيمة واضحة في الانتقال الآن.

نبني «منطقة هبوط» (Landing Zone) قبل أن تبدأ الموجة الأولى: حسابات أو اشتراكات منفصلة بحسب البيئة والوظيفة، وهوية مركزية، وشبكة معزولة، وسجلات تُجمع في مكان واحد، وضوابط تمنع فتح الموارد للعامة بالخطأ، وسياسات تكلفة واضحة. هذه الخطوة قد تبدو بطيئة في البداية، لكنها تمنع فوضى يصعب تصحيحها لاحقًا. ثم نقسم الترحيل إلى موجات، ونبدأ بخدمة أقل خطورة لاختبار الفرضيات والقياس قبل الانتقال إلى الأنظمة الحرجة.

التحدي الحقيقي يظهر في ليلة الانتقال: مزامنة البيانات النهائية، وتقليل مدة التوقف، وتحديث DNS، والتحقق من الوظائف، والاستعداد للتراجع. نكتب خطة cutover دقيقة، ونحدد المسؤول عن كل خطوة، ونختبر السيناريو على بيئة staging. بعد الانتقال نتابع عن قرب خلال فترة hypercare، ثم نغلق الخوادم القديمة بعد التأكد من عدم وجود اعتماد مخفي، ونحدّث الوثائق والتكاليف. الهدف ليس «الوصول إلى السحابة»، بل خدمة تعمل بشكل أفضل وبكلفة مفهومة.

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

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

ماذا يشمل؟

  • جرد التطبيقات والاعتماديات وتقييم الجاهزية.
  • مقارنة التكلفة الإجمالية للتملك وخيارات المزود.
  • تصميم الحسابات والشبكة والهوية والوصول.
  • خطة موجات وترحيل بيانات وخط رجوع.
  • تنفيذ cutover واختبار وتحقق وتوثيق.

المخرجات

  • تقرير تقييم وخريطة اعتماديات.
  • تصميم منطقة الهبوط وقواعد التسمية.
  • خطة ترحيل بموجات ومسؤوليات.
  • runbook للانتقال والتراجع.
  • تقرير ما بعد الترحيل وتوصيات التحسين.

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

02

خطوط CI/CD

GitHub Actions / GitLab CI
اختبار وبناء ونشر آلي
تراجع سريع

التكامل المستمر والتسليم المستمر (CI/CD) ليسا زرًا ينشر الكود، بل نظام يضمن أن كل تغيير يمر بخطوات ثابتة: فحص الصياغة، وتشغيل الاختبارات، وبناء حزمة موقعة، وتحليل الاعتماديات، ثم نشرها في بيئة محددة. الهدف هو تقليل الاعتماد على الخطوات اليدوية التي تختلف من شخص إلى آخر، وجعل النشر حدثًا عاديًا ومتكررًا بدلًا من مشروع شهري محفوف بالمخاطر.

نصمم الخط بحسب طبيعة التطبيق: موقع ووردبريس يحتاج خطًا مختلفًا عن منصة microservices، وتطبيق جوال يحتاج مسارًا للبناء والتوقيع والتوزيع. نبدأ بأتمتة ما يتكرر فعليًا، ثم نضيف الاختبارات والفحوصات الأمنية تدريجيًا. نستخدم GitHub Actions أو GitLab CI بحسب المستودع، ونفصل الأسرار عن الكود، ونستخدم هوية مؤقتة للوصول إلى السحابة بدلًا من مفاتيح دائمة، ونحتفظ بالحزم بإصدارات واضحة يمكن الرجوع إليها.

الجزء الأصعب ليس كتابة ملف pipeline، بل بناء عادات حوله: مراجعة الكود، واختبارات موثوقة، وإدارة التغييرات في قاعدة البيانات، واستراتيجية إصدار مثل blue-green أو canary، وخطة تراجع. نحدد مؤشرات DORA الأربعة — تواتر النشر، وزمن الانتظار للتغيير، ونسبة فشل التغيير، وزمن الاستعادة — ونستخدمها لتحسين العملية، لا للحكم على الأفراد. ونحرص على أن يستطيع الفريق تشغيل الخط وفهم فشله دون الاعتماد على خبير خارجي.

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

تغييرات قاعدة البيانات تحتاج مسارًا خاصًا. لا نربط ترحيل المخطط بنشر الكود في خطوة واحدة غير قابلة للفصل، بل نستخدم نمط التوسيع والطي (Expand and Contract): نضيف الحقل الجديد، ونكتب في القديم والجديد مؤقتًا، ثم ننقل القراءة، ثم نحذف القديم بعد التحقق. هذا يسمح للنسخة القديمة والجديدة بالعمل معًا أثناء النشر التدريجي، ويقلل احتمال تعطل الموقع بسبب migration غير متوافق. ونختبر الترحيل على نسخة من البيانات، ونقيس مدته، ونضع خطة رجوع واضحة. ونحتفظ ببيانات اختبار واقعية بلا بيانات شخصية، ونراجع زمن الخط وتكلفته كل ربع، ونحذف الحزم القديمة وفق سياسة احتفاظ واضحة. الخط الجيد يجب أن يكون مفهومًا وقابلًا للصيانة، لا مجرد ملف يعمل.

ماذا يشمل؟

  • تصميم مراحل البناء والاختبار والنشر.
  • إدارة الأسرار والهوية المؤقتة للبيئات.
  • بناء الحزم والإصدارات والتخزين.
  • اختبارات آلية وبوابات جودة قبل الدمج.
  • نشر تدريجي وخطة تراجع ومراقبة.

المخرجات

  • مستودع pipeline موثق وقابل لإعادة الاستخدام.
  • بيئات منفصلة للتطوير والاختبار والإنتاج.
  • سياسة إصدارات وتراجع.
  • لوحة مؤشرات نشر وفشل.
  • دليل تشغيل للفريق.

مؤشرات النجاح: ارتفاع عدد عمليات النشر مع انخفاض الأعطال، وتقليل الخطوات اليدوية، ووجود زمن واضح للتراجع، وقدرة أي مطور على معرفة سبب فشل أي خطوة من السجل. لمن تصلح: فرق SaaS التي تريد إصدارات أسبوعية، والشركات التي تنشر عبر FTP أو SSH يدويًا، والوكالات التي تدير عدة مواقع وتحتاج عملية موحدة. اربط هذا الفرع بخدمة ضمان الجودة واختبار البرمجيات لبناء اختبارات موثوقة، وبقسم الأمن السيبراني لحماية خط النشر من التسريب والاعتماديات الضعيفة.

03

Docker وKubernetes

Containers
EKS / AKS / GKE
توسع وتوحيد البيئات

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

Kubernetes يضيف طبقة تنسيق فوق الحاويات: يوزع النسخ، ويعيد تشغيل ما تعطل، ويوازن الحمل، ويوفر اكتشاف الخدمات، ويسمح بالتوسع الأفقي. نستخدم عادة نسخة مُدارة مثل Amazon EKS أو Azure AKS أو Google GKE لتقليل عبء إدارة control plane، ونركز على ما يخص التطبيق: الطلبات والحدود (requests/limits)، وفحوص الجاهزية والحياة (readiness/liveness)، والتوسع التلقائي، وIngress، وRBAC، وسياسات الشبكة، وإدارة الأسرار. ونستخدم Helm أو Kustomize لتنظيم manifests بدلًا من ملفات متفرقة لا يعرف أحد نسختها الصحيحة.

لا ننصح بـKubernetes لمجرد أنه «المعيار». تطبيق واحد بسيط قد يكون أخف على منصة حاويات مُدارة أو خدمة serverless. وإذا كان الفريق لا يملك وقتًا لصيانة الكلاستر وترقياته ومراقبته، فقد يتحول Kubernetes إلى مصدر تعقيد وتكلفة. قرارنا يعتمد على عدد الخدمات، ومعدل التغيير، والحاجة إلى التوسع، وقدرة الفريق. وإذا اخترنا Kubernetes، نضع خطة ترقية، وحدود موارد، ومراقبة، ونسخًا احتياطية للحالة الدائمة، ونوضح ما يديره المزود وما نديره نحن.

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

جودة صورة الحاوية تبدأ من ملف Docker. نستخدم بناءً متعدد المراحل (Multi-stage) لفصل أدوات البناء عن صورة التشغيل، ونختار صورة أساس محدثة وصغيرة، ونشغّل الحاوية بمستخدم غير جذري، ونستبعد الملفات غير اللازمة عبر .dockerignore. ولا نضع الأسرار داخل الصورة مهما كان الحال. ونفحص الصور بحثًا عن الثغرات قبل النشر، ونوقعها عند الحاجة، ونحتفظ بنسخ محددة لا تعتمد على وسم «latest» في الإنتاج. هذه التفاصيل تبدو صغيرة، لكنها تقلل سطح الهجوم وتجعل إعادة البناء قابلة للتكرار.

ماذا يشمل؟

  • بناء صور Docker محسّنة ومؤمنة.
  • سجل صور ووسم إصدارات واضح.
  • تصميم الكلاستر والعقد والتوسع.
  • Helm/Kustomize وبيئات متعددة.
  • RBAC وسياسات شبكة وأسرار ومراقبة.

المخرجات

  • مستودع manifests أو charts.
  • كلاستر جاهز للتشغيل مع دليل صيانة.
  • سياسة موارد وتوسع وترقيات.
  • لوحات مراقبة وتنبيهات.
  • خطة نسخ احتياطي للحالة الدائمة.

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

04

البنية التحتية ككود

Terraform / Ansible
مراجعة قبل التطبيق
بيئات قابلة لإعادة الإنشاء

البنية التحتية ككود (IaC) تعني أن الشبكة والخوادم وقواعد البيانات والصلاحيات تُعرَّف في ملفات نصية تُراجع وتُدار مثل الكود، بدلًا من إنشائها يدويًا من لوحة التحكم. الفائدة الأولى ليست سرعة الإنشاء فقط، بل الوضوح: من غيّر ماذا، ومتى، ولماذا. عندما تكون البيئة موصوفة في Terraform، تستطيع إنشاء نسخة مطابقة للاختبار، ومراجعة التغيير قبل تطبيقه، وإعادة بناء البيئة عند الكارثة.

نبدأ بتنظيم الكود إلى وحدات (Modules) واضحة: الشبكة، وقاعدة البيانات، والتخزين، والخدمة، والمراقبة. نفصل الحالة (State) لكل بيئة، ونخزنها في backend آمن مع قفل يمنع التطبيق المتزامن، ونمنع الأسرار من الظهور في الملفات. ونستخدم بيئات عمل (Workspaces) أو مجلدات منفصلة بحسب التعقيد. ثم نضيف مراجعة `plan` قبل `apply`، وفحص السياسات (Policy as Code) لمنع الموارد المكشوفة أو الصلاحيات الواسعة، ونكتشف الانحراف (Drift) عندما يُعدَّل مورد يدويًا خارج الكود.

Ansible يكمل الصورة عندما نحتاج إلى إعداد داخل الخادم أو تطبيق إعدادات متكررة، لكننا نفضل البنية غير القابلة للتغيير (Immutable Infrastructure) حيثما أمكن: بدلًا من تعديل خادم قديم، ننشئ خادمًا جديدًا من صورة محدثة ونستبدله. وننتبه إلى أن تحويل بنية موجودة إلى كود ليس مجرد إعادة كتابة؛ فهو فرصة لتبسيط الموارد وإزالة ما لا يحتاج إلى البقاء. ننفذ ذلك تدريجيًا مع خطة استيراد (Import) واختبارات، لا في تغيير واحد شامل.

نجاح البنية ككود يعتمد على التنظيم أكثر من الأداة. نضع إصدارات للوحدات، وأمثلة استخدام، واختبارات للخطط، ونراجع مخرجات plan مع مالك الخدمة قبل التطبيق. ونقسم الحالة إلى نطاقات صغيرة لتقليل الأثر عند الخطأ، ونحتفظ بنسخة من state في مكان آمن مع صلاحيات محدودة وخطة استرداد. وننفذ استيراد الموارد الموجودة تدريجيًا، ونشغّل كشف الانحراف بانتظام، ونوثق كل مورد يدوي متبقٍ وسبب بقائه. الهدف أن يستطيع أي مهندس فهم التغيير قبل تطبيقه، لا أن يعرف شخص واحد أسرار البيئة.

العمل الجماعي حول Terraform يحتاج قواعد واضحة: تغييرات صغيرة، ومراجعة من مالك الوحدة، وعدم تطبيق plan غير مفهوم، وتوثيق أي استثناء سياسي. ونستخدم تقدير التكلفة داخل مراجعة التغيير عندما تكون الأداة متاحة، حتى يرى المراجع أثر القرار قبل التنفيذ. ونحدد مالكًا لكل وحدة، وقناة للإبلاغ عن الانحراف، وموعدًا دوريًا لمراجعة الموارد اليتيمة. بهذه الطريقة لا تتحول البنية ككود إلى مستودع كبير لا يجرؤ أحد على تعديله. وندرب المهندسين الجدد على قراءة plan ومراجعة التغيير قبل منحهم صلاحية التطبيق، ونحتفظ بأمثلة للوحدات الأكثر استخدامًا. ونراجع الوحدات القديمة ونحذف ما لم يعد مستخدمًا، حتى لا يتحول المستودع إلى أرشيف.

ماذا يشمل؟

  • تصميم وحدات Terraform وبيئات منفصلة.
  • إدارة State ونسخه وقفله.
  • مراجعة plan وسياسات منع.
  • Ansible للإعدادات المتكررة.
  • كشف الانحراف وتوثيق الملكية.

المخرجات

  • مستودع بنية تحتية موثق.
  • بيئات قابلة لإعادة الإنشاء.
  • سياسات أمان وتكلفة ككود.
  • دليل تغيير واسترداد.
  • جلسة تدريب للفريق.

مؤشرات النجاح: انخفاض التعديلات اليدوية، ووجود بيئة اختبار مطابقة للإنتاج، والقدرة على إعادة إنشاء خدمة في وقت معروف، ومراجعة كل تغيير قبل تطبيقه. لمن تصلح: المؤسسات التي لديها بيئات متعددة أو متطلبات تدقيق، والفرق التي تعاني من «خادم لا يعرف أحد كيف أُعدّ»، والشركات التي تريد التعافي من الكوارث عبر إعادة البناء لا عبر نسخ يدوي. اربط هذا الفرع بقسم الأمن السيبراني لمراجعة الصلاحيات، وبخدمة الشبكات لتصميم العزل والاتصال.

05

المراقبة والرصد SRE

Prometheus / Grafana / Loki
SLO وتنبيهات قابلة للتنفيذ
OpenTelemetry

المراقبة ليست جمع أكبر عدد من المقاييس، بل الإجابة عن سؤال: هل الخدمة تعمل بالجودة التي وعدنا بها العميل؟ نبني الرصد حول ثلاث طبقات: المقاييس (metrics) لمعرفة الاتجاهات والحمل، والسجلات (logs) لفهم التفاصيل، والتتبع (traces) لمتابعة الطلب عبر الخدمات. نستخدم OpenTelemetry لتوحيد جمع البيانات، وPrometheus للمقاييس، وGrafana للوحات، وLoki للسجلات، مع ربط التنبيهات بقنوات الفريق بدلًا من بريد لا يقرأه أحد.

نبدأ بتحديد مؤشرات الخدمة (SLI) مثل نسبة الطلبات الناجحة، وزمن الاستجابة، ومعدل الأخطاء، ثم نضع أهدافًا واقعية (SLO) وميزانية خطأ (Error Budget). هذا الإطار يحمي الفريق من مطاردة الكمال غير الممكن، ويسمح باتخاذ قرار: هل نوقف إطلاق الميزات ونصلح الاستقرار، أم نستمر؟ ونصمم التنبيهات لتكون قابلة للتنفيذ: كل تنبيه يجب أن يخبر الشخص بما حدث، وما الأثر، وما الخطوة الأولى، وأين يوجد الدليل. التنبيه الذي لا يؤدي إلى إجراء ليس مراقبة، بل ضوضاء.

في التشغيل اليومي، نضع runbooks للحوادث المتكررة، ونحدد من يكون على الاستدعاء (on-call) وكيف يُصعّد، ونراجع كل حادث بعد انتهائه بأسئلة تخص النظام لا الأفراد. ونحرص على أن تكون السجلات كافية للتحقيق دون أن تصبح عبئًا على التكلفة أو مصدرًا لبيانات حساسة. ونضيف فحوصًا صناعية من مواقع متعددة، ومراقبة تجربة المستخدم، وتنبيهات على شهادات TLS ومعدل الأخطاء في بوابة الدفع والتكاملات الخارجية. الهدف أن يعرف الفريق بوجود المشكلة قبل العميل، وأن يملك مسارًا واضحًا للتعامل معها.

لوحة واحدة لا تخدم الجميع. الإدارة تحتاج صورة عن الاعتمادية والأثر والتكلفة، والمناوب يحتاج تفاصيل الخدمة والأخطاء الأخيرة، والمطور يحتاج تتبعًا لطلب محدد. نبني لوحات منفصلة لكل جمهور، ونستخدم أخذ عينات للسجلات والتتبع لتقليل التكلفة، ونحدد مدة احتفاظ بحسب الحاجة والالتزام التعاقدي. ونراجع الحوادث بأسلوب بلا لوم، ونحوّل كل درس إلى تغيير في الكود أو التنبيه أو runbook. ونضع سياسة ميزانية الخطأ: ماذا يحدث عندما نستهلكها؟ هل نوقف الميزات أم نعيد تخصيص الفريق؟ الإجابة المتفق عليها مسبقًا تمنع الجدل وقت الأزمة.

التنبيه الجيد يحدد الشدة والمالك والخطوة الأولى. نفصل بين ما يستدعي إيقاظ شخص في الليل، وما يمكن أن ينتظر إلى صباح اليوم التالي، وما هو مجرد معلومة في لوحة. ونراجع كل تنبيه بعد فترة: هل أدى إلى إجراء؟ إذا لم يؤدِّ، فإما أن العتبة خاطئة أو أن التنبيه لا يخص أحدًا. ونوثق نوافذ الصيانة، ونراقب الاعتماديات الخارجية مثل بوابة الدفع ومزود الرسائل، لأن العطل قد يأتي من طرف لا نملكه. ونحدد لكل مستوى شدة زمن استجابة متفقًا عليه، ونراجع الالتزام به شهريًا. ونحتفظ بسجل للتنبيهات التي لم تؤدِّ إلى إجراء، ونعالجها بدلًا من تركها تضج بلا فائدة.

ماذا يشمل؟

  • تصميم SLI وSLO وميزانية الخطأ.
  • نشر Prometheus وGrafana وLoki.
  • تتبع موزع عبر OpenTelemetry.
  • تنبيهات وrunbooks وخط تصعيد.
  • لوحات للإدارة والفريق التقني.

المخرجات

  • لوحات مراقبة حسب الخدمة والبيئة.
  • كتالوج تنبيهات وأولويات.
  • runbooks للحوادث الشائعة.
  • تقرير مراجعة حادث ومنع التكرار.
  • خطة تحسين المراقبة.

مؤشرات النجاح: انخفاض زمن الاكتشاف والاستجابة، وانخفاض التنبيهات الكاذبة، ووجود SLO مفهوم يوافق عليه المنتج والتشغيل، وقدرة الفريق على تتبع طلب بطيء من الواجهة إلى قاعدة البيانات. لمن تصلح: الخدمات التي تعمل على مدار الساعة، والفرق التي تتلقى شكاوى قبل أن تعرف بالعطل، والمؤسسات التي تريد إثبات اعتمادية لعملائها. اربط هذا الفرع بخدمة دعم IT وERP/CRM لتوحيد التصعيد التشغيلي، وبقسم الأمن السيبراني لربط السجلات الأمنية بسجلات التشغيل.

06

FinOps وتحسين التكاليف

Cost Visibility
Rightsizing وSavings Plans
حوكمة إنفاق

السحابة تحوّل تكلفة التقنية من مصروف رأسمالي كبير إلى فاتورة شهرية متغيرة. هذا مفيد، لكنه يجعل التكلفة سهلة الارتفاع بلا شعور: بيئة اختبار تُنسى، وقرص غير مرتبط بأي خادم، ونسخ احتياطية قديمة، وسجلات تحتفظ بها سنوات، وخدمة مُدارة صغيرة تتكرر في كل فريق. FinOps هو الإطار الذي يجعل التكلفة مرئية ومملوكة وقابلة للتحسين، دون أن تتحول إلى ممارسة تقشف تعطل الأعمال.

نبدأ بالرؤية: وسم الموارد (Tagging) بحسب البيئة والخدمة والمالك، وربط الفاتورة بالفرق أو المنتجات، وبناء تقرير شهري يفهمه صاحب القرار. ثم ننتقل إلى التحسين: مقارنة حجم المورد بالاستخدام الفعلي، وإيقاف البيئات غير الإنتاجية خارج ساعات العمل، واختيار تخزين مناسب لعمر البيانات، واستخدام خصومات الالتزام أو النسخ الفورية (Spot) للأحمال التي تتحملها، ومراجعة تكاليف الشبكة والتخزين والسجلات التي لا تظهر في الموارد الأساسية.

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

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

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

ماذا يشمل؟

  • تحليل الفاتورة وتوزيعها على الفرق.
  • مراجعة الموارد الخاملة أو المبالغ فيها.
  • خطط خصومات والتزام وSpot.
  • دورة حياة التخزين والسجلات.
  • ميزانيات وتنبيهات وسياسات إنفاق.

المخرجات

  • لوحة تكلفة شهرية حسب الخدمة والمالك.
  • قائمة فرص تحسين مرتبة بالأثر.
  • سياسة وسم وميزانيات.
  • تقرير تكلفة الوحدة.
  • خطة مراجعة دورية.

مؤشرات النجاح: ارتفاع نسبة الموارد الموسومة، وانخفاض الموارد الخاملة، ووجود مالك واضح لكل خدمة، وقدرة الإدارة على تفسير تغير الفاتورة، وتحسن تكلفة الوحدة دون تراجع في الاعتمادية. لمن تصلح: الشركات التي ارتفعت فاتورتها بعد الترحيل، والفرق التي تشترك في حساب واحد بلا توزيع، والمنتجات التي تبيع باشتراك وتحتاج إلى معرفة هامش الربح الحقيقي. اربط هذا الفرع بخدمة خدمات تقنية التوأم لدمج التحسين مع بقية احتياجاتك التقنية، وبصفحة دعم IT لمتابعة الأصول والتراخيص.

07

النسخ الاحتياطي والتعافي من الكوارث

RPO / RTO
نسخ غير قابلة للتعديل
اختبار استعادة دوري

النسخ الاحتياطي ليس ملفًا يُحفظ في مكان آخر، بل قدرة على استعادة خدمة في وقت محدد وبفقدان بيانات محدود. نبدأ بتحديد RPO (كم بيانات يمكن أن نفقد) وRTO (كم وقت يمكن أن تتوقف الخدمة) لكل نظام بحسب أثره على العمل. نظام إدارة المحتوى قد يتحمل ساعات، بينما نظام الطلبات أو الفوترة قد لا يتحمل دقائق. هذه الأرقام يجب أن يعتمدها صاحب العمل، لا أن يقررها الفريق التقني وحده.

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

للتعافي من الكوارث نختار نمطًا بحسب الميزانية والأثر: استعادة من النسخ، أو بيئة احتياطية صغيرة تعمل عند الحاجة (Pilot Light)، أو بيئة دافئة جاهزة للتوسع، أو تعدد المواقع النشطة. ثم نكتب runbook واضحًا: من يعلن الكارثة، ومن يتخذ قرار التحويل، وما خطوات استعادة قاعدة البيانات، وكيف نتحقق من سلامة البيانات، وكيف نعود إلى الوضع الطبيعي. ونختبر السيناريو سنويًا على الأقل، ونقيس الزمن الفعلي لا الزمن النظري.

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

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

ماذا يشمل؟

  • تحليل أثر الأعمال وتحديد RPO/RTO.
  • تصميم نسخ متعددة المناطق والحسابات.
  • حماية النسخ من الحذف والتعديل.
  • خطة تعافٍ وأدوار واتصالات.
  • اختبار استعادة وتوثيق النتائج.

المخرجات

  • مصفوفة أنظمة وأولويات التعافي.
  • سياسة نسخ واحتفاظ وتشفير.
  • runbook للتعافي من الكوارث.
  • تقرير اختبار استعادة.
  • خطة تحسين بعد الاختبار.

مؤشرات النجاح: نجاح استعادة كاملة في بيئة اختبار، وتحقيق RTO/RPO المتفق عليهما، ووجود نسخة محمية من الحذف العرضي، ووضوح المسؤوليات أثناء الأزمة. لمن تصلح: شركات الخدمات اللوجستية والتجارة الإلكترونية والمنصات التي تتوقف أعمالها عند انقطاع النظام، والمؤسسات التي لديها متطلب تعافٍ من عميل أو جهة تنظيمية. اربط هذا الفرع بخدمة النسخ الاحتياطي ونقل الاستضافة، وبقسم الأمن السيبراني لاختبار سيناريو الفدية والتسريب.

08

GitOps والمنصة الهندسية

Argo CD
Git مصدر الحقيقة
منصة تطوير داخلية

GitOps يوسّع مبدأ البنية التحتية ككود إلى التطبيقات والنشر: الحالة المطلوبة للبيئة تُحفظ في مستودع Git، ووكيل مثل Argo CD يراقب الفرق بين ما في المستودع وما هو موجود فعليًا، ويصلح الانحراف تلقائيًا. الفائدة أن كل تغيير له مراجعة وسجل، وأن استعادة البيئة تصبح عملية إعادة تطبيق لحالة معروفة، لا سلسلة أوامر يحفظها شخص واحد. كما يصبح من الواضح من وافق على ماذا، ومتى.

المنصة الهندسية (Platform Engineering) تكمل GitOps ببناء مسارات جاهزة للفرق: قوالب خدمة جديدة، وبيئات معزولة، وخط نشر، ومراقبة افتراضية، وإدارة أسرار، وسياسات صلاحيات. الهدف تقليل العبء المعرفي على فريق المنتج، لا إخفاء ما يحدث. الفريق يختار من قائمة مسارات مدعومة، ويحصل على بيئة متوافقة مع سياسات المؤسسة، بينما تحتفظ المنصة بالحوكمة والتحديثات المركزية.

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

GitOps يمثل عقدًا بين الفرق والمنصة: ما في Git هو ما يجب أن يكون، وأي اختلاف يُرصد. نستخدم أدوات مثل External Secrets أو Sealed Secrets لتمرير الأسرار دون تخزينها كنص صريح، ونفصل مستودعات التطبيقات عن مستودعات البيئات، وننفذ الترقية بين البيئات عبر طلب مراجعة واضح. ونضيف تنبيهًا عند الانحراف بدلًا من إصلاح صامت قد يخفي مشكلة. ونحدد فريق المنصة وأدواره، ونقيس تبنّي القوالب ورضا المطورين، لا عدد الأدوات فقط.

التبني لا يُفرض بقرار إداري. نبدأ بفريق واحد لديه ألم واضح، ونبني معه مسارًا يحل مشكلته فعلًا، ثم نوثق النتيجة ونعرضها على بقية الفرق. ونضع حواجز حماية (Guardrails) بدلًا من قوائم منع طويلة: صلاحيات افتراضية آمنة، وقوالب جاهزة، وفحوص تلقائية، واستثناءات موثقة. ونقيس وقت الوصول إلى بيئة، وعدد الخطوات اليدوية، وعدد الحوادث الناتجة عن تغيير، لنعرف إن كانت المنصة تستحق الاستثمار. ونحدد اتفاقية خدمة داخلية للمنصة، وقناة دعم، ومراجعة ربعية مع الفرق، حتى لا تصبح عبئًا إضافيًا على المطورين. ونحتفظ بمسار واضح للاستثناءات، ونقيس زمن الاستجابة لطلبات الفرق، لأن المنصة الجيدة تُقاس بما تيسره، لا بما تفرضه. وندرب فريق المنصة على التواصل مع المنتج، لا على إدارة الأدوات فقط. ونراجع المنصة كل ربع مع الفرق لمعرفة ما يعرقلهم، ونحذف ما لا يُستخدم بدلًا من إبقائه بدافع العادة.

ماذا يشمل؟

  • تصميم مستودعات Git والحالات المطلوبة.
  • نشر Argo CD وضبط المزامنة.
  • قوالب خدمة وبيئات ذاتية الخدمة.
  • إدارة أسرار وRBAC وسياسات.
  • توثيق المسارات وقياس تبنّيها.

المخرجات

  • منصة GitOps تعمل على بيئات متعددة.
  • كتالوج قوالب ومسارات معتمدة.
  • دليل مطور ووثائق تشغيل.
  • لوحة تبنّي وجودة المنصة.
  • خطة توسع وحوكمة.

مؤشرات النجاح: انخفاض الوقت من فكرة إلى بيئة جاهزة، وارتفاع نسبة التغييرات المطبقة عبر Git، ووجود سجل تدقيق واضح، وانخفاض التدخلات اليدوية في الإنتاج. لمن تصلح: الفرق التي تكبر بسرعة وتحتاج إلى توحيد الممارسات، والشركات التي تدير عدة منتجات أو فرق، والمؤسسات التي تحتاج إلى فصل بيئات مع دليل مراجعة. اربط هذا الفرع بـالأقسام التقنية الحديثة لرؤية الصورة الكاملة، وبقسم الأمن السيبراني لمراجعة الصلاحيات وسلسلة التوريد.

حالات استخدام عملية

السحابة وDevOps يبدوان مصطلحين عامين حتى نربطهما بموقف تشغيلي محدد. فيما يلي خمس حالات نعمل عليها كثيرًا في السوق السعودي، مع توضيح نقطة البداية، والقرارات الرئيسية، والنتيجة التي تهم صاحب العمل. الأسماء والأرقام هنا توضيحية، لكن المنطق التشغيلي مستمد من مشاريع حقيقية.

1. متجر إلكتروني ينتقل من استضافة مشتركة إلى AWS

متجر يبيع منتجات منزلية ويعتمد على استضافة مشتركة. في الأيام العادية يعمل الموقع، لكنه يتباطأ في العروض الموسمية مثل رمضان والجمعة البيضاء، ولا يستطيع الفريق معرفة سبب البطء: هل هو قاعدة البيانات، أم الصور، أم عدد الزوار، أم إضافة قديمة؟ خطط النمو تتضمن حملات إعلانية أكبر، لكن الاستضافة الحالية لا تمنح تحكمًا كافيًا في الموارد أو النسخ الاحتياطي أو الأمان.

نبدأ بتقييم التطبيق وحركة الزوار وحجم الصور والاعتماديات. ثم نصمم بيئة AWS مناسبة: Route 53 للنطاق، وCloudFront وS3 لخدمة الصور والملفات الثابتة، وALB لتوزيع الطلبات، وتشغيل التطبيق على ECS Fargate أو مجموعة EC2 قابلة للتوسع، وقاعدة بيانات RDS MySQL بنسخة احتياطية متعددة المناطق، وElastiCache للجلسات، وWAF للحماية. ننشئ بيئة staging مطابقة، ونختبر مسار الشراء والدفع عبر مدى والبطاقات والخصومات، ثم ننتقل تدريجيًا مع خفض TTL للنطاق وخطة رجوع.

بعد الانتقال نراقب زمن الاستجابة ومعدل الأخطاء وسلوك التوسع، ونضبط حدود التكلفة والتنبيهات. ونوثق إجراءات إضافة منتج جديد وتحديث الصور ومراجعة الفاتورة. النتيجة ليست «موقعًا على AWS» فقط، بل متجر يعرف فريقه أين تذهب الموارد، ويستطيع الاستعداد للذروة بثقة أكبر، ويعود إلى إصدار سابق إذا فشل التحديث.

2. فريق SaaS يريد إصدارات أسبوعية بدلًا من إصدار شهري

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

نبني خط CI/CD على GitHub Actions: فحص الكود، وتشغيل اختبارات الوحدة والتكامل، وبناء صورة Docker، وفحص الاعتماديات، ونشر إلى بيئة staging تلقائيًا عند الدمج. ثم نضيف نشرًا تدريجيًا إلى الإنتاج مع feature flags، ونفصل ترحيلات قاعدة البيانات عن نشر الكود، ونضع سياسة تراجع. نربط التنبيهات بمؤشرات الخدمة، ونجعل كل إصدار يحمل رقمًا واضحًا يمكن تتبعه في السجلات.

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

3. شركة لوجستية تحتاج إلى تعافٍ من الكوارث

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

نبدأ بتحليل أثر الأعمال: ما الأجزاء التي يجب أن تعود أولًا؟ نتفق على RPO وRTO واقعيين لكل نظام، ثم نصمم نسخًا احتياطية مشفرة إلى حساب منفصل مع حماية من الحذف، وننسخ قاعدة البيانات إلى منطقة ثانية. نبني بيئة احتياطية صغيرة عبر Terraform تعمل عند الحاجة (Pilot Light)، ونكتب runbook يحدد من يعلن الحادث، ومن يحوّل حركة المرور، وكيف نتحقق من سلامة البيانات بعد الاستعادة.

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

4. شركة ناشئة تتبنى Kubernetes بفريق صغير

فريق من أربعة مهندسين يبني منصة بخمس خدمات، وينمو عدد العملاء بسرعة. الفريق يستخدم خوادم افتراضية ويدير النشر يدويًا، ويشعر أن الوقت يُستهلك في إعداد البيئات وتثبيت الاعتماديات. أحد المستثمرين اقترح Kubernetes، لكن الفريق يخشى أن يصبح الكلاستر مشروعًا بحد ذاته.

نقيّم الحاجة أولًا: هل التعقيد مبرر؟ في هذه الحالة، وجود خمس خدمات وتوسع غير متوقع يجعل Kubernetes المُدار خيارًا معقولًا، بشرط تقليل الإضافات. نستخدم EKS أو GKE مع عُقد عمل مُدارة، وArgo CD للنشر، وPrometheus وGrafana للمراقبة، وHPA للتوسع. نبدأ دون service mesh، ونضيف فقط ما يحتاجه الفريق: ingress، وإدارة أسرار، وسياسات شبكة أساسية، ونسخًا احتياطية للحالة الدائمة.

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

5. شركة تريد خفض فاتورة السحابة دون تعطيل الأعمال

شركة نمت فاتورتها السحابية بشكل ملحوظ خلال سنة، لكن لا أحد يعرف السبب بدقة. الحساب مشترك بين فرق المنتج والبيانات والتسويق، والموارد بلا وسوم واضحة، وهناك بيئات اختبار تعمل طوال الوقت. الإدارة تطلب خفض التكلفة، والفريق يخشى أن يؤدي الضغط إلى تعطيل خدمة أو إبطاء التطوير.

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

نضع ميزانيات وتنبيهات، وسياسة لمراجعة أي مورد جديد، وتقريرًا شهريًا لتكلفة الوحدة. نتفق على قواعد حماية: لا نخفض التكرار أو النسخ الاحتياطي أو المراقبة لمجرد توفير مبلغ. النتيجة أن الفريق يفهم أين تذهب التكلفة، ويستطيع اتخاذ قرارات مستنيرة، مع الحفاظ على مستوى الخدمة الذي يحتاجه العملاء.

أخطاء شائعة ترفع التكلفة وتضعف الاعتمادية

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

1. الرفع والنقل دون إعادة تصميم

نقل الخادم كما هو إلى السحابة (Lift and Shift) قد يكون خطوة أولى مشروعة عند الحاجة إلى سرعة الخروج من مركز بيانات، لكنه ليس نهاية الطريق. النتيجة غالبًا خادم سحابي كبير يعمل بنفس الطريقة القديمة، بلا توسع تلقائي، وبنسخ احتياطي يدوي، وفاتورة أعلى. ننصح بتحديد التطبيقات التي تستفيد من إعادة التصميم، وترحيل الباقي تدريجيًا، ومراجعة المعمارية بعد الاستقرار.

2. أسرار داخل المستودع أو في متغيرات مكشوفة

كلمة مرور قاعدة بيانات في ملف `.env` مرفوع إلى Git، أو مفتاح سحابي دائم داخل إعدادات خط النشر، أو رمز وصول في سجل بناء. هذه الأخطاء تنتشر لأنها تعمل بسرعة، لكنها تمنح أي شخص لديه وصول إلى المستودع أو السجلات قدرة على اختراق البيئة. الحل ليس فقط حذف الملف من آخر commit؛ يجب إبطال المفتاح، ومراجعة السجلات، والانتقال إلى إدارة أسرار مركزية وهوية مؤقتة، وإضافة فحص تلقائي يمنع تكرار الخطأ.

3. غياب الرؤية عن التكلفة وملكيتها

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

4. التعديل اليدوي من لوحة التحكم

مورد أُنشئ بالكود ثم عُدّل يدويًا لحل مشكلة عاجلة، ثم تغيّر الكود لاحقًا وأعاد الحالة القديمة. هذه «ClickOps» تخلق انحرافًا بين ما هو موثق وما هو موجود، وتجعل إعادة البناء غير موثوقة. نضع قاعدة واضحة: أي تغيير دائم يمر عبر المستودع، والتعديل اليدوي الطارئ يُوثق ويُعاد إلى الكود في أقرب وقت. ونستخدم كشف الانحراف لرصد الفروق قبل أن تتحول إلى حادث.

5. نسخة احتياطية لم تُختبر

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

6. مراقبة كل شيء وتنبيه لا يقرأه أحد

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

7. تبنّي Kubernetes قبل الحاجة

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

8. غياب الملكية وخطة الاستدعاء

من يملك الخدمة بعد الإطلاق؟ من يرد على التنبيه في الثانية صباحًا؟ من يقرر التراجع؟ إذا لم تكن الإجابات واضحة، فستتأخر الاستجابة حتى يجد شخص ما المشكلة. نحدد مالكًا لكل خدمة، وخطة on-call واقعية، وقناة تصعيد، وحدود صلاحية. الملكية ليست عقابًا لفريق، بل شرط لاتخاذ القرار بسرعة.

مؤشرات نقيسها معك

لا نستخدم مؤشرات لتزيين التقارير، بل لمعرفة إن كان التغيير يحقق أثرًا. نختار عددًا صغيرًا من المؤشرات ونراجعها دوريًا، ونقارن الاتجاه لا الرقم المطلق. ومن أهمها:

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

لا تقع في فخ «التحسين» الذي يضعف الخدمة

خفض التكلفة أو تقليل النسخ الاحتياطي أو تبسيط المراقبة قد يبدو جيدًا في تقرير هذا الشهر، لكنه قد يتحول إلى انقطاع مكلف لاحقًا. نضع حدودًا واضحة: لا تُقلَّص الاعتمادية أو الأمان أو القدرة على الاستعادة مقابل توفير غير مستدام. الأفضل تحسين معماري حقيقي، لا قصّ أعمى للموارد.

كيف نعمل؟ منهجية من ست مراحل

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

منهجية الحوسبة السحابية وDevOps في تقنية التوأم: الاكتشاف، التصميم، البناء والأتمتة، الترحيل، الرصد والتقوية، التحسين والتسليم
منهجية متكررة: كل مرحلة تنتج قرارًا موثقًا ومخرجًا يمكن مراجعته.
1

الاكتشاف وتقييم الجاهزية

نجرد التطبيقات والبيانات والاعتماديات، ونحدد أهداف العمل والقيود التنظيمية والميزانية والموعد. نراجع الوضع الحالي للشبكة والهوية والنسخ الاحتياطي والمراقبة، ونحدد الفجوات التي قد تعطل المشروع قبل أن تبدأ.

2

تصميم المعمارية ومنطقة الهبوط

نختار المزود والخدمات ونصمم الحسابات والشبكة والهوية والصلاحيات والسجلات. نضع قرارات معمارية موثقة (ADR)، ونحدد ما سيُدار ككود وما سيبقى خدمة مُدارة، ونراجع التصميم مع فريقك قبل التنفيذ.

3

البناء والأتمتة

ننشئ البنية التحتية عبر Terraform، ونبني خطوط CI/CD، ونهيئ البيئات والحاويات والمراقبة. نبدأ بمسار رفيع كامل لخدمة واحدة، ونتأكد من أن النشر والتراجع يعملان قبل توسيع النطاق إلى بقية الخدمات.

4

الترحيل والإطلاق على موجات

ننفذ خطة موجات بحسب المخاطر والاعتماديات، مع تجهيز بيانات واختبارات وcutover وخط رجوع. نبدأ بخدمة منخفضة الخطورة، ونتعلم من النتائج قبل الأنظمة الحرجة، ونخصص فترة مراقبة مكثفة بعد كل انتقال.

5

الرصد والتقوية

نضبط SLI وSLO وتنبيهات قابلة للتنفيذ، ونختبر الاستعادة وسيناريوهات الفشل، ونراجع الصلاحيات والشبكات والأسرار. نتحقق من أن الفريق يعرف ماذا يفعل عند الحادث، وأن السجلات كافية للتحقيق دون تكلفة زائدة.

6

التحسين والتسليم

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

قاعدة نلتزم بها

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

حوكمة المشروع والتواصل

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

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

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

المخرجات والتسليمات

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

  • تقييم الجاهزية وخطة الترحيل: جرد التطبيقات والاعتماديات، والمخاطر، والموجات المقترحة.
  • تصميم المعمارية: مخطط البيئات والحسابات والشبكة والهوية والبيانات، مع قرارات موثقة.
  • بنية تحتية ككود: مستودع Terraform منظم بوحدات وبيئات، وسياسات ومراجعة تغيير.
  • خطوط نشر: CI/CD موثق، مع اختبارات وبوابات جودة ومسار تراجع.
  • بيئات جاهزة: تطوير واختبار وإنتاج منفصلة، وقوالب لإضافة خدمة جديدة.
  • مراقبة وتنبيهات: لوحات Grafana، وتنبيهات مرتبطة بـrunbooks، وتقرير SLO.
  • خطة نسخ احتياطي وتعافٍ: سياسات احتفاظ وتشفير، وتقرير اختبار استعادة.
  • تقرير تكلفة: توزيع الإنفاق، والفرص المقترحة، والميزانيات والتنبيهات.
  • دليل تشغيل: إجراءات النشر والتراجع والاستجابة للحوادث والصيانة.
  • تدريب وتسليم: جلسات عملية مع الفريق، وخطة تحسين لما بعد المشروع.

نحرص على أن تكون الوثائق قابلة للاستخدام، لا مكتوبة لتبدو شاملة. كل runbook يجب أن يجيب عن سؤال «ماذا أفعل الآن؟»، وكل لوحة يجب أن تساعد على قرار، وكل مستودع يجب أن يكون له مالك وطريقة مساهمة واضحة. وإذا كان فريقك يفضل أدوات معينة، نعمل ضمنها بدلًا من فرض أدوات جديدة بلا سبب.

كيف نسلّم؟

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

التسعير ونماذج التعاون

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

نموذج التعاون الأنسب لمن ما يشمله عادة
تقييم جاهزية السحابة مؤسسة تخطط للانتقال أو تريد مراجعة بيئتها الحالية جرد محدود، مراجعة معمارية، مقارنة خيارات، تقدير تكلفة، خطة موجات
ترحيل موجّه شركة تنتقل من خوادم أو استضافة مشتركة إلى السحابة تصميم منطقة هبوط، ترحيل تطبيقات وبيانات، cutover، فترة مراقبة، توثيق
بناء منصة DevOps فريق منتج يريد أتمتة النشر وتوحيد البيئات CI/CD، بنية تحتية ككود، حاويات، مراقبة، قوالب خدمة، تدريب
تشغيل مُدار SRE وFinOps فريق صغير لا يملك متخصصًا بدوام كامل مراقبة، استجابة للحوادث، مراجعة تكلفة، تحسين دوري، تقارير
تمكين وتدريب فريق داخلي يريد الاعتماد على نفسه ورش عملية، مرافقة على مهام حقيقية، مراجعة كود، توثيق ممارسات

العوامل التي ترفع أو تخفض التكلفة

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

كيف تقرأ العرض؟

قارن نطاق العمل والمخرجات والمسؤوليات، لا السعر وحده. اسأل: من يملك الكود بعد التسليم؟ هل يشمل التدريب؟ هل توجد فترة دعم بعد الإطلاق؟ ما الافتراضات التي بُني عليها العرض؟ العرض الجيد يوضح ما لن يفعله أيضًا، حتى لا تظهر تكاليف غير متوقعة في منتصف المشروع.

ما لا يشمله العرض عادة

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

للحصول على عرض دقيق، أرسل لنا: عدد التطبيقات وأنواعها، وحجم البيانات، والبيئات الحالية، والمزود إن كان محددًا، ومتطلبات مكان البيانات، والموعد المستهدف، وحجم الفريق. يمكننا البدء بجلسة اكتشاف قصيرة بدون التزام، ثم نقترح نطاقًا ومراحل واضحة.

الأسئلة الشائعة

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

ما الفرق بين DevOps وSRE؟

DevOps ثقافة وممارسات تربط التطوير والتشغيل عبر الأتمتة والمراجعة والمسؤولية المشتركة. SRE تطبيق هندسي لهذه الممارسات، يركز على الاعتمادية عبر مؤشرات الخدمة وأهدافها وميزانية الخطأ والتعامل المنظم مع الحوادث. في المشاريع الصغيرة قد يقوم الشخص نفسه بالمهام، لكن الفصل يساعد على بناء أدوار واضحة عندما يكبر الفريق والأنظمة.

هل الانتقال إلى السحابة يخفض التكلفة دائمًا؟

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

كيف نختار بين AWS وAzure وGoogle Cloud (GCP)؟

الاختيار يعتمد على الخدمات التي تحتاجها، ومهارات فريقك، والتكاملات الحالية، ومتطلبات مكان البيانات، والعقود السحابية القائمة. قد تكون AWS مناسبة لتنوع الخدمات، وAzure أقرب لبيئة Microsoft، وGoogle Cloud قوية في البيانات والحاويات. ننصح بتجربة عملية محدودة على أكثر من خيار عند الحاجة، وعدم اتخاذ القرار بناءً على عرض سعر أولي فقط.

كم يستغرق ترحيل تطبيق إلى السحابة؟

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

هل نحتاج إلى Kubernetes؟

ليس بالضرورة. إذا كنت تدير تطبيقًا واحدًا بسيطًا، فقد تكون منصة حاويات مُدارة أو خدمة serverless أقل تعقيدًا. Kubernetes يفيد عندما يكون لديك عدة خدمات، وتحتاج إلى توسع وتوحيد بيئات، وفريق قادر على صيانته. القرار يجب أن يوازن بين الفائدة والتعقيد والتكلفة، لا أن يتبع الموضة.

كيف تتعاملون مع PDPL ومكان تخزين البيانات؟

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

هل يمكن الترحيل دون توقف الخدمة؟

في كثير من الحالات نعم، أو بتوقف قصير متفق عليه. يعتمد ذلك على نوع قاعدة البيانات، وحالة التطبيق، وقدرته على العمل في بيئتين مؤقتًا. نستخدم مزامنة بيانات، وDNS منخفض TTL، وخطة رجوع، واختبارًا مسبقًا. بعض الأنظمة القديمة قد تحتاج نافذة صيانة، ونحددها بوضوح بدلًا من الادعاء بأن التوقف مستحيل.

من يدير البيئة بعد انتهاء المشروع؟

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

هل تعملون مع فريق تقني داخلي؟

نعم، وهذا شائع. يمكننا العمل كامتداد للفريق، أو كمنفذ لمهمة محددة، أو كمراجع مستقل للتصميم. نشارك القرارات ونوثقها ونراجع الكود مع الفريق بدلًا من بناء صندوق أسود. نحدد اجتماعًا أسبوعيًا وقناة تواصل ومسؤوليات واضحة، حتى لا تتوقف المهام عند حدود غير معروفة.

ماذا يحدث إذا ارتفعت فاتورة السحابة بعد الترحيل؟

نضع من البداية وسومًا وميزانيات وتنبيهات، ونراجع الفاتورة شهريًا. إذا ارتفعت، نحلل السبب: هل هو نمو حقيقي، أم مورد خامل، أم تكلفة شبكة أو سجلات، أم تغيير معماري؟ ثم نقترح إجراءات مرتبة بالأثر والمخاطر. لا نخفض التكلفة بشكل أعمى، ولا نعد بأنها ستنخفض بنسبة محددة مسبقًا.

هل تقدمون دعمًا على مدار الساعة؟

نقدمه بحسب الاتفاق وطبيعة الخدمة. بعض الفرق تحتاج تغطية كاملة لأن أنظمتها حرجة، وبعضها يكفيه دعم خلال ساعات العمل مع مسار تصعيد للحوادث الحرجة. نحدد أوقات الاستجابة وأولويات الحوادث وقنوات الاتصال في اتفاق مستوى الخدمة، ونختبر المسار قبل الاعتماد عليه. ونراجع الاتفاق دوريًا مع تغير الأنظمة وحجم العمل، ونحدّث قائمة جهات الاتصال.

كيف نبدأ؟

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

جاهز لبناء تشغيل سحابي أوضح؟

ابدأ بجلسة اكتشاف قصيرة. نراجع بيئتك وأهدافك ونحدد الخطوة التالية، بدون التزام.

تحدث مع فريق السحابة

فريق تقنية التوأم

نجمع خبرة السحابة وهندسة المنصات والتشغيل والأمن لمساعدة المؤسسات السعودية على بناء أنظمة قابلة للنمو. نعمل بمنهجية واضحة، ونوثق كل قرار، ونسلّم الفريق قدرة حقيقية على الإدارة.