Сегодня в команде была дискуссия про конфиги.
У нас несколько сервисов, и rate limit на каждом настраивается отдельно. Сейчас их немного, но через год будет в разы больше, и крутить лимиты руками в десяти местах это боль. Проблема настоящая.
Один из предложенных вариантов - единая админка: одно место, где хранится конфиг всех сервисов, оттуда всё и рулим. Звучит удобно. Но так делать нельзя.
Главная причина вот в чём. С rate limit ещё понятно, он у всех плюс-минус одинаковый. Но у каждого сервиса свой набор конфигурации, и в общую админку всё не перенесёшь. А раз так, то половина настроек живёт в админке, половина в самом сервисе. Размазать конфигурацию одного сервиса по двум платформам это настоящий ужас. Конфиг сервиса должен лежать в одном месте, а не делиться по принципу «это успели вынести, а это нет».
Сверху ещё пара рисков. Кривой конфиг, разосланный из центра, кладёт все сервисы разом: так положили 8.5 млн машин в CrowdStrike в 2024, не баг в коде, а плохой конфиг из одной точки. Плюс единая панель стирает границы доступа: кто крутит настройки одного сервиса, технически дотянется до всех.
С самой целью всё в порядке. Проблема в реализации.
Решение: централизуй не рантайм, а управление. Конфиг лежит как код в гите рядом со своим сервисом, меняется через PR с ревью и валидацией схемы, катится пайплайном. Одно место правок на сервис, полный аудит, откат одним revert. Enforcement остаётся локально с fallback. Упал "центр", сервис живёт на последнем валидном конфиге.
Хочешь спокойно дорасти до десяти сервисов? Дай им общий стандарт конфигурации, а не общее хранилище. Стандарт масштабируется, общая база только копит проблемы.
Post #75
174

- ❤ 2
- 👌 2
- 👾 1