از زمان معرفی DevOps تاکنون کمتر از یک دهه طول کشیده است که این راهکار از یک کلمهی کلیدی به بهترین روش برای مدیریت تغییر تکنولوژی و ارائهی نرمافزار در یک محیط سازمانی و بسیار رقابتی تبدیل شود. معنی DevOps چیست؟ توسعه ی عملیات، دواپس یا DevOps مخفف توسعه ی نرمافزار DEVelopment و عملیات فناوری اطلاعات OPerationS می باشد. اما حتی باوجوداینکه مثالهای زیادی در کنفرانسهای تکنولوژی، کتابها و بلاگهای پیشرو در کل دنیا ارائه میشود، اکثر تیمها هنوز نمیدانند از کجا باید شروع کنند و پس از برداشتن اولین قدمها چه کنند. در مورد پیشرفت سازمانها در مسیر DevOps خود تحقیقاتی انجام شده و پس از بررسی دادهها مشخص شد که سازمانهای موفق مراحل بهخصوصی را طی میکنند. این تحقیقات همچنین چندین اقدام بنیادی را نشان داد که نامشان را «اقدامات اساسی» گذاشتهاند و در جهت رسیدن به موفقیت حیاتی هستند.
انتخاب مسیر سازمان
هر سازمانی باید از نقطهی خاصی شروع کند، باید توجه داشت که هر سازمان تکنولوژیهای قدیمی، راههای تثبیتشدهای برای انجام کارها، مأموریت کاری و فرهنگ بهخصوص خود را دارد. پس مسیر ثابتی برای تغییر و تحول DevOps وجود ندارد؛ بلکه مسیرهای مختلفی برای تکامل به چشم میخورد. تجزیهوتحلیل دادهها از گزارش وضعیت مشاهدهپذیری در سال 2021 اقداماتی حیاتی را نشان داد که تیمهای موفق آنها را اعمال میکنند. این اقدامات آنقدر ارتباط زیادی با موفقیت DevOps دارند که میتوان گفت در هر مرحله از توسعهی DevOps حیاتی هستند. بهعبارتدیگر، اقداماتی که باید در هر مرحله طی شود تا پیشرفت به مرحلهی بعدی انجام گیرد، حتی برای سازمانهایی که در مسیر DevOps خود بسیار پیشروی کردهاند و بیشترین موفقیت را از خود نشان دادهاند، همچنان مهم است.
ویدیوهای بیشتر درباره ی DevOps
توصیف 5 اقدام اساسی در یک جمله
- مانیتورینگ و هشداردهی توسط تیمی که سرویس را مدیریت میکنند قابل پیکربندی باشند.
- الگوهای پیادهسازی برای ساخت برنامههای کاربردی یا خدمات مجدداً مورداستفاده قرار میگیرند.
- الگوهای تست برای ساخت برنامههای کاربردی یا خدمات مجدداً مورداستفاده قرار میگیرند.
- تیمها بهبودهایی را برای ابزاری که توسط تیمهای دیگر فراهم شده است ارائه میدهند.
- پیکربندیها توسط ابزار مدیریت پیکربندی مدیریت میشوند.
وقتی هر یک از این اقدامات را با دقت بیشتری بررسی می کنیم، متوجه می شویم احتمال اینکه سازمانهایی که تکامل زیادی داشتهاند در مسیر تکامل خود از این اقدامات استفاده کنند بسیار بیشتر از سازمانها با تکامل کمتر بود. نتیجهای که میشود گرفت این است که اقدامات اساسی که بالاتر فهرست شدند جزئی از DevOps و برای موفقیت آن ضروری هستند.
اقدامات اساسی و CAMS
اهمیت عناصر اساسی DevOps برای هرکسی که روی آن دقیق شود آشکار است. ساختارهای مهم دیگر نیز حول این مبانی ساخته میشوند. مدل CAMS که یکی از اولین توصیفها از DevOps است، این الگوهای اساسی و شناخته شده را از اهمیت اندازهگیری تا نیاز به خودکارسازی، در بر میگیرد. الگوها و روشهای متداول دیگر در بحث DevOps مثل حرکت به چپ یا همان Shifting Left، تقویت تیمها، توسعهی مبتنی بر تست و غیره نیز این الگوها و اقدامات اساسی را تقویت میکنند.
بیشتر بخوانید: DevOps چیست؟ معماری و سه اصل مبنایی این رویکرد کدام است – قسمت اول
منظور از اهمیت اشتراکگذاری DevOps چیست
در حین بررسی اقدامات اساسی، این نتیجه حاصل شد که همگی به اشتراکگذاری بستگی دارند و آن را ارتقا میدهند. وقتی بخواهیم بررسی کنیم که چه چیزی در DevOps به اشتراک گذاشته میشود، باید با پیکربندی و مانیتورینگ/هشداردهی شروع کنیم.
مانیتورینگ و هشداردهی
- توسط تیمی که در سرویس عملیات میکند قابل پیکربندی است.
- کلید اشتراک اطلاعات در مورد نحوهی اجرای سیستمها و برنامههای کاربردی است.
- با این هدف طراحی شده است که همهی افراد به درک مشترکی از نحوهی کار سیستمها برسند.
این درک مشترک برای انجام بهبودها حیاتی است، چه این بهبودها در یک تیم و عملکرد واحد باشند، چه روی چندین تیم و عملکرد پخش شده باشند. الگوهای اشتراکگذاری دیگر عبارتاند از:
الگوهای تست و الگوهای پیادهسازی برای ساخت برنامههای کاربردی یا خدمات مجدداً مورداستفاده قرار میگیرند. اشتراک الگوهای موفق بین برنامههای کاربردی یا سرویسهای متفاوت معمولاً به معنی اشتراک بین تیمهای مختلف و ایجاد شیوههای کاری است که همه روی آن توافق دارند و مبنایی را برای بهبودهای آینده فراهم میکند.
تیمها بهبودهایی را برای ابزاری که توسط تیمهای دیگر فراهم شده است ارائه میدهند. این شکل از اشتراک موجب صحبتهای بیشتر بین تیمها در مورد اولویتها و برنامهریزیها برای بهبودهای آینده در حوزهی ابزار، فرایند و اندازهگیری میشود. پیکربندیها توسط ابزار مدیریت پیکربندی مدیریت میشوند.
بیشتر بخوانید: آسیبپذیری برنامههایِ تحت وبِ بانکها و اهمیت استفاده از Secure DevOps
ابزار مدیریت پیکربندی به تیمهای توسعه، امنیت و تیمهای دیگر خارج از Ops امکان ایجاد تغییرات در پیکربندیهای سیستم و برنامه کاربردی را میدهد. این امر باعث میشود که اجرا و امنیت در کل سازمان، مسئولیتی مشترک باشد.
تمام اقدامات اساسی به اشتراکگذاری وابسته هستند و موفقیت در توسعهی DevOps وابسته به اقداماتی است که اشتراکگذاری را ترویج میدهند. این امر کاملاً منطقی بوده زیرا وقتی مردم میبینند که چیزی خوب پیش میرود، میخواهند آن موفقیت را تکرار کنند و البته که افراد دوست دارند موفقیت خود را به اشتراک بگذارند. مثلاً شاید تیمی ده بار پشت سر هم با موفقیت یک برنامه کاربردی را پیادهسازی کرده باشد، اما این نوع پیادهسازی برای تیم دیگری بسیار مشکلساز شده باشد؛ احتمالاً فردی از تیم دوم متوجه شود و بخواهد بداند که تیم اول چطور این کار را انجام داده است. اینگونه است که اقدامات DevOps بین تیمهای مختلف گسترش پیدا میکنند.
پنج اقدام اساسی در تکامل DevOps چیست؟
- مانیتورینگ و هشداردهی توسط تیمی که سرویس را مدیریت میکنند قابل پیکربندی باشد.
یکی از نکات کلیدی در حرکت DevOps این است که باید آنرا مانند سکه ای در نظر گرفت که یک طرف آن توانمندسازی و طرف دیگر مسئولیتپذیری می باشد، تیمهایی که توانمند شدهاند و برنامههای کاربردی و سرویسهایی را در تولید اجرا میکنند، میتوانند مشخص کنند که یک سرویس خوب چه چیزی است؛ چطور میتوان تعیین کرد که آیا بهخوبی کار میکند یا نه و چطور مشخص میشود که چه زمانی خوب کار نمیکند. این رویکرد به مانیتورینگ با توانمندسازی میتواند شکلهای زیادی به خود بگیرد. برای مثال:
- قرار دادن یک پیکربندی مانیتورینگ در یک مکان و بعد برداشتن آن
- وارد شدن به رابط کاربری وب برای پیکربندی مانیتورینگ خود
- اضافه کردن خروجیهای قابل پیکربندی به کد زیرساخت خود
- ممکن است یک API بوده که مانیتورینگ آن باید بهصورت کد پیکربندی شود.
مشخص شد که وقتی سازمانها چالش هایی را با DevOps میبینند، میتوانند معیارهای مانیتورینگ و هشداردهی خود را برای برنامههای کاربردی و سرویسهای تولیدی تعریف کنند. تیمهایی که توانمند شدهاند و برنامههای کاربردی و سرویسهایی را در تولید اجرا میکنند، میتوانند مشخص کنند که یک سرویس خوب چه چیزی است؛ چطور میتوان تعیین کرد که آیا بهخوبی کار میکند یا نه و چطور مشخص میشود که چه زمانی خوب کار نمیکند. آنها همچنین از خودکارسازی بهره میبرند تا تأثیر کار خود را چند برابر کرده و کارهای تکراری با ارزش کم را به حداقل برسانند.
توانمندسازی تیمها برای مدیریت و اشتراک و هشداردهیهای خود از چندین عنصر DevOps پشتیبانی میکند؛ عناصری از جمله:
- اشتراک معیارهای سنجش برای بهبود مداوم
- ایجاد و ترویج فرهنگ یادگیری مداوم
- همکاری بین تیمی و تیمهای توانمندشده
- توسعهی تفکر سیستمی در افراد و تیمها
همانطور که قبلاً اشاره شد، این موارد فاکتورهایی مرکزی برای یک فرهنگ DevOps قدرتمند هستند، پس جای تعجبی ندارد که سازمانهای بسیار تکاملیافته بسیار سریع این فرهنگ را اتخاذ میکنند.
چه چیزی، چگونه باید اندازهگیری شود؟
تحقیقات نشان داده است که مانیتورینگ و هشداردهی باید در مورد چه چیزهایی باشد:
- معیارهای سنجش سیستم کلیدی مثل میزان تأخیر، زمان پاسخدهی، استفاده از منابع و غیره. 56 درصد از سازمانهایی که در این تحقیق شرکت کردند این موارد را افشا نمودند.
- اهداف کسبوکار که از معیارهای سنجش سیستم گرفته شدهاند، مثلاً اندازهگیری زمان پاسخ بهعنوان نشانهای برای رضایت کاربر. بیش از 37 درصد این موارد را مانیتور میکنند.
- دسترسی برحسب تقاضا به معیارهای سنجش واقعی سازمانی مثل Time on Site، باز شدن برنامه کاربردی، Sign-upهای کاربران و غیره.
بیست درصد از سازمانها این مورد را فراهم کردهاند. جمعآوری این دادهها به افراد بهترین فرصت را میدهد تا بتوانند تجزیهوتحلیل کنند و مشخص نمایند که مشکلات در سیستمهای مدرن و پیچیده از کجا ناشی میشوند. در دسترس بودن تمام این دادهها کار را برای افراد سادهتر میکند تا بتوانند مشخص کنند که مشکلات در کجا رخ دادهاند و چطور میتوان سریعتر آنها را برطرف کرد.
اهمیت مانیتورینگ
مانیتورینگ میتواند با نشان دادن موفقیتهایی که تاکنون بدست آمده است بهگونهای که سازمان متوجه شود، به تیم کمک کنند منابع بیشتری را برای رویکرد DevOps خود بدست آورند.