FastComments.com Blog


Wed Apr 01 2026
...

Автоматизована транспортна система маршрутизації FastComments

Вступ

Автоматизована транспортна система маршрутизації FastComments (FARTS) є нашим транспортним і сервісним шаром. FARTS допомагають з завантаженістю, маршрутизуючи трафік на основі місцезнаходження користувачів і потенційно завантаження в майбутньому. Вона складається з декількох різних систем, гео-обізнаного шару DNS, проксі для БД, реплікації БД, управління SSL сертифікатами, реверс-проксі та CDN, який використовує кеш LRU на диску для кешування ресурсів на краю. Система підтримує як тихі, так і гучні режимі переходу на резервування. Тихий режим є бажаним у виробництві.

Активний-Активний

Остання версія FART містить вбудований проксі та шар реплікації для нашої бази даних. Це дозволяє FastComments бути Активним-Активним з глобальною можливістю запису, що дозволяє нашим FARTS бути зрештою послідовними. Детальніше тут.

Один із підходів, який ми насправді використовували на початку, був спробувати створити форк MongoDB. Один з наших інженерів (Sloperators) зміг насправді зробити це з Opus 4.6, однак ми вирішили, що ризик зробити це вищий, ніж створити власну ізольовану систему.

Останнє, що ви хотіли б мати з чимось на кшталт FART, - це знати, що воно прибуло, але ви не можете відслідкувати джерело. Ми додали моніторинг і діагностику для спостереження за активною-активною реплікацією на детальному рівні.

Rust в Масштабах

Частиною мотивації для створення FART було заміщення деяких існуючих сервісів, написаних на Java. Після того, як ми обмірковували це деякий час, ми вирішили консолідувати їх в один Rust сервіс для зменшення накладних витрат часу виконання. Це було прийнятне компромісом, оскільки ми не deploy FART часто. FART компілюється з LTO, тому ми можемо дійсно дати йому «розігнатися».

Ми витратили багато часу на налаштування старої системи Java з різними GC тощо, і зрештою просто вирішили, що асинхронний Rust + Mimalloc показують значно кращі результати на тому ж обладнанні з набагато нижчими вимогами до пам'яті, тому перехід був очевидним вибором.

Майстер FART

Кожне розгортання містить свій власний Майстер FART. Майстер відповідальний за організацію кронів, вебхуків тощо.

Вплив на Клієнтів

Система FART працює в продуктивному середовищі вже близько року. Останнім часом ми провели міграцію на розгортання Активний-Активний. Нова система надає нам більшу видимість затримки по всій системі, а також знижує навантаження на обслуговування, тому ми тепер можемо витратити більше часу на функції.

FART працює тихо у фоновому режимі, хоча його присутність завжди відчувається. Ми сподіваємося, що наші системи є швидшими для ваших випадків використання (в основному, дії користувачів, які призводять до змін у даних, будуть швидшими в деяких регіонах).

Розгортання

Розгортання використовує ту ж глобальну систему оркестрації, яку ми використовуємо для розгортання самих сервісів. Документація FART рекомендує sloperators ніколи не довіряти розгортанню, завжди перевіряти навантаження перед випуском.

Після розгортання FART сповіщення слідують політиці ескалації: спочатку кімната, потім поверх, потім будинок.

На Закінчення

Як і всі великі випуски, ми раді, що змогли витратити час на оптимізацію, тестування та належне випуск змін. Ми з нетерпінням чекаємо на нові можливості. FastComments має краще масштабуватися та мати кращий час безвідмовної роботи в довгостроковій перспективі завдяки цій роботі. Як говорить посібник FART: "Якщо ви щось відчуваєте, скажіть щось". Дайте нам знати нижче, якщо ви виявите будь-які проблеми.