در عصری که اکثر مشاغل و خدمات از Cloud برای ارائه خدمات به مشتریان استفاده می کنند، جای تعجب نیست که تقاضا برای مهندسان دواپس بیش از هر زمان دیگری باشد. مسئولیتهای یک مهندس دواپس از راهاندازی زیرساختها در فضای ابری تا اتوماسیون فرآیندها گسترده است و حوزههای زیادی برای پوشش دادن دارند. شاید به تازگی کار خود را به عنوان مهندس دواپس شروع کرده اید یا شاید قبلاً تجربه داشته باشید اما بخواهید عمیق تر مهارت های خود را بهبود بخشید.
در این مقاله، ما ۷ مهارت ضروری را که برای تبدیل شدن به یک مهندس دواپس در سال ۲۰۲۴ نیاز دارید را مرور خواهیم کرد. برای تمرکز بر یادگیری ما شما را با صدها مسیر مختلف بمباران نمی کنیم، بلکه فقط آنچه باید روی آن تمرکز کنید به شما می دهیم.
مسیر
مهندس دواپس بودن نیاز به مهارت در بسیاری از ابزارهای مختلف دارد. بیایید هر یک از 7 دسته اصلی را که هر مهندس دواپس باید در آن مهارت داشته باشد مرور کنیم.
- سیستم عامل لینوکس
اولین در لیست ما، سیستم عامل لینوکس خواهد بود. اکثر سرورها چه در فضای ابری و چه bare، از توزیعهای لینوکس استفاده میکنند. از شرکتهای برتر گرفته تا دستگاههای تلفن همراه، لینوکس سیستم عامل مورد استفاده برای میزبانی سرورهای محصولات بوده است. دلیلش هم ساده است. رایگان است، community بزرگی دارد، و ثبات و امنیت آن تا به امروز بسیار بالاتر از هر سیستم عامل دیگری است.
موضوعات اصلی که باید یاد بگیرید:
- Bash scripting
- Cronjobs or Crontab (Task scheduler)
- Networking (Firewall and connectivity)
- Basic file system and navigation
- File and content search
- SSH and storage
اگر چیزی درباره برخی از این موارد نمیدانید، اشکالی ندارد! هر چیزی که در این لحظه نا آشناست قطعاً قابل یادگیری است.
اگر تازه کار هستید و میخواهید با یادگیری سیستم عامل لینوکس شروع کنید، دوره Introduction to Linux در edX یک دوره مبتدی عالی و رایگان دارد، اصول اولیه لینوکس را پوشش میدهد و دارای آزمایشگاههایی است که میتوانید از مرورگر خود به آنها دسترسی داشته باشید که به شما امکان میدهد به سرعت یاد بگیرید. اگر باتجربه هستید و میخواهید مهارتهای خود را در این موضوع بهبود بخشید یا تأیید کنید، میتوانید گواهی Linux Foundation Certified System Administrator Certification را دریافت کنید.
این گواهینامه در سطح جهانی به رسمیت شناخته شده است و افزودنی عالی برای حرفه شما به عنوان یک مهندس DevOps خواهد بود.
- زبان برنامه نویسی
بخشی از وظیفه شما به عنوان یک مهندس دواپس ایجاد تعداد زیادی اسکریپت مختلف است. این می تواند از نظارت ساده یا گزارش برنامه های کاربردی وب گرفته تا CronJobs و حتی به اندازه خودکارسازی زیرساخت سرور شما پیشرفته باشد. به همین دلیل است که یادگیری یک زبان برنامه نویسی نه تنها در دواپس مفید است، بلکه ضروری است. در انجمن دواپس، دو زبان برنامه نویسی Go و Python در بالای لیست قرار دارند.
Golang یا Go یک زبان برنامه نویسی منبع باز است که توسط Google پشتیبانی می شود. نحو آن ساده و تمیز است که یادگیری آن را برای مبتدیان آسان تر می کند. یکی از عملکردهای اصلی Go، همزمانی و جمعآوری خودکار زباله است. همزمانی توانایی پردازش خطوط کد به صورت موازی و به صورت چند رشته ای است. اما پایتون از طریق استفاده از کتابخانه های دیگر قادر به دستیابی به همزمانی است.
Go به طور بومی به همزمانی دست می یابد و آن را سریعتر می کند و جمع آوری زباله خودکار وزن و پایداری را تضمین می کند. دلیل دیگری که ممکن است بخواهید زبان Go را یاد بگیرید این است که ابزارهای مختلفی که در دواپس استفاده میشوند معمولاً با Go نوشته میشوند و داشتن توانایی درک نحوه عملکرد این ابزارها به شما امکان عیبیابی سریعتر را میدهد.
پایتون سالهاست که وجود دارد و یکی از همه کارهترین زبانها تا به امروز است. یادگیری آن به دلیل نحو آن آسان است و کارهای زیادی می توانید با آن انجام دهید. در اینجا خلاصه ای از کارهایی که می توانید با پایتون انجام دهید آورده شده است:
- Web Development
- Scripting
- Software automation and testing
- Machine Learning
- Data analytics
البته نیازی به یادگیری همه اینها نیست. چیزی که به عنوان یک مهندس دواپس باید روی آن تمرکز کنید، اسکریپتنویسی، اتوماسیون نرمافزار و آزمایش، و در نهایت توسعه وب است. اینها حوزههایی هستند که دواپس بیشتر با آنها سر و کار دارد زیرا مهندسان دواپس بیشتر بر روی زیرساخت تمرکز می کنند تا خود برنامه.
برای اینکه بتوانید با یادگیری پایتون شروع به کار کنید، لازم نیست مهندس نرم افزار باشید. دریافت گواهینامه در پایتون الزامی نیست، اما قطعاً شما را بسیار جلو می برد و فرصت هایی را در حرفه DevOps شما باز می کند. نه تنها پروفایل شما تأثیر چشمگیرتری بر استخدامکنندگان خواهد داشت. همچنین، مهارتهای پایتون شما مطابق با استانداردهای جهانی که توسط موسسه پایتون تنظیم شده است تایید میشود.
یادگیری هر دوی این زبان های برنامه نویسی مفید خواهد بود، اگر مطمئن نیستید کدام یک را اول شروع کنید، نگران نباشید! میتوانید یک دوره کوتاه رایگان از هر کدام رو مشاهده کنید تا ببینید بیشتر با کدام راحت تر هستید. قطعا در آینده مسیر را خواهید فهمید!!!
- GIT Versioning
GIT یک نرم افزار کنترل نسخه است که معمولاً برای ذخیره و پیگیری هرگونه تغییر در کد منبع شما استفاده می شود. در دواپس، بیشتر با مخازن کد برنامه، فایلهای اسکریپت و فایلهای مانیفست یا تعریف زیرساخت کار میکنید. همه آنها در مخازن git ذخیره می شوند. این به شما امکان می دهد تغییرات ایجاد شده را حفظ و نظارت کنید و همچنین در صورت بروز مشکل به راحتی به هر نسخه برگردید. این باعث می شود برنامه یا زیرساخت پایدارتر شود و بتواند پس از خرابی ها بازیابی شود.
شما نیازی به دانش پیشرفته در GIT ندارید، بلکه به اندازه که بتوانید به مخزن push کنید و همچنین بتوانید تضادهای ادغام (Merge conflicts) را برطرف کنید، کافی است. یادگیری GIT برای هر موقعیتی که مرتبط با فناوری اطلاعات است و شامل مهندسان دواپس می شود، ضروری است. مخازن محبوب در این زمینه عبارتند از GitHub و GitLab که هر دو دارای ویژگیهای بسیار متفاوتی هستند که به مخازن شما امکان میدهد حتی از استقرار برنامههای کاربردی شما نیز استفاده کنند.
- CI/CD (Continuous Integration/Continuous Delivery) Tools
ابزارهای CI/CD برای خودکارسازی تعامل از سوی توسعهدهنده نرمافزار که کد را به مخزن push میکند، تا استقرار تغییرات کد مذکور در محیطهای مربوطه خود استفاده میشود. این به نوبه خود روند ارائه نرم افزار به کاربران نهایی شما را سرعت می بخشد. در دواپس، جایی که اتوماسیون کلید هر فرآیندی است، یادگیری ابزارهای CI/CD ضروری است. در اینجا لیستی از 5 ابزار برتر CI/CD پرکاربرد در جامعه دواپس آمده است.
- Jenkins : یک سرور اتوماسیون منبع باز است. جنکینز به خودکارسازی بخشهای توسعه نرمافزار مربوط به ساخت، آزمایش و استقرار، تسهیل یکپارچهسازی مداوم و تحویل مداوم کمک میکند.
- GitLab : یک پلت فرم مرکزی دواپس که به شما کمک می کند تا ساخت، یکپارچه سازی و تأیید کد خود را خودکار کنید.
- CircleCI : یک ابزار CI/CD که از توسعه و انتشار سریع نرمافزار پشتیبانی میکند. امکان اتوماسیون را در سراسر pipeline از ساخت کد و آزمایش تا استقرار فراهم می کند.
- TeamCity : سرور CI/CD ارائه شده از JetBrains( سازندگان IDE بسیار قوی مانند PyCharm و PHPStorm ) است.
- Bamboo : یک سرور ساخت ادغام پیوسته(Continuous Integration) از Atlassian است که ساخت، آزمایش و انتشار خودکار را در یک مکان انجام می دهد.
لازم نیست همه ابزارهای ذکر شده در اینجا را یاد بگیرید زیرا انتخاب استفاده از هر کدام معمولاً به عوامل زیادی بستگی دارد. ممکن است شرکت در حال حاضر یک زیرساخت موجود بر روی یکی از این ابزارهای CI/CD ساخته شده باشد. اما داشتن حداقل ایده اولیه در مورد همه آنها سودمند است. با این حال، اگر تازه شروع کرده اید، هیچ اشکالی ندارد که به سراغ برجسته ترین ابزار یعنی جنکینز بروید.
شخصاً یادگیری Gitlab را ترجیح میدهم!
- Infrastructure-as-code (IaC)
زیرساخت به عنوان کد رویکردی در مدیریت زیرساخت است که در آن زیرساخت نرم افزار شما با استفاده از فایل های مانیفست تعریف یا ایجاد می شود. روزهایی که مدیران فناوری اطلاعات یا مهندسان دواپس با نصب دستی بستهها یا برنامهها، سرورها را راهاندازی میکردند گذشته است. درعوض، با IaC، هر ویژگی از نحوه قرار گرفتن سرور را در یک فایل متنی کوچک تعریف میکنیم، و سپس نرمافزاری که قادر به خواندن این فایل است، بهطور خودکار یک سرور را بر اساس مقادیر اعلامشده ایجاد میکند.