اگرچه کانتینرهای Docker در زیرساختهای ابری خصوصی قابل اجرا هستند، اما بسیاری از کاربران به طور طبیعی میخواهند در پلتفرمهای ابری عمومی آنرا اجرا کنند. مزایای ابر شامل مقیاس، اقتصادی بودن و سادگی است. همچنین از ایجاد مشکل در مدیریت زیر لایههای زیرساخت خود جلوگیری کرده و شما را قادر به تمرکز روی برنامهها و خدمات میکند.
مدیریت داکر در ابر چه اهمیتی دارد
هنگام اجرای برنامههای Dockerized در تولید، معیارها ثابت میمانند، اما نحوه عملکرد آنها در تولید تفاوتهایی با کانتینر (container) دارد. در ادامه به بررسی برخی از این معیارها و آنچه را که با آنها تغییر میکند، میپردازیم.
مقیاس
اولین دلیل روی آوردن بیشتر کاربران به کانتینرهای Docker استفاده از مقیاسپذیری است که به همراه میآورد. ماشینهای مجازی در پاسخگویی به افزایش ترافیک و رشد بیش از حد کند و آهسته عمل میکنند. در مقابل، کانتینرها به راحتی مقیاسبندی یا مقیاسپذیر میشوند تا پاسخگوی خواستههای متغیر باشد.
هنگام اجرای کانتینرهای Docker در فضای ابری، میخواهید هزاران یا صدها هزار کانتینر را به صورت یکپارچه اجرا کنید. این گفته آسانتر از انجام است. داکر اگرچه مقیاس را امکانپذیر میکند و مدیریت زیرساختها را در مقیاس آسانتر میکند، اما پیچیدگی دیگری دارد.
دسترسپذیری بالا
کانتینرها ماهیتی زودگذر دارند و از حجم کاری پویا پشتیبانی میکنند. با ایجاد و تخریب مداوم کانتینرها، شما باید اطمینان حاصل کنید که از دسترسی بالایی برای برنامهها و سرویسهایی که پشتیبانی میکنند، برخوردار هستند.
تعادل بار بین کانتینرها در ابر مانند تعادل بار سنتی است، جایی که حجم کار در چندین نمونه تقسیم میشود.
فقط در این حالت، سرعت متعادلسازی ترافیک با توجه به ماهیت پویای کانتینرها بسیار نامتعادل است.
متعادلکننده بار باید از سلامت کانتینرها در تمام مناطق آگاه باشد و درخواستهایی را برای مواردی که به احتمال زیاد سریعترین کار را انجام میدهند، هدایت کند.
قابل حمل بودن
Vendor lock-in خصوصا برای شرکتهایی که به سمت ابر میروند نگران کننده است. با سیستمهای پیچیده بک اند و برنامههای طولانی، آنها با تغییر زیرساختها چیزهای زیادی از دست میدهند. در عین حال، هنگام بکارگیری کانتینرها، میخواهند از مزایای قابل حمل بودن وعده داده شده کانتینر بهرهمند شوند. در حالی که کانتینرها قابلیت حمل و نقل را در توسعه پایپ لاین دارند، قابلیت حمل بین ارائه دهندگان ابر هنوز به واقعیت تبدیل نشده است.

همانطور که زیرساختهای cloud را برای اجرای کانتینرهای Docker پیکربندی میکنید، میخواهید انعطافپذیری لازم را داشته باشید تا بین ارائهدهندگان ابر جابجا شوید. اما به دلیل ویژگیهای منحصر به فرد هر ارائهدهنده ابر، گفتن این مسئله آسان تر از انجام است.
هنگامی که سرویس کانتینر فروشنده ابری را انتخاب میکنید، از ابزار منحصر به فرد آنها برای مدیریت هویت و دسترسی (IAM) ، امنیت، شبکه و ذخیرهسازی نیز استفاده میکنید. انتقال کانتینر به یک فروشنده ابر متفاوت به معنای تغییر در تمام جنبههای اجرای Docker در ابر است.
گرچه موانعی برای قابل حمل بودن ابر وجود دارد، حرکت بین ابرها آسانتر از سرورهای سختافزاری است.
کدهای باینری برنامه و کتابخانههای آن هنوز از زیرساختها جدا هستند و میتوانند به همان صورت به فروشنده ابر دیگر منتقل شوند. این یک مزیت بزرگ هنگام اجرای داکر در فضای ابری است. با اتخاذ اخیر Kubernetes به عنوان استاندارد استقرار کانتینرهای مبتنی بر ابر، برخی از اختلافات بین استقرار ابر کانتینر کاهش یافته و نشاندهنده روند بهبود قابلیت حمل و نقل بین ابر است.
ارائهدهندگان میزبانی
شاید مهمترین تصمیم هنگام اجرای Docker در ابر این است که کجا آنها را میزبانی کنیم. گزینههای زیادی برای انتخاب وجود دارد و تعداد آنها رو به رشد است. اگر به یک فروشنده ابر متعهد هستید، باید در نظر بگیرید که با انتقال به کانتینرها، چگونه عملیات و هزینههای شما تغییر میکند. اگر از یک مرکز داده خصوصی و زیرساخت ابر عمومی استفاده میکنید، باید به چگونگی مدیریت کانتینرها در هر دو سیستم عامل فکر کنید.
فروشندگان زیادی وجود دارند که خدمات مدیریت کانتینر را ارائه میدهند، معروف به کانتینر به عنوان سرویس(CaaS) . در ادامه به بررسی هر گزینه و نحوه جمع شدن آنها با سایر گزینهها میپردازیم.
Docker Cloud (ابر داکر) چیست؟
ابر داکر سرویس میزبانی کانتینر خود Docker است که یک رجیستری خصوصی و راهی برای تنظیم ساخت و آزمایشهای خودکار برای تصاویر کانتینر فراهم میکند.
برای استقرار، ابر داکر از Docker Swarm استفاده میکند و میتواند کانتینرها را روی سیستم عامل ابر داده یا هر پلتفرم ابر عمومی مستقر کند. این گزینه خوبی برای یک محیط توسعه دهنده است، اما برای بسیاری از سازمانها که خود را متعهد به یک فروشنده ابر عمومی مانند AWS میدانند، در آنجا بیشتر زیرساختهای خود را میزبانی میکنند. در این حالت، یک سرویس CaaS از یکی از فروشندگان ابر عمومی، گزینه جذابی برای میزبانی کانتینر Docker است.
AWS چیست؟
AWS بزرگترین فروشنده ابر است و سرویس کانتینر EC2 (ECS) آن یک تناسب طبیعی برای هر سازمانی است که قبلا عمدتا با AWS کار میکند. با فروشندگان ابر، طبیعیست که کانتینرهای خود را درون ماشین مجازی اجرا کنید. در مورد AWS، این به معنای اجرای کانتینرها در موارد EC2 است.
بزرگترین مزیت همکاری با یک فروشنده ابر مانند AWS این است که سرویس کانتینر با سیستم عامل ابری آنها کاملا یکپارچه است. این بدان معنیست که شما میتوانید به راحتی از سرویسهایی مانند IAM برای مدیریت دسترسی، S3 برای ذخیرهسازی و CloudTrail برای ورود به سیستم API استفاده کنید.
سرویس جدید Elastic Kubernetes Service (EKS) با سادهسازی راهاندازی و مدیریت خوشههای Kubernetes، اجرای Kubernetes را آسان میکند. هنگامی که برنامهای در EKS مستقر شد، AWS مقیاسگذاری خودکار و دسترسی زیاد را کنترل میکند.
سرویس کانتینر Azure (AKS) چیست؟
Microsoft Azure یکی از فروشندگان ابری است که برای اتخاذ سریع Kubernetes گامهای بزرگی برداشته است. Azure با بروزرسانی اخیر و بازسازی نام تجاری خود به AKS، اکنون اجرای خوشههای Kubernetes را بدون نیاز به تجربه قبلی در مدیریت Kubernetes آسان میکند. AKS به ویژه بر روی آسان ساختن کار در 5 دقیقه و پس از آن، نصب آسان نسخههای جدید و اصلاح و سادهسازی مقیاسبندی خوشهها تمرکز دارد.
Kubernetes بهترین راه برای اجرای کانتینرهای Docker در فضای ابری است و از این نظر Azure در تمرکز روی Kubernetes در مسیر درست قرار دارد.
GKE (Google Kubernetes Engine) چیست؟
گوگل خالق Kubernetes است و فعالانهترین سازمان در توسعه Kubernetes است. با توجه به این، تعجبآور نیست که Google Cloud یکی از بالغترین پیشنهادات Kubernetes را در بازار داشته باشد.
GKE بالاترین نسخه از Kubernetes را ارائه میدهد و بیشتر روی خودکار کردن کارهای مدیریتی Kubernetes تمرکز دارد. GKE مانند سایر رقبای خود برای مدیریت دسترسی، امنیت و موارد دیگر در سایر سرویسهای Google Cloud ادغام میشود. این ویژگی همچنین ویژگیهای منحصر به فردی مانند ماشینهای مجازی قابل قبول را فراهم میکند که نمونههایی کم هزینه با طول عمر کوتاه و مناسب برای اجرای مشاغل دستهای هستند.

فاکتورهای و گزینههای زیادی برای اجرای Docker در ابر وجود دارد.
چه Docker را به صورت پیش فرض اجرا کنید و چه در فضای ابری و اینکه آیا یک فروشنده بزرگ ابر عمومی مانند AWS را انتخاب میکنید، راهحلهای بیشماری در دسترس وجود دارد.
سرویسهای مختلف کانتینری مسیرهای مختلفی را برای ساختن مکان مناسب برای اجرای کانتینرهای خود در ابر در پیش گرفتهاند. متمایز کننده اصلی، سطح اتوماسیون، سهولت استفاده و عمق ادغام با ابزارهای دیگر است. حتما یکی از موارد مناسب سازمان خود را بر اساس مکانی که امروز در آن هستید و چگونگی پیشرفت در آینده را انتخاب کنید.
با توجه به موضوع بکارگیری کانتینرها در دنیای فناوری اطلاعات و ارتباطات و جهت آشنایی بیشتر دانشجویان علاقهمند، دوران آکادمی با استفاده از برترین و مجربترین اساتید بینالمللی اقدام به برگزاری وبینار Container on Wheels نموده است. این وبینار به اهمیت به کارگیری Docker و Kubernetes در توسعه زیرساختهای نوین فناوری اطلاعات میپردازد.