
ستون حاوية على خادم واحد
صندوق معادن عارية واحد يشغل عشرات إلى مئات حاويات Hoody. يجعل KSM و BTRFS dedup التكلفة الإضافية قريبة من الصفر.
أرسل POST لإدخال cron يوم الإثنين مع expires_at مُعيَّن على الجمعة 09:00. المهمة تُنبّه هاتفك كل 30 دقيقة لأربعة أيام، ثم تحذف نفسها لحظة انتهاء الوردية. المناوب التالي يرسل إدخاله. لا جدول PagerDuty، ولا إعدادات مجدوِل مشتركة، ولا تذكير في التقويم لتعطيله.
الإدخال الذي يُنبّه m.dossantos يوجد فقط أثناء مناوبة m.dossantos
ثلاث نقاط في الأسبوع. وجود إدخال cron يتتبّع الوردية بدقة — لا تداخل، ولا فجوة، ولا سطر crontab متبقٍّ.
curl واحد بجدول */30، الأمر يشير إلى hoody-notifications/push/me، و expires_at = الجمعة 09:00:00Z. الخادم يُرجع id e7d3.
كل 30 دقيقة لأربعة أيام يعمل الإدخال ويُنبّه hoody-notifications. جهازك فقط. قناة الفريق تبقى هادئة.
في 09:00:00Z تحذف خدمة cron الإدخال e7d3. تكّة 09:30 لن تجد ما تُشغّله. المناوب التالي قد أرسل إدخاله بالفعل.
كل مناوب يكتب POST واحداً عند بدء ورديته. حقل expires_at هو بروتوكول التسليم بأكمله — خدمة cron تقوم بالتنظيف، في الثانية المضبوطة.
بروتوكول التناوب بأكمله هو طلبا HTTP في الأسبوع. المناوب يرسل POST يوم الإثنين، يطلب القائمة يوم الجمعة، يرى أن الإدخال قد ذهب بالفعل. لا ملف جدولة مشترك للدمج فيه.
# monday 09:00 — i'm on call until friday 09:00 curl -X POST \ https://oncall.containers.hoody.com/users/me/entries \ -H "Content-Type: application/json" \ -d '["schedule":"*/30 * * * *","command":"curl -fsS hoody-notifications/push/m.dossantos","comment":"على الاتصال المباشر wk19","expires_at":"2026-05-08T09:00:00Z"]' # response HTTP/1.1 201 Created { "id":"e7d3", "expires_at":"2026-05-08T09:00:00Z", "enabled":true }
# friday 09:01 — the next on-call took over curl GET https://oncall.containers.hoody.com/users/me/entries HTTP/1.1 200 OK [ // my entry e7d3 is gone — it expired // at 09:00 sharp. j.okafor's new // entry took over at 09:00:30. ] # no slack thread, no calendar reminder
لا تتدخل خدمة جدولة مشتركة. إدخال cron يملكه المهندس؛ لا شيء في إعداد المناوب التالي يعتمد على تنظيف السابق.
إدخال مناوبة يملك دورة حياته الخاصة يوقف ثلاث فئات من الأخطاء التي لا تستطيع إعدادات PagerDuty وتذكيرات التقويم إيقافها.
لأن أمر الإدخال يشير إلى نقطة الإشعار الشخصية الخاصة بك، فإن التصعيدات تُوجَّه إلى هاتفك طوال مدة ورديتك، وهذا فقط. لا إزعاج عرضي لقناة الفريق في الـ 3 صباحاً.
لا يوجد escalation_policy.yaml يلمسه الجميع. كل مهندس يملك إدخاله. مناوبَان في منطقتي زمن مختلفتين لا يمكن أن يتعارضا بتحرير الملف نفسه.
عندما تحلّ الجمعة 09:00 لا تسأل "لحظة، هل ما زلت أتلقى هذه؟" الإدخال قد ذهب بالفعل. التحقق من التسليم هو GET واحد يُرجع صفّاً واحداً أقلّ.
الأرقام تأتي من Hoody Cron API. حدود حقيقية، لا مُختلَقة.
الانتهاء التلقائي يعمل وفقاً لساعة النظام. expires_at بقيمة 09:00:00Z يحذف خلال نفس الدقيقة التي تنطلق فيها تكّة cron — لا تأخير حارس بـ 5 دقائق.
تعابير cron القياسية ذات الخمسة حقول إضافة إلى الماكروهات @hourly / @daily / @weekly. */30 * * * * هو ما يطلق كل 30 دقيقة خلال ورديتك.
كل مستخدم نظام له ملف crontab خاص. إدخال المناوب التالي يعيش تحت /users/[name]/entries الخاص به — لا يلمس إدخالك أبداً.
الحدود وفقاً لـ Hoody Cron API: الإدخالات المُدارة هي JSON CRUD مع UUIDs و expires_at؛ الوصول إلى crontab الخام متاح لكل مستخدم؛ عزل crontab لكل مستخدم مدمج.
عندما تنتهي الوردية، ينتهي إدخال cron — تلقائياً.
الأدوات القياسية التي تلجأ إليها لتناوب المناوبات. كل واحدة منها تكلفك خدمة، ومستودع إعدادات، وطقس تسليم. إدخال cron مع expires_at يكلفك POST واحداً.
توقّف عن تعطيل أسطر crontab صباح الجمعة. اضبط expires_at يوم الإثنين وانساه.