5 دلیل برای اینکه توسعه‌دهندگان عاشق کانتینرها (Container) هستند

5 دلیل برای اینکه توسعه‌دهندگان عاشق کانتینرها (Container) هستند

توسعه دهندگان به عنوان یک نیروی محرک بدنبال پذیرش فناوری کانتینر بخصوص Docker (نوعی از کانتینرها) هستند. ولی چرا؟

کانتینر­های لینوکس تقریبا یک دهه است که اطراف ما بوده ­اند اما با انتشار کانتینر Docker طی چهار سال اخیر تعداد زیادی از توسعه­ دهندگان شروع به پذیرش این تکنولوژی کردند. اکنون آنچه به نظر می­‌رسد این است که کانتینر­ها در همه­ جا حضور خود را اثبات کرده و محبوبیت آن‌ها رو به افزایش است.

امروزه کانتینر­ها بخش مهمی از حوزه IT  را به خود اختصاص داده­ اند به گونه ­ای که شرکت­­ها و غول­‌های بزرگ نرم ­افزاری چون VMware و Microsoft مجبور شده‌اند از مسیر همیشگی خود خارج شده و خود را با آن هماهنگ کنند. امروزه VMware روشی برای استقرار، اجرا و مدیریت کانتینر­ها از داخل سیستم مدیریت مجازی ­سازی خود یا vSphere virtualization infrastructure management system،  پیشنهاد کرده در حالی که Microsoft -که سیستم مجازی ­سازی خود را داخل محصول ویندوز سرور خود پیاده­ سازی کرده است – همکاری خود را با Docker برای ساخت کانتینرهای ویندوز سرور و پشتیبانی از کانتینرسازی (Containerization) آغاز کرده و این ویژگی­ ها به هسته ویندوز ۱۰ اضافه شده است.

تمام این­ها بدلیل آن است که ماشین­های مجازی قرار است به عنوان یک تکنولوژی برای سازمان­های چابک مورد استفاده قرار گیرد. امروزه تعداد زیادی از این سازمان ها براین باورند که باید استراتژی­های مربوط به مجازی­ سازی خود را مورد بازبینی قرار داده و بدنبال کانتینر­ها برای اضافه­ کردن یا جایگزینی آن بجای VM های خود هستند.

توسعه­ دهندگان در صندلی راننده

اگر جمعیتی از متخصصان حوزه IT وجودداشته باشند که علاقه­ مند به کانتینر ها بخصوص Docker باشند، ثابت شده است که به شکل خاصی این گروه،  توسعه‌­دهندگان نرم­ افزار هستند. دلایل مختلفی برای این حرف وجود دارد که می­توان مواردی از آن را نام برد:

  • سادگی در نصب و اجرای Docker
  • قابلیت­‌های خودکارسازی وظایف رایج
  • مفید بودن در مستندسازی و قطعه­ های کد
  • و… شاید این حقیقت که Docker متن­ باز است

تقریبا به طورمشخص ثابت شده است که این عوامل و چندی دیگر با هم ترکیب شده و کمک کرده­ اند به این حقیقت که Docker بسیار در نظر توسعه­ دهندگان محبوب است.

اما انتهای کار اینجا نیست. در اینجا پنج دلیل دیگر برای اینکه چرا توسعه­ دهندگان عاشق Docker هستند را مطرح میکنیم:

  1. گرایش به سمت میکروسرویس‌ها (microservices)

امروزه گرایشی دور از کاربرد­های یکپارچه، به سمت معماری میکروسرویس‌ها با کاربرد­هایی ایجاد شده از مولفه­ های مستقل بوجود آمده است. در بسیاری از موارد این مولفه­ ها گزینه­ های خوبی برای containerization هستند. “توسعه­ دهندگان کانتینر­ها را دوست دارند چراکه به کمک آنها راحت­‌تر می‌­توانند به سمت معماری میکروسرویس‌ها حرکت کرده درنتیجه اصطکاک کمتری را متحمل میشوند” گفته Dave Bartoletti تحلیلگر Forrester Research

در حقیقت، ارتباط بین کانتینرها و معماری ­ میکروسرویس‌ها پیچیده است چراکه این دو مستقل از یکدیگرند و به گفته Al Gillen، محقق توسعه­ دهنده نرم ­افزار در firm IDC “کانتینرها این توانایی را به شما می‌دهند که میکروسرویس‌ها به انجام برسانید و میکروسرویس‌ها به خوبی با کانتینرها کار می‌کنند”. به عبارت دیگر توسعه­ دهندگان کانتینرها را دوست دارند چون آنها برای ایجاد میکروسرویس‌ها مناسب و راحت هستند و مهم‌تر از آن اینکه کانتینرها پیاده­ سازی میکروسرویس‌ها را تسهیل می­ بخشند. درست همانند وضعیتی که مرغ و تخم­ مرغ نسبت به یکدیگر دارند.

  1. افزایش DevOps یا (a clipped compound of “software DEVelopment” and “information technology OPerationS”)

دلیل دیگری برای علاقه به میکروسرویس‌ها وجود دارد. Gillen می­گوید: “اگر شما ­ microservices  بسازید و یا یک برنامه جزئی با بخش­‌های منطقی کوچکی ایجاد کنید که از طریق واسط کاربری با آن بتوان تعامل کرد، این کار بهتر از آن است که به سمت DevOps حرکت کنید”

شما می­توانید بحث کنید که بیشتر توسعه­ دهندگان مراقب نوشتن کد­های خود هستند اما نیازی نیست که در مورد اینکه برنامه­ هایشان چگونه پیاده­ سازی می­شود، نگران باشند اما واقعیت این است که فرایند DevOps درحال رایج­ تر شدن است و containerization  توسعه آنها را ساده­ تر کرده است. این به این دلیل است که کانتینرها در هر محیطی اجرا خواهند شد -از یک لپ­تاپ گرفته تا یک دیتا­سنتر و یا حتی فضای ابری- و DevOps tasks می­توانند با استفاده از Docker خودکار شوند. “شما به یقین می­توانید بدون کانتینرها DevOps باشید ولی این کجا و آن کجا” گفته Bartoletti. “اگر شما خواهان DevOps هستید، راحت­ تر آن است که بر روی زیرساخت­ های کانتینرها(container infrastructures) کار کنید”

  1. تنبلی توسعه دهنده

Larry Wall، نویسنده اصلی زبان برنامه­ نویسی پرل، دارای ویژگی بارزی بنام تنبلی بود. این ویژگی یکی از سه ویژگی مهم برنامه‌‎نویسان بزرگ است .(ذکر دو مورد دیگر شاید تعجب برانگیز باشد، بی­ تابی و بی­ صبری)

تنبلی در این مفهوم یعنی استفاده از ابزار­های صرفه­ جویی در کار و اتوماسیون در هرزمان ممکن است و کانتینرها این نوع تنبلی را به شکلی آسان فراهم می­ آورند. “قبل از آنکه توسعه­ دهندگان بخواهند کدهایشان را بنویسند و آنها را برای بررسی صحت، به محیط آزمایش ارسال کنند، این کار عملی نیست. درنتیجه متوجه می­شوند که تغییراتی در محیط لینوکس که خود ایجاد کرده­‌اند، بوده است، درنهایت محیط آزمایش باید پیکربندی مجدد شود. اما با کانتینرسازی کردن کدها آنها می­توانند کار خود را بدون نیاز به هرگونه تغییراتی به محیط تست بفرستند” Bartoletti.

درکنار این صحبت­ ها Docker  با پیشنهاد کردن مجموعه ه­ای مفید از ابزارهایی که بسیاری از وظایف و کارهای کسل­ کننده و بیهوده مربوط با تولید برنامه و فرآیند استقرار را به صورت خودکار انجام می‌دهند، کار را برای توسعه­ دهندگان آسان کرده و زمینه تنبلی آنان را فراهم می‌کند. یکی از این ابزارها setting up Docker است که ماشین Docker اجازه می دهد، توسعه­ دهندگان،  Docker را در فضای ابری به کمک یک دستور میزان چرخش آن را افزایش دهند.

  1. جاذبه ابزارهای متن­ باز

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

علاوه بر اینها تعداد زیادی از توسعه­ دهندگان نسبت به استفاده از یک پلتفرم مربوط به یک شرکت خاص بی­ میل هستند و Docker هم بخشی از یک اکوسیستم متن­ باز است که به عنوان مثال شامل Docker’s Swarm orchestration system میشود، هم‌چنین شامل سیستم هماهنگ‌کننده جایگزین (alternative orchestration system) مانند Google’s Kubernetes هم می‌شود و به دلیل متن­ باز بودن آن توسعه­ دهندگان آزاد هستند تا سیستم هماهنگ‌کننده (orchestration system) دلخواه خود را بنویسند.

از زمانی که سیستم کانتینرها مانند Docker به عنوان پایه­ ای اساسی برای زیرساخت سازمان‌های IT شده است، این حقیقت که چنین ابزاری متن­ باز است و به شدت هنگام عیب‌­یابی و بهینه­ سازی مفید واقع می‌شود، به اثبات می‌رسد. وقتی هم که مشکلات یا رفتار غیرمنتظره­ای رخ می‌دهد، به خاطر اینکه توسعه­ دهندگان با جعبه‌های سیاه (black boxes) کار نمی­کنند می­‌توانند با بررسی کد منبع Docker، عیوب را شناسایی کرده و به راحتی با آنها کار کنند.

  1. افزایش چشم­اندازهای مسیر توسعه

دلیل آخر برای محبوبیت کانتینرها (بخصوص Docker) جدید بودن آن‌ها می‌باشد.  “توسعه­ دهندگان عموما خواهان این هستند که جدیدترین و به روزترین ابزارها را در دست­ گیرند و این بخاطر این است که می‌­خواهند در مسیر خود سرمایه­ گذاری کنند. شما نمی‌­خواهید چنین مورد بیهوده‌­ای در رزومه کاری خود داشته باشید که بگویید من پنجاه سال تجربه COBOL دارم اما اگر شما بتوانید بگویید که کار خود را به کمک تکنیک­ های پیاده ­سازی و توسعه­ ی چابک، ارتقا داده‌­اید و با Docker  رابطه­ ی خوبی برقرار کرده‌­اید، این برای شما خوب به نظر می‌رسد”.

منبع:NetworkWorld.com

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *