14 مهر 1398
در این نوشته قصد داریم شما را با داکر(Docker) و مزایای آن نسبت به روشهای سنتی آشنا نماییم.
کمی در مورد کانتینری کردن نرمافزارهایمان و توسعه سریع اپلیکیشن نیز صحبت میکنیم.
ابتدا برای توضیح داکر به سراغ کانتینرها میرویم.
به قول خود داکر(Docker)، کانتینر واحد استاندارد شدهای از نرمافزار است.
اکثر برنامههایی که توسعهدهندگان مینویسند بهگونهای است که از بخشهایی از سیستمعامل به عنوان کتابخانه برای اجرا کمک میگیرند.
چون در سیستمهای مختلف ممکن است کتابخانهها متفاوت باشند، این امر مشکلساز خواهد بود.
حتی ممکن است با نسخهای که در طی توسعه نرمافزار استفاده شده همخوانی نداشته باشند.
از طرفی گاهی نصب این کتابخانهها وقتگیر بوده و زمان زیادی برای اجرا روی دستگاههای دیگر یا سرور تلف میشود.
برای حل این مشکل، تمام کتابخانههای سیستمعامل که برای اجرای نرمافزار نیاز است با کد نرمافزار بستهبندی میشود.
این بسته در قالب یک تصویر(Image) ارائه میشود.
این تصویر توسط نرمافزارهای مربوط روی سیستم مقصد اجرا میشود و به این ترتیب کانتینر شکل میگیرد.
یکی از معروفترین نرمافزارهای اجرا کننده این کانتینرها، داکر(Docker) است.
برای مثال شما یک وبسایت با زبان Nodejs نوشتهاید که از نسخه ۱۰ آن استفاده میکند. همچنین داخل آن از bcrypt برای درهمریخته کردن و از Crypto برای رمزنگاری استفاده میکنید.
برای نصب bcrypt به کتابخانههای از زبان ++C / C و همیچنین کامپایلر آن نیاز دارید.
همچینین برای استفاده از crypto به کتابخانهای نظیر OpenSSL نیازمندید که ممکن است نسخه سازگار با این ابزارها روی سیستم مقصد نصب نشده باشد.
بنابراین در اجرای نرمافزار به مشکل برخورد خواهید کرد.
برای رفع این مشکل میتوانید بر پایه یک Image ساده از Nodejs نسخه ۱۰ یک تصویر از نرمافزار با کتابخانهها و ابزارهای لازم آماده کنید و در هر جا که بخواهید با داکر آنرا اجرا نمایید.
مزیت بعدی این است که میتوانید در مدت زمان خیلی کوتاه تعداد زیادی نمونه از نرمافزار خود را اجرا کنید و بتوانید بدون نگرانی در مورد توزیع بار ترافیکهای سنگین را پاسخگو باشید.
تمامی حقوق برای گیتی سرور محفوظ است.
عالی بود