شکاف دیدهنشدنی بین فیچر فلگ و پایپلاین
خلاصهٔ کاملتر
نویسنده با یه مشاهدهٔ ساده شروع میکنه: ابزار فیچر فلگ شما نمیدونه پایپلاین CI/CD همین الان چی رو دیپلوی کرده، و پایپلاین هم هیچ دیدی نداره که کدوم فلگها تو پروداکشن فعالن. چون وضعیت فلگ و وضعیت دیپلوی تو یه جا دیده نمیشن، یه شکاف دید (visibility gap) شکل میگیره که فقط زیر فشار خودشو نشون میده.
به گفتهٔ نویسنده ریشهٔ این مشکل ساختاریه: تیم پلتفرم پایپلاین رو میاره تا بیلد و تست و دیپلوی خودکار بشه، و تیم محصول ابزار فلگ رو میاره تا میزان نمایش فیچرها رو کنترل کنه. این دو تا توسط تیمهای مختلف، تو زمانهای مختلف و بدون هیچ مدل دادهٔ مشترکی انتخاب میشن، برای همین از هم فاصله میگیرن و این فاصله ماهها یا سالها بعد، موقع یه حادثه یا یه ممیزی، خودشو نشون میده.
نویسنده سه پیامد اصلی رو میشمره. اول، تشخیص حادثه سختتر میشه: پایپلاین میگه چی و کِی دیپلوی شده، ولی ابزار فلگ میگه چی و برای کدوم کاربرها روشن شده؛ تیم باید دستی تایماستمپهای دو سیستم رو با هم تطبیق بده. دوم، حاکمیت و audit trail کامل تو هیچکدوم نیست؛ اینکه کی فلگ رو تأیید کرده، کی دیپلوی رو زده و آیا انتشار طبق نقشه پیش رفته یا نه، با اسپردشیت و ترد اسلک پر میشه که موقع ممیزی دووم نمیاره.
سومین و پرریسکترین پیامد، رولبک هست. برگردوندن تمیز یه تغییر یعنی همزمان هم دیپلوی رو revert کنی هم فلگ رو خاموش کنی، اون هم تو دو رابط جدا و زیر فشار حادثه. اگه فلگ روشن بمونه ولی دیپلوی برگرده، یا برعکس، رولبک کامل نمیشه و یه حادثهٔ قابلجبران تبدیل به یه قطعی طولانی با نقض SLA میشه. نویسنده میگه برگردوندن یه فیچر بدون دیپلوی مجدد، فقط وقتی ممکنه که کنترل فلگ داخل خود پایپلاین باشه.
راهحلی که مقاله پیشنهاد میده replatforming نیست. به گفتهٔ نویسنده لازم نیست پایپلاین یا ابزار فلگ رو عوض کنی؛ کافیه دید فلگ رو داخل همون ورکفلویی که کد توش شیپ میشه جا بدی تا وضعیت فلگ و دیپلوی تو یه جا دیده بشن. اونوقت تیم پاسخ به حادثه، ممیز و ریلیز منیجر همگی از یه منبع حقیقت واحد کار میکنن. این مقاله یه پست شرکتیه و در نهایت محصول CloudBees Feature Management رو بهعنوان مصداق این رویکرد معرفی میکنه.
نکات کلیدی:
- جدا بودن ابزار فیچر فلگ و پایپلاین یه شکاف دید میسازه که موقع حادثه، ممیزی و رولبک دردسر میشه
- تشخیص ریشهٔ مشکل به تطبیق دستی تایماستمپ بین دو سیستم نیاز پیدا میکنه و MTTR بالا میره
- زنجیرهٔ تأیید (کی تأیید کرد، کی دیپلوی زد) تو هیچ سیستمی کامل ثبت نمیشه و ممیزی رو سخت میکنه
- رولبک به هماهنگی دو نفره روی دو ابزار نیاز داره؛ کنترل فلگ داخل پایپلاین اونو یکمرحلهای میکنه
- راهحل، تعویض ابزار نیست؛ آوردن مدیریت فلگ داخل همون پایپلاین موجوده




