
ستون حاوية على خادم واحد
صندوق معادن عارية واحد يشغل عشرات إلى مئات حاويات Hoody. يجعل KSM و BTRFS dedup التكلفة الإضافية قريبة من الصفر.
تحدث حادثة. ثلاثة مهندسين يريدون نفس السجلات في الوقت نفسه. مرسِل واحد يُمرّر tail -F إلى رابط Hoody Pipe. كل من يملك الرابط يُشغّل curl ويرى البايتات تمرّ مباشرةً. لا حصن، لا تثبيت وكيل، لا مقعد لوحة تحكم.
على حاوية الإنتاج، سطر واحد يُمرِّر tail مباشرة إلى رابط Hoody Pipe. المستقبِلون يطلبون نفس المسار بـ GET. الأنبوب لا يحتفظ بشيء — البايتات تتدفّق عبره. أوّل مستقبِل يتّصل يفكّ حصار المرسِل؛ يستطيع حتى 256 قارئاً الانضمام إلى نفس المسار.
# في الحاوية الإنتاج — سطر واحد.
# tail -F يتبع الأسطر الجديدة إلى الأبد؛ curl -T - يضع stdin
# مباشرة إلى مسار pipe. ?n=4 يقول "انتظر 4 قارئين".
tail -F /var/log/app/*.log \
| curl -T - \
"https://prod-pipe.containers.hoody.com/api/v1/pipe/live?n=4"
# [INFO] انتظار 4 جهات استقبال للاتصال...
# [INFO] البث إلى 4 جهات استقبال...# أي مهندس لديه الرابط — نفس الأمر، نفس المسار.
# جسم الاستجابة هو stdout الحي للمرسل.
# حتى 256 قارئ يمكنهم الانضمام. تقدم SSE متاح أيضاً.
curl "https://prod-pipe.containers.hoody.com/api/v1/pipe/live?n=4"
# 200 GET /v1/orders/8421 · 18ms
# POST /v1/checkout user=u_28f payload=ok
# 500 POST /v1/checkout · stripe timeout
# retrying charge attempt=2/3قطعتان من واجهة Pipe الموثّقة: PUT /api/v1/pipe/[path] على المرسِل، GET /api/v1/pipe/[path] على كل قارئ، كلاهما مفهرس بنفس قيمة n. الخادم يُمرِّر نوع المحتوى من المرسِل، يحتفظ بالاتّصال حتى TTL مدّتها 5 دقائق بانتظار القرّاء، ويُطبّق ضغطاً عكسياً إن كان أحد القرّاء بطيئاً.
رابط السجلات يتصرّف بشكل مختلف عن مقعد Datadog. يُقرأ بالرابط لا بتسجيل الدخول. يختفي حين يتوقّف المرسِل. ويتّسع لقناة حادثة كاملة.
n=N موثّق في واجهة Pipe: كل قارئ ينضم إلى نفس المسار بنفس قيمة n يستقبل نسخة فان-آوت متطابقة. مهندسو SRE والمناوبون والمؤسّس الذي يراقب من هاتفه — جميعهم يتتبّعون البثّ نفسه دفعةً واحدة.
ليس هناك ما يجب تثبيته على جانب القرّاء. أي شيء يتحدّث HTTP — curl، fetch، تبويب متصفّح، قناة حادثة في Slack تعرض الرابط — هو متتبِّع سجلات صالح. البايتات هي جسم الاستجابة.
حين ينقطع المرسِل، يختفي الأنبوب. لا احتفاظ يجب ضبطه، لا حجم سجلات يجب تنظيفه، لا نقطة نهاية متبقّية مكشوفة على الإنترنت. الرابط كان مساراً، لا مكاناً — والمسار يُغلق حين تنتهي الحادثة.
من مواصفات Pipe API. حدود وسلوكيات تجعل الرابط يُحسّ كبنية تحتية لا كلعبة.
السقف الموثّق لقيمة n. قناة الحادثة لديك لن تنفد منها المقاعد.
الأنبوب يبثّ مباشرةً من طرف إلى طرف. لا قرص وسيط، لا احتفاظ يجب إدارته.
يستطيع المستقبِلون الاتّصال قبل المرسِل؛ الخادم يحتفظ بالخانة حتى 5 دقائق.
المصدر: Hoody Pipe API — الحدود موثّقة لـ /api/v1/pipe/[path]، ومُعامل n، وزمن TTL لأنبوب غير مُؤسَّس.
السجلات لم تعد مكاناً. أصبحت مساراً.
مجموعة الأدوات والطقوس التي تستدعيها حالياً لتجمع ثلاثة مهندسين يحدّقون في نفس سجلّ الإنتاج. كلّ واحدة تتقاضى ثمناً عن المقعد أو الوكيل أو لوحة التحكم. الأنبوب رابط واحد.
تنتهي الحادثة. تضغط ctrl-C على المرسِل. يختفي الأنبوب. لا شيء يجب تنظيفه.