قصه از اونجایی شروع شد که یک پیامک از ابرآروان اومد که دیگه زیرساخت اپن شیفت (open shift) که بامداد ۱ روش بود دیگه ساپورت نمیشه و باید مهاجرت کنید روی بامداد ۲ که از کوبرنتیز (Kubernetes) استفاده میکنه. این مهاجرت اجباریه و اگه تا آخر بهمن ماه ۱۴۰۲ خودتون مهاجرت رو انجام نداده باشید ابرآروان خودش وارد عمل میشه و مهاجرتتون میده. حالا این پیامک رو کی دادن؟ اواخر آذر و اوایل دی ماه بود فکر میکنم.
خب ما رفتیم تا بررسی کنیم که چی شده و باید چیکار کنیم و ابرآروان یه دکمه گذاشته بود که فرایند مهاجرت رو به صورت خودکار انجام میده. خیلی خوشحال شدیم و خواستیم که تست کنیم. برای تست باید یه نیم اسپیس (namespace) جدید درست میکردیم و توش چندتا کانتینر بالا میاوردیم و فرایند مهاجرت رو تست میکردیم. با لب خندون رفتیم که شروع کنیم و دیدیم که نمیشه نیم اسپیس جدید ساخت. با پشتیابانی تماس گرفتیم و موضوع رو در میون گذاشتیم و جواب دادن که آره نمیتونیم براتون نیم اسپیس جدید بسازیم اما نگران نباشید، فرایند مهاجرت همه چیز رو درست پیش میره و اگه اون طرف همه چی اوکی نباشه ما ورژن قبلی رو سریع میاریم بالا براتون و همه چی محفوظه. (این وسط بگم که پنل آروان هم به شدت کنده و پر از خطا، کسی که باهاش کار کرده باشه حتمن این مورد رو تصدیق میکنه)
طبیعتا ما نمیتونستیم روی نیم اسپیس هایی که واقعی بودن فرایند تست رو بریم جلو. اما راهی هم نبود. یکی از کم ضرر ترین ها رو انتخاب کردیم و دکمه ی مهاجرت رو زدیم و از فرایند فیلم گرفتیم. همه چیز به نظر اوکی بود. البته که ip های ثابت عوض شدن و اگه جایی از این ای پی ها استفاده کرده بودین باید میرفتین همه چیز رو درست میکردین. همچنین آدرس ها هم دیگه paas نبودن و caas شده بودن. پس هرجایی هم که از این ادرس ها استفاده کرده بودین باید میرفتین عوض میکردین. درس بزرگی بود و طبیتعا ما برای موارد بعدی براشون آماده شدیم. اما دیدیم زده مهاجرت موفقیت آمیز بوده اما همه ی کانتیر های ما پایین هستن. در واقع نمیتونستن image هاشون رو از ریپازیتوری اختصاصی ما بردارن. بعد از بررسی های فراوان فهمیدیم که ببببللللههه، ابرآروان تنظیمات سطح کلاسترمون رو کلا پاک کرده و این طرف اعمال نکرده.
این ضربه ی آخر بود که ما اعتمادمون رو کامل به فرایند مهاجرت ابرآروان که میگفتن بی نقصه از دست بدیم. مواردی که اصلا خودشون ندیده بودن و مشتری رو مطلع نکرده بودن. طبیعتا که اصلا درست گردن نگرفتن و گفتن این موارد رو خودتون باید درست کنید. جالب این بود که هنوز هم میگفتن ما همه ی تنظیماتتون رو توی محیط جدید هم اعمال میکنیم.
از اونجایی که فهمیدیم داون تایم (down time) پروژه ها میتونه طولانی بشه شروع کردیم به آماده سازی برای بدترین شرایط. ابرآروان هم بعضا تماس میگرفت که چرا مهاجرت نمیکنید و وقتی ما میگفتیم این تجربه ی بد رو داشتیم و الان آمادگیش رو نداریم و نیاز به فرصت داریم و فضا برای تست کار تاثیرگذاری نمیکردن.
ما بعد از اون پروژه ی دیگری هم مهاجرت دادیم و پروژه چون کوچیک بود همه چیز خوب و طبق پیشبینی ما جلو رفت و کارایی که کرده بودیم تا مثل دفعه ی قبل سورپرایز نشیم جواب داد.
خلاصه کنیم و برسیم به بزرگترین name space ما با تعداد زیادی کانتینر و تکنولوژی های متنوع. دکمه ی مهاجرت رو زدیم و وسط کار خطا خورد و گزارش خروجی هم چیزی رو به ما نمیگفت. سیستم های قبلی به صورت خودکار بالا اومدن اما خب این فرایند یه داون تایم ۲۰ الی ۳۰ دقیقه ای داشت برای ما. همینجوری با پشتیبانی در تماس بودیم و اونا باگ رفع میکردن و ما هی میزدیم مهاجرت تا مرحله ی آخر که باز خطا خورد و توی خرجی نوشت با پشتیبانی تماس بگیرید.
الان هم پروژه ی ما روی بامداد ۱ پایین بود و هم ۲. تماس گرفتیم و تیم فنی شروع کرد بررسی کردن و گفت مهاجرت شما کامل شده. ما گفتیم پس گزارش چی؟ لیست ip های عوض شده. لیست دامنه های عوض شده. هیچی. بعد باید دستی و دونه دونه کانتینر ها رو میزدیم بیان بالا. بعضی هاشون که نمیومدن بالا و مشخص نشد در همون حین تماس آیا کاری کردن یا نه که بعد از مدتی درست شد. به جز یه مورد دیگه که یکی از pvc هامون رو نمیتونستیم بخونیم. اینم از سمت خودمون بررسی کردیم و با نیم اسپیس قبلی مقایسه کردیم و در نهایت تفاوت رو فهمیدیم و مشخص شد باز هم برای یکی از deployment ها منیفست به صورت کامل نیومده بود این طرف. در نهایت ما یه داون تایم ۶-۷ ساعته رو تجربه کردیم و ازش گذشتیم. داده هامونم تا جایی که میشد همه رو بکاپ گرفته بودیم. اما این تجربه اینقدر بد بود که دوست داشتم در موردش یه جا بنویسم.