این اولین مطلب من در ویرگول هست، راستش تنها چیزی که همیشه مانع من در نوشتن مقالات فنی بوده ، وجود واژه های تخصصی بسیاریه که ترجمه مناسبی در فارسی برای اونها وجود نداره و اغلب واژه انگلیسی برای افراد شناخته شده تر هست. با اینحال شاید این نوشته ها تنها دفتر خاطراتی برای آموزه های من بشه ولی امید دارم که شاید برای شما هم قابل استفاده باشه.
در دنیای نرم افزار مثل دنیای واقعی هر امکانی می تواند در جای خود خوب و بد ، زشت یا زیبا باشد. همیشه وقتی یک pattern رو یاد می گیریم بد نیست که به anti-pattern آن هم نگاهی بندازیم. درواقع بهتر است دو روی یک سکه را ببینیم. چه بسا پیاده سازی یک pattern مناسب در مکان و زمان نامناسب تبدیل به anti-pattern بشود.
این روزها واژه DevOps را تقریبا در اکثر شرکت های نرم افزاری می شنویم. بطور خلاصه می توان گفت که DevOps یک مدل کاری در شرکت است که شامل مجموعه ای از تکنولوژی ، فرهنگ و فرایند می باشد. بله ، حتما به این فکر می کنید که چقدر سخت میشه این سه مورد را در بعضی از سازمان ها دست کاری کرد. کاملا درسته. در این نوشته مطلب جالبی از informationweek ترجمه کردم در مورد اینکه چه سازمان هایی آماده ی پیاده سازی DevOps نیستند.
مانند هر تحول اساسی دیگری که می خواهید در سازمان رخ دهد DevOps هم نیاز به پشتیبانی مدیر عامل ، برنامه نویسان ارشد و رهبران تیم دارد. پس در قدم اول شما به حمایت سیاسی نیاز دارید به این معنی که باید همه ی افراد بالا رتبه ی سازمان را در مورد مزایای استفاده ازین روش به خوبی توجیه و با خود همراه سازید.
صادقانه بگم که من یک طرفدار بزرگ DevOps هستم. چون ایمان دارم که باعث افزایش کیفیت ، کاهش مشکلات و کوتاه شدن چرخه توسعه می شود و غالباً برای سازمانهای بزرگی که به دنبال تغییر چرخه توسعه ، تولید و فعالیت های پشتیبانی خود هستند ، سکوی پرتاب به حساب می آید. اما آیا برای همه ی شرکت ها مناسب است؟!
شرکت هایی که بتوانند DevOps را با موفقیت پیاده کنند قادرند از مزایای استقرار مداوم و روش های اتوماتیک تست نرم افزار استفاده کنند ، اما شرکت هایی که در این راه شکست می خورند در حلقه بی پایان عدم توانایی تحویل محصول در موعد مقرر ، به دام می افتند.
معیارهایی وجود دارد که هر تیم IT باید قبل از تغییر به CI / CD آنها را بررسی نماید که شامل یک نگاه سخت گیرانه به فرهنگ ، فرآیند و حتی سبک مدیریت است. مقالات بسیار زیادی برای متقاعد ساختن شما برای شروع پیاده سازی DevOps وجود دارد. درعوض ، من می خواهم در مورد این موضوع صحبت كنم كه چه كسی و چرا نباید DevOps كار كند تا واقعاً در تشخیص اینکه این همان راه حل مناسب شما است یا خیر به شما كمك كنم.
آیا فرهنگ سازمانی آماده است؟
از آنجا که تبدیل به DevOps به طور همزمان تغییر در فرآیند ، ابزار و فرهنگ است ، نیاز به تغییر فرهنگی در طرز فکر جمعی دارد که احتمالا مملو از شکست خواهد بود. موفقیت DevOps به سه C متکی است: ارتباط (communication) ، همکاری (collaboration) و هماهنگی (coordination) بین تیم های مختلف (از جمله توسعه دهندگان نرم افزار ، تست و کیفیت ، پشتیبانی و مالکان محصول ). اولین چالش درک چگونگی هم ترازی و همبستگی این تیم ها است. سپس ، مدیر اجرایی باید یک الگوی کاری از ارتباطات را با نقاط عطف افزایشی تدوین کند تا به تدریج فرهنگ را به سمت بازترشدن و اتصال بیشتر سوق دهد.
اگر شرکت شما بیش از حد جزیره ای است یا به ساختار سازمانی چند سطحی متکی است ، ممکن است این تغییر فرهنگی بسیار دشوار باشد. غالباً شرکتهای بزرگ با سطوح مدیریتی زیاد و فرآیندهای پیچیده و دیکته شده شکست می خورند. این موضوع ربطی به قدمت سازمان ندارد. برخی از شرکتها می توانند صدها سال قدمت داشته باشند ، در حالی که برخی دیگر می توانند جدیدترین و بزرگترین سازمانهای مدرن باشند که به سادگی در روشهای موجود خود گیر کرده اند. اگر فرهنگ تغییر نکند ، در نهایت روند واقعی DevOps محکوم به شکست خواهد شد.
آیا ساختار نرم افزاری شما از پس DevOps برمی آید؟
علاوه بر این که DevOps بسیار وابسته به فرهنگ است ، همچنین نیاز به تغییر در نحوه معماری ، ساخت ، تست و استقرار نرم افزار دارد. در ابتدا، ممکن است این امر به نظر یک امر بدیهی باشد ، اما غالبا در واقعیت قابل اجرا نیست.
معماری نرم افزار یکپارچه با وابستگی های پیچیده بین لایه ها و تیم های مختلف می تواند باعث شود که پیاده سازی DevOps به یک چرخه ی باطل تلاش و شکست منجر شود. غالبا کیفیت تحت نام چابکی و سرعت قربانی می شود. سازمانهایی که از معماری جدید نظیر معماری میکروسرویس با استفاده از ساختار ابری استفاده می کنند ، معمولاً در اتخاذ یک رویکرد DevOps موفق تر هستند. در این سازمانها ، تیم های محصول یا خدمات می توانند ضمن هماهنگی با اهداف تجاری یا فیدبک مشتری بطور مستقل فعالیت کنند.
از کجا شروع کنیم؟ علائم هشدار دهنده کدامند؟
قبل از ساختن نقشه راه DevOps ، بسیار مهم است که زمانی را به بررسی فرهنگ سازمانی خود صرف کنید. اگر هرکدام از موارد زیر را مشاهده کردید، به احتمال زیاد در مسیر خود با چالش روبرو می شوید:
شرکت شما یک فرایند تعریف شده دارد: شرکت هایی که از قبل عاشق فرهنگ و فرایند توسعه نرم افزار خود هستند با قلاب های نامرئی به آن می چسبند در برابر تغییر مقاومت می کنند و ممکن است DevOps در آنها جایی نداشته باشد.
شرکت شما می خواهد از ابتدا با سر شیرجه بزند: اگر شرکت شما DevOps را فقط بخاطر اینکه رایج ، مد روز و مبتکرانه است ، انتخاب کرده است ، ممکن است شما برای آن آماده نباشید. اجرای مناسب DevOps نیاز به درک واقعی از نتایج با توجه به جوانب مثبت و منفی دارد. به یاد داشته باشید ،DevOps یک طرز فکر است ، نه فقط یک حرکت.
شرکت شما واحدی به نام DevOps می خواهد: تلاش شرکت برای ایجاد DevOps به عنوان یک بخش جداگانه ، بدون اینکه تیم های فعلی Dev و Ops را با هم جمع کند ، محکوم به شکست است. در واقع DevOps یک واحد درد سرساز جانبی نیست بلکه یک تحول بین واحدی است.
تیم های شما متمرکز نیستند: سازمان هایی که تیم های توسعه و پشتیبانی آنها بسیار پراکنده و جدا از یکدیگر هستند ، نمی توانند بدون ایجاد رهبری متمرکز ، آنها را هماهنگ کنند.
به طور خلاصه ، DevOps باید به فرهنگ سازمانی تبدیل شود که توسط مدیر عامل و تیم مدیران عملیاتی با درک صحیح از پیامدها و نتایج هدایت می شود. DevOps یک طرز فکر است که نیاز به تغییری معنی دار و پایدار در فرایند ، فرهنگ و تکنولوژی دارد. دستاوردهای آن بسیار زیاد است اما مانند هر پیشرفت بالقوه دیگر ، شرکت شما مجبور است برای آن هزینه کند.