۱۶ مورد از چالشهای دواپس و راهکارهای برطرف کردن آنها

چند روز پیش مهندس دواپس یکی از تیمها از دغدغههایش میگفت. از پیادهسازی ضعیف و نرسیدن به نتایج دلخواهشان تعریف میکرد و معتقد بود این مسائل هم جزو چالشهای دواپس هستند که باید خودش راهکاری برایشان پیدا میکرد. برای آنکه بتوانم کمکشان کنم جستوجویی کردم و به مطالب مفیدی رسیدم. اگر شما هم مهندس دواپس هستید، برای آشنایی با چالشهای دواپس، مطالعه این مطلب از مجله دانشکار را از دست ندهید.
چالشهای مربوط به پذیرش دواپس
پذیرش دواپس تنها به استفاده از ابزارهای جدید یا تغییر فرآیندهای فنی محدود نمیشود؛ بلکه نیازمند تغییر در فرهنگ سازمانی، نحوه همکاری تیمها با مهندس دواپس و نگرش افراد نسبت به توسعه و عملیات است. بسیاری از سازمانها در مسیر حرکت به سمت دواپس با موانعی مواجه میشوند که میتواند سرعت این تحول را کاهش دهد یا حتی باعث شکست آن شود. در ادامه به چالشهای پذیرش دواپس و راهکارهای آن اشاره کردهایم.
۱. مقاومت در برابر تغییر
بیشتر افراد در برابر تغییر مقاومت نشان میدهند و پیچیدگیهای موجود در مسیر انتقال به دواپس باعث میشود اعضای تیم نسبت به این تغییر رویکرد تردید داشته باشند. از طرفی، نمیتوان تنها با گفتن:«باید روش کارتان را تغییر دهید» انتظار داشت تیمها بهسرعت دواپس را بپذیرند. این تغییر باید بهعنوان یک گام طبیعی برای بهبود فرآیندهای توسعه نرمافزار و افزایش همکاری بین تیمها معرفی شود.
راهکار: پیادهسازی دواپس را مرحلهبهمرحله انجام دهید. این تغییر فرآیندی نیست که بتوان آن را یکشبه اجرا کرد. بهتر است با یک پروژه، محصول یا حتی یک بخش کوچک از سیستم شروع کنید و بهتدریج تجربه و دانش لازم را در سایر بخشهای سازمان گسترش دهید. وقتی تیمها بهمرور مزایای این رویکرد جدید را در عمل مشاهده کنند، افراد بیشتری برای پذیرش آن آماده میشوند و این روند مانند یک اثر زنجیرهای، پذیرش دواپس را در کل سازمان آسانتر خواهد کرد.

۲. تغییر تیمهای تخصصی به چندتخصصی
در روشهای سنتی توسعه نرمافزار، معمولاً تیمها بر اساس حوزه تخصصی خود فعالیت میکردند؛ برای مثال، یک تیم مسئول رابط کاربری بود، تیمی دیگر روی بخش سمت سرور کار میکرد و تیم دیگری مدیریت پایگاه داده را بر عهده داشت. اما پذیرش فرهنگ دواپس مستلزم فاصله گرفتن از این تیمهای تخصصی و جدا از هم و حرکت به سمت تیمهای چندتخصصی است؛ تیمهایی که مسئولیت یک قابلیت یا محصول را از زمان توسعه تا پایان چرخه عمر آن بر عهده دارند.
راهکار: همهچیز در نهایت به ایجاد فرهنگ سازمانی مناسب و فراهم کردن بستری برای همکاری مؤثر برمیگردد؛ بهگونهای که همکاری میان تیمها به نتیجه معکوس منجر نشود. علاوهبر این، باید برای توسعه اعضای تیم سرمایهگذاری کنید و به آنها فرصت دهید مهارتهای خود را گسترش دهند تا بتوانند در حوزههای مختلف، درک و توانایی بیشتری پیدا کنند.
۳. تمرکز بیشازحد بر ابزارها
درست است که ابزارها نقش مهمی در اجرای دواپس دارند، اما دواپس صرفاً به ابزارها محدود نمیشود. چیزی که در واقع به شما کمک میکند مشکلات را حل کنید، تغییر نگرش و فرهنگ سازمانی است. این تمرکز بیشازحد بر ابزارها از نیاز به آموزش اعضای تیم برای کار با ابزارهای دواپس و اطمینان از سازگاری و یکپارچه شدن آنها با زیرساخت موجود سازمان نیز ناشی میشود.
راهکار: پس از اینکه ساختار مناسب را در سازمان ایجاد کردید، میتوانید فرآیندهای موردنیاز را تعریف کنید. در مرحله بعد، ابزارهایی را که برای اجرای این فرآیندها به آنها نیاز دارید، مشخص کنید. بااینحال، همیشه توجه بیشتری به تیم خود نسبت به ابزارها داشته باشید؛ زیرا نیروی انسانی مهمترین عامل در مسیر حرکت به سمت دواپس است. اگر اعضای تیم نتوانند فرآیندهای جدید را بهدرستی اجرا کنند یا کار با ابزارهای جدید را یاد نگرفته باشند، حتی بهترین ابزارها نیز نمیتوانند به پیادهسازی مؤثر دواپس کمک کنند.
برای انتخاب مناسبترین ابزارها و تعیین نقش برای نیروی انسانی باید بر دواپس مسلط شوید. شرکت در دوره دواپس دانشکار به شما کمک میکند. مباحث لازم برای برطرف کردن چالشها را عمیقتر بیاموزید.
۴. ناسازگاری میان ابزارهای تیم توسعه و عملیات
در روشهای سنتی، تیمهای توسعه نرمافزار و عملیات فناوری اطلاعات معمولاً از ابزارهای متفاوتی استفاده میکردند و شاخصهای متفاوتی را برای ارزیابی عملکرد خود در نظر میگرفتند. بنابراین، زمانی که قرار است این دو تیم در قالب رویکرد دواپس با یکدیگر همکاری کنند، یکی از چالشهای اصلی این است که مشخص شود کدام ابزارها باید حفظ شوند و کدامیک باید کنار گذاشته شوند.
راهکار: ابزارهایی که انتخاب میکنید باید با اهدافی که سازمان دنبال میکند هماهنگ باشند و با نیازهای محصولاتی که قصد توسعه آنها را دارید، تناسب داشته باشند. نگهداشتن ابزارهای قدیمی و منسوخشدهای که روند کار را کند میکنند، فایدهای ندارد. بهتر است ابزارهایی را انتخاب کنید که واقعاً به تیمها در رسیدن به اهدافشان کمک میکنند و با فرآیندهای جدید دواپس سازگار هستند.
در صورت نگرانی از تحریم، قطعی سرویسهای خارجی یا محدودیت دسترسی، ابزارهای Self-hosted و متنباز انتخاب مناسبی هستند؛ سرویس روی سرور خود شرکت اجرا میشود و وابستگی به یک SaaS خارجی کمتر خواهد بود.

۵. مهاجرت از برنامههای قدیمی به معماری میکروسرویس
ادامه استفاده از زیرساختهای قدیمی میتواند باعث شود سازمان شما از رقبا عقب بماند؛ علاوهبر این، استفاده از پلتفرمها و نرمافزارهایی که دیگر پشتیبانی و نگهداری نمیشوند، مشکلات زیادی را به همراه خواهد داشت. جایگزین کردن برنامهها و زیرساختهای قدیمی با معماریهای جدید مبتنی بر میکروسرویس، امکان توسعه سریعتر و نوآوری بیشتر را فراهم میکند. بااینحال، مهاجرت به معماری میکروسرویس بدون چالش نیست. مهمترین چالش در این مسیر، افزایش پیچیدگی سیستم است.
راهکار: بهکارگیری دواپس میتواند بخش زیادی از این چالشها را برطرف کند. استفاده از اتوماسیون، مدیریت پیکربندی و تحویل مستمر به شما کمک میکند حجم بیشتر فعالیتهای عملیاتی ناشی از استفاده از معماری میکروسرویس را بهتر مدیریت کنید.
برای بسیاری از شرکتهای ایرانی، بازنویسی کامل یک نرمافزار قدیمی هزینه و ریسک زیادی دارد. بهتر است بهجای مهاجرت یکباره، از روش تدریجی استفاده کنید. بخشهایی از سیستم که بیشترین تغییر یا بیشترین فشار را دارند، ابتدا جدا و به سرویس مستقل تبدیل شوند.
ابزارهای پیشنهادی عبارتاند از:
- Docker برای کانتینریسازی
- Kubernetes برای زمانی که تعداد سرویسها افزایش پیدا میکند
- Kubernetes برای زیرساخت داخلی شرکت یا یک سرویس ابری داخلی
چالشهای دواپس برای پیادهسازی
چالشهای پیادهسازی ترکیبی از چالشهای فنی، سازمانی و فرهنگی هستند که استقرار آن را پیچیده میکنند. در این بخش به هر یک از این چالشها اشاره کردهایم.
۶. عدم درک مفهوم واقعی دواپس
با اینکه مدت زیادی از مطرح شدن اصطلاح دواپس میگذرد و بسیاری از سازمانها ادعا میکنند که از دواپس استفاده میکنند، واقعیت این است که هنوز خیلی از آنها درک درستی از مفهوم آن ندارند. حتی گاهی دواپس را جایگزینی برای روشهای دیگر توسعه نرمافزار، مانند اجایل، در نظر میگیرند. درحالیکه دواپس قرار نیست جای اجایل را بگیرد؛ بلکه این دو رویکرد میتوانند در کنار یکدیگر استفاده شوند تا بهترین نتیجه حاصل شود.
راهکار: آموزش در این مرحله اهمیت زیادی دارد. نداشتن درک درست از اصول دواپس، پیادهسازی آن را با ریسک زیادی همراه میکند و حتی ممکن است مشکلات جدیدی ایجاد شود که روندهای موجود در سازمان را مختل کند.
قبل از اجرای پروژه، یک کارگاه داخلی برگزار کنید و برای تیم توسعه، عملیات، QA و مدیران توضیح دهید که دواپس صرفاً «نصب Jenkins» یا «استفاده از Docker» نیست. سپس یک پروژه کوچک را بهعنوان نمونه انتخاب کنید و مفاهیم CI/CD، اتوماسیون و مانیتورینگ را روی آن اجرا کنید. GitLab CI/CD ابزار مناسبی است.
۷. کمبود تخصص در حوزه دواپس
دواپس هنوز در مقایسه با بسیاری از حوزههای فناوری مفهومی نسبتاً جدید محسوب میشود؛ به همین دلیل پیدا کردن افراد متخصص در این حوزه آسان نیست و بازار کار و درآمد دواپس نیز تا حد زیادی به سطح تخصص و تجربه افراد بستگی دارد. همین مسئله میتواند پیادهسازی دواپس را برای بسیاری از شرکتها به فرآیندی پیچیده و دلهرهآور تبدیل کند.
راهکار: برای به دست آوردن تخصص در دواپس راه میانبری وجود ندارد و بهترین روش، یادگیری در حین کار و کسب تجربه عملی است. وقتی دانش و تجربه کافی به دست آورید، تصویر روشنتری از اهداف خود خواهید داشت و بهتر میتوانید مشخص کنید که از پیادهسازی دواپس دقیقاً چه چیزی میخواهید.
برای پروژههای کوچک، میتوان از مشاور یا متخصص دواپس بهصورت پروژهای کمک گرفت و همراه با او به نیروهای داخلی آموزش داد.
۸. نداشتن چشمانداز مشخص
بدون داشتن یک برنامه مشخص و معیارهایی برای سنجش پیشرفت، نمیدانید آیا در مسیر درستی قرار دارید، از کجا شروع کردهاید و قرار است به کجا برسید. در چنین شرایطی، تعیین زمانبندی پروژه، نقاط عطف (Milestones) و خروجیهای مورد انتظار (Deliverables) نیز تقریباً غیرممکن خواهد بود.
راهکار: باز هم باید روی آمادهسازی و برنامهریزی تأکید کرد. کمبود تخصص میتواند پیادهسازی دواپس را به فرآیندی پرریسک تبدیل کند. بنابراین، پیش از شروع کار باید دانش و تجربه لازم را به دست آورید و بدانید دقیقاً چه چیزی میخواهید به دست آورید. با وجود تعداد زیادی ابزار دواپس، حتی امروزه نیز تعداد افرادی که واقعاً در این حوزه تخصص عمیقی دارند، بسیار محدود است. برای داشتن چشمانداز بهتر و رسیدن به آن هدف خود را با عدد مشخص کنید. مثال زیر راهنمای خوبی برای شما خواهد بود:
- کاهش زمان انتشار از ۲ روز به ۲ ساعت
- خودکار شدن حداقل ۸۰ درصد فرآیند Deploy
- کاهش خطاهای استقرار
- کاهش زمان بازگردانی نسخه در صورت بروز مشکل

۹. انتخاب ابزارهای مناسب
در زمینه ابزارهای دواپس، سازمانها معمولاً با دو چالش اصلی روبهرو هستند: اول، تعداد بسیار زیاد ابزارهای موجود که انتخاب گزینه مناسب را دشوار میکند؛ بهخصوص زمانی که شناخت کافی از فناوری و سازوکار این ابزارها وجود نداشته باشد. دوم، نداشتن دانش و تجربه کافی برای کار با خود ابزارها.
دواپس اصول CI/CD را معرفی کرد که برای اجرای صحیح آنها باید از ابزارهای مناسب استفاده شود. بااینحال، بسیاری از تیمها همچنان ترجیح میدهند از ابزارهای قدیمی و بهاصطلاح Legacy استفاده کنند. این موضوع باعث میشود سازگاری با قابلیتهای ابزارهای جدید دواپس دشوارتر شود. نداشتن شناخت کافی از ابزارها باعث میشود سازمانها نتوانند گزینههایی را انتخاب کنند که با چشمانداز فنی آنها بیشترین هماهنگی را داشته باشد یا بتوانند آنها را بهدرستی با زیرساخت فعلی خود یکپارچه کنند.
راهکار: یکی از سادهترین راهها برای حل مشکل یکپارچهسازی ابزارها، استفاده از ابزارهای مناسب برای ارکستراسیون است. برای مثال، میتوانید از محیطهای Sandbox ابری (Cloud Sandbox) برای خودکارسازی و مدیریت محیط ابزارهای مختلف استفاده کنید.
بهدلیل محدودیتهای دسترسی، تحریم و وابستگی به سرویسهای خارجی، شرکتهای ایرانی بهتر است هنگام انتخاب ابزار علاوهبر امکانات فنی، امکان Self-hosting، جامعه کاربری، مستندات، هزینه و وابستگی به سرویسهای خارجی را هم بررسی کنند. برای مثال، بهجای وابستگی کامل به GitHub Actions، در پروژههای حساس میتوان GitLab را روی زیرساخت داخلی اجرا کرد. ابزارهای دواپس مناسب ایرانیها عبارتاند از:
- GitLab
- Jenkins
- Docker
- Kubernetes
- Argo CD
- Prometheus
- Grafana
چالشهای مقیاسپذیری دواپس
با گسترش استفاده از دواپس در سازمانها، چالشهای جدیدی در زمینه مقیاسپذیری این رویکرد به وجود میآید. در حالی که دواپس در تیمهای کوچک بهخوبی عمل میکند، پیادهسازی و مدیریت آن در سازمانهای بزرگتر نیازمند هماهنگی بیشتر، ابزارهای پیشرفتهتر و تغییرات ساختاری در فرآیندها است. در این بخش به مهمترین چالشهایی که هنگام مقیاسپذیر کردن دواپس با آنها مواجه میشویم پرداختهایم.
۱۰. تغییر فرهنگ سازمانی
برای اینکه بتوانید دواپس را بهدرستی در سازمان پیادهسازی کنید، همه افراد باید با این تغییر همراه شوند. دواپس فقط به معنای نزدیک کردن تیم توسعه و عملیات فناوری اطلاعات به یکدیگر نیست؛ بلکه باید همه افراد و تیمهای درگیر را در این فرآیند مشارکت دهید؛ از تیم تضمین کیفیت (QA)، مدیران و کارشناسان کسبوکار و مدیران محصول گرفته تا تیم بازاریابی و حتی مشتریان که از طریق بازخوردهای خود میتوانند در این مسیر نقش داشته باشند.
راهکار: فرهنگی در سازمان ایجاد کنید که همه تیمها را به همکاری با یکدیگر برای ارائه ارزش بیشتر به مشتریان تشویق کند.
۱۱. استفاده از رویکرد پایین به بالا
در روشهای سنتی، معمولاً تغییر ابزارها و پلتفرمها از سوی مدیران به کارکنان تحمیل میشود. اما دواپس رویکرد متفاوتی را دنبال میکند. از آنجا که توسعهدهندگان بهتر از هر فرد دیگری میدانند برای انجام یک کار به چه ابزارهایی نیاز دارند، بهتر است انتخاب ابزارها و پلتفرمهای مناسب برای هر کار تا حد زیادی بر عهده خود آنها باشد.
۱۲. سرعت بالای نوآوری
پیادهسازی اصول دواپس به کوتاهتر شدن چرخه انتشار کمک میکند. این اتفاق از یک طرف مزیت بزرگی است، اما از طرف دیگر زمان کمتری برای توسعه، آزمایش و استقرار تغییرات در اختیار تیمها قرار میدهد. به همین دلیل نمیتوان همچنان به فرآیندهای دستی متکی بود؛ زیرا این فرآیندها ممکن است باعث ایجاد تأخیر شوند.
راهکار: فرآیند را خودکار کنید. خودکارسازی فرآیندها ساده نیست و ممکن است مجبور شوید در روند کاری فعلی خود تغییراتی ایجاد کنید. اما در بلندمدت، بخش قابلتوجهی از خطاهای انسانی را کاهش میدهید و بهرهوری تیم نیز افزایش پیدا میکند.

۱۳. بهینهسازی خط تحویل
وقتی صحبت از خودکارسازی میشود، نمیتوان از یکپارچهسازی مستمر و تحویل مستمر چشمپوشی کرد؛ دو موردی که از ارکان اصلی دواپس به شمار میروند. استفاده از خط لوله CI/CD به شما کمک میکند هزینه و زمان لازم برای انتقال یک قابلیت از مرحله توسعه به محیط عملیاتی را کاهش دهید.
چالش اصلی این است که چطور میتوان استانداردهای توسعه را اعمال کرد، بدون اینکه سرعت توسعه کاهش پیدا کند؟ همچنین چطور میتوان مطمئن شد که تیم به سیاستها و دستورالعملهای تعیینشده پایبند میماند؟ پاسخ این سؤال برای هر سازمان متفاوت است و به شرایط و نیازهای همان سازمان بستگی دارد. SRE هم با استفاده از شاخصهایی مانند SLI، SLO و SLA به سازمان کمک میکنند بین سرعت انتشار قابلیتهای جدید و پایداری سرویس تعادل برقرار کند.
۱۴. مدیریت چندین محیط
هرچه برنامه پیچیدهتر میشود، نیاز به داشتن محیطهای جداگانه برای توسعه، Staging، آزمایش و محیط عملیاتی بیشتر احساس میشود. در عین حال، مدیریت همزمان چندین محیط نیز پیچیدگیهای خاص خود را به همراه دارد.
راهکار: از قبل یک برنامه مشخص داشته باشید. مدیریت این محیطها خیلی سریع میتواند از کنترل خارج شود؛ بنابراین، دنبال کردن مجموعهای از مراحل از پیش تعیینشده میتواند با سادهتر کردن فرآیند توسعه و آزمایش، سرعت استقرار را افزایش دهد.
۱۵. تأمین امنیت زیرساخت
امنیت آنقدر در دواپس اهمیت دارد که حتی رویکردی مستقل با نام DevSecOps برای آن شکل گرفته است. چالش اصلی اینجاست که چطور میتوان امنیت استقرارها را افزایش داد، بدون اینکه سرعت توسعه و انتشار کاهش پیدا کند؟
راهکار: با در نظر گرفتن الزامات امنیتی از همان زمان توسعه اجزای نرمافزار و وارد کردن ملاحظات امنیتی به ابتدای چرخه استقرار، میتوانید باگها و آسیبپذیریها را زودتر شناسایی کنید. این کار علاوهبر کاهش ریسک، هزینههای مربوط به مدیریت منابع و مسئولیتهای حقوقی را نیز کاهش میدهد. ابزارهای قابل استفاده ایرانیها عبارتاند از:
- GitLab Security
- SonarQube
- Trivy
- HashiCorp Vault
- ابزارهای امنیتی Kubernetes
۱۶. هزینههای پیادهسازی
واقعیت این است که اگر بودجه کافی برای پیادهسازی دواپس ندارید، راه میانبری وجود ندارد. بااینحال، یک نکته مهم را در نظر داشته باشید. اگر بودجه لازم برای تکمیل این تحول را ندارید، پیادهسازی دواپس را بهصورت نصفهونیمه شروع نکنید؛ این کار فقط اصطکاک و چالشهای بیشتری ایجاد خواهد کرد. از قبل برنامهریزی کنید و تنها زمانی این مسیر را آغاز کنید که منابع لازم برای اجرای کامل آن را در اختیار داشته باشید.
منبع: bunnyshell.com



