مهندس دواپس یا توسعهدهنده، وظیفه دارد تا اتوماسیون زیرساخت و تمام جریانهای کاری IaaC با کیفیت بالا را ارائه دهید. خوشبختانه، ابزارهای بهرهوری بهعنوان بهترین دوستان یک مهندس دواپس میتوانند به ایجاد یک کد عالی کمک کنند.
این ابزارهای دواپس و رایگان میتوانند به صرفهجویی در وقت شما، برقراری ارتباط و همکاری در پروژهتان کمک کنند. بهطور خلاصه، آنها برای آزمایش آسان برنامهها با استفاده از زیرساختهای تکرارپذیر، همکاری و ارتباطات به شما کمک میکنند.
ابزارهای توسعه / بهره وری
در اینجا ما لیستی از ابزارهای توسعه را معرفی کردهایم که میتوانند بهرهوری یک توسعهدهنده را بهبود دهند. این ابزارها مدت زمانی زیادی است که وجود دارند و در بین توسعهدهندگان و علاقهمندان به دواپس شهرت زیادی دارند.
Vagrant
در میان ابزارهای دواپس، ابزار Vagrant به طور گستردهای برای توسعه و تست استفاده میشود. این ابزار قابلیت ایجاد محیطهای توسعه یا شبیهسازی محیط تولید را دارد.
با استفاده از Vagrant، توسعهدهندگان میتوانند ماشینهای مجازی را با وارد کردن بستهها (قالبهای ماشین مجازی) از Vagrant Cloud، تنظیمات ماشین مجازی (مانند شبکه، ذخیرهسازی و غیره) و اجرای ابزارهای پیکربندی مانند Puppet یا Chef را راهاندازی کنند.
بهترین ویژگی Vagrant این است که بسیاری از پکیجهای نرمافزاری با باکسهای Vagrant همراه هستند. به عنوان مثال، اگر میخواهید بر روی یک پکیج LAMP توسعه دهید، میتوانید در Vagrant Cloud به دنبال یک باکس LAMP بگردید. این باکسها توسط کامیونیتی با نسخههای مختلف LAMP توسعه داده شدهاند. با استفاده از این باکسها، میتوانید زمان خود را در تنظیم دستی برنامهها صرفهجویی کنید.
Vagrant به شما اجازه میدهد محیطهای سندباکس را بدون بههم ریختن تنظیمات ورکاستیشن خود اجرا کنید. بهعنوان مثال، اگر شما محیطهای توسعه پایتون 2 و 3 را میخواهید، میتوانید دو باکس vagrant در حال اجرا پایتون 2 و 3 را داشته باشید.
همچنین، میتوانید chef cookbook، ماژولهای puppet یا Ansible playbooks را نیز داشته باشید که میتوانند در فایل پیکربندی vagrant استفاده شوند، که پیکربندی را با استفاده از یک cookbook، ماژول یا کتاب بازی خودکارسازی میکند.
موارد استفاده از Vagrant برای محیطهای توسعه قابل تکرار: میتوانید یک فایل Vagrant را با سایر توسعهدهندگان به اشتراک بگذارید تا ماشین مجازی مشابهی با کامپیوتر شخصی شما راهاندازی کند.
موارد استفاده از Vagrant
برای محیطهای توسعه قابل تکرار: میتوانید یک فایل Vagrant را با توسعهدهندگان دیگر که ماشین مجازی مشابه ماشین مجازی شما دارند را به اشتراک بگذارید. این کار از تغییر پیکربندی بین ایستگاه کاری توسعه دهنده جلوگیری میکند.
تست بار / شبیه سازی محیط تولید: باکسهای vagrant را میتوانید در عرض چند ثانیه آماده یا برای ارزیابی عملکرد عمیقا بررسی کنید. همچنین، میتوانید با شبکهسازی باکسهای vagrant محیطی مشابه محیط تولید داشته باشید.
Docker
اگر یک توسعه دهنده حرفهای هستید قطعا این ابزار یکی از ابزارهای مورد علاقهتان محسوب میشود. . داکر یکی از ابزارهای دواپس متنباز است که به توسعهدهندگان اجازه میدهد برنامههایی را در کانتینر لینوکس ایجاد و مدیریت کنند.
Docker Hub یک ریپازیتوری آنلاین برای ایمیجهای داکر است و به شما امکان میدهد تصاویر ازپیشساخته را با بیشتر استکهای برنامه دانلود کنید. توسعهدهندگان به ایجاد یک ماشین مجازی یا دستکاری تنظیمات موجود در ورکاستیشنشان نیازی ندارند؛ آنها به آسانی میتوانند با استفاده از ایمیجهای داکر، کار بر روی برنامهها را شروع کنند. بهترین بخش در مورد داکر این است که با استفاده از آن راهاندازی یک کانتینر در کمتر از یک ثانیه امکانپذیر است.
یک افزودنی به داکر، Kinematic است. Kinematic می تواند موتور Docker را بر روی سیستم شما نصب کند. این کار، ماشین Docker Virtual box backend، و سایر اجزای Docker را خودکارسازی میکند.
داکر دارای یک رابط کاربری گرافیکی عالی برای مدیریت کانتینرها است. سایر ویژگی های Kinematic شامل توانایی جستجوی تصاویر، تغییر بین CLI و GUI، مدیریت پورتها، پیکربندی متغیرهای محیطی، لاگها و غیره است. Docker یک ابزار مناسب برای ایجاد یک محیط ایزوله است.
همچنین، اگر به GUI نیازی ندارید، میتوانید کانتینرها را روی یک باکس vagrant آماده کنید.
Packer
اگر شما با ماشینهای مجازی کلود کار میکنید، Packer از جمله ابزارهای دواپس مفید برای شما بهحساب میآید. این ابزار فرایند ایجاد ایمیج را برای ارائهدهنده فضای ابری شما خودکار میکند. همچنین، پیکربندیهایی که شما در Packer مینویسید، با معماری cloud-agnostic سازگار است.
میتوانید یک پیکربندی packer برای ایجاد یک ایمیج با یک پشته برنامه خاص ایجاد کنید و از چندین ارائهدهنده فضای ابری استفاده کنید.
همچنین، میتوانید از تامینکنندگان (Shell ،Ansible ،Chef و غیره) برای خودکارسازی پیکربندی برنامه در ایمیجهای ماشین مجازی استفاده کنید.
ابزارهای CI یا Continuos Integration
ادغام مداوم دیگر فرایندی نیست که توسعهدهنده آن را دنبال کند. وقتی صحبت از دواپس میشود، حتی کدهای زیرساختی باید از شیوههای CI پیروی کند. در اینجا، قصد داریم تا به برخی از راهحلهای متنباز برای تمام نیازهای CI شما نگاهی داشته باشیم.
Jenkins
Jenkins یک ابزار متن باز Continuos Integration است که بهطور گسترده توسط کامیونیتی عظیمی از حامیان آن مورد استفاده قرار میگیرد. کافیست این ابزار را نصب کنید و از آن برای کار با جاوا یا پروژههای دات نت (Net.) استفاده کنید. ایمیجهای داکر برای اکثر نسخههای Jenkins در دسترس هستند.
Github Actions
اگر کد خود را در گیت هاب قرار دادهاید، میتوانید از Github Actions برای نیازهای CI خود استفاده کنید. همچنین میتوانید جریانهای کاری کاملا تعریفشده را برای خودکارسازی فرایند ساخت و انتشار ایجاد کنید. اما توانمندیها برای ادغام با ابزارهای ابری و منبع باز فراتر از این موارد است.
Travis CI
Travis CI یک پلتفرم ادغام مداوم مبتنیبر فضای ابری است. از Travis CI میتوانید برای پروژههای متن باز خود استفاده کنید. این ابزار کاملا رایگان است و در صورت استفاده از این سرویس نیازی به راهاندازی CI بر روی سرویس میزبانی خودتان ندارید.
سیستمهای کنترل ورژن
یکی از بهترین روشهای کنترل ورژن این است که یک فایل جاوا اسکریپت را به سیستم کنترل ورژن Push کنید. بهعنوان یک مهندس دواپس، باید از بهترین شیوههای توسعه پیروی کنید و برای همه کدهایی که مینویسید از سیستمهای کنترل ورژن و از یک سرور مجازی برای راهاندازی سرور گیت برای توسعه یکپارچه برنامهها استفاده کنید استفاده کنید.
گیتهاب
یک ابزار توسعه دواپس بدون گیت هاب ناقص است. این برنامه کنترل نسخه، ویژگیهای SCM و عملکردهای مشترک مانند ردیابی و شناسایی باگها، مدیریت وظایف و بسیاری موارد دیگر را ارائه میدهد. همچنین، این ابزار قابلیتهای رایج مورد استفاده در شبکههای اجتماعی مانند فالوورها و فید را ارائه میدهد.
توسعهدهندگان میتوانند به مخازن و ریپازیتوریهای عمومی دسترسی داشته باشند و کد منبع خود را به این رزپازیتوریها ارسال کنند. همچنین، با توجه به اینکه گیت هاب بزرگترین مخزن کد در جهان است، مدیریت درخواست های pull و ردیابی مشکلات بسیار آسان است.
Bitbucket
بی تردید بیت باکت یکی از سیستم های قدرتمند مدیریت نسخه مشارکتی (collaborative) است که از دو فناوری قدرتمند Mercurial و Git استفاده میکند. توسعه دهندگان با استفاده از بیت باکت به امکاناتی مانند موارد زیر دسترسی خواهند داشت:
- ریپازیتوریهای خصوصی رایگان نامحدود: این ویژگی بیت باکت را به گزینهای بسیار جذاب برای پروژههای شخصی و کوچک تبدیل میکند.
- مدیریت و اشتراک گذاری ریپازیتوریها: ایجاد، مدیریت و به اشتراک گذاری ریپازیتوریهای کد با سایر توسعه دهندگان به سادگی امکان پذیر است.
- همکاری در توسعه کد: ویژگیهایی مانند بررسی کد (code review)، ردیابی و مدیریت وظایف و صحبت به صورت بلادرنگ، همکاری بر روی کد را به راحتی تسهیل میکنند.
- یکپارچه سازی با JIRA: ادغام این ابزار با جیرا، یکی از محبوبترین ابزارهای مدیریت پروژه، به تیمهای توسعه امکان میدهد تا مدیریت کد و مدیریت پروژه را به صورت یکپارچه انجام دهند.
در مجموع، بیت باکت با ارائه طیف گستردهای از ویژگیها، گزینه ای عالی برای توسعه دهندگان و تیم های نرم افزاری است که به دنبال راه حلی قدرتمند، انعطاف پذیر و رایگان برای مدیریت پروژه های خود هستند.
Gitlab
اگر به دنبال راهاندازی پلتفرمی مشابه گیتهاب برای خودتان هستید، GitLab را امتحان کنید! پس از راهاندازی گیت لب، میتوانید کد برنامه خود را به راحتی و مدیریت شده در آن میزبانی کنید. اگر پیکربندی نرمافزار را دوست ندارید، میتوانید از داکر ایمیج گیتلب استفاده کنید که تنها با یک خط کد راهاندازی میشود. GitLab چه برای تازهکارها و چه برای توسعهدهندگان حرفهای، گزینه قدرتمندی برای کنترل کد و پروژههاست. برای کسب اطلاعات بیشتر و شروع به کار به وبسایت GitLab مراجعه کنید.
خدمات ابری
این روزها دیگر کاربران تنها پشت میزهای خود کار نمیکنند. گاهی اوقات، به محیط های کاری موقت نیاز داریم که بتوانیم در صورت نیاز آنها را به صورت فوری راه اندازی کرده و استفاده کنیم و هنگامی که به آن ها نیازی نداریم، به راحتی آنها را متوقف کنیم کنیم. اینجاست که فناوری ابر اهمیت پیدا میکند.
AWS
آمازون وب سرویس (AWS) راه حلی قدرتمند با ماشین های مجازی و خدمات متعدد دیگری را برای توسعه وب سایت یا برنامه های شما ارائه میدهد. AWS را میتوان پدربزرگ رایانش ابری در نظر گرفت.
AWS یک برنامه ضروری برای توسعه دهندگانی است که به دنبال زیرساخت قوی و راه حل های میزبانی مقرون به صرفه هستند.
اگر با یک حساب کاربری AWS ثبت نام کنید، یک پلن سطح رایگان در اختیار شما قرار خواهد گرفت و میتوانید خدمات آنها را به صورت رایگان استفاده کنید.
ابزارهای همکاری/ ارتباطی
Slack
اسلک ابزاری عالی برای ارتباطات آنلاین است. این نرم افزار با لیست بلندبالایی از برنامه ها مانند Google Calendar، اسکایپ، ترلو ، گیت هاب ، جیرا و بسیاری موارد دیگر ادغام شده است. اگر به دنبال ابزاری برای طوفان فکری، برقراری ارتباط و همکاری موثر هستید، اسلک همان ابزار مناسب شماست!
پلتفرمها:
- برنامه وب
- برنامه های دسکتاپ – مک، ویندوز و لینوکس
- برنامه های موبایل – iOS، اندروید و ویندوز فون
Trello
ترلو یک ابزار مدیریت پروژه بصری و بسیار کاربرپسند است که به سازماندهی پروژهها در بردهایی (Board) کاربردی و منظم کمک میکند. این ابزار تقریباً هر ویژگی مورد نیاز برای سازماندهی مؤثر کارهایتان را در اختیار شما قرار میدهد. کارمندان در حین انجام کار و به صورت بلادرنگ میتوانند با یکدیگر ارتباط داشته باشند. این نرم افزار بر اساس چارچوبهای Kanban عمل میکند و رابط کاربری و چیدمانی مشابه وایتبرد دارد که در آن میتوانید به شیوهای سرگرمکننده لیست کارها و ایدههای خود را منتشر کنید. برخی از ابزارهای دیگر که ترلو را به ابزاری محبوب تبدیل کردهاند عبارتند از:
- فضای کاری (Workspace)
- بردها (Boards)
- لیستها (Lists)
- لیبلها (Labels)
- پیوست و کامنت (Attachment و Comment)
پلتفرمها:
- اپلیکیشن تحت وب
- برنامههای موبایل – iOS و اندروید
Asana
Asana یکی از بهترین ابزارهای دواپس است که میتواند به شما در ارتباط با همکارانتان کمک کند.این برنامه یک سیستم مدیریت پروژه هوشمند، یکپارچه و انعطاف پذیر ارائه می دهد. با Asana می توانید به صورت بلادرنگ و در لحظه با هم همکاری و ارتباط داشته باشید. همچنین به شما امکان میدهد وظایف یا کارهای انجام شده را از طریق ایمیل مدیریت کنید. نظرات یا یادداشت ها نیز میتوانند برای برقراری ارتباط مستقیم در Asana و کامل کردن اطلاعات پروژه اضافه شوند. شما میتوانید پروژه های جداگانه ایجاد کنید و در داخل هر پروژه، وظایف مختلفی تعریف کنید. خلاصه اینکه، Asana ابزاری عالی برای مدیریت پروژه است. سایر ویژگی های کلیدی آسانا عبارتند از:
- فضای کاری (Workspace)
- پروژه ها (Projects)
- برچسب ها (Tags)
- صندوق ورودی (Inbox)
پلتفرمها:
- برنامه موبایل – iOS و اندروید
- برنامه وب