بحث های زیادی پیرامون DevOps  و فلسفه آن وجود دارد که در اینجا سعی کرده ام به طور ساده شرح دهم که DevOps به عنوان فرهنگ توسعه نرم افزار از

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

Dev مخفف “Development” توسعه نرم‌افزار و Ops مخفف “Operations” عملیات فناوری اطلاعات است. مجموعه‌ای از روشها، فرایندها و ابزارهایی است که با تمرکز بر ارتباطات، همکاری و یکپارچگی بین تیم‌های توسعه نرم‌افزار و عملیات فناوری اطلاعات، ارزش‌های تولید شده را به‌طور سریع و مداوم به مشتریان نهایی می‌رساند.

 

تاریخچه:

در سال ۲۰۰۹ در شهر Ghent در بلژیک کنفرانسی با عنوان devopsdays برگزار شد. این کنفرانس توسط مدیر پروژه Agile با نام پاتریک دبیوس (Patrick Debios) برگزار شد. این کنفرانس الان در اکثر کشورها برگزار می شود.

در سال ۲۰۱۲، State of DevOps توسط آلانا براون (Alanna Brown) در پاپت (Puppet) برگزار شد. در سال ۲۰۱۴ نیز به صورت سالانه State of DevOps توسط نیکل فرگوسن (Nicole Forsgren)، جن کیم (Gene Kim) و جز هامبل (Jez Humble) و دیگران برگزار و معرفی شد.

(از ویکی پدیا)

 

شرح:

در اینجا با واژه DevOps و تاریخچه آن آشنا شدیم، حال به تعریف های دیگر و کارکرد های آن در دنیای فناوری اطلاعات آشنا می شویم.

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

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

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

 

این نکته را به یاد داشته باشید که DevOps جایگزین موارد زیر نیست:

  • جایگزین Agile
  • جایگزین تست های دستی و واحد QA
  • جایگزین واحد عملیات
  • وابسته به فناوری Open-source
  • سرویس و ابزارهای نرم افزاری

 

DevOps IT: زنجیره ابزار و معماری

در حالی که DevOps به عنوان یک سرویس (DevOps-as-a-service) و محصولاتDevOps Products) DevOps) مفاهیم بازاریابی هستند که برای برقراری ارتباط با مخاطب خاص طراحی شده اند، ابزارهای نرم افزاری خاصی وجود دارند که برای توانمند سازی شیوه ها و فرآیندهای DevOps طراحی شده اند.

ما گاهی اوقات به دسته ای از ابزارهای نرم افزاری که در محیط های DevOps استفاده می شود به عنوان یک زنجیره ابزار مراجعه می کنیم.

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

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

 

این طبقه بندی شامل:

  • توسعه کد
  • ساخت و ادغام مداوم (CI)
  • اتوماتیک سازی فرایند تست
  • پکیج اپلیکیشن قبل از استقرار
  • مدیریت نسخه ها
  • پیکربندی زیرساخت ها
  • نظارت بر بهبود عملکرد

 

 

خدمات ابری، میکروسرویس ها و مجازی سازی:

اجرای مؤثر ابزارها و روشهای DevOps برای آزمایش، استقرار، نظارت و اصلاح كد و سیستمهای پیچیده در پشت غول‌های اقتصادی مانند Netflix ،Amazon ،Microsoft و Google که اغلب به یك معماری نرم افزاری معروف است و با عنوان میکروسرویس ها شناخته می شود.

 

سام گاکنهایمر(Sam Guckenheimer) از استودیو ویژوال مایکروسافت، میکروسرویس ها را به عنوان “الگوی معماری ساخت یک برنامه توزیع شده از سرویس های استقرار یافته و جداگانه که وظایف تجاری خاص را انجام می دهند و می تواند از طریق وب ارتباط برقرار کند” توصیف می کند.

گاکنهایمر، نویسنده چهار کتاب در مورد DevOps و Agile، توصیه می کند از معماری میکروسرویس به همراه روشهای DevOps استفاده کنید تا مدت زمان لازم برای استفاده از تغییرات در کد یا پیکربندی کمتر شود.

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

 

ارزش های DevOps:

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

DevOps یک روش منحصر به فرد برای توسعه نرم افزار است زیرا این عمل به جای تشویق به ایزوله کردن عملکردها، همدلی را از طریق فرهنگ همکاری و ارتباطات ترویج می کند. جان ویلیس (John Willis) مدل CAMS(فرهنگ، اتوماسیون، اندازه گیری و اشتراک گذاری) را برای توصیف افکار خود در مورد ارزش هایی که DevOps انجام می دهد، ایجاد کرد:

 

فرهنگ (Culture):

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

 

اتوماسیون(Automation):

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

 

اندازه گیری(Measurement):

به منظور تعیین اینکه آیا DevOps به طور مداوم در حال بهبود فرآیندها است، اعضای تیم باید داده ها را جمع آوری و تجزیه و تحلیل کنند. یکی از معیارهای اساسی که باید در نظر گرفته شود شامل مدت زمان بازیابی (Mean Time To Recovery (MTTR است، یعنی مدت زمان لازم برای بازیابی از یک محصول یا خرابی سیستم.

 

اشتراک گذاری(Sharing):

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

DevOps به اصول بهبود مستمر و همکاری این اصول بستگی دارد.

 

جایگاه شغلی DevOps :

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

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

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

 

نویسنده: مهندس ایوب شافعی

    ارسال نظر

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

بالا