Dezkubeدزکوب

قابلیت · ساخت و استقرار

از commit تا تولید، بدون یک خط YAML

مخزن گیت را وصل کنید. دزکوب می‌سازد، اسکن می‌کند، امضا می‌کند، مستقر می‌کند — و اگر خراب شد، برمی‌گرداند.

  • ۴ روش ساخت
  • ۶ نوع دیتابیس
  • بازگشت در چند ثانیه
  • محیط پیش‌نمایش خودکار

چرا این سخت است

رسیدن کد به تولید در بیشتر سازمان‌ها یک خط لولهٔ شکنندهٔ دست‌ساز است: یک ابزار CI که کسی جرأت نمی‌کند دست بزند، مجموعه‌ای از فایل‌های YAML که فقط یک نفر می‌فهمد، و یک فرآیند بازگشت که در عمل یعنی «سریع یک هات‌فیکس بزن».

این خط لوله معمولاً کار می‌کند. مشکل، روزی است که کار نکند — و آن روز، همیشه بدترین روز ممکن است.

سلسله‌مراتب مفاهیم

سطح · چیست · چه چیزی در آن تعریف می‌شود
سطحچیستچه چیزی در آن تعریف می‌شود
سازمانبالاترین سطحسیاست‌های سراسری، بودجه، سقف خروج
تیمزیرمجموعهٔ سازمانعضویت‌ها، نقش‌های به‌ارث‌رسیده
پروژهظرف کاراعضا، نقش‌های اختصاصی، محیط‌ها
محیطمعادل یک namespaceسهمیه، متغیرهای محیطی، بار کاری‌ها
اپلیکیشنیک بار کاریمنبع کد، تنظیمات ساخت، مسیر شبکه
انتشاریک نسخهٔ تغییرناپذیردایجست ایمیج، پیکربندی، وضعیت

نکتهٔ کلیدی

ماشین مجازی هم زیر همین سلسله‌مراتب است. یعنی عضویتی که یک نفر را از پروژه حذف می‌کند، هم‌زمان دسترسی‌اش به اپلیکیشن‌ها و ماشین‌های مجازی همان پروژه را قطع می‌کند.

چهار روش رسیدن به تولید

از مخزن گیت

تیمی که کد دارد و Dockerfile دارد

مخزن وصل می‌شود، وبهوک ثبت می‌شود، هر push می‌سازد و مستقر می‌کند

با Buildpacks

تیمی که Dockerfile ندارد

زبان و چارچوب تشخیص داده می‌شود و ایمیج ساخته می‌شود

از ایمیج آماده

تیمی که خودش می‌سازد

فقط آدرس ایمیج و اعتبارنامهٔ رجیستری

از قالب مارکت‌پلیس

استقرار سرویس‌های آماده

یک کلیک، با پارامترهای قابل تنظیم

چرخهٔ کامل

  1. راه‌اندازی

    مخزن وصل می‌شود؛ وبهوک با امضای زمان‌دار ثبت می‌شود

  2. تشخیص تغییر

    مسیرهای تحت نظر بررسی می‌شوند؛ اگر تغییرِ مرتبطی نبود، بیلد اجرا نمی‌شود

  3. ساخت

    در یک Job ایزولهٔ rootless با BuildKit یا Buildpacks

  4. بازرسی

    تولید SBOM، اسکن آسیب‌پذیری، تولید اطلاعات اصالت

  5. امضا

    ایمیج با Cosign امضا می‌شود

  6. انتشار

    یک Release با دایجست دقیق ثبت می‌شود — نه با تگ

  7. استقرار

    یکباره، تدریجی، یا کاناری با درصد قابل تنظیم

  8. نظارت

    وضعیت واقعی از watch می‌آید؛ خطا یا سلامت هر دو دیده می‌شوند

  1. اگر فهرست فایل‌های تغییریافته از سمت ارائه‌دهندهٔ گیت نامعلوم باشد، بیلد اجرا می‌شود — نه اینکه بی‌صدا رد شود. برخی ارائه‌دهنده‌ها این فهرست را نمی‌دهند؛ «نامعلوم» با «خالی» یکی نیست.
  2. اگر بیلدِ با کش شکست بخورد، یک بار بدون کش دوباره اجرا می‌شود. کش هرگز نباید باعث شکست بیلد شود.
  3. بیلدی که رد می‌شود، هیچ ردیفی در تاریخچه نمی‌سازد. رکوردِ صادقانهٔ «این دایجست را مستقر کردیم» همان بیلدی است که آن دایجست را ساخت.

پیکربندی

متغیر محیطی
دو نوع: ساده و محرمانه. محرمانه‌ها با AEAD رمز می‌شوند و در هیچ پاسخ API آشکار نمی‌شوند
متغیر سراسری
تعریف در سطح سازمان، در دسترس همهٔ پروژه‌ها
سلامت‌سنجی
liveness و readiness جدا
منابع
درخواست و سقف CPU/حافظه، با سیاست عمدیِ «بدون سقف CPU» به‌عنوان پیش‌فرض قابل تغییر
مقیاس‌پذیری
افقی بر اساس متریک، یا رویداد-محور با KEDA
رجیستری خصوصی
اعتبارنامه رمزشده، تزریق خودکار به نودها

زنجیرهٔ تأمین، در یک نقطه

ادعا

هیچ استقراری بدون رد شدن از زنجیرهٔ تأمین انجام نمی‌شود.

مکانیزم

بازنویسی مرجعِ ایمیج در یک نقطهٔ واحد اتفاق می‌افتد — همان‌جایی که هر ایمیجِ مستقرشده از آن عبور می‌کند. یعنی سیاست نمی‌تواند نیمه‌اعمال شود.

حالت‌ها

متن واقعی رابط کاربری در هر وضعیت. حالت خالی، در حال انجام، و خطا، به همان شکلی که کاربر می‌بیند.

  • بدون اپلیکیشن

    هنوز اپلیکیشنی ندارید.

    اولین اپلیکیشن را بسازید — نمونهٔ دکمهٔ رابط کاربری، در این صفحه فعال نیست

  • در حال ساخت

    نوار پیشرفت با مرحلهٔ جاری، و لاگ زندهٔ قابل مشاهده.

  • شکست بیلد

    بیلد شکست خورد در مرحلهٔ «اسکن آسیب‌پذیری».

    گزارش را ببینید — نمونهٔ دکمهٔ رابط کاربری، در این صفحه فعال نیست

  • سهمیه پر

    این محیط به سقف حافظه رسیده. ۲ گیگابایت آزاد لازم است.

    مدیریت سهمیه — نمونهٔ دکمهٔ رابط کاربری، در این صفحه فعال نیست

  • بدون دسترسی

    برای استقرار در این پروژه، نقش «توسعه‌دهنده» لازم است.

    درخواست دسترسی موقت — نمونهٔ دکمهٔ رابط کاربری، در این صفحه فعال نیست

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

یک جلسهٔ ۴۵ دقیقه‌ای، محصول واقعی، بدون اسلاید.