عصر گویش | هوش مصنوعی
100K subscribers
2.13K photos
348 videos
4 files
2K links
مجله هوش مصنوعی عصر گویش

021 61931000
Download Telegram
🌐 زیرساخت و دواپس

📦استاندارد CNAB: استاندارد بسته‌بندی اپلیکیشن‌های توزیع‌شده

استاندارد CNAB یک استاندارد باز برای بسته‌بندی، نصب و مدیریت اپلیکیشن‌های توزیع‌شده است. برخلاف Helm که فقط برای Kubernetes ساخته شده، CNAB روی هر محیطی کار می‌کند: Kubernetes، ماشین مجازی، محیط لبه، سرور محلی و ابرهای عمومی.

این استاندارد در سال ۲۰۱۹ با همکاری مایکروسافت، داکر، هشی‌کورپ و Bitnami معرفی شد. فلسفه‌اش ساده است: یک اپلیکیشن توزیع‌شده — با چند کانتینر، پایگاه داده و زیرساخت — را بتوان مثل یک بسته واحد مدیریت کرد.

🧩 هر بسته CNAB سه جزء دارد

۱. فایل bundle.json: قلب بسته. می‌گوید چه ایمیج‌هایی، چه پارامترهایی و چه اکشن‌هایی داخل آن است.

۲. ایمیج Invocation Image: ایمیجی که منطق نصب را اجرا می‌کند. می‌تواند Terraform، Ansible یا اسکریپت سفارشی باشد.

۳. ایمیج Component Images: ایمیج‌هایی که خود اپلیکیشن را می‌سازند.

📦 دو نوع بسته

* بسته Thin: فقط فایل bundle.json. سبک است، اما ایمیج‌ها را باید از رجیستری گرفت.
* بسته Thick: همه ایمیج‌ها داخل بسته. سنگین‌تر است، اما کاملاً آفلاین کار می‌کند.

☁️ توزیع

استاندارد CNAB از همان رجیستری‌های OCI (رجیستری داکر) برای توزیع بسته‌ها استفاده می‌کند. یعنی همان جایی که ایمیج‌های Docker را نگه می‌دارید، می‌توانید بسته‌های CNAB را هم ذخیره کنید.

📚 مشخصات CNAB

* بخش Core: بخش الزامی. تعریف بسته و نصب/حذف/به‌روزرسانی.
* بخش Security: امضا و تأیید بسته‌ها.
* بخش Registry: ذخیره و بازیابی از رجیستری.
* بخش Claims: اطلاعات نصب‌ها.
* بخش Dependencies: وابستگی بین بسته‌ها.

🔗 ابزار Porter چیست؟

ابزار Porter یک ابزار است که کار با CNAB را ساده می‌کند. شما یک فایل porter.yaml می‌نویسید و Porter از آن، یک بسته استاندارد CNAB می‌سازد.

⚖️ مقایسه CNAB در مقابل Helm

*استاندارد CNAB: روی هر محیطی کار می‌کند، Terraform و Ansible را هم پشتیبانی می‌کند، آفلاین هم قابل استفاده است.
*استاندارد Helm: فقط Kubernetes، فقط manifestهای Kubernetes.

🎯 حرف آخر

اگر اپلیکیشن چندسرویسی دارید و می‌خواهید آن را به‌صورت استاندارد و قابل حمل بسته‌بندی کنید، CNAB و Porter گزینه‌های خوبی هستند — به‌ویژه در محیط‌های ترکیبی که فقط Kubernetes کافی نیست.

🔗https://github.com/getporter/porter

#DevOps #CNAB #Porter #CloudNative

🆔 @asrgooyeshpardaz