دليل أقل مراكز البيانات كفاءة في العالم
دليل افتراضي تمامًا لأقل مركز بيانات كفاءة ممكن: خادم واحد محبوب، RAID 0، الحرارة كاستراتيجية، ومراقب تشغيل يراقب نفسه.
ما الذي تبنيه
كل دليل في هذا الموقع يعلّمك كيف تنفّذ شيئًا بالشكل الصحيح: الأوامر بترتيبها، وشكل النتيجة الصحيحة، وأنماط الفشل مسمّاة بأسمائها. هذا الدليل مختلف. اليوم، بشكل افتراضي تمامًا، سنصمّم أقل مركز بيانات كفاءة يمكن أن ينتجه المال والكهرباء والغرور مجتمعين.
نحتاج إلى مقياس، فسنستعير مقياس القطاع نفسه: PUE (Power Usage Effectiveness، أي فعالية استخدام الطاقة) — وهو حاصل قسمة إجمالي طاقة المنشأة على الطاقة التي تصل فعليًا إلى معدات الحوسبة. مركز بيانات ضخم (hyperscale) يعمل عند نحو 1.1: يؤدي كل واط تقريبًا عملًا مفيدًا. غرفة خوادم مؤسسية جيدة تصل إلى 1.5. هدفنا هو 4.0 أو أعلى، أي أن كل واط من الحوسبة يقابله ثلاثة واطات إضافية تموت بلا فائدة. سنشير إلى هذا الرقم كثيرًا، كما تشير الأدلة الجادة إلى النسخ الاحتياطية.
اختيار الموقع: الحرارة هي الهدف
التبريد هو أكبر بند تكلفة إضافية في أي مركز بيانات حقيقي، ولهذا سيخوض مركزنا معركته ضد الديناميكا الحرارية في عقر دارها. الموقع المثالي هو العلّية (attic). في جهة جنوبية. ويُفضَّل أن تحوي نافذة سقفية (skylight) موضوعة بحيث تسلّط ضوءها مباشرة على الخادم، بحيث يتلقى الجهاز حرارته الضائعة وحرارة الشمس معًا، في تعاون بين فاتورة الكهرباء ونجم.
في الشتاء، يتم التبريد بفتح النافذة. مراكز البيانات الحقيقية تستخدم هواء الخارج فعلًا — تُعرف هذه التقنية باسم free cooling (التبريد المجاني)، وهي مهندسة ومرشَّحة ومضبوطة الرطوبة. نحن سنستخدمها بالمصادفة، عبر نافذة تسمح أيضًا بدخول المطر وحبوب اللقاح وطائر واحد على الأقل مرتبكًا كل ثلاثة أشهر.
ولإتقان الحرفة، ركّب مكيّف هواء، ثم ضع سخانًا كهربائيًا على بعد ستين سنتيمترًا من منظّم حرارته (ثيرموستات)، مضبوطًا على درجتين أعلى من هدف المكيّف. عندئذ ستعمل الآلتان باستمرار، إلى الأبد، في خلاف تام. وستُرسل لك شركة الكهرباء بطاقة معايدة في عيد الميلاد.
خادم واحد، كبير، محبوب
التكرار (redundancy) يميّع الالتزام. يحتوي مركز بياناتنا على خادم واحد بالضبط، وهو ضخم، لأن جهازًا واحدًا بذاكرة RAM سعتها 512 غيغابايت يبدو وكأنه بنية تحتية، بينما أربعة أجهزة صغيرة تبدو وكأنها قائمة مهام.
للخادم اسم. ليس hostname، بل اسم. Gandalf عادةً، أو Odin. لا يمكنك سحب Odin من الخدمة. Odin يعمل متواصلًا منذ خمس سنوات:
$ uptime
09:14:02 up 1847 days, 3:22, 1 user, load average: 6.41, 6.38, 6.40هذا الرقم مصدر فخر، ولهذا تلتقط له لقطة شاشة وتنشرها، ولهذا يجده كل مهاجم يرى تلك اللقطة مثيرًا للإعجاب أيضًا: 1,847 يومًا من التشغيل المتواصل يعني 1,847 يومًا من ثغرات النواة (kernel) التي لم يصحّحها أحد. وإعادة التشغيل مستبعدة أصلًا — فإعادة التشغيل هي الطريقة التي تكتشف بها أي الخدمات بدأتها يدويًا في 2021 ولم تُكتب قط في وحدة systemd. لا أحد يتذكر أيها. الخادم الآن عنصر حامل (load-bearing) في الهيكل التنظيمي للمؤسسة.
التخزين: السرعة، وطرق أخرى لفقدان البيانات
الأقراص مهيّأة على شكل RAID 0، من أجل الأداء. الصفر هنا يشير إلى عدد الأقراص التي يمكن أن تتعطّل. ولأقصى تأثير، وزّع المصفوفة عبر وسائط تخزين متفاوتة الأصل: قرصا SSD حقيقيان، وقرص دوّار قديم، وفلاشة USB من أحد المؤتمرات. المصفوفة موثوقة بالضبط بقدر موثوقية فلاشة المؤتمر، وهذا هو التصميم بعينه.
النسخ الاحتياطي يتكفّل به مجلد على المصفوفة نفسها اسمه backup_final_v2_REAL، يحتوي على أرشيف tar لمخطط التسمية السابق. أما النسخ الاحتياطية خارج الموقع فيمثّلها ملاحظة لاصقة مكتوب عليها «إعداد نسخ احتياطية خارج الموقع»، وهي، من الناحية التقنية، مخزَّنة خارج الموقع عندما تأخذها معك إلى المنزل على غطاء حاسوبك المحمول.
النتيجة الصحيحة تبدو هكذا: أمر df يُظهر استخدامًا بنسبة 97%، وخطة لمعالجة الأمر في السبرنت (sprint) القادم.
الشبكة: خيط واحد من كل شيء
خادم DNS يعمل على الجهاز نفسه، بحيث إنه عندما يتعطّل الخادم، يأخذ معه سجلّ DNS الذي كنت ستستخدمه لمعرفة السبب. يُسمّى هذا بالدمج (consolidation).
جدار الحماية عُطِّل في 2021 — مؤقتًا، لتصحيح خطأ ما. انتهى التصحيح؛ ولم يعد جدار الحماية. كل منفذ على الراوتر مُوجَّه (forwarded) إلى الخادم «لتوفير الوقت لاحقًا»، ولوحة إدارة الراوتر يمكن الوصول إليها من جهة الشبكة الخارجية (WAN) بكلمة مرورها الافتراضية من المصنع، من أجل إدارة عن بُعد مريحة. إدارتك أنت، وإدارة آخرين أيضًا.
الخادم ظل يعمل بحرارة غير معتادة في الآونة الأخيرة، حتى وفق معايير العلّية، ويُظهر top أن العملية الأكثر نشاطًا هي شيء يُدعى xmrig. نفترض أن هذه هي أداة المراقبة التي نستخدمها. لم نثبّتها نحن — ظهرت من تلقاء نفسها بعد وقت قصير من توجيه المنافذ، وهو ما نعتبره دليلًا على ازدهار المنظومة (ecosystem). إنها تراقب على مدار الساعة.
تصل الكهرباء عبر سلسلة من وصلات كهربائية متعددة المقابس (power strips) يتجاوز طولها الإجمالي مسافة المشي إلى لوحة القواطع (breaker panel) — وهذا فعّال، بمعنى ما، لأنك ستزور لوحة القواطع كثيرًا.
التكرار عبر التعقيد
بعد أن رفضنا التكرار حيث يهم فعلًا، نضيفه الآن حيث لا يهم على الإطلاق. الصفحة الرئيسية للشركة — ملف HTML ثابت واحد — تُخدَّم بواسطة عنقود Kubernetes من اثنتي عشرة عقدة (node). بهذا نحقق ما يسميه المهندسون العمارة المدفوعة بالسيرة الذاتية (resume-driven architecture): تُحمَّل الصفحة في الأربعين ميلي ثانية نفسها التي كان سيوفرها nginx، لكنها الآن قادرة على التعطّل بطرق تستدعي استشاريًا.
من أجل العزل، يعمل العنقود نفسه داخل جهاز افتراضي داخل جهاز افتراضي داخل جهاز افتراضي، وكل طبقة تضيف أمانًا كما تضيف كل طبقة في طبق الـ turducken طائرًا جديدًا. نموذج التواصل (contact form) مؤلَّف من تسع خدمات مصغّرة (microservices). اثنتان منها لم تُستدعَيا قط. وواحدة منها عنصر حامل ولا أحد يعرف أيّها.
التدفئة بوصفها خدمة
الخادم الحديث يحوّل الكهرباء إلى حوسبة وحرارة، ونحن نعتزم تعظيم المُخرَج الثاني. خادم وسائط بلا GPU هو الخيار الكلاسيكي: تحويل ترميز (transcoding) بث 4K واحد عبر المعالج وحده سيُشغل ست عشرة نواة بالكامل ويُدفّئ غرفة نوم صغيرة، سخان كهربائي يعرض الأفلام أيضًا. المشغّل الطموح يترقى إلى تشغيل نموذج لغوي كبير على المعالج — سخان كهربائي بحجم 70 مليار معامل (parameter) مزوَّد بواجهة API، ينتج الرموز (tokens) بمعدل يُفضَّل قياسه فصليًا.
المراقِب يراقب نفسه
قابلية المراقبة (observability) مهمة، لذا ننشر مراقب تشغيل مستضاف ذاتيًا — على الخادم نفسه الذي يراقبه. عندما يموت Odin، يموت المراقب معه، وهنا يكمن الجزء الأنيق: لا تنطلق أي تنبيهات. لا تنبيهات يعني لا حوادث. لا حوادث يعني تشغيلًا مثاليًا، بحسب القياس. لم يبدُ التقرير الشهري بهذا الجمال من قبل.
رسائل التنبيه، من باب استكمال الصورة، تُرحَّل عبر خادم بريد يعمل هو أيضًا على Odin. وهكذا يصبح مسار التنبيهات مكتفيًا ذاتيًا بالكامل، بالطريقة نفسها التي تكون بها الأفعى التي تلتهم ذيلها مكتفية غذائيًّا بالكامل.
الجزء المحرج
هذا هو القسم الذي كنت أؤجّله. لا شيء من هذا خيال. الخادم المحبوب الذي لا بديل له، وRAID 0 مع نسخ احتياطية على المصفوفة نفسها، وجدار الحماية المعطَّل «مؤقتًا»، وعنقود Kubernetes الذي يخدم صفحة واحدة، والمراقِب الذي يراقب نفسه — رأيت كل واحدة من هذه الأشياء في بيئة إنتاج فعلية. بعضها رأيته هذا العام. بنيت واحدًا أو اثنين منها بنفسي في بداياتي.
الكفاءة الحقيقية تبدو مملّة، ولهذا تخسر الجدل في اللحظة الراهنة وتربحه على مدى عقد كامل: قيمة PUE لا تفكر فيها أبدًا لأن شخصًا آخر هندسها. أجهزة بحجم يناسب حِمل عملها الفعلي بدلًا من الصورة التي يحملها صاحبها عن نفسه. نطاق انفجار (blast radius) يُحسَب حسابه قبل وقوع الانفجار. نسخ احتياطية تُختبَر عبر استعادتها فعليًا، وفق جدول زمني، بتذكير في التقويم ومن دون أي بطولة. تكرار مملّ — نسختان من الشيء الرخيص أفضل من نسخة واحدة من الشيء الرائع، في كل مرة، وفي كل عطل استُدعيت من أجله.
وأكفأ مركز بيانات يمكنك تشغيله هو ذلك الذي لا تشغّله أنت. خادم VPS يسلّم الطاقة والتبريد والتكرار وأعطال العتاد التي تقع الساعة 3 فجرًا إلى أناس ينجزونها على نطاق واسع وبطريقة مملة، وهذا أرفع إطراء يمكن أن تناله أي بنية تحتية — ويترك لك الجزء الممتع فعلًا، وهو تشغيل خدماتك الخاصة فوقه، على جهاز تستطيع تحمّل خسارته، وهو النوع الوحيد الذي ينبغي أن تجرّب عليه على الإطلاق.
FAQ
هل ينبغي أن أفعل أيًّا من هذا فعلًا؟
لا. كل قسم من هذا الدليل هو نمط مضاد (anti-pattern) موثَّق بثمن دفعته عطلات نهاية أسبوع كاملة. إذا كان إعدادك الحالي يشبه أكثر من قسمين من هذه الأقسام، فانتقل مباشرة إلى السؤال الأخير في هذه الأسئلة الشائعة — بالترتيب المذكور فيه، لأن الترتيب هو الفرز (triage).
ما هي قيمة PUE الجيدة فعلًا؟
مراكز البيانات الضخمة تعمل عند نحو 1.1، وغرفة مؤسسية جيدة الإدارة تصل إلى ما بين 1.4 و1.6، أما خزانة غير مبرَّدة فيها نزاع بين سخان كهربائي ومكيّف فقد تتجاوز 3 فعليًا. لا يمكنك منافسة 1.1 بجدية في المنزل، وهذه هي الحجة الاقتصادية الهادئة لصالح استئجار الحوسبة من شخص قادر على تحقيق ذلك.
هل تدفئة مبنى بواسطة الخوادم أمر حقيقي؟
نعم — إذا نُفِّذت بالشكل الصحيح. مشاريع التدفئة الحضرية (district heating) في عدة دول تلتقط الحرارة الضائعة من مراكز البيانات عبر مبادلات حرارية (heat exchangers) وتوصلها إلى المنازل، بتصميم مقصود، وهندسة، وعقود. لا تكمن السخرية أعلاه في أن حرارة الخادم يمكنها تدفئة غرفة؛ بل في فعل ذلك بالمصادفة وتسمية المصادفة استراتيجية.
خادمي يشبه هذا بالفعل. ما الذي أفعله أولًا؟
أولًا، نسخ احتياطية، الليلة، إلى مكان ليس هو الخادم، ثم استعادة اختبارية — فالنسخة الاحتياطية غير المختبَرة مجرد شائعة. ثانيًا، التصحيحات وإعادة التشغيل التي ما زلت تتجنبها، ضمن نافذة زمنية مخطَّطة، لتتعلّم ما الذي سينكسر بينما تراقب. ثالثًا، افصل نقطة الفشل الواحدة: انقل DNS والمراقبة إلى خارج الجهاز. كل شيء آخر يمكنه الانتظار لأسبوع أهدأ؛ أما هذه الثلاثة فلا.