چگونه مهندس دواپس شویم؟ — راهنمای مسیر شغلی DevOps
«دواپس» (DevOps) به مجموعهای از فرآیندهای توسعه نرمافزار گفته میشود که بر ارتباط، همکاری و یکپارچهسازی تیمهای توسعه و عملیات تمرکز دارد. امروزه، فرصتهای شغلی بسیاری برای افراد فعال در حوزه دواپس وجود دارد. علاقهمندانی که قصد دارند به عنوان مهندس دواپس مشغول به کار شوند، باید مهارت و دانش تخصصی خود را همگام با نیاز بازار ارتقا دهند و بهروز نگه دارند. مقاله حاضر به این موضوع میپردازد که چگونه مهندس دواپس شویم و به علاقهمندان این سمت شغلی نقشه راهی را نشان میدهد تا بتوانند در این مسیر از جایگاه شغلی خوب و درآمد بالایی برخوردار شوند.
دواپس چیست ؟
کلمه دواپس (DevOps) از ترکیب دو کلمه «توسعه» (Development) و «عملیات» (Operations) ساخته شده است. دواپس، به مجموعهای از اقداماتی گفته میشود که بر ارتباط و همکاری تیمهای توسعه نرمافزار تمرکز دارند تا فرآیند توسعه نرمافزار بهتر و سریعتر انجام شود.
در واقع، دواپس ترکیبی از مفاهیم تغییر فرهنگ، بهترین عملکرد و بهترین ابزار در راستای توسعه نرمافزار است. به عبارتی، دواپس راهکاری است که به وسیله آن، تیمهای امنیت، تیمهای عملیات فناوری اطلاعات و تیمهای توسعه با یکدیگر همکاری میکنند. این همکاری علاوه بر اینکه در راستای توسعه و آزمایش نرمافزار انجام میشود، در ارائه بازخورد منظمی از کار با نرمافزار در طول «چرخه عمر توسعه نرمافزار» (Software Development Lifecycle | SDLC) نیز انجام میگیرد.
دواپس استاندارد جدیدی را برای نحوه توسعه نرمافزار تعریف میکند. پیش از اواسط دهه ۲۰۰۰ میلادی، توسعهدهندگان نرمافزار، تیم عملیات فناوری اطلاعات و تیم امنیت بهصورت مستقل کار میکردند. مسئولیت توسعهدهندگان نرمافزار، نوشتن کدهای نرمافزار بود؛ تیم تضمین کیفیت، کدهای تیم توسعهدهندگان نرمافزار را تست میکردند و تیم عملیات فناوری اطلاعات، کدهای تست شده را برای استقرار تحویل میگرفتند و محصول نهایی را مستقر (Deploy) میکردند.
تیمهای امنیتی، پس از استقرار کدها، آنها را به لحاظ آسیبپذیری بررسی میکردند. اگر کسی مشکلی را در طی پروسه توسعه نرمافزار گزارش میداد، تمام این روند مجدداً باید تکرار میشد. این رویکرد خطی خستهکننده باعث میشد روند توسعه نرمافزار به کندی انجام شود.
در سال 2008، «پاتریک دبویس» (Patrice Dubois) به عنوان مدیر سیستم و «اندرو شیفر» (Andrew Schaefer) به عنوان توسعهدهنده نرمافزار، روشی را ایجاد کردند که شکاف میان تیمهای توسعه و تیمهای عملیاتی نرمافزار را پر کند که امروزه به عنوان فرآیندهای دواپس شناخته میشود.
چرا از دواپس استفاده کنیم ؟
بهطور کلی، روش توسعه سنتی نرمافزار دشوار بود و اکثر فرآیندهای توسعه محصول بهصورت دستی انجام میشدند. همین امر، باعث میشد خطاهای بسیاری در روند تولید نرمافزار اتفاق بیفتد. این موضوع منجر به فرسودگی کارکنان و ناپایداری چرخه انتشار نرمافزار میشد.
همچنین، در دوران توسعه سنتی نرمافزار، توسعهدهندگان در پی ارائه سریع ویژگیهای جدید به کاربران و رفع اشکال سریع نرمافزار بودند؛ در حالی که تیمهای عملیاتی تمرکز خود را برروی ثبات محصول میگذاشتند و در پی این بودند تا مطمئن شوند که همه چیز بهخوبی کار میکند.
در طی توسعه سنتی محصول، هر یک از تیمها در پی تحقق دو ویژگی چابکی و ثبات بودند. از آنجا که این دو ویژگی در تناقض با یکدیگر هستند، هیچکدام از گروههای توسعهدهندگان و واحد عملیات با چنین سازوکاری برای توسعه نرمافزار موافق نبودند.
روش ارائه شده توسط «دبویس» (Dubois) و «شیفر» (Schaefer) راهحلی بود که به رفع این تناقض در توسعه نرمافزار کمک کرد. فرآیندهای ارائه شده توسط این دو فرد به سازمانها کمک میکنند تا با استفاده از ابزارها و روشهایی خاص و نوین، نیاز هر دو تیم را برطرف کنند.
به بیان دقیقتر، دواپس بستری را برای توسعهدهندگان فراهم میکند تا محصولات را با سرعت بیشتری به مرحله آزمایش برسانند، انتشار چندگانه از محصول خود را در طی روز، هفته یا ماه محقق کنند و با اطمینان بیشتری محصولات نرمافزاری خود را به مشتریان تحویل دهند. در عین حال، این فرآیند نوین، به تیم عملیاتی کمک میکند تا در هر مرحله از روند تولید، با انجام آزمایشهای خودکار و بازبینی دستی اشکالات را پیش از ارائه محصول به مشتری و استقرار آن شناسایی و رفع کنند.
به عبارتی، در مقایسه با رویکردهای توسعه نرمافزار سنتی، دواپس بستری خودکار و تکرارشونده را فراهم میکند تا ویژگیهای جدید محصولات نرمافزاری، در اسرع وقت به کاربران تحویل داده و در عرض چند ساعت مشکلات مشتریان رفع شوند.
مهندس دواپس کیست ؟
اگر به دنبال مسیری هستیم تا به پاسخ این پرسش برسیم که چگونه مهندس دواپس شویم، باید در ابتدا وظایف و مسئولیتهای این سمت شغلی را بشناسیم. مهندس دواپس به عنوان فردی متخصص در حوزه فناوری اطلاعات، باید دانش گستردهای در زمینه توسعه و عملیات نظیر کدنویسی، مدیریت زیرساخت، مدیریت سیستم و ابزارهای دواپس داشته باشد.
علاوهبراین، مهندس دواپس باید از مهارتهای بین فردی برخوردار باشد تا بتواند محیطی مشارکتی بین اجزای مختلف و مجزای سازمان ایجاد کند. به عبارتی، مهندسان دواپس پیچیدگی توسعه محصول را کاهش میدهند و شکاف میان تیمهای توسعه نرمافزار و «نگهداری محصول» (Product Maintenance) را از بین میبرند.
افراد فعال در حوزه دواپس فرایندهای تولید و توسعه محصول را یکسانسازی و خودکار میکنند. آنها کدهای نوشته شده را با هم ادغام میکنند و در نگهداری و مدیریت برنامهها نقش اساسی دارند. به بیان دیگر، در یک محیط «چابک» (Agile) با اینکه توسعهدهندگان، مدیران سیستم و برنامهنویسان برروی یک محصول مشترک کار میکنند، وظایف خود را به صورت جداگانه پیش میبرند. در حوزه دواپس، وظیفه یکپارچهسازی خروجی نهایی این تیمها بر عهده مهندس دواپس است.
افرادی که علاقهمند هستند در سمت شغلی مهندس دواپس مشغول به فعالیت شوند، باید درک عمیقی از معماری سیستم، تهیه محصول و مدیریت آن داشته باشند. همچنین، این افراد باید تجربه کار با ابزارهای سنتی توسعه محصول نظیر ابزارهای کنترل منابع، بازبینی کد، انجام تستها را هم داشته و با اصول اجایل (Agile) آشنا باشند.
معرفی فیلم های آموزش لینوکس
سایت تم آف یک مجموعه آموزشی برای آن دسته از افرادی فراهم کرده است که قصد یادگیری لینوکس را دارند. لینوکس یکی از سیستم عاملهای مهم برای برنامهنویسان تمامی حوزهها تلقی میشود و افراد علاقهمندی که در پی پاسخ به این سوال هستند که چگونه مهندس دواپس شویم، میتوانند از مجموعه فیلمهای آموزشی لینوکس تم آف استفاده کنند. لینوکس به افراد فعال در حوزه دواپس، انعطافپذیری و مقیاسپذیری لازم برای فرآیند توسعه نرمافزار به شکل پویا را ارائه میدهد.
به عبارتی، مهندسان دواپس میتوانند تنظیمات لینوکس را براساس نیازهای خود بهراحتی تغییر دهند. دورههای آموزشی تم آف شامل فیلمهای آموزشی مقدماتی تا پیشرفته لینوکس میشوند. علاقهمندان میتوانند از این دورههای آموزشی جامع در راستای بهکارگیری لینوکس در حوزه دواپس استفاده کنند. در تصویر فوق تنها برخی از دورههای آموزشی مجموعه آموزش لینوکس تم آف نمایش داده شدهاند.
- برای دسترسی به همه آموزش های لینوکس تم آف + اینجا کلیک کنید.
نقش و مسئولیت مهندس دواپس چیست ؟
نقش مهندس دواپس ممکن است در سازمانهای مختلف، متفاوت باشد؛ اما وظایف اصلی مهندس دواپس در تمامی سازمانها به شرح زیر است:
- «مهندسی انتشار» (Release Engineering)
- تهیه و مدیریت زیرساخت، مدیریت سیستم و کنترل امنیت
- پیادهسازی و بهکارگیری اصول دواپس و جایگزنی آنها با رویکردهای سنتی و قدیمی
در ادامه، به شرح هر یک از مسئولیتهای اصلی مهندس دواپس پرداخته میشود.
مسئولیت مهندسی انتشار برای مهندس دواپس
مهندسی انتشار شامل انجام وظایف مورد نیاز برای ساخت و استقرار کدهای برنامه است. ابزارها و فرآیندهای مورد نیاز بسته به متغیرهای مختلفی نظیر زبان برنامهنویسی، خودکار بودن بخشهای مختلف برنامه و بستر زیرساخت تولید متفاوت است. با استفاده از مهندسی انتشار میتوان نحوه انتخاب، تهیه و نگهداری ابزارهای CI/CD را مشخص کرد و اسکریپتهای ساخت/استقرار محصول را نوشت و از آنها نگهداری کرد.
نقش تامین زیرساخت و مدیریت سیستم برای مهندس دواپس
«تامین زیرساخت» (Provisioning Infrastructure) و «مدیریت سیستم» (System Administration) شامل استقرار و نگهداری از سرورها، نحوه ذخیرهسازی و فراهم کردن منابع شبکه مورد نیاز برنامههای میزبان است. در سازمانهایی که منابع درونسازمانی دارند، تامین زیرساخت میتواند شامل مدیریت سرورهای فیزیکی، دستگاههای ذخیرهسازی، سوییچها و نرمافزارهای مجازیسازی در مرکز داده نیز باشد. برای سازمانهایی که کاملاً مبتنیبر ابر هستند یا بخشی از منبع آنها برونسازمانی است، تامین زیرساخت میتواند شامل تهیه و مدیریت نمونههای مجازی از مؤلفههای مورد نیاز سازمانهایی با منابع درونسازمانی باشد.
جایگزینی فرهنگ دواپس با رویکردهای سنتی توسعه نرم افزار توسط مهندس دواپس
با توجه به اینکه دواپس حوزه جدیدی است و در بسیاری از سازمانها همچنان از رویکردهای سنتی و قدیمی توسعه و ساخت نرمافزار استفاده میشود، بنابراین پیادهسازی و استفاده از روشهای دواپس میتواند برای اعضای تیم مهندسی در سازمان دشوار و گیجکننده باشد. مهندس دواپس به عنوان شخص متخصص در این حوزه باید بتواند اصول و روشهای نوین دواپس را در سازمان ترویج کند و به تیمهای مختلف توسعه محصول آموزشهای لازم را در این زمینه ارائه دهد.
چرا مهندس دواپس شویم ؟
دواپس به عنوان یک فلسفه فناوری اطلاعات نوظهور، با ترکیب فنون کاربردی و مهارتهای عملیاتی و ارتباطی میتواند توانمندی سازمان را در راستای ارائه نهایی برنامهها و خدمات با سرعت زیاد و مقیاس بالا به کار گیرد. دواپس علاوه بر اینکه پدیده فنی جدیدی به حساب میآید، به عنوان یک چشمانداز شغلی مهم نیز تلقی میشود که فرصتهای شغلی بسیار خوبی را برای متخصصان حوزه فناوری اطلاعات فراهم آورده است.
در ادامه مطلب حاضر، به مزایای حرفه مهندس دواپس پرداخته میشود تا علاقهمندان به حوزه توسعه نرمافزار بتوانند با دید بازتری به تصمیمگیری درباره شغل آینده خود بپردازند.
وجود فرصت های شغلی زیاد در سمت شغلی مهندس دواپس
در حال حاضر، سازمانهای بسیاری در سراسر دنیا به دنبال افرادی هستند که از مهارت لازم در حوزه دواپس برخوردارند. شرکتهای نوپای فعال در حوزه فناوری اطلاعات، در پی این هستند که از دواپس در تجارت خود استفاده کنند. شرکتهای فناوری چندملیتی بزرگ همواره فرصتهای شغلی بسیاری را برای مهندسان دواپس درنظر دارند تا عملکرد تیمهای فنی فعلی خود را تقویت کنند.
فرصت کسب مهارت و دانش جدید با فعالیت به عنوان مهندس دواپس
دواپس به عنوان یک متدولوژی نسبتاً جدید، مستعد پیشرفت و توسعه مستمر است که همین امر بستر هیجانانگیزی را برای علاقهمندان به فناوریهای جدید فراهم میکند.
به عبارتی، دواپس هنوز در صنعت فناوری، نوپاست و برای بهره بردن از آن، ابزارها و فناوریهای جدیدی ارائه میشوند که میتوانند عملکرد سازمان را بهبود دهند. بدین ترتیب، افراد فعال در حوزه دواپس با مفاهیم جدید و بهروزی سروکار دارند و از فناوریهای نوظهور در این حوزه بهرهمند میشوند.
تضمین آینده شغلی مناسب برای مهندسان دواپس
براساس گزارشهای شرکت خدمات مهندسی نرمافزار CalSoft در کالیفرنیا، 78 درصد از مدیران ارشد فناوری اطلاعات (4 درصد بیشتر از سال 2016) در سال 2017 به فکر پیادهسازی دواپس در سازمان خود هستند. از آنجا که سازمانها به مزایای دواپس در کسب و کار فناوری خود پی بردهاند، این میزان تقاضا، در سال جاری و سالهای آتی در دنیا بیشتر نیز خواهد شد.
تحول کسب و کار با استفاده از دواپس
دواپس با یکپارچهسازی عملیات در بخشهای مختلف سازمان نظیر بخش مهندسی، بخش امنیت، بخش تضمین کیفیت و واحد عملیات سازمان، مرز بین این واحدها را از بین میبرد. به عبارتی، دواپس این امکان را فراهم میکند تا در حین ارائه برنامههای نرمافزاری و خدمات در سریعترین زمان ممکن، هماهنگی کاملی بین بخشهای مختلف سازمان وجود داشته باشد.
موقعیتهای شغلی زیادی در دنیا وجود ندارند که چنین تاثیر مثبتی بر کسب و کار سازمانها داشته باشند. مهندس دواپس با داشتن چنین نقش مهمی قادر خواهد بود تا دقیقاً مشخص کند چگونه اقدامات بخشهای مختلف سازمان میتوانند میزان کیفیت محصول را بهبود بدهند و در اسرع وقت محصول نهایی را به مشتری تحویل دهند.
کسب درآمد بالا و ساعت کاری انعطاف پذیر برای مهندس دواپس
مهندس دواپس به عنوان یکی از سمتهای شغلی در حوزه فناوری اطلاعات، از درآمد بسیار بالایی برخوردار است. به عنوان مثال، متوسط درآمد مهندسان دواپس در انگلیس، 20 درصد بالاتر از درآمد سایر مشاغل حوزه فناوری اطلاعات است. در این کشور، بسته به مکان، نوع سازمان و نقش افراد به عنوان مشاور یا کاربر نهایی، میزان حقوق مهندسان دواپس بین 55 هزار پوند تا 130 هزار پوند متغیر است.
بهعلاوه، مهندس دواپس میتواند از راه دور برای شرکتها و سازمانهای مختلف مشغول به کار شود. در سالهای اخیر، بسیاری از شرکتهای آمریکایی مهندسان دواپس مستقر در انگلیس را استخدام کردهاند که از راه دور میتوانند توسعه برنامهها و پشتیبانی عملیات را خارج از ساعات کاری انجام دهند. در ایران نیز، دورکاری افراد فعال در حوزه فناوری اطلاعات و به خصوص دواپس در حال رایج شدن است.
در ادامه مطلب حاضر، به این موضوع میپردازیم که چگونه مهندس دواپس شویم و چه مهارتها و دانش تخصصی برای رسیدن به این سمت شغلی باید بدست آوریم.
چگونه مهندس دواپس شویم ؟
مهارتهای فنی مورد نیاز مهندس دواپس بسته به ساختار تیم، فناوریها و ابزارهای موجود در سازمان متفاوت است. در ادامه این مطلب، به مهمترین و اساسیترین مهارتهای مهندس دواپس پرداخته میشود تا افراد علاقهمند به این فرصت شغلی بتوانند مسیر راه خود را پیدا کنند.
کسب دانش عمیق در حوزه شبکه های کامپیوتری
در دنیای امروز، تقریباً تمامی فعالیتهای سازمانها مبتنیبر اینترنت هستند. شبکه و امنیت موضوعات مهمی هستند که فعالان حوزه دواپس باید در آنها به دانش عمیقی دست پیدا کنند. مهندس دواپس باید به مفاهیم حوزه فناوری شبکه نظیر موارد فهرست شده در زیر تسلط داشته باشند:
- HTTP2
- HTTP3
- QUIC
- Layer4 Protocol
- Layer7 Protocol
- mTLS
- Proxies
- DNS
- BGP
- Internet
- IP Tables
- IP Address
- طراحی شبکه
تسلط بر اصول سیستم عامل
مهندس دواپس باید بر اصول سیستم عامل، بهویژه سیستم عامل لینوکس، تسلط داشته باشد. برروی اکثر سیستمها نظیر ماشینهای مجازی و کانتینرها (Containers) میتوان لینوکس را اجرا کرد. بدینترتیب، بهترین سیستم عامل برای مهندسان دواپس، سیستم عامل لینوکس است. مهندس دواپس باید درباره مدیریت فرآیندها، «نخ» (Thread)، «همروندی» (Concurrency)، سوکتها، مدیریت ورودی و خروجی سیستم، مجازیسازی، ذخیرهسازی حافظه و File System اطلاعات کسب کنند. موارد مهمی که از سیستم عامل لینوکس باید فراگرفت، عبارتاند از:
- Scheduling
- Systemd Interface
- Init System
- Cgroups and Namespaces
- Performance Tuning
- دستورات خط فرمان نظیر awk ،sed ،jq ،yq ،curl ،ssh ،openssl
کسب مهارت در استفاده از ابزارهای CI/CD
در مهندسی نرمافزار، دو مفهوم تخصصی با عنوانهای «یکپارچهسازی مداوم» (Continuous Integration) و «تحویل پیوسته» (Continuous Delivery) یا «استقرار پیوسته» (Continuous Deployment) وجود دارد که به اختصار به آنها CICD یا CI/CD گفته میشود. به عبارتی، CICD پلی است که شکاف میان فعالیتهای تیم توسعه و تیم عملیات سازمان را پر میکند. ابزارهای CI/CD به تیمها این امکان را میدهند تا توسعه، تست و استقرار محصول خود را بهصورت خودکار انجام دهند. ابزارهای بسیاری برای CI/CD نظیر Drone ،TeamCity و Jenkins وجود دارند و مهندس دواپس باید برای استفاده از دواپس، به یکی از این ابزارها تسلط داشته باشد.
دانش عمیق در حوزه کانتینر سازی و مجازی سازی
یکی از مهمترین مفاهیم مورد نیاز مهندس دواپس، «کانتینرسازی» (Containerization) برنامههاست. کانتینرسازی یک فناوری جدیدی است که استفاده از آن به وسیله (داکر | Docker) رایج شده است. با استفاده از کانتینر، کد برنامه و محیط اجرایی آن در یک ایمیج (Image)، بستهبندی میشود. مهندس دواپس باید بداند برنامهها را چطور کانتینربندی (محفظهبندی) کند و امنیت کانتینر را به چه شکل فراهم کند.
علاوهبر ابزارهای کانتینرسازی نظیر داکر و Kubernets، مهندس دواپس باید با ابزارهای مدیریت یکپارچهسازی نظیر Ansible ،Salt ،Chef ، Puppet و تجهیزات زیرساخت نظیر Terraform و Cloud Formation آشنا باشند.
کسب تجربه کاری با سیستمهای مانیتورینگ
اکثر مهندسان با سرویس مانیتورینگ Prometheus Grafana آشنا هستند. بسیاری از سازمانها از سیستم مانیتورینگ به منظور بررسی منابع و کارایی سیستم استفاده میکنند. هدف اصلی این سیستمها، بررسی عملیات کامپیوترها و تشخیص خطاها در سیستم است. به عبارتی، با استفاده از این سیستم مانیتورینگ میتوان بررسی کرد که برروی سیستم چه اتفاقاتی در جریان بوده است. مهندس دواپس باید کار با سیستمهای مانیتورینگ پیشرفته را یاد بگیرند و با معماریهای Prometheus آشنا شوند. فناوریها و ابزارهای کارآمد دیگری که به مهندس دواپس کمک شایانی میکنند، عبارتاند از:
- Thanos
- Cortex
- VictoriaMetrics
- Datadog
- Loki
- ابزارهای پروفایلسازی
- Parca
- Periscope
- Hypertrace
- Distributed Tracing
تقویت مهارت های مدیریتی مشارکتی
صرف نظر از ساختار سازمانها، همکاری بین تیمی به عنوان یکی از ویژگیهای اساسی، راهبرد موثر DevOps محسوب میشود. تیم مهندسی ممکن است یک گروه عملیاتی باشد که این گروه براساس نقشها و مسئولیتهای محول شده به زیرگروههای عملیاتی تقسیم شده باشد. همچنین، تیم مهندسی میتواند شامل چندین تیم مجزا برای عملیات مختلف نظیر توسعه ویژگیها، تضمین کیفیت، دواپس و سایر موارد باشد. در هر دو حالت، مهندس دواپس باید در کل سازمان به عنوان مربی و همکار، با تمامی افراد کار کند.
به عنوان مثال، توانایی ارائه بازخورد سریع به توسعهدهندگان، یکی از مهمترین و باارزشترین هدف استفاده از دواپس است. مهندس دواپس اغلب مجبور است با تیم تضمین کیفیت کار کند تا سرعت، کارایی و خروجی روشهای تست را بهبود بخشد. در عین حال، مهندس دواپس باید با توسعهدهندگان محصول کار کند تا فرآیند آمادهسازی و استقرار کدهای برنامه با کیفیت بالایی انجام شود.
به عبارتی، مهندس دواپس باید تیم پلتفرمی در سازمان تشکیل دهد که این تیم شبیه به تیم محصول متمرکز شده است که برروی کاربران داخلی پلتفرم نظیر اعضای توسعهدهنده و آزمایشکننده محصول تمرکز دارد. هدف از تشکیل چنین تیمی، بهبود روش کار و ایجاد نظم در اعضای تیم است. مهندس دواپس باید از مشکلاتی یادداشتبرداری کنند که تیم پلتفرم با آنها مواجه میشوند.
کسب دانش کافی در حوزه امنیت
در بسیاری از سازمانهای کوچک، مسئله امنیت از اهمیت چندانی برخوردار نیست و صرفاً به ویژگیهای محصول اهمیت داده میشود. اما با افزایش میزان حملات مختلف و پیچیده، شرکتها باید از روشهای مختلف امنیتی استفاده کنند. مهندس دواپس باید با مفاهیم و روشهای «رمزگذاری سرتاسر» (End-to-end Encryption)، RBAC، سیاستهای IAM، حاکمیت و ممیزی، اجرای معیارهایی نظیر NIST ،CIS و ISO27001 آشنا باشند. موضوعاتی نظیر Container Security ،Policy as Code ،Cloud Governance و Supply Chain Security موضوعات داغی در حوزه دواپس هستند که مهندس دواپس میتواند در حوزه فعالیت خود به یادگیری آنها بپردازد و از آنها در پیشبرد اهداف خود استفاده کند.
آشنایی با برنامه نویسی و اسکریپت نویسی
یکی از نقشهای مهندس دواپس، توسعه محصول و ساخت ابزارهایی برای بهبود بازدهی محصول در چهارچوب استانداردهای تعریف شده است. سازمانی که از دواپس استفاده میکند، به دنبال مهندس دواپسی است که به برنامهنویسی مسلط باشد و بتواند کدهای نوشته شده را بفهمد و در صورت نیاز، کدها را اشکالزدایی کند. هدف از نوشتن کدها، خودکارسازی تسکهای محصول است. میتوان با نوشتن اسکریپتهای مختلف، کارهایی نظیر فراخوانی برنامههای کاربردی یا ویرایش فایلها را انجام داد.
زبانهای برنامهنویسی Python و Golang رایجترین زبانهایی هستند که مهندسان دواپس از آنها استفاده میکنند. زبان Golang ویژگیهای مختلفی نظیر «همزمانی» (Concurrency)، «بررسی نوع» (Type Checking)، انعطافپذیری بالا و استفاده از آن در سازمانهای مختلف و «زنجیره ابزار» (Tool Chain) دارد. این ویژگیها باعث شده است که در حوزه دواپس، از این زبان در مقایسه با سایر زبانها بیشتر استفاده شود.
علاوهبر دو زبان پایتون و Golang، مهندس دواپس ممکن است به دانش VB-Script و PowerShell ویندوز نیز نیاز داشته باشد. دو زبان دیگری که در حوزه دواپس استفاده میشود، جاوا و جاوا اسکریپت هستند.
یادگیری زیرساخت مبتنی بر کد
«زیرساخت مبتنیبر کد» (Infrastructure as Code) یا به اختصار (IaC) یکی از مهمترین مفاهیمی است که مهندس دواپس با آن سروکار دارد. زیرساخت مبتنیبر کد به فرآیند مدیریت و تهیه مراکز داده با استفاده از فایلهایی میگویند که برای ماشین قابل فهم باشد. این روش، روشی جایگزین برای تنظیمات سختافزاری یا ابزارهای تعاملی لحظهای بهشمار میرود.
مهندس دواپس باید با کانتینرهایی نظیر Docker و Kubrenetes آشنا باشد و تجربه کار با ابزارهای مدیریت پیکربندی نظیر Ansible ،Chef ،Salt و Puppet را داشته باشد. همچنین، مهندس دواپس باید نحوه کار با ابزارهای مدیریت زیرساخت نظیر Terraform و Cloud Formation را یاد بگیرد.
جدا از مفاهیم مربوط به تنظیمات و استقرار، مهندس دواپس باید مهارت کار با ابزارهای مانیتورینگ زیرساخت را هم داشته باشد. ابزارهای بسیاری برای مدیریت زیرساخت وجود دارد که عبارتاند از:
- Nagois
- Icing
- Datadog
- Zabbix
- Monit
- AppDynanic
- New Relic
کسب دانش و مهارت لازم در زمینه فناوری ابری
«ابر» (Cloud) لازمه کار مهندس دواپس است و دیر یا زود باید برنامه خود را به فضای ابری منتقل کند. با استفاده از ابر میتوان برنامههای کاربردی را به روشی ایمن، مقرونبهصرفه و انعطافپذیر طراحی کرد. از این رو، برای مهندس دواپس لازم است تا دستکم درباره برخی از ارائهکنندگان زیرساخت ابری نظیر Google Cloud ،Azure ،Heroku ،Cloud Foundry و Digital Ocean اطلاعات داشته باشند.
کسب مهارت در نگارش فنی
تعجببرانگیز نیست که در حین صحبت از دواپس، در زمینه مهارت در نگارش فنی صحبت میشود. بسیاری از افراد به این مهارت توجه کافی ندارند؛ اما این مهارت در نحوه ارتباط موثر و کار با سایر افراد تیم از اهمیت بالایی برخوردار است. روشهای ارتباطی راه دور نظیر ایمیل و استفاده از ابزارهای پیامرسان راههای اصلی صحبت و انتقال ایدهها به همکاران است. به همین دلیل، کسب مهارت در نگارش فنی و توضیحات اهمیت بالایی دارد.
همچنین، ممکن است لازم باشد بهطور منظم اسنادی نظیر Runbook ،Postmortem ،RFC، رکوردهای تصمیمگیری و اسناد طراحی نرمافزار ایجاد شوند. برای تهیه این اسناد باید از نگارش فنی واضح و آسان استفاده کرد تا در وقت خواننده صرفهجویی شود و میزان بهرهوری کلی بهبود پیدا کند.
کسب دانش در حوزه مهندسی پایداری سایت
امروزه، دو حوزه دواپس و «مهندسی پایداری سایت» (Site Reliability Engineering) یا به اختصار SRE از اشتراکات بالایی برخوردارند و مهندس دواپس بهتر است با مفاهیم حوزه SRE نیز آشنا شود. مفاهیمی نظیر SLI ،SLO ،Error Budget و SRE Practice موضوعاتی هستند که مهندس دواپس باید با آنها آشنا باشد.
جمعبندی
در این مطلب به توضیح مفهوم دواپس و دلایل استفاده از آن در سازمانها پرداخته شد. بهعلاوه، برای آن دسته از افرادی که علاقهمند هستند تا در آینده به عنوان مهندس دواپس فعالیت کنند، به مسئولیتهای مهندس دواپس در سازمانها اشاره شد و مزایای این موقعیت شغلی شرح داده شدند. در انتهای مقاله حاضر نیز به مهارتها و دانش لازم برای تبدیل شدن به مهندس دواپس پرداخته شد تا علاقهمندان این حوزه بتوانند با یادگیری این مهارتها در حوزه دواپس مشغول به کار شوند.