خانه / سیستم عامل / ۶ مورد از ملزومات کانتینرهای داکر
۶ مورد از ملزومات کانتینرهای داکر

۶ مورد از ملزومات کانتینرهای داکر

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

کانتینرها توانسته اند نحوه ساخت و اجرای اپلیکیشن ها در ابر را تغییر دهند. در ادامه ۶ مورد از حقایقی که  تیم شما باید در مورد کانتینرها بداند را بیان می کنیم.

  1. کانتینرها ماشین های مجازی نیستند:

همانطور که می دانید کانتینرها و ماشین های مجازی مزایای تخصیص منابع مشابهی دارند اما رویکردهای معماری متفاوت به کانتینرها اجازه می دهد بیشتر از ماشین مجازی پرتابل و موثر باشد. اصلی ترین تفاوتی که بین کانتینر و ماشین مجازی وجود دارد رویکرد معماری در این دو مورد است.

ماشین های مجازی:

ماشین های مجازی(VMs) در برگیرنده اپلیکیشن ها، باینری های ضروری، کتابخانه ها و سیستم عامل مهمان هستند که همه آن ها ممکن است چند گیگابایت فضا نیاز داشته باشند.  ماشین مجازی با استفاده از هایپروایزر روی دستگاه فیزیکی اجرا می شود.  خود هاپیروایزر را  نیز می توان بر روی رایانه های فیزیکی اجرا کرد که به آن ها ماشین هاست گفته می شود.  ماشین هاست همان چیزی است که منابع مورد نیاز ماشین مجازی همچون رم و پردازنده را فراهم می کند. این منابع در میان ماشین های مجازی تقسیم می شوند. بنابراین اگر یکی از ماشین های مجازی  به منابع زیادی نیاز داشته باشد و اپلیکیشن های بیشتری بر روی آن اجرا شود،  باید منابع بیشتری به آن اختصاص یابد . ماشین مجازی که بر روی ماشین هاست اجرا می شود را اغلب ماشین مهمان(guest machine) می نامند.  این دستگاه مهمان در برگیرنده اپلیکیشن ها و تمامی مواردی است که برای اجرای اپلیکیشن مورد نیاز است( به عنوان مثال سیستم باینری؛ کتابخانه ها). همچنین این دستگاه سخت افزارهای مجازی سازی همچون آداپتورهای مجازی شبکه، فضای ذخیره سازی و پردازنده  را حمل می کند.   از داخل ،دستگاه مهمان با منابع اختصاصی خودش به عنوان یک واحد مستقل عمل می کند.  از خارج  نیز به عنوان یک ماشین مجازی در نظر گرفته می شود که منابع  فراهم شده توسط  ماشین هاست را به اشتراک می‌گذارد.

کانتینرها:

 کانتینرها شبیه ماشین مجازی هستند. نکته کلیدی که در این مورد وجود دارد معماری آن است که با ماشین مجازی متفاوت است.  تفاوت اصلی بین کانتینر و ماشین مجازی این است که کانتینرها هسته(کرنل)  سیستم هاست را با سایر کانتینرها به اشتراک می گذارند.  تصویر زیر نشان می دهد که  کانتینرها تنها فضای کاربر را  مدیریت می کند.

scribble_js-3-1

هر کانتینری فضای کاربری جدا شده خود را دریافت می کند. همین امر به کانتینرهای متعدد اجازه می دهد بر روی ماشین هاست واحد اجرا شوند.  کل معماری سطح  سیستم عامل، در سرتاسر کانتینرها به اشتراک گذاشته می شود. تنها بخش هایی که از همان ابتدا ایجاد می شود bins و کتابخانه هاست. همین موضوع باعث می شود کانتینر بسیار سبک و قابل حمل( پرتابل) باشد. ماشین مجازی به شیوه متفاوتی ایجاد می شود. آن ها با سیستم عامل کاملی اجرا می شوند.

  • اساسا کانتینرها نیز همان عملکردی را دارند که ماشین های مجازی فراهم می کنند.
  • کانتینرها بسیار سبک تر از ماشین های مجازی هستند زیرا هسته را بدون شبیه سازی سخت افزار با هاست به اشتراک می گذارند.
  • داکر فناوری مجازی سازی نیست بلکه یک فناوری تحویل اپلیکیشن محسوب می شود.
  • کانتینر تنها  یک فرایند است و به معنای واقعی کلمه یک شیء نیست.
  • کانتینرها از قابلیت های هسته همچون kernel namespaces و control groups استفاده می کنند.
  • Kernel namespaces( فضای نام هسته) ایزولیشن عمومی فراهم می کند و CGroups برای اختصاص منابع مورد استفاده قرار می گیرد.

فضای نام(Namespaces):

  • فضای نام هسته( Kernel namespace) ایزولیشن عمومی فراهم می کند.
  • این گزینه شما را مطمئن می سازد که هر کدام از کانتینرها بر روی کانتینرهای دیگر تاثیری ندارند و آن را نمی بینند.
  • به عنوان مثال با فضای نام می توانید فرایندهای متعددی با PID یکسان در محیط های مختلف داشته باشید.
  • همانطور که می دانید شش نوع فضای نام وجود دارد که به شرح زیر است:
  1. pid (فرآیندها)
  2. net (رابط های شبکه و مسیریابی)
  3. ipc (System V IPC)
  4. mnt (مونت پوینت, فایل سیستم)
  5. uts (hostname)
  6. user (UIDs)

CGroups:

  • CGroups( گروه های کنترل) منابع را اختصاص می دهند و محدودیت های منابع فرایند را اعمال می کنند.
  • این گزینه شما را مطمئن می سازد که هر کانتینر سهم مناسبی از مموری، پردازنده و disk I/O را به دست می آورد.
  • همچنین با استفاده از این گزینه می توان مطمئن بود که هیچ کدام از کانتینرها بیش از حد منابع موجود را مصرف نمی کنند.
  1. کانتینر می تواند در عرض یک بیستم ثانیه شروع به کار کند:

کانتینر را می توان با سرعت بیشتری نسبت به ماشین مجازی ایجاد کرد زیرا ماشین مجازی باید ۱۰ الی ۲۰ گیگا بایت از سیستم عامل را از فضای ذخیره سازی بازیابی کند. حجم کاری در کانتینر از هسته سیستم عامل  سرور هاست استفاده می کند. یک کانتینر می تواند در عرض یک بیستم ثانیه  آغاز به کار کند. این در حالیست که برای ماشین های مجازی مدرن این مقدار حدود یک دقیقه است.  زمانی که تیم توسعه دهندگان داکر را اتخاذ می کنند لایه جدیدی از چابکی، خلاقیت، بهره وری و عملکرد به چرخه توسعه نرم افزار اضافه می شود.  وجود چنین سرعتی به تیم توسعه دهنده اجازه می دهد کد پروژه را فعال سازد ، کد مورد نظر را به شیوه های مختلف تست نماید یا توانایی اضافی برای تجارت الکترونیکی ایجاد کند.

  1. کانتینرها خود را در مقیاس بزرگ نیز به اثبات رسانده اند:

خلاق ترین شرکت های جهان از معماری میکروسرویس استفاده می کنند. به عنوان مثال شما ممکن است پایگاه داده Mongo  را در یکی  از کانتینرهای خود اجرا کنید و سرور Redis در کانتینر دیگری اجرا شود. با کمک داکر، برقراری ارتباط بین این کانتینرها بسیار ساده تر و اسان تر خواهد بود. بر اساس گزارشات InformationWeek نمونه دیگر در این حوزه گوگل است. جستجوی گوگل یکی از بزرگترین مواردی است که از کانتینرها استفاده می کند.  زمانی که جستجوی گوگل شروع به کار می کند از کانتینرهای موجود استفاده می کند و در هر ثانیه حدود ۷۰۰۰  کانتینر شروع به کار می کند. اهمیت کانتینری کردن این است که می تواند تعریف استانداردی ایجاد کند.  داکر گروهی به نام Open Container Initiative را در ۲۲ ژوئن سال ۲۰۱۵ ایجاد کرده است. این گروه فرمت استانداردی برای تصاویر کانتینر  ایجاد می کند و زمان Runtime کانتینر را مشخص می کند.

  1. کانتینرها بسیار سبک تر از ماشین های مجازی هستند:

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

۵٫داکر به مترادف  کانتینرها تبدیل شده است:

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

۶٫سفرای داکر: کاپیتان ها

 ایا تا به حال توانسته اید با یکی از کاپیتان های داکر ملاقات کنید؟ در دنیا بیش از ۶۷ میلیون سفیر داکر وجود دارد.  کاپیتان ها همان سفرای داکر هستند که در این حوزه تخصص کافی دارند و دوست دارند اطلاعات خود را در اختیار سایر افراد بگذارند. جامعه داکر می تواند اصول داکر و روش های تعامل با آن را در اختیار شما بگذارد.

منبع

جوابی بنویسید

ایمیل شما نشر نخواهد شدخانه های ضروری نشانه گذاری شده است. *

*