دوآپس یا DevOps چیست؟

نقش ها و مسئولیت های DevOps

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

تصور کنید که یک مهندس هوافضا بخاطر اینکه مسافر از مقدار فاصله بین صندلیها رضایت ندارد، هنگام پرواز تغییراتی در هواپیما ایجاد کند. این موضوع شاید دور از ذهن به نظر برسد. در گذشته کدنویسی که بر روی مشخصات و الزامات کاملاً تعریف شده پایه ریزی شده و از این چارچوب خارج نمیشد. ولی امروزه توسعه نرم افزار به مراتب پیچیده تر شده است برای روشن کردن این نکته ، این نکات را مد نظر داشته باشید: آمازون هر ثانیه یک نسخه بروزرسانی جدید را منتشر می کند ، Google هر 10 ثانیه و Netflix هر 90 ثانیه. تصور کنید اگر هواپیمایی که در آن پرواز می کنید با همین فرکانس به روز شود ، شک دارم که پرواز راحتی را تجربه کنید. حالا اگر بروزرسانی در موتور حاوی نقص فنی باشد چه اتفاقی می افتد؟ اینها چالش هایی است که مهندسان نرم افزارهمیشه باید با آن کنار بیایند. به همین دلیل است که امروزه  متدDevOps  وجود دارد.

چرا DevOps مهم است؟

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

ساختار تیم DevOps

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

مسئول اصلی که باید وجود داشته باشد ، شخصی است که کل مراحل DevOps را در اختیار دارد. این شخص معمولاً فردی در جایگاه ارشد است که نگهدار فرآیند و رویه ها و ضامن تحویل اهداف DevOps هستند. گذشته از مدیر ارشد ، شما باید حداقل ، نقشهای زیر را ایجاد کنید: مدیر انتشار کد ، کارشناس اتوماسیون ، تضمین کیفیت ، توسعه دهنده نرم افزار / تستر و مهندس امنیت. وظایف DevOps برای هر یک از این منابع در زیر شرح داده شده است.

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

شرح وظایف شغلی DevOps

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

–  مدیر ارشد DevOps که مسئولیت کلیه فرآیند ها و افراد DevOps را بر عهده دارد.
–  مدیر انتشار کد در اصل یک مدیر پروژه است که agile methodology (روش چابک) را درک می کند. آنها مسئولیت اندازه گیری معیارهای مربوط به همه کارها و پیشرفت کلی را بر عهده دارند.
–  کارشناس اتوماسیون که مسئول یافتن ابزارهای مناسب و اجرای فرایندهایی که می توانند هرگونه کار دستی را به صورت خودکار انجام دهند برعهده دارد.
– مسئول  تضمین کیفیت مسئول تجربه کاربر است و تضمین می کند محصول نهایی دارای کلیه مشخصات موجود در فاکتورهای از پیش تعیین شده باشد.
–  توسعه دهنده نرم افزار / تستر  سازنده و تست کننده کد که تضمین می کند هر خط کد با الزامات اصلی مطابقت داشته باشد.
–   مهندس امنیت  با آن همه ی اپراتوردر آنجا به شخصی احتیاج دارید تا شرکت را ایمن و مطمئن نگه دارد. این فرد برای اطمینان از صحت اطلاعات شرکت ها ، باید با همه همکاری نزدیک داشته باشد.

نحوه اجرای DevOps

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

اقیانوس را آب ندهید

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

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

از شکست نترسید

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

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

بداهه نوازی ، سازگاری ، غلبه برموانع

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

همه برای یکی، یکی برای همه

افراد زیادی در ارائه نرم افزار تولید نقش دارند و DevOps باید همه آنها را در بر بگیرد. ارتباطات در کل زنجیره DevOps برای موفقیت بسیار مهم است. این امر باید تا مدیریت اجرایی پیش برود. به تغییر امیدوار باشید. شما باید برای رفتار مطلوب کارکنان انگیزه ایجاد کنید و آنرا در روند کار خود قرار دهید. روی مواردی تمرکز کنید که از نظر مشتری بیشترین ارزش را دارند. از همان ابتدا ذهنیت مشتری را در تیم خود وارد کنید تا بتوانند روی مواردی تمرکز کنند که برای مشتری خود ارزش ایجاد می کند.

همه ما با جزر و مد بلند می شویم و می افتیم

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

کمک بخواهید

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

من حداد پژوم، مشاور مایکروسافت در زمینه سرویس های Sharepoint ,Exchange,Skype For Business و همچنین طراح، مدیر و مشاور شبکه های رایانه ای در مقیاس بزرگ هستم

جوابی بنویسید:

آدرس ایمیل شما به صورت عمومی منتشر نخواهد شد.

فوتر سایت