چرا از کانتینر (containers) استفاده کنیم؟

 

مشابه کانتینرهای حمل و نقل فیزیکی ، کانتینرهای  نرم افزاری برای استاندارد سازی مفید هستند. در این حالت ، ظروف نرم افزاری زیرساخت IT را استاندارد می کنند. کانتینر یک روش مرتب برای بسته بندی کد با وابستگی های آنها به بلوک های ساختار یافته است که می تواند به طور مداوم و کارآمد استفاده شود.

قابل حمل

یک کانتینر از سیستم عامل میزبان جدا می شود ، بنابراین می تواند روی هر چیزی از لپ تاپ گرفته تا ابر دلخواه شما کار کند.

ماژولار بودن

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

امنیت

کانتینرها تغییرناپذیر هستند بنابراین با جایگزینی کانتینر به طور کامل ، به روزرسانی ها انجام می شود و انتشار بسته های امنیتی یا بازگرداندن سریع به روزرسانی.

مقیاس پذیری

برنامه های کانتینر شده می توانند برای کنترل بار اضافی و یا کم کردن منلبع  برای صرفه جویی، مقیاس بندی شوند.

کانتینرها چطور کار می کنند؟

 

Docker یکی از محبوب ترین فن آوری های منبع باز است که به شما امکان می دهد برنامه های توزیع شده را ایجاد ، اجرا ، آزمایش و استقرار دهید. اصطلاحات زیادی وجود دارد ، بنابراین اجازه دهید هیجان خود را حفظ کنیم ، و فقط برخی از اصول را حل کنیم.

Container Image

این image نحوه نمونه برداری از یک کانتینر ، تعیین اینکه اجزای نرم افزار چگونه اجرا می شوند و نحوه اطلاع رسانی را نشان می دهد. همچنین می توانید از یک کانتینر تصویری ایجاد کنید و این مشخصات را با شخص دیگری به اشتراک بگذارید ، به طوری که برنامه ای مانند لپ تاپ توسعه دهنده به همان روشی که در حال تولید است ، اجرا شود.

کانتینر

این یک محیط مجازی را توصیف می کند که کد برنامه را با همه باینری ها و کتابخانه هایی که برای اجرای یک برنامه مورد نیاز هستند بسته بندی می کند. از آنجا که کانتینر شامل تمام وابستگی های آن است ، نیازی نیست که چیزی را روی سیستم عامل میزبان نصب کنید و آن را جدا نگه دارید.

ارکستراسیون کانتینر

این به رفتارهای هماهنگ برای کانتینرها و بین کانتینرها ، مانند برنامه ریزی ، مدیریت منابع و توازن بار اشاره دارد. در اکوسیستم های پیچیده یا پویا ، تیم ها از یک موتور ارکستراسیون برای کنترل ، مدیریت و خودکار سازی این فعالیت استفاده می کنند.

پس از سازماندهی مجدد تیم مهندسی Postman به معماری میکرو سرویس ، اکنون هر سرویس از Docker برای پیکربندی محیط های خود استفاده می کند. هر سرویس ، Dockerfile خود را تعریف می کند که با استفاده از کد جدید به عنوان بخشی از خط لوله CI / CD ، ایمیجی از آن تولید می شود. image حاصل به رجیستری کانتینرهای تیم هدایت می شود و محیط Beanstalk آنها پیکربندی می شود تا image را از رجیستری برای اجرای کانتینرها دریافت کند.

 

 

چرا از Kubernetes استفاده کنیم؟

با معماری میکرو سرویس ، تعدادی از خدمات می توانند یک برنامه واحد را ایجاد کنند و هر یک از این خدمات می توانند در container مخصوص خود قرار بگیرند. حتی یک برنامه وب ساده ممکن است در یک کانتینر نباشد. ممکن است یک محفظه برای frontend وب داشته باشید ، دیگری برای API های بک اند و شاید دیگری برای ذخیره سازی داده ها.

Kubernetes مانند یک موتور ارکستراسیون وارد کار می شود. Kubernetes یک سیستم ارکستراسیون منبع باز ، برای خودکار سازی استقرار ، مقیاس گذاری و مدیریت برنامه های محتوی است. به عنوان یک انتزاع در سطح بالاتر برای مقابله با مدیریت کانتینر ، برای تنظیم یک منحنی یادگیری تا حدودی شیب دار وجود دارد ، اما سپس زندگی را روز به روز آسان تر می کند.

 

 

دستورالعمل postman برای استقرار برنامه Node با Docker و Kubernetes

اجازه دهید آن را امتحان کنید! ما با یک برنامه ساده  node شروع خواهیم کرد که مانند کوتاه کننده URL کار می کند. در مورد ما ، ما با استفاده از افعال گربه ، صفتهای گربه و شکلک های گربه یک URL را به URL دیگری تبدیل خواهیم کرد – و وقتی URL سفارشی خود را به یک مرورگر وارد می کنید ، به وب سایت اصلی هدایت می شوید.
زیبایی استفاده از کانتینرها این است که حتی اگر من این برنامه را با سیستم عامل خود و نسخه دیگری از Node در دستگاهی توسعه می دهم ، می توانید با استفاده از image container من مشخصات دقیق مورد نیاز برای اجرای همان برنامه را تعیین کنید به طور یکپارچه بر روی دستگاه خود ، یا در cloud ، یا هر کجا که شما برای استقرار انتخاب می کنید.

اگر می خواهید این کار را دنبال کنید ، این مثال را clone کنید و مراحل README را  دنبال کنید.

منبع : medium.com

Application containers deployment devops Docker dockerizing Kuber Kubernetes