دواپس چیست ؟ ( DevOps ) توضیح ۰ تا ۱۰۰ دواپس / ۲۰۲۲


دواپس چیست ؟ ( DevOps ) و یک مهندس دواپس چه کاری انجام میدهد؟
فهرست موضوعات مطالب
دواپس چیست دواپس از ترکیب دو واژه Development بهمعنای «توسعه نرمافزار» و OperationS بهمعنای «عملیات فناوری اطلاعات» تشکیل شده است. دواپس یک فرآیند تولید نرمافزار است که بر ارتباط و همکاری هرچه بیشتر تیمهای توسعه نرمافزار با تیمهای اجرایی تمرکز و تأکید دارد.
اگر با مدیران استخدام شرکت ها صحبت کنید، متوجه خواهید شد که بسیاری از این افراد مشتاق استخدام مهندسان دواپس هستند. در حالی که برخی از این مدیران استخدام با این اصطلاح آشنا هستند، برخی دیگر هیچ آشنایی با این اصطلاح ندارند.
بسیاری از این افراد کنجکاو هستند که بدانند اساساً یک مهندس دواپس چه کاری می تواند انجام دهد. اما قبل از اینکه وارد کاری شویم که یک مهندس دواپس می تواند انجام دهد، ابتدا باید این اصطلاح را تعریف کنیم. دواپس ترکیبی از دو عبارت Development به معنای «توسعه نرم افزار» و OperationS به معنای «عملیات فناوری اطلاعات» است.
دواپس چیست یک فرآیند توسعه نرم افزار است که بر اتصال و همکاری بیشتر تیم های توسعه نرم افزار با تیم های اجرایی تمرکز دارد. این فرآیند به دنبال خودکارسازی عملیات هایی مانند یکپارچه سازی، آزمایش، استقرار و یک سری تغییرات اساسی است. به طور کلی، دواپس به دنبال ایجاد فرهنگ و محیطی است که در آن تولید، آزمایش و انتشار نرم افزار می تواند سریع، مستمر و قابل اطمینان کامل شود.
مطالب مرتبط
- آموزش نصب ویندوز ۱۱ با فلش
- چگونگی کسب درامد از اینستاگرام
- بزرگترین حملات سایبری تاریخ
- بهترین بازی های کامپیوتری آفلاین و آنلاین
- آموزش کنترل از راه دور کامپیوتر با گوشی
- معرفی ۲۰ تا از بهترین ابزار های تست نفوذ
برای آنکه درک بهتری از این مفهوم داشته باشید و بدانید یک مهندس دواپس به طور دقیق قادر به انجام چه کارهایی است، ابتدا باید چرخه تولید نرمافزار را مورد بررسی قرار دهید. محصولات نرمافزاری کوچک و بزرگی که روزانه مورد استفاده قرار میدهید، پس از گذراندن یک چرخه پنج مرحلهای آماده میشوند و به دست شما میرسند.
این پنج مرحله عبارتند از برنامهریزی (Planning)، توسعه (Development)، آزمایش (Testing)، استقرار/ انتشار (Deployment) و درنهایت نگهداری/ پشتیبانی (Maintenance) که در این میان دو مرحله برنامهریزی و نگهداری بخش عمدهای از وقت مهندسان دواپس را از آن خود میکنند.
مرحله برنامهریزی
در مرحله اول که به برنامه ریزی یا برنامه طرح ریزی معروف است، اعضای تیم متشکل از توسعه دهندگان، مدیران تولید و … چشم انداز و اهداف پروژه و قالب کلی نرم افزار را تعریف می کنند.
در این مرحله وظیفه مهندس دواپس استفاده از دانش فنی اعضای تیم و تسلط اعضا بر زیرساخت ها و چارچوب های موجود و ارزیابی چگونگی دستیابی به این امر در یک سیستم جامع و یکپارچه به تمامی دیدگاه ها و دیدگاه ها می باشد. اهدافی که تیم دنبال می کند. دواپس چیست
هنگامی که سیستم اولیه پیاده سازی و راه اندازی شد، باید در نظر گرفته شود که چگونه تیم می تواند فناوری ها یا اجزای پیش ساخته را با سیستم موجود یکپارچه کند.
برای اینکه این کار به بهترین شکل ممکن انجام شود، ممکن است لازم باشد برنامه ریزی دقیقی برای استفاده از این مؤلفه ها و اجرای خودکار آنها داشته باشید. در این مرحله موارد دیگری از جمله نحوه ایجاد بانک اطلاعاتی جدید و پشتیبانی از ریزسرویس های زیرساختی جدید در سامانه اولیه مورد بررسی قرار می گیرد.
موضوعاتی مانند تعمیر و نگهداری و اتوماسیون نیز در این مرحله بررسی می شوند. در واقع مهندس دواپس در این مرحله و در بیشتر موارد به دنبال یافتن راه هایی برای خودکارسازی فرآیندهای مختلف است، این اتوماسیون فشار روی تیم را به میزان قابل توجهی کاهش می دهد. در این مرحله، مهندس دواپس به دنبال پاسخ برای سوالات زیر است:
چگونه دو سرویس مختلف می توانند با یکدیگر تعامل داشته باشند؟ برای برقراری ارتباط بین دو سرویس از چه پروتکلی باید استفاده کرد؟ آیا سخت افزار موجود پاسخگوی نیازهای ما خواهد بود یا بهتر است از خدمات ابری برای رسیدن به این هدف استفاده کنیم؟ چه پارامترهایی را باید در نظر بگیریم تا بتوانیم به مهندسان / کدگذاران در مرحله تولید کمک کنیم؟
سرویس آماده تولید چیست؟ چگونه می توانیم از همه نرم افزارهای موجود برای استفاده حداکثری از آن استفاده کنیم؟ آیا میتوان تمام وابستگیهای مورد استفاده در نرمافزار را کنترل کرد و آیا درک ما از این عوامل به اندازهای جامع است
که بتوانیم در صورت بروز مشکل، آنها را رفع اشکال کنیم؟ چه کامپوننت هایی بسازیم و چه اجزایی بخریم؟ آیا می توان یک کار خاص را خودکار کرد؟ چگونه می توانیم در آینده از نرم افزار طراحی شده پشتیبانی کنیم؟
دواپس چیست ؟ مرحله توسعه
در مرحله توسعه نرم افزار، کل حجم کار مورد انتظار است و اکنون این بر عهده توسعه دهندگان است که مرتب سازی و ایجاد ویژگی های منحصر به فردی را که باید در محصول گنجانده شود، آغاز کنند. مهندسان دواپس اکنون به دنبال راه حلی هستند تا این وظایف را به بهترین شکل و در کمترین زمان ممکن انجام دهند.
این رویکرد دقیقاً مطابق با چشم انداز کار با تولید نرم افزار است. مهندسان دواپس ابزارهای مورد استفاده طراحان را نشان می دهند و ابزارهای مورد نیاز توسعه دهندگان را فراهم می کنند. کار دیگر دواپس ایجاد کدهای مختلف طراحی شده توسط طراحان بود.
محیط توسعه نوشته شده است را دریافت کرده و این قطعات را در کنار یکدیگر قرار داده و این مؤلفهها را با محیط/ خروجی نهایی نرمافزار هماهنگ سازد. این وظیفهای نیست که بتوان آن را به عهده طراحان واگذار کرد.
امروزه اگر مهندسان دواپس در شرکتهای مختلف حضور نداشتند، ما قادر نبودیم از نرمافزارهای مطرح و شاخص استفاده کنیم. (شکل ۲) سؤالاتی که یک مهندس دواپس در این مرحله باید بهدنبال پاسخگویی به آنها باشد به شرح زیر است:
چگونه باید طراحان را در محیطی مشابه با محیط محصول نهایی نگه دارم و در همین راستا به آنها اجازه دهم تا از ابزارهایی که به آنها علاقه دارند یا در آن تخصص دارند استفاده کنند؟
چگونه میتوانم عملکرد طراحان را بهشکل مطلوبی افزایش دهم؟ چگونه میتوانم برای طراحان توضیح دهم که در حال کدنویسی برای چه محیطی هستند و محیط نهایی نرمافزاری که آماده خواهد شد چگونه خواهد بود؟
مرحله آزمایش
در مرحله آزمایش، طراحان و افراد مسئول کنترل کیفیت، کد نوشته شده را آزمایش کرده و آن را برای ادغام با کد منبع اصلی آماده می کنند. در این مرحله ممکن است از اسکریپت ها و ابزارهایی برای خودکارسازی تست ها استفاده شود. اما برای اجرای دستی برخی از کدها در سیستم های داخلی شرکت نیاز به حضور فیزیکی طراحان و افسران کنترل کیفیت است.
البته ممکن است در این مرحله محصول نهایی تست شود یا کد نوشته شده در محیط شبیه سازی شده تست شود. به طور معمول، در این مرحله، کد به سرعت اجرا می شود یا از سیستم های کلاینت برای آزمایش کد برای انطباق بیشتر استفاده می شود. مهندس دواپس باید سناریوهای ذکر شده را در نظر بگیرد و در عین حال به فکر انجام خودکار تست ها باشد.
مهندسان دواپس ابزارهایی مانند Jenkins، Bamboo یا Drone برای خودکارسازی آزمایش ها دارند. این ابزارها که معمولاً به عنوان CI (ادغام پیوسته) شناخته می شوند، می توانند فرآیند تست کد را ساده کنند. همچنین، یک مهندس دواپس باید به دنبال پاسخ سوالات زیر باشد:
بر چه اساسی می توان محیط های کاربری تکراری را طراحی کرد؟ با چه معیارهایی باید متوجه شوم که کدام تست از کدام سرویس یا محصول انجام شده است و مهمتر از آن درست بوده است؟ بر چه اساسی باید تاریخچه آزمایش ها را مرور کنم و روندهای فعلی را ارزیابی کنم؟ چگونه می توانم مشکلات را پس از تست کد به طراحان گزارش کنم؟ داده ها و اطلاعات آزمون را از چه منبعی باید دریافت کنم؟ .
مرحله استقرار
این مرحله بهمعنای استقرار و توزیع کدها در محیطی است که درباره بحث ما سرور اصلی نرمافزار است. در مرحله استقرار این موضوع مورد بررسی قرار میگیرد که کدهای نوشته شده چگونه و با چه نظمی باید در محصول نهایی وارد شوند و کدام کدها باید در سمت کاربر نهایی به مرحله اجرا درآیند.
یک مهندس دواپس از ابزارهایی مشابه با ابزارهای CI (خودکارسازی آزمایشها) برای خودکارسازی این جریان استفاده میکند. در این مرحله نیز یک مهندس دواپس باید بهدنبال پاسخگویی به پرسشهای زیر باشد:
در چه بازه زمانی یک نسخه آماده شده از نرمافزار را باید مستقر کرد؟ چگونه میتوانم بدون اطلاع مشتری سرویسی را مستقر کنم؟ از چه راهکاری باید استفاده کنم تا مطمئن شوم سرویسی که بهتازگی مستقر کردهام، در کار سایر سرویسها اختلال ایجاد نمیکند؟ در مدت زمان استقرار خودکار چگونه میتوان یک سری از مراحل را بهشکل دستی و غیرخودکار مستقر کرد؟
بر مبنای چه راهکاری میتوان فرآیند استقرار را با رویکردی تکرارپذیر انجام داد؟ در مقایسه با مراحلی که به آنها اشاره شد، مرحله استقرار زمان قابل توجهی از وقت مهندسان دواپس را به خود مشغول نمیکند. در مقابل مرحله نگهداری همان گونه که مشاهده خواهید کرد، زمان قابل توجهی از وقت مهندسان دواپس را میگیرد.
مرحله نگهداری
همانطور که در پاراگراف قبل اشاره کردیم، مرحله تعمیر و نگهداری نرم افزار یکی از مراحلی است که بیشتر وقت مهندسان دواپس را می گیرد. اگر به تاریخچه شرکت های بزرگی مانند گوگل نگاهی بیندازید، خواهید دید که یک شغل صرفاً با هدف نگهداری در این سایت بهنام Site Reliability Engineering در نظر گرفته شده است. مهندسان این بخش معتقدند وظیفه ای که بر عهده آنها گذاشته شده
همان وظیفه ای است که برای تعمیرکاران بخش ماشین های مسابقه ای محول شده است و شما در میانه مسابقه ماشین سواری هستید که خودروها با سرعت ۱۵۰ کیلومتر در حال حرکت هستند.
در ساعت و اکنون به فکر تعویض لاستیک این خودروها هستید. مرحله تعمیر و نگهداری مربوط به انجام وظایفی است که در نهایت یک سیستم را در دسترس قرار می دهد و کارایی آن را حفظ می کند. در این مرحله، یک مهندس دواپس باید به دنبال پاسخ سوالات زیر باشد.
بر مبنای چه راهکاری قادر خواهم بود ایرادات و اشکالهای موجود در سرویس یا محصولی را شناسایی کنم؟ بر مبنای چه راهکاری باید خطاهای موجود در محصول یا سرویسی را به تیمهای مربوطه اعلام دارم؟ بر مبنای چه راهکاری باید اشکالهای موجود در زیرساخت یک محصول را برطرف کنم؟ مهندسان چگونه اشکالات شناسایی شده در سرویسها را برطرف میکنند؟ من بهعنوان یک مهندس دواپس بر مبنای چه راهکاری باید از درست کار کردن یک سرویس اطمینان حاصل کنم
مهارت های DevOps
اغلب گفته می شود که DevOps بیشتر یک فلسفه یا فرهنگ فناوری اطلاعات است تا یک شرح شغل یا مجموعه مهارت. از آنجایی که این حوزه بسیار بزرگ است، موقعیت های DevOps برای متخصصان فناوری اطلاعات بهتر از افراد حرفه ای است.
نقش مهندس دواپس در جهت حرفه ای نیست. متخصصان می توانند از رشته های مختلف وارد این سمت شوند. برای مثال، یک توسعهدهنده نرمافزار ممکن است در عملیاتهایی مانند پیکربندی یک زیرساخت میزبانی برای تبدیل شدن به یک مهندس DevOps مهارت کسب کند. به طور مشابه، یک مدیر سیستم با دانش برنامه نویسی، برنامه نویسی و تست می تواند یک مهندس DevOps شود.
بسیاری از آگهیهای شغلی DevOps به دانش کانتینرها، ابر و CI/CD و همچنین مهارتهای نرم نیاز دارند. ممکن است مهندس دواپس برای دستیابی به نتایج تجاری نیاز به تغییر فرآیندها و حل مشکلات سازمانی داشته باشد.
عناوین دیگری که اغلب در سازمان های DevOps یافت می شوند عبارتند از:
- توسعه دهنده زیرساخت ؛
- مهندس قابلیت اطمینان سایت ؛
- مهندس ساخت و رهاسازی ؛
- متخصص اتوماسیون ؛ و
مهندس پلت فرم CI/CD.
بیشتر مشاغل مبتدی DevOps نیاز به مدرک در علوم کامپیوتر یا رشته های مرتبط، از جمله برنامه نویسی، تست کیفیت و اجزای زیرساخت فناوری اطلاعات دارند. موقعیت های سطح بالاتر ممکن است به مدارک پیشرفته در معماری سیستم ها و طراحی نرم افزار نیاز داشته باشد. افراد در این حرفه همچنین باید دانش خود را از طریق کتاب های DevOps گسترش دهند و از طریق وبلاگ ها و کنفرانس ها با سایر اعضای جامعه ارتباط برقرار کنند.
هیچ گواهینامه DevOps در سطح صنعت مانند چارچوب های رسمی مانند ITIL وجود ندارد. IBM Red Hat دارای گواهینامه DevOps است، در حالی که DevOps دارای گزینه های خنثی فروشنده برای سطوح مختلف از دانش اولیه تا تخصص است.
دلیل اهمیت دواپس چیست؟
تا اینجا ما می دانیم دواپس چیست و این فرآیند شامل چندین مرحله است. در این قسمت به بررسی اهمیت اصل دواپس می پردازیم.
همانطور که می دانید تغییر بر اساس توسعه بازار و نیاز مشتری یکی از ویژگی های اصلی کسب و کارهای فناوری اطلاعات است. قبل از معرفی DevOps، ارتباط ضعیفی بین تیمهای تضمین کیفیت، پیادهسازی، توسعه و سایر تیمها وجود داشت که اغلب یکدیگر را به خاطر مشکلات سرزنش میکردند. از طرفی به دلیل نزدیک بودن به مرز نمی شد از نزدیک آن را رصد کرد.
سیستم DevOps مرز بین دو تیم را محو کرد و آنها را به هم نزدیک کرد. همچنین با خودکار کردن بسیاری از رویههای تکراری، فرآیند ارائه ارزش به مشتریان را سرعت میبخشد.
درنهایت
همان گونه که ممکن است حدس زده باشید، وظیفهای که یک مهندس دواپس عهدهدار آن است در واقع مشتمل بر وظایف چندگانه است. به طوری که درنهایت یک مهندس دواپس باید بتواند طراحان و مهندسان اجرایی را بهشکلی نظاممند در کنار یکدیگر قرار دهد. در مجموع دواپس حلقه گمشدهای میان اجرای کدها بهصورت مستقل و اجرای آنها در نرمافزار یا سرویس نهایی است.
ارنست مولر فارغالتحصیل رشته مهندسی برق دانشگاه رایس و سازماندهنده کنفرانس DevOpsDays در آستین تگزاس در ارتباط با دواپس میگوید: «بهتر است دواپس را یک تحویل و عملیات چابک نرمافزاری (Agile Software Delivery and Operations) توصیف کنیم. رویکردی که در آن افراد از طریق همکاری و مشارکت با یکدیگر روی ایدههای بزرگ سازمانی کار میکنند، بدون آنکه ارزش پیشنهادی اصلی خود را به دست فراموشی بسپارند.»
۴ دیدگاه