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