روگ آمیبا و فلسفهٔ زیرساخت خستهکننده
خلاصهٔ کاملتر
نویسنده تو وبلاگ روگ آمیبا (سازندهٔ نرمافزارهای صوتی مک مثل Audio Hijack و SoundSource) از دو مهاجرت زیرساختی اخیر شرکت گفته. به گفتهٔ نویسنده، فلسفهٔ اصلیشون اینه که پایداری مهمتر از لبهٔ فناوریه؛ یعنی بهجای پرش سمت جدیدترین ابزارها، سراغ تکنولوژیهای ساده و امتحانپسداده میرن که کمتر خوابشب رو خراب میکنن.
اولین مورد اسکریپتهای CGI قدیمیشونه که کارهایی مثل اطلاعرسانی آپدیت و پردازش سفارش رو انجام میدن. بعد از اینکه پایتون کتابخونهٔ cgi رو حذف کرد (طبق PEP 594) و بار سرور هم بالا رفته بود، بهجای رفتن سمت AWS Lambda یا Cloudflare Workers، این اسکریپتها رو به FastCGI (یعنی نسخهٔ بهینهشدهٔ CGI که حدود ۳۰ ساله وجود داره) مهاجرت دادن. میانگین زمان پاسخ بهتر شد، ولی بهبود تو معیارهای بدترین حالت مثل P90 و P99 (یعنی درصد درخواستهایی که سریعتر از یه آستانهٔ مشخص جواب میگیرن) چشمگیرتر بود.
مهاجرت دوم دیتابیس اصلی سفارشها بود، از MySQL به SQLite - برخلاف تصور رایج که SQLite رو فقط برای اپهای کوچیک میدونن. نویسنده میگه SQLite الان پرکاربردترین دیتابیس دنیاست و تو موبایل، ماشین، مرورگر و حتی ماهواره استفاده میشه. چون کل دیتابیس یه فایله، بکاپ و مدیریت دسترسی سادهتره، و با WAL (لاگنویسی تراکنشها تو یه فایل جدا) دهها هزار خوندن/نوشتن در ثانیه رو هندل میکنه. چون این دیتابیس سفارشهاست، مهاجرت مرحلهبهمرحله و با تست زیاد انجام شد و یه مدت هر دو دیتابیس موازی اجرا شدن.
نتیجه به گفتهٔ نویسنده فراتر از انتظار بوده: کارهایی مثل تغییر schema که قبلاً با MySQL ساعتها طول میکشید، الان چند میلیثانیهست، و یه سری سرور و تنظیمات دسترسی هم کمتر شده. جمعبندی پست اینه که «لگاسی بودن» لزوماً بد نیست؛ وقتی زیرساخت خستهکننده و پایدار باشه، تیم میتونه بهجای نگرانی بابت قطعی، تمرکزش رو بذاره رو ساختن محصول.
نکات کلیدی:
- اسکریپتهای CGI شرکت به FastCGI مهاجرت کردن؛ علتش حذف کتابخونهٔ cgi از پایتون (PEP 594) بود
- دیتابیس اصلی سفارشها از MySQL به SQLite منتقل شده
- SQLite با WAL میتونه دهها هزار عملیات خوندن/نوشتن در ثانیه رو پشتیبانی کنه
- تغییرات schema که قبلاً ساعتها طول میکشید، الان چند میلیثانیهست
- فلسفهٔ روگ آمیبا استفاده از تکنولوژیهای ساده و امتحانپسداده بهجای لبهٔ فناوریه




