هنگامی که یک سازمان ساختاری سیلویی دارد که در آن تیم های توسعه و عملیات به طور جداگانه کار می کنند، پیاده سازی دواپس (DevOps) اغلب مستلزم یک بازنگری سازمانی است. برای اجرای موفقیت آمیز دواپس به افراد، فرهنگ و ابزار مناسب نیاز است. با این حال، طبق بررسی های صورت گرفته، یکی از رایج ترین موانع اجرای DevOps فقدان مهارت کارکنان است.
یکی از نقش های کلیدی برای اجرای پروژه های دواپس استفاده از مهندس دواپس است. این فرد باید دارای مجموعه مهارت های گسترده ای باشد که هم بخش های توسعه و هم عملیات را سازمان در بر می گیرد، در کنار آن مهندس دواپس بایستی مهارت های بین فردی و ارتباطی را برای پر کردن شکاف بین تیم های سیلویی سازمان داشته باشد.
مهندس دواپس (DevOps) کیست؟
یک مهندس دواپس (DevOps) فردی متخصص فناوری اطلاعات است که درک عمیقی از چرخه عمر توسعه نرم افزار دارد. او همچنین باید درک عمیقی از این موضوع داشته باشد که چرا سازمان باید از یک مدل سنتی به مدل دواپس مهاجرت کند. مهندس دواپس بایستی کاستی های مدل قبلی و مزایای مدل جدید را به خوبی بررسی نماید.
یک مهندس دواپس (DevOps) همچنین باید بداند که چگونه از ابزارهای اتوماسیون مختلف برای توسعه یکپارچه سازی و استقرار مداوم (CI/CD) استفاده کند. این کار به مجموعه خاصی از مهارتهای دواپس (DevOps) نیاز دارد که در ادامه آنها را عمیقتر بررسی خواهیم کرد.
برنامه ریزی و نظارت
مراحل مختلفی در فرایند CI/CD وجود دارد. مرحله اول مرحله برنامه ریزی است که شامل ایجاد یک الگو برای محصول شما می باشد. مرحله بعدی مرحله ساخت است که در آن الگوی ایجاد شده به محصول قابل استفاده تبدیل می شود.
سپس محصول در مرحله آزمایش، بررسی و تست می شود که در آن همه ایرادات پیدا و تصحیح می شوند. محصول در نهایت به مرحله استقرار می رود و در آنجا به کاربران نهایی معرفی می شود. هنگامی که محصول به کار گرفته شد، باید به طور مداوم نظارت شود، که این گام مفهوم جدیدی است که در چرخه عمر دواپس معرفی شده است.
مهندسان دواپس در مقایسه با مراحل قبلی بیشتر بر روی مرحله نظارت تمرکز می کنند. نظارت مداوم بر محصول برای یافتن اشکالات جدید، رفع آنها و بازگرداندن نسخه اصلاح شده به دست مشتری ضروری است. این کار برای اطمینان از رضایت مشتری پس از استقرار محصول در دنیای واقعی انجام می شود. مهندسان دواپس با تیم های توسعه و عملیات همکاری می کنند تا محصولات با کیفیت بالا را در کوتاه ترین زمان ممکن ارائه دهند.
یک مهندس دواپس همچنین میتواند مسیرهای شغلی دیگری داشته باشد. مانند:
- معمار دواپس (DevOps architect)
- مهندس اتوماسیون (Automation engineer)
- تستر نرم افزار (Software tester)
- متخصص یکپارچه سازی (Integration specialist)
- مهندس امنیت (Security engineer)
- مدیر انتشار (Release manager)
نقش ها و مسئولیت ها
نقش یک مهندس DevOps از سازمانی به سازمان دیگر متفاوت است، اما همواره شامل ترکیبی از مهندسی انتشار، تهیه و مدیریت زیرساخت، مدیریت سیستم، امنیت و حمایت از ساختار دواپس است.
مهندسی انتشار شامل کارهای مورد نیاز برای توسعه و استقرار کد برنامه است. ابزارها و فرآیندهای مورد استفاده در این ساختار بسته به بسیاری از متغیرها، متفاوت است. از جمله اینکه کد به چه زبانی نوشته شده است، چه مقدار از مسیر اتوماتیک شده است، و اینکه آیا زیرساخت توسعه بصورت درون سازمانی و یا در فضای ابری است. مهندسی انتشار ممکن است مستلزم انتخاب، تهیه و نگهداری ابزار CI/CD یا نوشتن و نگهداری اسکریپتهای توسعه/استقرار سفارشی باشد.
تامین زیرساخت و مدیریت سیستم شامل استقرار و نگهداری سرورها، ذخیره سازی و منابع شبکه مورد نیاز برای میزبانی برنامه ها می باشد. برای سازمانهایی که منابع داخلی دارند، این ممکن است شامل مدیریت سرورهای فیزیکی، دستگاههای ذخیرهسازی، سوئیچها و نرمافزار مجازیسازی در یک مرکز داده باشد. برای سازمان هایی که بصورت کامل و یا ترکیبی از بسترهای ابری استفاده می کنند، این بخش معمولاً شامل تهیه و مدیریت نمونههای مجازی سازی شده از همان مؤلفهها میشود.
حمایت از دواپس اغلب کاری کم ارزش یا نادیده گرفته می شود، اما مسلماً مهمترین نقش یک مهندس DevOps است. تغییر به فرهنگ دواپس می تواند برای اعضای تیم مهندسی مخرب و گیج کننده باشد. به عنوان کارشناس موضوع DevOps، این وظیفه بر عهده مهندس DevOps است که به تبلیغ و آموزش روش DevOps در سراسر سازمان کمک کند.