بنا به تغییراتی در طراحی زیرساخت یک پروژه، مجبور به بررسی container ها و پیش نیازهای فنی برای ادغام یک سرویس container-based در محیط مجازی شدم. به هر حال موضوع جالبی بود و تاکنون container را صرفا یک راه حل مبتنی بر لینوکس میدانستم اما پس از بررسی شرایط پروژه فعلی، موارد جالبی از قبیل همکاری شرکتهایی همچون vmware,amazon, citrix و … در این حوزه را دیدم و فراتر آنکه امکان توسعه و پیاده سازی آن در محیط های مجازی مبتنی بر vSphere نیز وجود دارد. حقیقتا نمی توان از container بعنوان یک موضوع خیلی جدید یاد کرد، و آن هم به دلیل استفاده چندساله گوگل و آمارهای منتشر شده آنهاست. اما در VMworld امسال با راهکار جدیدی بنام Photon آشنا شدم که شرکت Vmware بعنوان یک گام جدید برای ورود به عرصه container ها برداشته و بصورت تخصصی، این ابزار را بمنظور یکپارچه شدن container ها در مراکز داده مجازی vmware ارائه کرده است. قصد دارم در این مقاله صرفا به Container و آشنایی کلی با آن پرداخته ام و در مقاله دیگری به نحوه نصب و توسعه آن خواهم پرداخت.

containers-diff

Container بصورت ساده یک راهکار کاملا مطمئن و امن برای انتقال محیط عملیاتی یک نرم افزار به محیط دیگریست که ناسازگاری ها را رفع و بسیاری از مشکلات فعلی که مربوط به جابجایی و نصب نرم افزارها خارج از مکان مبدا می باشد را پوشش می دهد. بعبارتی ساده تر، یک برنامه نویس می تواند Application طراحی شده خود را به همراه کلیه فایلهای dll, library و مابقی وابستگی هایش بصورت یک پکیج نرم افزاری درآورده و آنها را بصورت یک container نرم افزاری اجرا نماید. این container ها به نوعی از ساختار مجازی پیروی می کنند ولی یک مدل مجازی سازی در لایه سیستم عامل محسوب می شوند. اما چگونه؟

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

container مبتنی بر image است. به معنای ساده تر، container را ظرفی درنظر بگیرید که image ها را در آن اجرا می کنند. خود container ها از روی image ها ایجاد و توسعه داده می شوند.

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

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

docker_container_vs_vm

مزایای کلی استفاده از container ها

  • انتشار سریعتر و ساده تر application ها
  • انعطاف پذیری در زیرساخت و انتقال application ها بدون وابستگی
  • سرعت بالا، استفاده مشترک از kernel سیستم عامل و کاهش مصرف منابع
  • به روزرسانی پویا و ایجاد تغییرات سریع
  • اندازه گیری و پایش دقیق استفاده از منابع پردازشی

فرستادن دیدگاه


حامیان