همه چیز راجب Container ها ⚡️
امروزه در دنیای نرم افزار، Container ها نقش مهمی پیدا کردن و داخل تکنولوژی های بزرگی مثل Docker و kubernetes که دربارشون مفصل صحبت کردیم، استفاده میشن.
🗂 اما کانتینرها دقیقا چی هستند؟
در واقع Containerization یک روش استقرار نرم افزاره که کد برنامه رو با تمام وابستگی های اون (کتابخانه ها و فایل های کانفیگ) مورد نیاز برای اجرا، در یک واحد مستقل به اسم Container بسته بندی میکنه. پس کانتینرها محل نگهداری دپندنسیها و کانفیگیوریشن فایلها هستن.
🤔 کانتینرها چجوری کار میکنن؟
1️⃣ مرحله اول : ساخت تصویر
ما به عنوان یک دولوپر کد هارو مینویسیم و تمام وابستگی های مورد نیاز رو مشخص میکنیم. با استفاده از ابزار هایی مثل Docker یک تصویر درست میکنیم که این تصویر شامل تمام چیز هایی هست که برای اجرای برنامه در هر محیطی نیازه، که از استاندارد (OCI) Open Container Initiative پیروی میکنه.
💙 این تصویر از چند لایه تشکیل میشه:
◀️ لایه پایه : معمولا شامل یک سیستم عامل مینیمال مثل لینوکس هست.
◀️ لایه های وابستگی : این لایه حاوی کتابخونه های از پیش نصب شده و اجزای مورد نیاز برنامه هست.
◀️ لایه برنامه : حاوی کد های برنامه و هر فایل پیکربندی اضافه مخصوص برنامه هست.
2️⃣ مرحله دوم : اجرای کانتینر
زمانی که یک تصویر رو با استفاده از موتور Docker اجرا میکنید، یک کانتینر در حال اجرا از اون تصویر ایجاد میشه.
موتور Docker از هسته سیستم عامل میزبان برای عملکردهای اصلی استفاده میکنه، اما فرایندها و منابع کانتینر رو ایزوله میکنه.
این امر باعث میشه یک محیط اجرای سبک و کارآمد برای اجرای برنامه فراهم میشه.
⚠️ نکات مهمی که بهتره بدونید:
🔵 هر کانتینر در یک فضای کاربری جداگانه اجرا میشه که از تداخل بین برنامهها یا وابستگیها جلوگیری میکنه.
🔵 برای مدیریت تعداد زیادی از کانتینرها، از پلتفرمهای ارکستراسیون کانتینری مثل Kubernetes استفاده میشه.
🔵 بسیاری از پلتفرمهای کانتینری مثل Docker، از رویکرد "امن به صورت پیشفرض" پشتیبانی میکنن، به این معنا که ویژگیهای امنیتی به طور پیشفرض فعال هستن و خطر پیکربندی نادرست رو کاهش میدن.
اما یکسری نقاط ضعف هم وجود داره :
🔢 برخی از منابع هسته سیستم عامل اصلی یا فریمورک های مشترک ممکن توسط چند کانتینر قابل دسترسی باشن، این میتونه آسیب پذیری احتمالی در صورت عدم مدیریت رو ایجاد کنه.
🔢 یک نقض امنیتی در سیستم عامل میزبان میتونه همه کانتینر های درحال اجرا رو به خطر بندازه.
به صورت کلی اگر به دنبال افزایش کارایی، مقیاس پذیری و امنیت در پروژه ها هستید، بهتره از داکر و کانتینرها استفاده کنید🔥
#docker #containerization #container #kubernetes
@CodeModule
امروزه در دنیای نرم افزار، Container ها نقش مهمی پیدا کردن و داخل تکنولوژی های بزرگی مثل Docker و kubernetes که دربارشون مفصل صحبت کردیم، استفاده میشن.
🗂 اما کانتینرها دقیقا چی هستند؟
در واقع Containerization یک روش استقرار نرم افزاره که کد برنامه رو با تمام وابستگی های اون (کتابخانه ها و فایل های کانفیگ) مورد نیاز برای اجرا، در یک واحد مستقل به اسم Container بسته بندی میکنه. پس کانتینرها محل نگهداری دپندنسیها و کانفیگیوریشن فایلها هستن.
ما به عنوان یک دولوپر کد هارو مینویسیم و تمام وابستگی های مورد نیاز رو مشخص میکنیم. با استفاده از ابزار هایی مثل Docker یک تصویر درست میکنیم که این تصویر شامل تمام چیز هایی هست که برای اجرای برنامه در هر محیطی نیازه، که از استاندارد (OCI) Open Container Initiative پیروی میکنه.
زمانی که یک تصویر رو با استفاده از موتور Docker اجرا میکنید، یک کانتینر در حال اجرا از اون تصویر ایجاد میشه.
موتور Docker از هسته سیستم عامل میزبان برای عملکردهای اصلی استفاده میکنه، اما فرایندها و منابع کانتینر رو ایزوله میکنه.
این امر باعث میشه یک محیط اجرای سبک و کارآمد برای اجرای برنامه فراهم میشه.
⚠️ نکات مهمی که بهتره بدونید:
اما یکسری نقاط ضعف هم وجود داره :
به صورت کلی اگر به دنبال افزایش کارایی، مقیاس پذیری و امنیت در پروژه ها هستید، بهتره از داکر و کانتینرها استفاده کنید
#docker #containerization #container #kubernetes
@CodeModule
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥7👌5⚡2😁1