۶۶,۰۰۰ دلار در سال، واقعاً چه چیزی میخرد
دانشگاه لرستان سیستم ایمیلش را روی IceWarp اجرا میکرد و سالانه حدود ۷۰,۰۰۰ دلار برای ۱۰,۰۰۰ صندوق پستی پرداخت میکرد. کل این سیستم را به یک سرور ایمیل خودمیزبان Stalwart مهاجرت دادیم؛ همان تعداد صندوق، همان کاربرها، هزینهی سالانه حالا کمتر از ۴,۰۰۰ دلار. این همان عددی است که این نوشته واقعاً دربارهی آن است، بقیهاش زمینهای است برای اینکه چطور یک تیم کوچک از پس مهاجرتی به این اندازه برمیآید.
سیزده محصول، سه نفر، یک هاست مشترک
این پروژه همزمان با کار ساخت و استقرار روی دوازده محصول دیگر پیش رفت: یک ابزار پشتیبانی، یک اپ انطباق با استانداردها، یک CMS، یک پایگاهدادهی بیوانفورماتیک، چند ربات تلگرام، و چند ابزار داخلی. بیشترشان کوچکاند، رباتی با یک وظیفه، داشبوردی داخلی که کسی بیرون از تیم به آن دسترسی ندارد. دوتایشان اینطور نیستند: استیلفلو MES که کیفیت و ردیابی قطعهبهقطعهی ساخت فولاد را برای یک مشتری صنعتی دنبال میکند، و خودِ سیستم ایمیل لرستان که ۱۰,۰۰۰ نفر واقعی هر روز به آن وابستهاند. این دو همان انضباط استقرار بقیه را دارند، بهعلاوهی چیزی بیشتر: استیلفلو MES با ۱۱۳ تست خودکار میآید که چیزهایی مثل sync آفلاین کف کارگاه و رکوردهای QC را پوشش میدهد، چون یک باگ در این زنجیره چیزی نیست که بخواهی بعداً بفهمی.
بخش خستهکنندهای که بقیه را ممکن میکند
پایپلاین استقرار برای هر سیزده محصول یکی است، و احتمالاً بیجلوهترین بخش کل ماجراست: هر استقرار production از نوع blue-green است، یک کانتینر دوم بالا میآید، healthcheck میشود، و فقط بعدش جای کانتینر قدیمی را میگیرد. اگر healthcheck هیچوقت سبز نشود، اسکریپت کانتینر جدید را حذف میکند و قدیمی را دستنخورده نگه میدارد. نه پنجرهی تعمیرات، نه حالت «دیپلویشده ولی خراب».
کد از پایپلاین رد میشود؛ محتوا لازم نیست
دو هفته پیش این را به روش مفیدش فهمیدیم: یک تمپلیت داشت بیسروصدا بلوک call-to-action را از روی دوازده مقالهی منتشرشده حذف میکرد، یک فیلد null در config بدون fallback. رفع باگ در کد یعنی یک دیپلوی. رفع محتوا اینطور نبود: سایت دادهی مقالهها را از Mongo با یک poll هر ۳۰ ثانیه میخواند، پس patch کردن همان دوازده رکورد کل رفع باگ بود. بدون دیپلوی، بدون ریدیپلوی، در نیم دقیقه لایو.
عدد، یک بار دیگر
از ژانویه تا الان، این پایپلاین چیزی نزدیک به ۱,۶۰۰ کامیت را روی ۱۵ ریپازیتوری وارد production کرده. سرعت اینجا هدف نیست؛ فقط چیزی است که وقتی ۳ نفر ۱۳ چیز را روی یک هاست مشترک میسازند، بدون جایی برای یک دیپلوی بد که همهچیز را بخواباند، از آن سر بیرون میآید.
پرسشهای متداول
مهاجرت ایمیل دانشگاه لرستان چقدر صرفهجویی داشت؟
دانشگاه لرستان برای ۱۰,۰۰۰ صندوق پستی روی IceWarp سالانه حدود ۷۰,۰۰۰ دلار میپرداخت. بعد از مهاجرت به سرور ایمیل خودمیزبان Stalwart، با همان تعداد صندوق و همان کاربران، هزینهٔ سالانه به کمتر از ۴,۰۰۰ دلار رسید؛ یعنی حدود ۶۶,۰۰۰ دلار صرفهجویی در هر سال.
یک تیم کوچک چطور مهاجرتی در این اندازه را پیش میبرد؟
این پروژه همزمان با ساخت و استقرار دوازده محصول دیگر پیش رفت و سه نفر همه را روی یک هاست مشترک میسازند. چیزی که این را ممکن میکند پایپلاین استقرار یکسان برای هر سیزده محصول است؛ از ژانویه تا الان نزدیک به ۱,۶۰۰ کامیت روی ۱۵ ریپازیتوری از همین مسیر به production رسیده است.
اگر استقرار جدید سالم بالا نیاید چه میشود؟
اسکریپت استقرار کانتینر جدید را حذف میکند و کانتینر قدیمی را دستنخورده نگه میدارد. هر استقرار production از نوع blue-green است، پس نه پنجرهٔ تعمیرات لازم است و نه حالتی پیش میآید که سیستم دیپلویشده ولی خراب باشد؛ برای ایمیلی که ۱۰,۰۰۰ نفر هر روز به آن وابستهاند، این مهم است.
اینکه Stalwart در این مقیاس در مقایسه با Mailcow و Mailu چه وضعی دارد، در مقایسه در مقیاس ۱۰ هزار صندوق آمده است.



