Dezkubeدزکوب

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

ایمیج‌هایتان را می‌سازیم — و ثابت می‌کنیم که ما ساختیم

ساخت rootless در کلاستر خودتان، با SBOM، اسکن آسیب‌پذیری، امضای رمزنگارانه و اطلاعات اصالتِ غیرقابل‌جعل.

  • ساخت rootless
  • SBOM به‌ازای هر ایمیج
  • امضای Cosign
  • اصالت SLSA

چهار سؤالی که ممیز می‌پرسد

این ایمیج از کدام commit آمد؟

اطلاعات اصالت، commit و مخزن و زمان ساخت را ثبت می‌کند

داخلش چه کتابخانه‌هایی است؟

SBOM کامل به‌ازای هر ایمیج، قابل دانلود

آسیب‌پذیری شناخته‌شده دارد؟

اسکن با Trivy در همان خط لوله، با آستانهٔ مسدودکنندهٔ قابل تنظیم

از کجا معلوم همان است که ساختید؟

امضای Cosign؛ قابل راستی‌آزمایی مستقل

بیلد بدون دسترسی ریشه، داخل خود کلاستر

هر بیلد در یک Job جداگانه اجرا می‌شود، با BuildKit در حالت rootless. یعنی حتی اگر کدِ بیلدشونده مخرب باشد، دسترسی ریشه روی نود ندارد.

بیلد به شبکهٔ کنترل‌پلن دسترسی ندارد، در namespace خودش اجرا می‌شود، سقف زمانی دارد، و تعداد بیلدهای هم‌زمان — هم به‌ازای هر مستأجر و هم در کل — محدود است.

rootless
کدِ مستأجر نباید ریشهٔ نود بگیرد
سقف زمان بیلد
جلوگیری از بیلدِ بی‌پایان که ظرفیت را می‌بلعد
سقف بیلد هم‌زمان به‌ازای مستأجر
یک تیم نتواند کل ظرفیت بیلد را بگیرد
سقف صف به‌ازای مستأجر
جلوگیری از انباشت بی‌نهایت
نودِ اختصاصی بیلد (اختیاری)
جدا کردن بارِ سنگین بیلد از بار کاری تولید
کش لایه به‌ازای مستأجر
سرعت، بدون نشت کش بین مستأجرها

سه تصمیم طراحی که ارزش گفتن دارند

اطلاعات اصالت را کنترل‌پلن می‌سازد، نه پادِ بیلد.

پادِ بیلد کدِ مستأجر را اجرا می‌کند. هر چیزی که آن پاد دربارهٔ خودش اعلام کند، در همان مدلِ تهدیدی که اطلاعات اصالت را ارزشمند می‌کند، قابل کنترل توسط مهاجم است. پس اصالت را کنترل‌پلن می‌سازد و به‌صورت رمزگذاری‌شده به پاد می‌دهد — چون آدرس مخزن و ref داخلش، خودشان ورودیِ کاربرند.

کش هرگز حیاتی نیست

بیلدی که با کش شکست بخورد، یک بار بدون کش دوباره اجرا می‌شود. کشِ خراب نباید بیلد را بشکند. این رفتار با اجرای واقعیِ اسکریپت روی یک BuildKit ساختگی که فقط با فلگ کش شکست می‌خورد، تست می‌شود — نه با بررسیِ متن اسکریپت.

همه‌چیز به سمت «بساز» شکست می‌خورد

commit نامعلوم، نبودِ بیلد موفق قبلی، یا فهرست تغییرات نامعلوم — هر سه باعث می‌شوند بیلد اجرا شود. مورد سوم مهم است: بعضی ارائه‌دهنده‌های گیت فهرست فایل‌های تغییریافته را نمی‌دهند. اگر «نامعلوم» را «خالی» فرض می‌کردیم، اپلیکیشن‌های آن ارائه‌دهنده‌ها بی‌صدا کهنه می‌ماندند.

رجیستری

رجیستری داخلی
نصب داخل کلاستر، با استوریج ماندگار
رجیستری خصوصی بیرونی
اعتبارنامهٔ رمزشده، تزریق خودکار
آینهٔ pull-through
کشِ عبوری برای کاهش ترافیک خروجی؛ مقصدهای بالادست allow-list دارند
پروژه‌های آینه
هرگز عمومی نیستند

نکته

آینه مکمّلِ بستهٔ آفلاین است، نه جایگزینش. کشِ عبوری تا وقتی چیزی از آن کشیده نشود خالی است — دقیقاً کاری که سایتِ بدون اینترنت نمی‌تواند بکند.

حالت‌ها

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

  • بیلد در صف

    در صف — ۲ بیلد قبل از شما.

  • اسکن مسدودکننده

    بیلد متوقف شد: ۳ آسیب‌پذیری با شدت بحرانی.

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

  • کش خراب

    کش در دسترس نبود؛ بدون کش ساخته شد.

  • سقف بیلد هم‌زمان

    سقف بیلد هم‌زمان تیم شما پر است. این بیلد در صف قرار گرفت.

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

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