برنامه نویسی

داستان طوفانی داکر: تغییر دریا در قلمرو محاسبات

آیا تا به حال با این مشکل مواجه شده اید که کد در این محیط کار می کند اما در محیط دیگر کار نمی کند؟ کدام کد در محیط توسعه دهنده کار می کند اما همان کد در محیط آزمایش یا تولید کار نمی کند؟

داکر ابزاری است که به توسعه دهندگان کمک می کند تا ظروف نرم افزاری سبک و قابل حمل بسازند که توسعه، آزمایش و استقرار برنامه را ساده می کند.

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

اساساً داکر این مشکل را حل می کند که یک برنامه در یک محیط کار می کند و در محیط دیگر کار نمی کند. قابل توجه است که Docker بسته بندی نرم افزار خود را برای توسعه دهندگان آسان تر از همیشه می کند “یک بار بسازید و هر جایی اجرا کنید.”

در چرخه عمر توسعه نرم افزار – SDLC(طرح، طراحی، توسعه، آزمایش/انتشار، استقرار و نگهداری)، داکر در مرحله استقرار وارد تصویر می شود.
این فرآیند استقرار برنامه ها را بسیار آسان و کارآمد می کند و بسیاری از مسائل مربوط به استقرار برنامه ها را حل می کند.

این پلت فرم کانتینر نرم افزاری پیشرو در جهان است. نرم افزاری که یک برنامه کاربردی از آن تشکیل شده است اجزای frontend، کارگران Backend، محیط پایگاه داده و وابستگی کتابخانه ها، و ما باید اطمینان حاصل کنیم که همه این مؤلفه ها روی همه پلتفرم های مختلف و گسترده کار می کنند.

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

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

گردش کار عمومی داکر

یک توسعه دهنده تمام وابستگی ها و الزامات برنامه را در فایلی به نام توصیف می کند dockerfile

این dockerfile مراحل ایجاد یک تصویر Docker را شرح می دهد. این مانند یک دستور غذا با تمام مواد و مراحل لازم در تهیه غذای شماست. شما تمام الزامات برنامه‌ها و وابستگی‌های آن را در تصویر خواهید داشت، و زمانی که تصویر را اجرا می‌کنید، یک ظرف داکر دریافت می‌کنید.

کانتینر داکر به طور خلاصه نمونه زمان اجرا است تصویر داکربا تمام وجودش کاربرد خواهد داشت
وابستگی ها

مطابق با هایکس در بحث PyCon، کانتینرها هستند،

“واحدهای مستقل نرم افزار را می توانید از یک سرور در آنجا به یک سرور در آنجا تحویل دهید، از لپ تاپ خود به EC2 به یک سرور غول پیکر فلزی برهنه، و به همین ترتیب اجرا می شود زیرا در سطح فرآیند ایزوله است. و سیستم فایل خود را دارد.

تصویر داکر را می توان در یک مخزن ابر آنلاین به نام داکر هاب ذخیره کرد. همچنین می توانید تصویر داکر خود را در مخزن یا سیستم کنترل نسخه خود ذخیره کنید. این تصاویر را می توان برای ایجاد ظروف در هر محیطی کشید

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

داستان طوفانی داکر تغییر دریا در قلمرو محاسبات

مجازی سازی در مقابل کانتینری سازی

که در مجازی سازی، یه نرم افزار هست به اسم هایپروایزر، برای ایجاد و اجرای ماشین های مجازی استفاده می شود. ما می توانیم چندین ماشین مجازی را روی یک سیستم عامل میزبان با استفاده از Hypervisor ایجاد کنیم.

VM (ماشین های مجازی) هسته سیستم عامل (سیستم عامل) خود را دارد و از آن استفاده نمی کند هسته سیستم عامل هاست، این منجر به سربار روی پلت فرم میزبان می شود. همچنین در مورد VM ها باید منابع ثابتی را به هر ماشین مجازی اختصاص دهیم
و بر اساس نیازهای برنامه تغییر نمی کنند که منجر به اتلاف زیادی در حافظه و فضا می شود.

که در کانتینرسازی، وجود دارد ظرف موتور و یک سیستم عامل (سیستم عامل). ما چندین کانتینر با برنامه ها و وابستگی های مربوطه داریم که از سیستم عامل (OS) میزبان استفاده می کنند. در اینجا منابع ثابت نیستند زیرا بر اساس نیازهای برنامه مصرف می شوند، بنابراین هزینه های سربار صفر، بسیار سبک و سریع هستند.

با این حال، نیاز به داشتن یک VM در سیستم عامل میزبان و سپس داشتن کانتینرها در زمان مشخصی از مواردی مانند نیاز به اجرای یک سیستم عامل ویندوز در سیستم عامل لینوکس. در چنین مواردی ابتدا باید یک ماشین مجازی داشته باشیم که سیستم عامل ویندوز ما را داشته باشد.

موتور کانتینر یک موتور داکر است.

داستان طوفانی داکر تغییر دریا در قلمرو محاسبات

معماری داکر

Docker یک روش جدید برای بسته بندی ابزارهای مورد نیاز برای ساخت و راه اندازی یک کانتینر به روشی ساده تر و ساده تر از آنچه قبلا ممکن بود است. این شامل Dockerfile، تصاویر کانتینر، ابزار اجرای Docker، Docker Hub، Docker Engine، Docker Compose و Docker Desktop است.

هسته داکر است موتور داکر. این فناوری زیربنایی مشتری-سرور است که کانتینرها را ایجاد و اجرا می کند.

داکر دارد یک معماری مشتری-سرور خط فرمان (CL) کلاینت است و داکر دیمون سروری است که حاوی کانتینرهای داکر است.

Docker Engine شامل یک دوره طولانی است اهریمن، دیو فرآیند نامیده می شود بارانداز برای مدیریت کانتینرها، APIهایی که به برنامه ها اجازه می دهد با داکر دایمون ارتباط برقرار کنند و یک رابط خط فرمان.

سرور docker دستورات را از مشتری docker در قالب درخواست(های) API دریافت می کند. تمام اجزای Docker Client و Docker Server را تشکیل می دهند موتور DOCKER. دیمون (سرور) دستورات را از سرویس گیرنده Docker دریافت می کند CLI یا REST API.

کلاینت داکر و دیمون می توانند در هاست (ماشین) یکسان یا میزبان های مختلف وجود داشته باشند.

1681586134 466 داستان طوفانی داکر تغییر دریا در قلمرو محاسبات

مزایای داکر

  • فقط یک بار اپلیکیشن بسازید

یک برنامه در داخل یک کانتینر می تواند روی هر سیستمی که Docker را نصب کرده است اجرا شود. بنابراین نیازی به ساخت و پیکربندی چندین بار اپلیکیشن در پلتفرم های مختلف نیست. از این رو، مشکل کارکرد کد روی یک سیستم و کار نکردن روی سیستم دیگر را حل می کند.

  • نگرانی کمتر

با Docker برنامه خود را در داخل یک کانتینر آزمایش می کنید و آن را در داخل یک کانتینر ارسال می کنید. این به این معنی است که محیطی که در آن آزمایش می‌کنید با محیطی که برنامه در آن اجرا می‌شود یکسان است. تصویر Docker را می‌توان کشید و در هر محیطی برای ایجاد یک محفظه که میزبان برنامه است استفاده کرد.

  • ارکستراسیون و مقیاس بندی را آسان کنید

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

  • قابل حمل بودن

کانتینرهای داکر می توانند روی هر پلتفرمی اجرا شوند. این می تواند بر روی سیستم محلی شما، Amazon ec2، Google Cloud Platform، سرور Rack-space، VirtualBox و غیره اجرا شود. کانتینری که روی AWS اجرا می شود به راحتی می تواند به VirtualBox منتقل شود.

  • کنترل نسخه

Docker نیز مانند Git دارای سیستم کنترل نسخه داخلی است. کانتینرهای Docker درست مانند مخازن GIT کار می کنند و به شما امکان می دهند تغییراتی را در تصاویر Docker خود اعمال کنید و آنها را کنترل کنید.

  • انزوا

با Docker هر برنامه ای به صورت مجزا در ظرف خودش کار می کند و با سایر برنامه های در حال اجرا در همان سیستم تداخلی ندارد. بنابراین چندین کانتینر می توانند در یک سیستم بدون تداخل اجرا شوند. برای حذف نیز می توانید به سادگی کانتینر را حذف کنید و هیچ فایل یا اثری در سیستم باقی نخواهد ماند.

  • بهره وری

Docker امکان استقرار سریعتر و کارآمدتر را بدون نگرانی در مورد اجرای برنامه خود بر روی پلتفرم های مختلف فراهم می کند. بهره وری را چندین برابر افزایش می دهد.

  • ترکیب پذیری

کانتینرهای Docker ساختن بلوک‌های ساختمان یک برنامه کاربردی را در یک واحد مدولار با قطعات به راحتی قابل تعویض برای توسعه‌دهندگان آسان‌تر می‌کند، که می‌تواند چرخه‌های توسعه، انتشار ویژگی‌ها و رفع اشکال را سرعت بخشد.

می توانید برای تمرین ثبت نام کنید.

نوشته های مشابه

دیدگاهتان را بنویسید

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

دکمه بازگشت به بالا