Sitar-agent: Создание надежног... Заметка

Sitar-agent: Создание надежного динамического конфигурационного сайдкара в масштабе

Airbnb разработала Sitar Agent — легковесный сайдкар для Kubernetes, предназначенный для надежной доставки динамических изменений конфигурации тысячам экземпляров сервисов. Доставка конфигурации начинается с того, что разработчики создают или обновляют значения через Git или пользовательский интерфейс, которые затем сохраняются в Sitar Service. Периодически полное состояние конфигураций упаковывается в сжатые снимки и загружается в AWS S3. Когда запускается под сервиса, Sitar Agent сначала загружает эти снимки из S3 на смонтированный диск, что обеспечивает быструю загрузку. Затем он синхронизируется с Sitar Service для получения любых изменений, сделанных с момента создания снимка, сигнализируя о готовности основному контейнеру приложения. После запуска агент непрерывно опрашивает Sitar Service на предмет обновлений каждые несколько секунд. Основной контейнер приложения считывает конфигурации с смонтированного диска, используя клиентскую библиотеку Sitar, которая кэширует значения и обнаруживает изменения в файлах. Ключевым решением при проектировании было сохранение Sitar Agent в виде отдельного сайдкар-контейнера, а не интеграция его в основной контейнер, что позволило приоритизировать надежность, эксплуатационную безопасность и поддержку нескольких языков вместо незначительной экономии средств. Система использует модель извлечения (pull model), при которой агент опрашивает Sitar Service, оптимизированную с помощью кэша на стороне сервера и доступа к базе данных на основе токенов для снижения нагрузки. Для своего локального хранилища ключ-значение на диске Airbnb выбрала SQLite вместо устаревшей реализации на базе Sparkey из-за превосходной параллельности, производительности и поддержки нескольких языков в SQLite. Встроенный механизм ведения журнала с упреждающей записью (Write-Ahead Logging) в SQLite позволяет выполнять параллельные чтения во время записи, а его более простая операционная модель была предпочтительнее более высокой производительности, но большей сложности RocksDB. Эта надежная конструкция сайдкара гарантирует быструю и надежную доставку критически важных конфигураций по всему обширному парку сервисов Airbnb.
CdXz5zHNQW_7QO75wfm4Y.jpeg