Software Engineering11 يوليو 20268 min read

تحسين تكاليف السحابة: دليل عملي للفرق المتنامية

ارتفعت فاتورة السحابة لديك بهدوء بينما كنت منشغلاً بإطلاق الميزات. إليك دليلاً عملياً لإعادتها إلى السيطرة دون إبطاء الفريق.

بقلم Innovation T Team


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

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

احصل على الرؤية الواضحة قبل أن تقتطع أي شيء

لا يمكنك تحسين رقم لا تستطيع رؤيته. السبب الأكبر الوحيد لإفراط الفرق في الإنفاق ليس تقنياً، بل هو أن لا أحد يستطيع الإجابة عن سؤال بسيط: كم يكلفنا هذا، ولماذا؟

ابدأ بالوسم (tagging). كل مورد تشغّله ينبغي أن يحمل مجموعة صغيرة من الوسوم المتسقة: البيئة (prod، staging، dev)، والفريق أو المالك، ومن المثالي المنتج أو العميل الذي ينتمي إليه. الوسوم هي ما يحوّل فاتورة عملاقة غير مصنّفة إلى قصة يمكنك قراءتها فعلاً. من دونها، تكون تقارير التكاليف مجرد جدار من أسماء الخدمات. ومعها، يمكنك تقسيم الإنفاق حسب البيئة واكتشاف أن حسابات dev لديك تكلف تقريباً بقدر ما تكلفه بيئة الإنتاج، وهي مفاجأة شائعة جداً وقابلة للإصلاح جداً.

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

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

اضبط أحجام ما تشغّله بالفعل

بمجرد أن تتمكن من رؤية الإنفاق حسب المورد، فإن المكسب التالي هو ضبط الأحجام (right-sizing). معظم البيئات مليئة بالحالات وقواعد البيانات والحاويات التي حُدِّدت أحجامها بالتخمين ولم تُراجَع قط. الخادم الذي يعمل بنسبة 8 بالمئة من استخدام المعالج ليس مرونة، بل هو تبرع شهري لمزوّد السحابة لديك.

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

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

دع التوسع التلقائي يوائم العرض مع الطلب

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

اضبط التوسع التلقائي بحيث تتبع السعة المنحنى: مزيد من الحالات خلال ساعات العمل أو ذُرى حركة المرور، وأقل ليلاً أو في عطلات نهاية الأسبوع. بالنسبة لأعباء العمل المتقطعة فعلاً أو المدفوعة بالأحداث، يمكن أن تكون خيارات serverless وscale-to-zero أرخص بشكل كبير لأنك تدفع فقط عندما يعمل الكود فعلاً. المكسب السريع الكلاسيكي هنا هو جدولة إيقاف بيئات ما قبل الإنتاج خارج ساعات العمل. بيئة dev التي تنام ليلاً وفي عطلات نهاية الأسبوع يمكن أن تكلف أقل بنحو الثلثين من بيئة تعمل 24/7، ولا أحد يفتقد صندوق staging في الثالثة صباحاً.

استخدم سعة spot والسعة الملتزم بها عن قصد

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

هناك رافعتان تساعدان هنا، وهما تحلان مشكلتين مختلفتين:

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

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

انقل البيانات إلى مستوى التخزين الصحيح

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

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

احذر مصائد egress

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

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

اقضِ على الزومبي

كل حساب سحابي يراكم موارد زومبي: أشياء تعمل، وتحاسبك، ولا تخدم أي غرض. عناوين IP غير المرتبطة، وموازنات التحميل الخاملة، وقواعد بيانات الاختبار المنسية، والبيئات القديمة من مشروع أُطلق الربع الماضي، وحالات dev شغّلها أحدهم ولم يوقفها قط.

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

استخدم التخزين المؤقت لخفض الحوسبة

التحسين ليس فقط شراء أقل. أحياناً يكون الطلب الأرخص هو الذي لا تحسبه أبداً. يقع التخزين المؤقت (caching) عند تقاطع الأداء والتكلفة، لأن العمل الذي تتجنبه هو عمل لا تدفع ثمنه.

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

ابنِ عادة FinOps خفيفة

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

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

خطة تنظيف تكاليفك في 30 يوماً

لست مضطراً إلى فعل كل هذا دفعة واحدة. إليك شهراً مركّزاً يلتقط معظم المكاسب السهلة:

  1. الأيام 1 إلى 3: شغّل الرؤية. فعّل تقارير التكاليف المفصلة وأنشئ لوحة تحكم يراها الفريق بأكمله. سجّل معدل إنفاقك الشهري الحالي كخط أساس.
  2. الأيام 4 إلى 7: وسِّم كل شيء. طبّق مخطط وسم متسقاً (البيئة، المالك، المنتج) واملأ الوسوم على الموارد القائمة. قسّم إنفاقك حسب البيئة.
  3. الأيام 8 إلى 10: اصطَد الزومبي. أدرج الموارد ذات الاستخدام المنخفض أو الصفري. حدّد الأحجام غير المرتبطة، وموازنات التحميل الخاملة، وعناوين IP اليتيمة، والبيئات المنسية.
  4. الأيام 11 إلى 14: أوقف التشغيل بأمان. خذ لقطة لأي شيء غير مؤكد، ثم احذف الزومبي المؤكدين. هذا وحده غالباً ما يحقق انخفاضاً ملحوظاً في الفاتورة التالية.
  5. الأيام 15 إلى 18: اضبط الأحجام. قارن السعة المخصصة بالاستخدام الحقيقي وخفّض الحالات وقواعد البيانات المفرطة الحجم بوضوح.
  6. الأيام 19 إلى 21: جدول ووسّع تلقائياً غير الإنتاجي. أوقف dev وstaging خارج ساعات العمل وفعّل التوسع التلقائي حيثما يناسب.
  7. الأيام 22 إلى 25: صنّف تخزينك. حدّد سياسات دورة حياة لنقل البيانات مع تقادمها إلى مستويات أرخص واحذف ما لست ملزماً بالاحتفاظ به.
  8. الأيام 26 إلى 28: التزم وانتقل إلى spot. اشترِ سعة محجوزة أو خطط توفير لخط أساسك المُثبَت، وانقل أعباء العمل القابلة للمقاطعة إلى حالات spot.
  9. الأيام 29 إلى 30: اجعلها عادة. اضبط تنبيهات الميزانية، وجدول مراجعة شهرية دورية للتكاليف، وعيّن مالكاً.

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

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

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

#السحابة#FinOps#تحسين التكاليف#devops

جاهز للبناء مع Innovation T؟

سواء كان الأمر يتعلق بالأمن أو النمو أو الهندسة، يمكن لفريقنا مساعدتك على تنفيذه بإتقان.