🌐 زیرساخت و دواپس
📦استاندارد CNAB: استاندارد بستهبندی اپلیکیشنهای توزیعشده
استاندارد CNAB یک استاندارد باز برای بستهبندی، نصب و مدیریت اپلیکیشنهای توزیعشده است. برخلاف Helm که فقط برای Kubernetes ساخته شده، CNAB روی هر محیطی کار میکند: Kubernetes، ماشین مجازی، محیط لبه، سرور محلی و ابرهای عمومی.
این استاندارد در سال ۲۰۱۹ با همکاری مایکروسافت، داکر، هشیکورپ و Bitnami معرفی شد. فلسفهاش ساده است: یک اپلیکیشن توزیعشده — با چند کانتینر، پایگاه داده و زیرساخت — را بتوان مثل یک بسته واحد مدیریت کرد.
🧩 هر بسته CNAB سه جزء دارد
۱. فایل
۲. ایمیج 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
📦استاندارد 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
GitHub
GitHub - getporter/porter: Porter enables you to package your application artifact, client tools, configuration and deployment…
Porter enables you to package your application artifact, client tools, configuration and deployment logic together as an installer that you can distribute, and install with a single command. - getp...