Dezkubeدزکوب

فناوری · کنترل‌پلن

استک کنترل‌پلن در دزکوب

خودِ مغز پلتفرم

لایسنس
متن‌باز (به تفکیک مؤلفه)
گروه در استک
کنترل‌پلن

استک کنترل‌پلن چیست

کنترل‌پلن دزکوب یک سرویس Node.js/TypeScript است که روی یک چارچوب وب با کارایی بالا اجرا می‌شود، با PostgreSQL به‌عنوان لایهٔ projection و Redis برای صف کار.

چرا این انتخاب‌ها

چرا این انتخاب‌ها
تصمیمدلیل
TypeScript سختگیرانهخطای نوع در زمان کامپایل، نه در تولید
Fastifyاعتبارسنجی مبتنی بر schema به‌صورت درون‌ساخت، با کارایی بالا
PostgreSQL برای projectionیک پایگاه دادهٔ بالغ که تیم شما هم می‌شناسد
صف جداکار سنگین از مسیر درخواست جدا می‌شود

ما دقیقاً چطور استفاده‌اش می‌کنیم

  • درگاه واحد Kubernetes: هیچ سرویسی مستقیم با کلاستر حرف نمی‌زند. این هم مرز امنیتی است، هم چیزی که تست‌پذیری را ممکن کرد.
  • اعتبارسنجی سختگیرانه: فیلد ناشناخته رد می‌شود، نه نادیده گرفته. و گزینه‌های اعتبارسنجی در یک فایل تعریف می‌شوند، نه تکرارشده در چند نقطه.
  • قرارداد API قفل‌شده: هر تغییر در هر مسیر، تا وقتی snapshot عمداً بازتولید نشود، build را می‌شکند.
  • خطاهای نوع‌دار: کد خطای مشخص، نه نگاشت رشته‌ای.
  • صف با نامهٔ مرده: کارِ شکست‌خورده گم نمی‌شود؛ قابل بررسی و بازپخش است.
  • تخلیهٔ امن: هنگام خاموش شدن، درخواست‌های در جریان تمام می‌شوند.
  • انتخاب رهبر: کارهای دوره‌ای فقط روی یک نمونه اجرا می‌شوند.

یک درس واقعی دربارهٔ اعتبارسنجی

پیکربندی اعتبارسنجی ما منطقی به‌نظر می‌رسید و از هر بازبینی داخلی رد شده بود. تا اینکه یک بررسی بیرونی نشان داد خودِ چارچوب یک گزینه را عمداً از پیش‌فرضش برداشته — به دلیل ریسک حملهٔ منع سرویس — و ما همان گزینه را سراسری روشن داشتیم. آنچه موضوع را قطعی کرد، خواندن مستندات نبود: اجرای یک آزمایش شش‌خطی با دقیقاً همان تنظیمات محیط عملیاتی، که چیزی را نشان داد که هیچ سندی نمی‌گفت. و شدت واقعی صادقانه ثبت شد: متوسط، نه بحرانی — چون در پیکربندی مشخص ما، اثرش روی حافظه بود نه پردازنده. از آن به بعد، «راستی‌آزمایی بیرونی» یک گام رسمی در فرآیند شد.

مرزها و محدودیت‌ها

این سکشن در هر صفحهٔ فناوری اجباری است. هر ابزاری مرزی دارد؛ صفحه‌ای که مرزش را نگوید، بقیه‌اش هم قابل اتکا نیست.

  • کنترل‌پلن یک سرویس حالت‌مند در سطح هماهنگی است. اگر کاملاً از دسترس خارج شود، بارهای کاری در حال اجرا به کار خود ادامه می‌دهند ولی عملیات مدیریتی متوقف می‌شود. برای همین HA کنترل‌پلن بخشی از معماری مرجع است.

این را روی زیرساخت خودتان ببینید.

همین مؤلفه را در کلاستر شما پیکربندی می‌کنیم و نشان می‌دهیم.