السلام عليكم يا جماعة الخير، معكم أخوكم أبو عمر.
خليني أحكيلكم قصة صارت معي قبل كم سنة. كنا في شركتنا الناشئة مبسوطين كثير على “السحابة” (Cloud). مرونة، سرعة، وقدرة على التوسع بضغطة زر. كنا زي الطفل اللي دخل محل ألعاب ومعه مصاري أبوه، كل ما نشوف خدمة جديدة “حلوة”، نستخدمها بدون تفكير. EC2 instances بزيادة؟ يلا مش مشكلة. قواعد بيانات ضخمة للتجارب؟ عادي، بنحذفها بعدين. تخزين S3 بلا حدود؟ ما هي رخيصة!
وظلّينا على هالحال أشهر، والأمور ماشية. لحد ما إجا يوم، وفتحت لوحة التحكم لأرى رقماً لم أكن أتخيله. الفاتورة كانت أكبر بثلاثة أضعاف من المتوقع. شعرت كأن أحدهم سكب عليّ دلواً من الماء البارد. اجتمعت مع الفريق، وبدأنا رحلة البحث عن “المجرم”. مين اللي ترك السيرفر الفلاني شغال؟ مين اللي عمل قاعدة البيانات هاي؟ تحول الجو من فريق متعاون إلى مكتب تحقيق، والكل يرمي التهمة على الآخر.
في تلك اللحظة، أدركت أن المشكلة ليست في شخص واحد، بل في “ثقافة” الشركة بأكملها. المشكلة أننا نتعامل مع موارد السحابة كأنها لا نهائية ومجانية. هنا بدأت رحلتي في البحث عن حل، وكان الحل يحمل اسماً غريباً بعض الشيء وقتها: FinOps.
ما هو الـ FinOps؟ وليش هو مش مجرد كلمة طنانة؟
ببساطة، وبدون تعقيدات، الـ FinOps هو محاولة تطبيق مبادئ الإدارة المالية (Financial Operations) على عالم السحابة. هو مش أداة تشتريها ولا برنامج بتنزله، هو “ثقافة” وعقلية جديدة. الفكرة كلها إنه زي ما عندك فريق مطورين (Dev) وفريق عمليات (Ops)، لازم تدخل “الفريق المالي” (Fin) على الخط. الهدف هو جعل الجميع مسؤولاً عن الإنفاق، من المطور اللي بيكتب الكود إلى المدير المالي اللي بيوقع على الشيكات.
الـ FinOps يقوم على ثلاث مراحل أساسية، زي ما بحكوها: دورة حياة. خلونا نمشي فيها خطوة خطوة زي ما عملنا في شركتنا.
المرحلة الأولى: “شو القصة؟” – مرحلة الفهم والإعلام (Inform)
هذه هي أهم مرحلة، وبدونها كل اللي جاي حكي فاضي. قبل ما تفكر توفر قرش واحد، لازم تعرف مصاريك وين بتروح بالضبط. الهدف هنا هو تحقيق “الشفافية الكاملة”.
الرؤية والشفافية: كشف المستور
أول خطوة عملناها هي الغوص في أدوات تحليل التكاليف اللي بتوفرها منصات السحابة نفسها. أشهرها وأقواها هو AWS Cost Explorer. هذه الأداة صارت صديقي الصدوق. بتخليك تفلتر التكاليف حسب الخدمة، حسب المنطقة، حسب حساب معين، وأهم شيء، حسب “العلامات” (Tags) اللي رح نحكي عنها كمان شوي.
نصيحة أبو عمر العملية: خصص ساعة كل أسبوع، نعم ساعة واحدة فقط، لتفتح أداة تحليل التكاليف وتنظر إلى الرسوم البيانية. حاول أن تفهم: ما هي أكثر خدمة تستهلك الميزانية؟ هل هناك قفزات غير متوقعة في التكلفة؟ هذه الساعة ستوفر عليك آلاف الدولارات لاحقاً.
وضع العلامات (Tagging): سر التنظيم
تخيل فاتورتك كومة فواتير مطعم غير مفصلة، مكتوب عليها فقط “المجموع: 5000 دولار”. كيف ستعرف من أكل ماذا؟ هذا بالضبط ما يحدث في السحابة بدون “علامات”.
الـ Tagging هو ببساطة وضع ملصقات على كل مورد (resource) تقوم بإنشائه. هذه الملصقات تحتوي على معلومات مثل:
project: اسم المشروع (مثلاً: new-feature-x)environment: بيئة العمل (e.g., production, staging, development)owner: اسم الشخص أو الفريق المسؤولcost-center: مركز التكلفة المحاسبي
لما تعمل هيك، بتقدر بسهولة في Cost Explorer تفلتر وتعرف إنه “فريق التسويق” كلفنا الشهر الماضي 500 دولار على بيئة التجارب الخاصة بهم. هنا تصبح المحاسبة ممكنة وواضحة.
المرحلة الثانية: “شد الحزام” – مرحلة التحسين والترشيد (Optimize)
بعد ما فهمنا وين بتروح المصاري، إجا وقت الشغل الجد. مرحلة التحسين هي اللي فيها التوفير الحقيقي. وهذه بعض الاستراتيجيات اللي طبّقناها وكانت نتائجها فورية.
الحجم المناسب (Right-Sizing): لا كبير ولا صغير، عالقد بالضبط
أكبر خطأ يقع فيه المطورون هو المبالغة في تقدير حجم الموارد (Over-provisioning). نختار سيرفرات EC2 بمواصفات خارقة “للاحتياط”، مع أن التطبيق لا يستخدم إلا 10% من قدرتها. هذا مثل استئجار باص لنقل شخص واحد. استخدم أدوات مثل AWS Compute Optimizer التي تحلل استخدامك الفعلي وتقترح عليك حجماً أصغر وأرخص دون التأثير على الأداء.
الموارد الخاملة (Idle Resources): مقبرة السحابة الرقمية
هذه كانت صدمتي الكبرى. وجدنا عشرات الـ “أشباح الرقمية” في حسابنا:
- وحدات تخزين EBS غير المرفقة (Unattached): هذه مثل هارد ديسك اشتريته وتركته في الكرتونة، لكنك لا تزال تدفع إيجار تخزينه شهرياً!
- عناوين IP مرنة (Elastic IPs) غير مستخدمة.
- قواعد بيانات للتجارب تم نسيانها.
- Snapshots قديمة جداً لم يعد لها لزوم.
تنظيف هذه الموارد وفر علينا حوالي 15% من الفاتورة في أول شهر. يمكنك كتابة سكربتات بسيطة لأتمتة البحث عن هذه الأشباح.
مثال كود (Python/Boto3) للعثور على وحدات تخزين EBS غير المرفقة:
import boto3
# تأكد من تحديد المنطقة الصحيحة
ec2 = boto3.client('ec2', region_name='us-east-1')
# الفلتر 'status': 'available' يعني أن وحدة التخزين غير مرفقة بأي instance
volumes = ec2.describe_volumes(
Filters=[{'Name': 'status', 'Values': ['available']}]
)
if not volumes['Volumes']:
print("لا توجد وحدات تخزين غير مرفقة. عمل نظيف!")
else:
print("تم العثور على وحدات تخزين خاملة (أشباح رقمية):")
for volume in volumes['Volumes']:
print(f"- Volume ID: {volume['VolumeId']}, Size: {volume['Size']}GB, Created: {volume['CreateTime']}")
نماذج التسعير الذكية: اللعب مع الكبار
إذا كنت متأكداً أنك ستحتاج إلى سيرفرات معينة شغالة 24/7 لمدة سنة أو ثلاث سنوات (مثل سيرفرات الـ production)، فمن الجنون أن تدفع السعر الكامل (On-Demand). هنا يأتي دور:
- Savings Plans & Reserved Instances (RIs): هذه مثل عقد إيجار طويل الأمد. تلتزم مع AWS لمدة سنة أو ثلاث، وتحصل على خصم قد يصل إلى 70%. هذا أكبر مصدر توفير للأحمال الثابتة.
- Spot Instances: هذه للمهام التي يمكن مقاطعتها (مثل عمليات تحليل البيانات الضخمة أو batch processing). تحصل على خصم يصل إلى 90%، لكن المقابل هو أن AWS قد تستعيد السيرفر منك في أي لحظة. تحتاج إلى تصميم تطبيقك ليتحمل هذا الانقطاع.
أتمتة التشغيل والإطفاء: “طفي الضو وأنت طالع”
هل بيئة التطوير (Dev/Test environments) تحتاج أن تبقى شغالة في الليل أو في عطلة نهاية الأسبوع؟ طبعاً لا. إطفاء هذه الموارد يوفر حوالي 60-70% من تكلفتها. استخدمنا أدوات مثل AWS Instance Scheduler لعمل جدول زمني تلقائي يطفئ السيرفرات الساعة 7 مساءً ويعيد تشغيلها الساعة 8 صباحاً.
المرحلة الثالثة: “خليها عادة” – مرحلة التشغيل المستمر (Operate)
الـ FinOps ليس مشروعاً له بداية ونهاية، بل هو عملية مستمرة. بعد أن نظفنا ووفرنا، كان التحدي هو كيف نحافظ على هذا الوضع.
حلقة التغذية الراجعة (Feedback Loop)
بدأنا بإرسال تقرير تكلفة أسبوعي لكل فريق، يوضح لهم كم كلف مشروعهم. هذا خلق نوعاً من “المنافسة الإيجابية” والمسؤولية. لم يعد المطور يفكر فقط في “هل الكود يعمل؟”، بل أصبح يفكر أيضاً في “كم يكلف هذا الكود ليعمل؟”.
تحديد الميزانيات والإنذارات (Budgets and Alerts)
استخدمنا AWS Budgets بشكل مكثف. قمنا بوضع ميزانية لكل مشروع أو فريق. والأجمل، يمكنك وضع إنذارات (Alerts) تصلك على الإيميل أو Slack عندما تصل التكلفة إلى 50%، 80%، و100% من الميزانية. هذا حولنا من رد الفعل (Reacting) إلى الفعل الاستباقي (Proacting). أصبحنا نكتشف المشكلة قبل أن تصبح كارثة.
الخلاصة: من جحيم الفواتير إلى جنة التحكم المالي ☁️💰
رحلتنا مع FinOps غيرت طريقة تفكيرنا بالكامل. نعم، وفرنا الكثير من المال، لكن الأهم من ذلك أننا بنينا ثقافة المسؤولية المالية والشفافية. لم تعد فاتورة السحابة “صندوقاً أسود” غامضاً، بل أصبحت أداة واضحة تساعدنا على اتخاذ قرارات أفضل.
نصيحة أبو عمر النهائية: لا تخف من البداية. لا تحاول تطبيق كل شيء دفعة واحدة. ابدأ بالخطوة الأولى: الفهم (Inform). افتح الـ Cost Explorer اليوم، وضع سياسة Tagging بسيطة. ثم انتقل إلى الثمار السهلة (Low-hanging fruit) مثل إطفاء الموارد الخاملة. مع الوقت، ستجد أن التحكم في تكاليف السحابة ليس علماً صاروخياً، بل هو مجموعة من العادات الجيدة والممارسات الذكية.
يلا يا شباب، شدوا الهمة، وما تخلوا الفاتورة تغلبكم!