داکر برای کارشناسان مجازی سازی

سرور فیزیکی برای Docker استفاده کنم یا سرور مجازی؟


در مقاله قبل درباره پیاده سازی Container با ماشین مجازی صحبت کردم بنابراین ماشین های مجازی میزبان هایی عالی برای مجازی سازی داکر هستند اما اغلب سازمان ها در فکر راه اندازی آن روی سرور فیزیکی هستند. اما چرا؟!!!
زمانی که کاربران سوال زیر رو از متخصصین داکر می پرسن ، معمولا چنین بحث و گفتگویی شکل میگیره:

کاربر:از سرور فیزیکی برای پیاده سازی Docker استفاده کنم یا سرور مجازی؟
متخصص داکر:جذابیت استفاده از Docker رو میشه این مورد دونست: "تصمیم برای استفاده داکر در هر زیرساختی مثل سرور فیزیکی، مجازی ،ابری یا حتی ترکیبی از همه موارد تنها به هدف و نیاز کسب و کار شما بستگی داره(البته مرتب هم میتونه تغییر کنه)
کاربر: اما مطمئنا شما توصیه ای دارید!!!
متخصص داکر: من به شما پاسخ دو کلمه ای میدم که کسی این پاسخو دوست نداره : "بستگی داره"
کاربر: شما درست می فرمایید بله اصلا پاسخ جالبی نیست.
متخصص داکر:بله متوجه شدم که این پاسخ جالبی نبود اما برای Docker واقعا پاسخی دقیق و درست بود.

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

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

Latency(تاخیر): برنامه هایی که به تاخیر حساس هستند بهتر روی سرور فیزیکی ایفای نقش می کنند. حساس بودن به تاخیر در سرویس های مالی بسیار مشاهده می شود( مثل برنامه هایی مربوط به معاملات تجاری و ...).

Capacity(ظرفیت):ماشین های مجازی جهت استفاده مناسب از ظرفیت بهینه شده اند.اگر برنامه مبتنی بر کانتینر شما ، تمام ظرفیت زیرساخت فیزیکی مجازی سازی رو اشغال نکنه ، مجازی سازی هنوز میتونه مفید باشه.

Mixed Workloads: روی سرور فیزیکی تنها می توانید یک سیستم عامل اجرا کنید، بنابراین، اگر بخواهید از ترکیب کانتینر های ویندوزی و لینوکسی استفاده کنید، می بایست از مجازی سازی استفاده کنید.

Disaster Recovery (بازیابی فاجعه): همانند بهینه سازی ظرفیت، یکی از مزایای عالی VM ها قابلیت های پیشرفته در حوزه بازیابی اطلاعات(site recovery) و در دسترس بودن بالای سیستم ها(High Availablity)است.
در حالی که این قابلیت ها ممکن است در میزبان های فیزیکی وجود داشته باشند اما انتخاب های بیشتری از طریق مجازی سازی خواهید داشت.

Existing Investments and Automation Frameworks (سرمایه گذاری های موجود و چارچوب اتوماسیون): بسیاری از سازمان ها خدمات شبکه در حال حاضر مجموعه وسیعی از ابزارها را در زمینه هایی مانند پیاده سازی زیرساخت
ایجاد کرده اند بنابریان باید بتوان از زیرساخت و سرمایه گذاری موجود در حوزه های جدید استفاده نمود.

Multitenancy:برخی از مشتریان دارای حجم کاری خاصی هستند و نمی توانند هسته های لینوکسی و ویندوزی(Kernels) را به اشتراک بگذارند. در این مورد VM ها لایه ای اضافی برای ایزوله سازی علاوه بر Container ها ایجاد می کنند.

Resource Pools / Quotas: بسیاری از راه حل های مجازی سازی مجموعه ای از ویژگی های گسترده ای برای کنترل اینکه چگونه ماشین های مجازی از منابع استفاده کنند را ارائه می دهند.
Docker نیز مفهوم محدودیت منابع را فراهم می کند، اما برای سرور فیزیکی مدیریت منابع به شما بستگی دارد.

Automation / API (اتوماسیون و واسط های برنامه نویسی): تعداد بسیار کمی از افراد در یک سازمان به طور معمول توانایی پیاده سازی با API روی سرور فیزیکی را دارند. اگر هدف اتوماسیون است، شما به API نیاز خواهید داشت، که این معیار را سرور های فیزیکی ندارند.

Licensing Costs (هزینه های صدور مجوز): اجرا بدون واسط روی سرور فیزیکی به خودی خود هزینه ها را کاهش می دهد، زیرا مجبور نیستید License های Hypervisor را خریداری کنید
و حتی نیازی به پرداخت هزینه برای سیستم عامل های مختلف جهت میزبانی داکر نخواهید داشت و تنها از یک سیستم عامل استفاده خواهید کرد(آن هم می تواند متن باز باشد)

نکته آخر ، سهولت در تصمیم گیری درباره ی مکان اجرای برنامه مبتنی بر کانتینر ، کاملا وابسته خدمات شبکه به مزایاییست که آن زیرساخت برای کسب و کارتان در زمان حال و آینده خواهد داشت پس نمی بایست
این سوال «سرور فیزیکی یا مجازی؟» مد نظر باشد - سوال مناسب این است که کدام زیرساخت بیشترین مزایا را برای برنامه و اهداف و نیاز های کسب و کار من خواهد داشت. بنابراین شما می توانید
تمامی راه حل های مبتنی بر داکر را با هم ترکیب نموده تا به آسانی و با سرعت بالا تغییرات احتمالی حال و آینده را مدیریت کنید.

نویسنده : محمد فعال فرد
منبع : انجمن تخصصی فناوری اطلاعات ایران