
ستون حاوية على خادم واحد
صندوق معادن عارية واحد يشغل عشرات إلى مئات حاويات Hoody. يجعل KSM و BTRFS dedup التكلفة الإضافية قريبة من الصفر.
الساعة 2 مساءً. حادثة الـ7 صباحًا تُحلَّل لاحقًا. ستة مهندسين يريدون استعراض تسلسل السجلات نفسه الذي رآه مهندس SRE المناوب وقتها. تبثّ اللقطة عبر عنوان Hoody Pipe واحد مع ?n=8. الجميع يشاهد التسلسل ينطلق على طرفيته في اللحظة ذاتها — بلا لقطات شاشة، بلا تمرير غير متزامن، بلا تسجيل Zoom.
خذ ملف سجلات وقت الحادثة الصباحية من لقطة hoody-files. ابثّه عبر مسار Hoody Pipe مع ?n=8. ثمانية مهندسين يستدعون المسار نفسه عبر curl. الأنبوب ينتظر اتصال الجميع، ثم تنتقل البايتات مرّة واحدة بالمعدّل الذي تحدّده — كل قارئ يرى السطر نفسه في اللحظة ذاتها.
# حادثة الـ 7 صباحاً مقبوضة في incident-2026-05-04.log
# (لقطة من /var/log/app بـ 07:25 من قبل مراقب الاتصال المباشر).
# أعد تشغيلها عبر مسار أنبوب مع ?n=8 — الخادم ينتظر
# حتى ثمانية قارئين يتصلون، ثم البايتات تتحرك خلالها مرة واحدة.
# pv -L 50k معدل محدود إعادة التشغيل إلى 50KB/s قابل للقراءة.
cat incident-2026-05-04.log \
| pv -L 50k \
| curl -T - \
"https://prod-pipe.containers.hoody.com/api/v1/pipe/replay?n=8"
# [INFO] انتظار 8 جهات استقبال للاتصال...
# [INFO] البث إلى 8 جهات استقبال بـ 50.0 KB/s# كل مهندس في استدعاء post-mortem يشغل نفس السطر.
# يغلقون حتى الجميع قد انضموا، ثم الشلال يتمرر
# عبر طرفيتهم بنفس السرعة التي رأى مراقب الاتصال المباشر بـ 07:23.
curl "https://prod-pipe.containers.hoody.com/api/v1/pipe/replay?n=8"
# 07:23:14 INFO POST /v1/checkout u_28f
# 07:23:15 WARN stripe latency 2.4s
# 07:23:16 ERR 500 stripe timeout
# 07:23:17 ··· auto-rollback armed
# ...الشلال كامل، بالترتيب، على كل طرفية في نفس الوقت.قطعتان من واجهة Pipe الموثّقة: PUT /api/v1/pipe/[path] على المُرسِل، وGET /api/v1/pipe/[path] على كل قارئ، كلاهما مفهرسان بالقيمة nنفسها. الخادم يمرّر نوع المحتوى للمُرسِل، ويُبقي الاتصال حتى مدة TTL تبلغ 5 دقائق بانتظار القرّاء، ويطبّق ضغطًا عكسيًا إذا تباطأ أي قارئ. معدّل إعادة التشغيل يحدّده المُرسِل بالكامل — pv أو dd أو أي محدّد معدّل تثق به.
البثّ المتمرّر يغيّر الحوار. الناس يكفّون عن الجدال حول ما حدث ويبدؤون بمشاهدة ما حدث. ثلاث خصائص للأنبوب تجعل هذا ممكنًا.
n=N موثّق في واجهة Pipe: كل قارئ ينضمّ إلى المسار نفسه بالقيمة n نفسها يستلم نسخة مطابقة موزّعة. ثمانية مهندسين يرون السطر نفسه يمرّ في اللحظة ذاتها — لا أحد متقدّم، لا أحد يحدّق في شاشة مشتركة لأحد آخر.
سجلات الإنتاج الحقيقية تتمرّر أسرع مما يستطيع البشر استيعابه. pv -L 50k يخنق إعادة التشغيل إلى وتيرة قابلة للقراءة؛ الأنبوب يحمل أيّ معدّل يختاره المُرسِل. يمكنك إيقاف التحليل اللاحق مؤقتًا بـ ctrl-Z على المُرسِل واستئنافه بـ fg — كل طرفية قارئ تتوقف معك.
الأنبوب لا يخزّن أيّ بايت. عندما ينتهي cat أو يضغط مهندس SRE ctrl-C على المُرسِل، يُغلَق المسار — لا نقطة نهاية متبقّية مكشوفة على الإنترنت، لا نص لإدارة احتفاظه. شغّله مجدّدًا من اللقطة لمن انضمّ إلى الاجتماع متأخّرًا.
أربع خطوات من سجلّ وقت الحادثة إلى تشغيل تحليل لاحق مشترك. لا شيء هنا بنية تحتية مخصّصة — اللقطة تعيش في hoody-files، وإعادة التشغيل تركب على عنوان Pipe واحد.
مهندس SRE المناوب ينسخ /var/log/app في الساعة 07:25 إلى دلو hoody-files. الملف هو مصدر الحقيقة لكل ما حدث في نافذة التسلسل.
القائد يكتب عنوان Hoody Pipe مع ?n=8 (ستة مهندسين + هامش لاثنين متأخّرَين) ويلصقه في قناة التحليل اللاحق. يمكن للمستقبِلين الاتصال أولًا — الأنبوب يحتفظ بالخانة لمدة تصل إلى 5 دقائق.
مهندس SRE يضخّ اللقطة عبر pv -L 50k إلى العنوان. الخادم ينتظر اتصال ثمانية أوامر curl، ثم تمرّ البايتات مرّة واحدة بتزامن تامّ — التسلسل ينطلق على ست طرفيات في اللحظة ذاتها.
المدير ينضمّ متأخّرًا. أعد تشغيل السطر نفسه. الأنبوب مسار، ليس مكانًا — لا شيء للبحث فيه، ولا للترجيع، ولا للتخزين على الخادم. فقط اضغط تشغيل مجدّدًا.
من مواصفات واجهة Pipe الموثّقة. حدود وسلوكيات تحوّل عنوانًا واحدًا إلى مسرح للتحليل اللاحق.
السقف الموثّق على n. اجتماع التحليل اللاحق لن ينفد من المقاعد — الأنبوب يتسع لمؤسسة بأكملها.
الأنبوب يبثّ مباشرة من طرف إلى طرف. إعادة التشغيل لا تترك أيّ أثر على الخادم عند انفصال المُرسِل.
يمكن للمستقبِلين الاتصال قبل المُرسِل؛ الأنبوب يحتفظ بالخانة حتى 5 دقائق للمتأخّرين.
المصدر: واجهة Hoody Pipe — حدود موثّقة لـ /api/v1/pipe/[path]، ومعامل n (1–256)، وTTL لأنبوب غير مُؤسَّس.
التحليل اللاحق ليس وثيقة. إنه بثّ يشاهده الجميع معًا.
مجموعة الأدوات والطقوس التي تستدعيها حاليًا لاستعراض جدول زمني لحادثة مع فريق. كلٌّ منها يخزّن شيئًا، أو يفرض رسومًا لكل مقعد، أو يفقد التوقيت. الأنبوب عنوان واحد برأس تشغيل مشترك.
التسلسل ينطلق على ست طرفيات معًا. الحوار يتغيّر. الناس يكفّون عن الجدال حول ما حدث ويبدؤون بمشاهدة ما حدث.