what is docker؟
Containerization(بستهبندی) فرآیندی است برای توزیع(distributing) و استقرار(deploying) برنامهها به صورت قابل حمل(portable) و قابل پیشبینی(predictable)! این هدف با بستهبندی کردن مولفهها و وابستگیهاشون در یک محل استاندارد، ایزوله و سبکوزن به نام کانتینر(container) فراهم میشه. امروزه بسیاری از سازمانها علاقمندند برنامهها و سرویسهایی طراحی کنند که قابلیت استقرار آسان در سیستمهای توزیعیافته رو داشته باشه;چرا که این نگرش کمک میکنه که بتونن برنامه رو در صورت نیاز به آسانی scale و نیز مقاوم نسبت به failure کنند. داکر، که در واقع یک پلتفرم بستهبندی(containerization) است که برای راحتکردن و استاندارد کردن استقرار در محیطهای مختلف توسعه یافته است، با معماری service-based به خوبی تطابق دارد.
داکر و بستهبندی
امروزه داکر رایجترین نرمافزار بستهبندی مورد استفاده است.
در تصویر بالا میتوانید ارتباط کانتینرها و سیستم میزبان رو ببینید. کانتینرها اپلیکیشنها را ایزوله میکنند و از منابع سیستمعامل که داکر abstract کرده استفاده میکنند. در دید سمت راست، میتونیم ببینیم که کانتینرها به کمک لایه بندی میتونند ساخته بشن، به گونهای که چند کانتینر از لایههای زیرین یکسان استفاده کنند و این باعث کاهش استفاده از منابع(resource usage) میشه.
مزیتهای داکر
Lightweight resource utilization : به جای مجازیسازی کل سیستمعامل، کانتینرها در سطح پروسس ایزوله میکنند و از کرنل میزبان استفاده میکنند
Portability : همه وابستگیها و نیازمندیهای یک اپلیکیشن بستهبندی شده داخل کانتینر هست و این باعث میشه بتونه روی هر داکر هاستی اجراش کرد.
Predictability : هاست براش مهم نیست که داخل کانتینر چی داره اجرا میشه و همچنین کانتینر اهمیتی نمیده که چه اتفاقی داره روی هاست میفته. Interfaceها استاندارد شده هستند و ارتباطاتشون قابل پیشبینی.
معمولا بهترین راه برای طراحی اپلیکیشن یا سرویسی که قراره از داکر استفاده کنه، یک تصمیم طراحی معماری است که به service-oriented architecture معروفه! به طور خلاصه در این تصمیم طراحی میایم functionality برنامه کلی رو میشکونیم به سرویسهای کوچکتر که در اینجا میتونن همون کانتینرها باشن. این کمک میکنه که بتونیم راحتتر مولفههای سیستم رو به صورت مستقل از هم آپدیت یا اسکیل کنیم. این انعطافپذیری یکی از مهمترین دلایلی است که باعث میشه توسعهدهندگان به داکر برای توسعه و استقرار علاقمند بشن.
منابع: