وقتی خط تولید نرمافزار زیر فشار AI کم میآره
خلاصهٔ کاملتر
این نوشته ماجرای یه خط تولید نرمافزار رو تعریف میکنه که به مرز فروپاشی رسیده بود. سیستمی که نویسنده اسمش رو «Provisioner» میذاره، یه مشت سختافزار مثل سرورهای GPU و شبکهٔ پرسرعت رو میگیره و به یه سرویس IaaS چندمستأجری تبدیل میکنه. دامنهش خیلی گستردهست و از فرمور تا ایمیجهای VM و کلاسترهای k3s رو شامل میشه، پس تأییدش هم کار سختیه.
برای تأیید درستِ این سیستم باید تستهای E2E روی سختافزار واقعی اجرا شن و همین باعث میشه throughput ذاتاً پایین باشه؛ هر اجرای کامل حدود دو ساعت طول میکشه و به سختافزار گرونی وابستهست که چند ماه طول میکشه تهیه شه. یعنی نمیشه فقط با اضافه کردن نسخههای بیشتر مقیاسش داد.
به گفتهٔ نویسنده وقتی مهندسها لایسنس AI سازمانی گرفتن، هم حجم تغییرات بالا رفت هم یه جور «اضطراب بهرهوری» به تیم سرایت کرد. چون پایپلاین جا نمیموند، کارهای آمادهٔ merge تو صف تلنبار میشد و مهندسها که طاقت بیکار نشستن نداشتن، تسک جدید ورمیداشتن و باز هم به صف فشار میآوردن. هر کس حس میکرد بهرهورتره، ولی کل سیستم داشت آروم آروم میپاشید.
برای همگام شدن با این حجم، اتوماسیون شروع کرد تغییرات رو دستهای تست کنه، ولی دستهها هی بزرگتر شدن و پیدا کردن باگ بینشون سختتر. تیم مجبور میشد ساعتها پایپلاین رو نگه داره و چون عجله داشت، خیلی از خطاها رو به اسم «flake» رد میکرد. همین یه ذخیره از باگهای پنهان ساخت که خرابیها رو بیشتر و throughput رو کمتر کرد.
نویسنده میگه جواب درستِ فشار برگشتی، محدود کردن ورودیه. اول یه نقش «دروازهبان» گذاشتن که جریان تغییرات به صف تست رو تنظیم کنه؛ بعد کارِ همزمان هر مهندس رو هم محدود کردن. اینطوری فشار مرحلهبهمرحله به بالادست منتقل شد. بعضیها میگفتن این فقط کارو از یه صف به صف دیگه میبره، که دقیقاً هدف همین بود.
با این کار بالاخره ریشهٔ اصلی معلوم شد: برنامهریزی ضعیف. پروژهها فقط بر اساس اولویت کسبوکار و ظرفیت تیم چیده میشدن، بدون توجه به اینکه چند پروژه ممکنه به یه بخش از سیستم دست بزنن یا سرِ سیکلهای تست گرون با هم رقابت کنن. راهحل نهایی، تحلیل صریح وابستگیهای زیرساختی موقع طراحی محصول بود.
نکات کلیدی:
- مشکل اصلی خودِ گلوگاه نبود، بلکه انکار وجودش و نادیده گرفتن سیگنالهای فشار برگشتی بود.
- مرحلهٔ تست E2E ذاتاً کند بود (هر اجرا حدود ۲ ساعت) و بهخاطر سختافزار گرون مقیاسپذیر نبود.
- لایسنس AI هم حجم تغییرات رو بالا برد هم «اضطراب بهرهوری» ساخت که صف رو بدتر کرد.
- جواب درست، محدود کردن ورودی و اجازه دادن به فشار برگشتی برای رفتن به بالادسته.
- ریشهٔ نهایی برنامهریزی ضعیف بود؛ تحلیل وابستگیهای زیرساختی موقع طراحی حلش کرد.




