Вызов
Быстрый рост платформы — это не только новые функции, но и быстро растущий счёт за инфраструктуру. Ресурсы выделялись командами разработки «с большим запасом», без понимания реального потребления.
Не было ни инструментов для анализа, ни регламентов, ни ответственных. В результате — платформа потребляла значительно больше, чем требовалось фактически.
Что было сделано
Системный подход к управлению ресурсами: контракты, инспекции, оптимизация типов узлов и проактивное управление хранилищами.
Ресурсные контракты
Разработан и внедрён регламент потребления вычислительных ресурсов для каждого сервиса на платформе. Контракт фиксирует запрошенные и максимально допустимые ресурсы — память, CPU, дисковое пространство.
Плановые инспекции
Введён процесс регулярного аудита ресурсных контрактов: команды проверяют фактическое потребление, сравнивают с заявленным и корректируют лимиты. Это предотвращает накопление «мёртвого» резерва.
Оптимизация типов узлов
Проведён анализ и перераспределение продуктовых сервисов по разным типам вычислительных узлов в Kubernetes в соответствии с их профилем нагрузки. Ресурсоёмкие задачи — на мощные узлы, лёгкие сервисы — на дешёвые.
Мониторинг потребления
Для всех сервисов настроены дашборды с метриками фактического потребления ресурсов. Видно, где ресурсы избыточны, а где приближаются к лимиту.
Управление дисковым пространством
Выстроен процесс планового расширения дисковых ресурсов для баз данных и сервисов хранения. Аварийные ситуации из-за заполненных дисков устранены переходом к проактивному управлению.
Было / Стало
Продуктовые команды получили понятный инструмент для обоснования своих ресурсных потребностей, а инфраструктурная команда — механизм контроля.