علوم پایهکسب و کار

دواپس چیست ؟ ( DevOps ) و یک مهندس دواپس چه کاری انجام می‌دهد؟ ۲۰۲۱

دواپس چیست ؟ ( DevOps ) و یک مهندس دواپس چه کاری انجام می‌دهد؟

دواپس چیست دواپس از ترکیب دو واژه Development به‌معنای «توسعه نر‌م‌افزار» و OperationS به‌معنای «عملیات فناوری اطلاعات» تشکیل شده است. دواپس یک فرآیند تولید نرم‌افزار است که بر ارتباط و همکاری هرچه بیشتر تیم‌های توسعه نرم‌افزار با تیم‌های اجرایی تمرکز و تأکید دارد.

اگر با مدیران استخدام شرکت ها صحبت کنید، متوجه خواهید شد که بسیاری از این افراد مشتاق استخدام مهندسان دواپس هستند. در حالی که برخی از این مدیران استخدام با این اصطلاح آشنا هستند، برخی دیگر هیچ آشنایی با این اصطلاح ندارند.

بسیاری از این افراد کنجکاو هستند که بدانند اساساً یک مهندس دواپس چه کاری می تواند انجام دهد. اما قبل از اینکه وارد کاری شویم که یک مهندس دواپس می تواند انجام دهد، ابتدا باید این اصطلاح را تعریف کنیم. دواپس ترکیبی از دو عبارت Development به معنای «توسعه نرم افزار» و OperationS به معنای «عملیات فناوری اطلاعات» است.

دواپس چیست یک فرآیند توسعه نرم افزار است که بر اتصال و همکاری بیشتر تیم های توسعه نرم افزار با تیم های اجرایی تمرکز دارد. این فرآیند به دنبال خودکارسازی عملیات هایی مانند یکپارچه سازی، آزمایش، استقرار و یک سری تغییرات اساسی است. به طور کلی، دواپس به دنبال ایجاد فرهنگ و محیطی است که در آن تولید، آزمایش و انتشار نرم افزار می تواند سریع، مستمر و قابل اطمینان کامل شود.

مطالب مرتبط

برای آنکه درک بهتری از این مفهوم داشته باشید و بدانید یک مهندس دواپس به طور دقیق قادر به انجام چه کارهایی است، ابتدا باید چرخه تولید نرم‌افزار را مورد بررسی قرار دهید. محصولات نرم‌افزاری کوچک و بزرگی که روزانه مورد استفاده قرار می‌دهید، پس از گذراندن یک چرخه پنج مرحله‌ای آماده می‌شوند و به دست شما می‌رسند.

این پنج مرحله عبارتند از برنامه‌ریزی (Planning)، توسعه (Development)، آزمایش (Testing)، استقرار/ انتشار (Deployment) و درنهایت نگهداری/ پشتیبانی (Maintenance) که در این میان دو مرحله برنامه‌ریزی و نگهداری بخش عمده‌‌ای از وقت مهندسان دواپس را از آن خود می‌کنند.

دواپس چیست

مرحله برنامه‌ریزی

در مرحله اول که به برنامه ریزی یا برنامه طرح ریزی معروف است، اعضای تیم متشکل از توسعه دهندگان، مدیران تولید و … چشم انداز و اهداف پروژه و قالب کلی نرم افزار را تعریف می کنند.

در این مرحله وظیفه مهندس دواپس استفاده از دانش فنی اعضای تیم و تسلط اعضا بر زیرساخت ها و چارچوب های موجود و ارزیابی چگونگی دستیابی به این امر در یک سیستم جامع و یکپارچه به تمامی دیدگاه ها و دیدگاه ها می باشد. اهدافی که تیم دنبال می کند. دواپس چیست

هنگامی که سیستم اولیه پیاده سازی و راه اندازی شد، باید در نظر گرفته شود که چگونه تیم می تواند فناوری ها یا اجزای پیش ساخته را با سیستم موجود یکپارچه کند.

برای اینکه این کار به بهترین شکل ممکن انجام شود، ممکن است لازم باشد برنامه ریزی دقیقی برای استفاده از این مؤلفه ها و اجرای خودکار آنها داشته باشید. در این مرحله موارد دیگری از جمله نحوه ایجاد بانک اطلاعاتی جدید و پشتیبانی از ریزسرویس های زیرساختی جدید در سامانه اولیه مورد بررسی قرار می گیرد.

موضوعاتی مانند تعمیر و نگهداری و اتوماسیون نیز در این مرحله بررسی می شوند. در واقع مهندس دواپس در این مرحله و در بیشتر موارد به دنبال یافتن راه هایی برای خودکارسازی فرآیندهای مختلف است، این اتوماسیون فشار روی تیم را به میزان قابل توجهی کاهش می دهد. در این مرحله، مهندس دواپس به دنبال پاسخ برای سوالات زیر است:
چگونه دو سرویس مختلف می توانند با یکدیگر تعامل داشته باشند؟ برای برقراری ارتباط بین دو سرویس از چه پروتکلی باید استفاده کرد؟ آیا سخت افزار موجود پاسخگوی نیازهای ما خواهد بود یا بهتر است از خدمات ابری برای رسیدن به این هدف استفاده کنیم؟ چه پارامترهایی را باید در نظر بگیریم تا بتوانیم به مهندسان / کدگذاران در مرحله تولید کمک کنیم؟

سرویس آماده تولید چیست؟ چگونه می توانیم از همه نرم افزارهای موجود برای استفاده حداکثری از آن استفاده کنیم؟ آیا می‌توان تمام وابستگی‌های مورد استفاده در نرم‌افزار را کنترل کرد و آیا درک ما از این عوامل به اندازه‌ای جامع است

که بتوانیم در صورت بروز مشکل، آنها را رفع اشکال کنیم؟ چه کامپوننت هایی بسازیم و چه اجزایی بخریم؟ آیا می توان یک کار خاص را خودکار کرد؟ چگونه می توانیم در آینده از نرم افزار طراحی شده پشتیبانی کنیم؟

دواپس چیست مرحله توسعه 

در مرحله توسعه نرم افزار، کل حجم کار مورد انتظار است و اکنون این بر عهده توسعه دهندگان است که مرتب سازی و ایجاد ویژگی های منحصر به فردی را که باید در محصول گنجانده شود، آغاز کنند. مهندسان دواپس اکنون به دنبال راه حلی هستند تا این وظایف را به بهترین شکل و در کمترین زمان ممکن انجام دهند.

این رویکرد دقیقاً مطابق با چشم انداز کار با تولید نرم افزار است. مهندسان دواپس ابزارهای مورد استفاده طراحان را نشان می دهند و ابزارهای مورد نیاز توسعه دهندگان را فراهم می کنند. کار دیگر دواپس ایجاد کدهای مختلف طراحی شده توسط طراحان بود.

محیط توسعه نوشته شده است را دریافت کرده و این قطعات را در کنار یکدیگر قرار داده و این مؤلفه‌ها را با محیط/ خروجی نهایی نرم‌افزار هماهنگ سازد. این وظیفه‌ای نیست که بتوان آن ‌را به عهده طراحان واگذار کرد.

امروزه اگر مهندسان دواپس در شرکت‌های مختلف حضور نداشتند، ما قادر نبودیم از نرم‌افزارهای مطرح و شاخص استفاده کنیم. (شکل ۲) سؤالاتی که یک مهندس دواپس در این مرحله باید به‌دنبال پاسخ‌گویی به آن‌ها باشد به شرح زیر است:

چگونه باید طراحان را در محیطی مشابه با محیط محصول نهایی نگه دارم و در همین راستا به آن‌ها اجازه دهم تا از ابزارهایی که به آن‌ها علاقه دارند یا در آن تخصص دارند استفاده کنند؟

چگونه می‌توانم عملکرد طراحان را به‌شکل مطلوبی افزایش دهم؟ چگونه می‌توانم برای طراحان توضیح دهم که در حال کدنویسی برای چه محیطی هستند و محیط نهایی نرم‌افزاری که آماده خواهد شد چگونه خواهد بود؟

دواپس چیست

مرحله آزمایش

در مرحله آزمایش، طراحان و افراد مسئول کنترل کیفیت، کد نوشته شده را آزمایش کرده و آن را برای ادغام با کد منبع اصلی آماده می کنند. در این مرحله ممکن است از اسکریپت ها و ابزارهایی برای خودکارسازی تست ها استفاده شود. اما برای اجرای دستی برخی از کدها در سیستم های داخلی شرکت نیاز به حضور فیزیکی طراحان و افسران کنترل کیفیت است.

البته ممکن است در این مرحله محصول نهایی تست شود یا کد نوشته شده در محیط شبیه سازی شده تست شود. به طور معمول، در این مرحله، کد به سرعت اجرا می شود یا از سیستم های کلاینت برای آزمایش کد برای انطباق بیشتر استفاده می شود. مهندس دواپس باید سناریوهای ذکر شده را در نظر بگیرد و در عین حال به فکر انجام خودکار تست ها باشد.

مهندسان دواپس ابزارهایی مانند Jenkins، Bamboo یا Drone برای خودکارسازی آزمایش ها دارند. این ابزارها که معمولاً به عنوان CI (ادغام پیوسته) شناخته می شوند، می توانند فرآیند تست کد را ساده کنند. همچنین، یک مهندس دواپس باید به دنبال پاسخ سوالات زیر باشد:

بر چه اساسی می توان محیط های کاربری تکراری را طراحی کرد؟ با چه معیارهایی باید متوجه شوم که کدام تست از کدام سرویس یا محصول انجام شده است و مهمتر از آن درست بوده است؟ بر چه اساسی باید تاریخچه آزمایش ها را مرور کنم و روندهای فعلی را ارزیابی کنم؟ چگونه می توانم مشکلات را پس از تست کد به طراحان گزارش کنم؟ داده ها و اطلاعات آزمون را از چه منبعی باید دریافت کنم؟ .

دواپس چیست

مرحله استقرار

این مرحله به‌معنای استقرار و توزیع کدها در محیطی است که درباره بحث ما سرور اصلی نرم‌افزار است. در مرحله استقرار این موضوع مورد بررسی قرار می‌گیرد که کدهای نوشته شده چگونه و با چه نظمی باید در محصول نهایی وارد شوند و کدام کدها باید در سمت کاربر نهایی به مرحله اجرا درآیند.

یک مهندس دواپس از ابزارهایی مشابه با ابزارهای CI (خودکارسازی آزمایش‌ها) برای خودکارسازی این جریان استفاده می‌کند. در این مرحله نیز یک مهندس دواپس باید به‌دنبال پاسخ‌گویی به پرسش‌های زیر باشد:

در چه بازه زمانی یک نسخه آماده شده از نرم‌افزار را باید مستقر کرد؟ چگونه می‌توانم بدون اطلاع مشتری سرویسی را مستقر کنم؟ از چه راهکاری باید استفاده کنم تا مطمئن شوم سرویسی که به‌تازگی مستقر کرده‌ام، در کار سایر سرویس‌ها اختلال ایجاد نمی‌کند؟ در مدت زمان استقرار خودکار چگونه می‌توان یک سری از مراحل را به‌شکل دستی و غیرخودکار مستقر کرد؟

بر مبنای چه راهکاری می‌توان فرآیند استقرار را با رویکردی تکرارپذیر انجام داد؟ در مقایسه با مراحلی که به آن‌ها اشاره شد، مرحله استقرار زمان قابل توجهی از وقت مهندسان دواپس را به خود مشغول نمی‌کند. در مقابل مرحله نگهداری همان‌ گونه که مشاهده خواهید کرد، زمان قابل توجهی از وقت مهندسان دواپس را می‌گیرد.

مرحله نگهداری

همانطور که در پاراگراف قبل اشاره کردیم، مرحله تعمیر و نگهداری نرم افزار یکی از مراحلی است که بیشتر وقت مهندسان دواپس را می گیرد. اگر به تاریخچه شرکت های بزرگی مانند گوگل نگاهی بیندازید، خواهید دید که یک شغل صرفاً با هدف نگهداری در این سایت به‌نام Site Reliability Engineering در نظر گرفته شده است. مهندسان این بخش معتقدند وظیفه ای که بر عهده آنها گذاشته شده

همان وظیفه ای است که برای تعمیرکاران بخش ماشین های مسابقه ای محول شده است و شما در میانه مسابقه ماشین سواری هستید که خودروها با سرعت ۱۵۰ کیلومتر در حال حرکت هستند.

در ساعت و اکنون به فکر تعویض لاستیک این خودروها هستید. مرحله تعمیر و نگهداری مربوط به انجام وظایفی است که در نهایت یک سیستم را در دسترس قرار می دهد و کارایی آن را حفظ می کند. در این مرحله، یک مهندس دواپس باید به دنبال پاسخ سوالات زیر باشد.

بر مبنای چه راهکاری قادر خواهم بود ایرادات و اشکال‌های موجود در سرویس یا محصولی را شناسایی کنم؟ بر مبنای چه راهکاری باید خطاهای موجود در محصول یا سرویسی را به تیم‌های مربوطه اعلام دارم؟ بر مبنای چه راهکاری باید اشکال‌های موجود در زیرساخت یک محصول را برطرف کنم؟ مهندسان چگونه اشکالات شناسایی شده در سرویس‌ها را برطرف می‌کنند؟ من به‌عنوان یک مهندس دواپس بر مبنای چه راهکاری باید از درست کار کردن یک سرویس اطمینان حاصل کنم؟

درنهایت

همان‌ گونه که ممکن است حدس زده باشید، وظیفه‌ای که یک مهندس دواپس عهده‌دار آن است در واقع مشتمل بر وظایف چندگانه است. به ‌طوری که درنهایت یک مهندس دواپس باید بتواند طراحان و مهندسان اجرایی را به‌شکلی نظام‌مند در کنار یکدیگر قرار دهد. در مجموع دواپس حلقه گمشده‌ای میان اجرای کدها به‌صورت مستقل و اجرای آن‌ها در نرم‌افزار یا سرویس نهایی است.

ارنست مولر فارغ‌التحصیل رشته مهندسی برق دانشگاه رایس و سازمان‌دهنده کنفرانس DevOpsDays در آستین تگزاس در ارتباط با دواپس می‌گوید: «بهتر است دواپس را یک تحویل و عملیات چابک نرم‌افزاری (Agile Software Delivery and Operations) توصیف کنیم. رویکردی که در آن افراد از طریق همکاری و مشارکت با یکدیگر روی ایده‌های بزرگ سازمانی کار می‌کنند، بدون آنکه ارزش پیشنهادی اصلی خود را به دست فراموشی بسپارند.»

Click to rate this post!
[Total: ۰ Average: ۰]
نمایش بیشتر

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا