Добавить в корзинуПозвонить
Найти в Дзене
Практики FinOps

7 метрик, которые покажут, куда утекает облачный бюджет

Технари – народ точный. Они все считают в гигабайтах, миллисекундах и процентах загрузки CPU. Но когда речь заходит об облачном бюджете, в них сразу же что-то ломается. Дескать, это все для бухгалтеров, не для нас. С одной стороны, звучит здраво. А с другой, облачный рынок в России растет на 36% за год, и наплевательское отношение к расходам на облако сильно бьет по карману любой организации. Шутка ли, если среднестатистическая компания использует только 13% процессорных мощностей и 20% кластерной памяти, тогда как все остальное крутится впустую. Но сэкономить можно, и мы знаем, как именно. Вы платите за облачные ресурсы на постоянной основе, и это нормально. Но используются ли они хотя бы наполовину? Тут уже могут быть вопросики. Если сервер загружен на 20%, то 80% мощностей просто греют воздух, а платите за все вы по полному тарифу. В норме загрузка CPU для продакшена составляет в пределах 60-70%, памяти — 80-85%. У вас меньше? Поймите, насколько. Если используется только 15-20%, над
Оглавление
20/80 – совсем плохая эффективность
20/80 – совсем плохая эффективность

Технари – народ точный. Они все считают в гигабайтах, миллисекундах и процентах загрузки CPU. Но когда речь заходит об облачном бюджете, в них сразу же что-то ломается. Дескать, это все для бухгалтеров, не для нас. С одной стороны, звучит здраво. А с другой, облачный рынок в России растет на 36% за год, и наплевательское отношение к расходам на облако сильно бьет по карману любой организации. Шутка ли, если среднестатистическая компания использует только 13% процессорных мощностей и 20% кластерной памяти, тогда как все остальное крутится впустую. Но сэкономить можно, и мы знаем, как именно.

Коэффициент использования — сколько денег улетает в никуда

Вы платите за облачные ресурсы на постоянной основе, и это нормально. Но используются ли они хотя бы наполовину? Тут уже могут быть вопросики. Если сервер загружен на 20%, то 80% мощностей просто греют воздух, а платите за все вы по полному тарифу.

В норме загрузка CPU для продакшена составляет в пределах 60-70%, памяти — 80-85%. У вас меньше? Поймите, насколько. Если используется только 15-20%, надо пересматривать размеры инстансов или признавать, что переборщили с железом и срочно исправляться.

Очень многие любят перестраховываться. Логика тут понятная: отечественных провайдеров мало, поэтому лучше сразу взять ресурсов с запасом. Только запас = переплата, хоть этого никто от вас и не скрывает. VK Cloud, Яндекс.Облако, Cloud.ru, к примеру, показывают базовую загрузку прямо в консоли. С Kubernetes надо собирать данные через Prometheus и сравнивать факт с лимитами, но ничего нереализуемого в этом нет. Зато так вы поймете, что работает реально, а что – просто бесполезный резерв.

Подписывайтесь на наше FinOps-комьюнити в Telegram. Обещаем не спамить. Там только настоящая польза, рабочие кейсы и общение с единомышленниками.

Процент облачных потерь — охота на ресурсы-призраки

Зомби-ресурсы тянут из вас деньги, а вы и не знаете
Зомби-ресурсы тянут из вас деньги, а вы и не знаете

Серьезной статьей расхода являются ресурсы, которые вообще никому не нужны:

  • Забытые dev-серверы после завершения проекта;
  • Диски, которые отвязали от инстансов месяц назад, но не удалили;
  • Балансировщики нагрузки, которые никуда не направляют трафик;
  • Зомби-поды в Kubernetes, висящие в очереди.

Для российских компаний эта проблема стала особенно актуальна после 2022 года, когда многие в авральном режиме мигрировали с западных платформ, создавая дублирующие системы "на всякий случай". В результате у многих часть из них так и продолжила работать впустую, списывая тысячи рублей каждый месяц.

Решение — автоматизация поиска. Пишете простой скрипт на оповещение, если сервер неделю потребляет меньше 5% мощности процессора и к нему никто не подключается. Если диск месяц не монтировался — тоже. База данных без активных соединений — изучаем пристальнее и, если что, удаляем.

Да, это требует времени на настройку. Но один такой скрипт может сэкономить десятки тысяч рублей в месяц.

Кто за что платит — распределение затрат по командам

Итак, допустим, мы нашли неэффективные ресурсы, но кто за них отвечает? Без понимания, кто и за что платит, вся оптимизация превращается в стрельбу из пушки по воробьям.

Многие компании привыкли покупать доступ в облако оптом для всех отделов, не заморачиваясь с разбивкой по командам. А поскольку биллинговые системы российских провайдеров пока не дотягивают до западных, разобраться в тратах становится тем еще удовольствием.

Поэтому каждый созданный ресурс должен содержать метки: название проекта, ответственная команда, тип окружения (production/staging/development).

Отечественные провайдеры предлагают разные подходы. Cloud.ru развивает систему тегов, Яндекс.Облако использует каталоги для группировки ресурсов. До полной автоматизации, конечно, пока далеко, но базовая функциональность есть.

Практический лайфхак: интегрируйте проверку тегов в процесс деплоя. Если новый ресурс создается без обязательных меток — развертывание блокируется. Жестко, но результативно.

Unit Cost — цена бизнес-операции

Считайте, во сколько вам обходится каждый клиент
Считайте, во сколько вам обходится каждый клиент

Управлять можно только тем, что контролируешь. А контроль без измерений невозможен. Поэтому знать, сколько вам стоит обслужить одного клиента или обработать заказ, строго обязательно. В этом поможет метрика Unit Cost.

Формула: суммарные расходы на облако за период делятся на количество выполненных бизнес-операций.

Для интернет-магазина это могут быть оформленные заказы, для SaaS-сервиса — активные пользователи, для платежной системы — проведенные транзакции.

Пример расчета: допустим, сервис тратит 2.4 млн рублей в месяц при 80 тысячах транзакций, в этом случае цена операции составляет 30 рублей. Потом мы решили масштабироваться, и в следующем месяце транзакций стало 100 тысяч, а расходы не превысили 3 млн. Значит цена осталась прежней, и масштабирование прошло эффективно.

А если нет? Рост Unit Cost указывает на какие-то проблемы. Тут либо архитектура плохо справляется с нагрузкой, либо появились новые неэффективности. Ищем и устраняем.

Главное преимущество этой метрики в том, что ее понимает бизнес. Фразу "обслуживание клиента подешевело на 15%" руководство точно воспримет лучше технических объяснений про оптимизацию CPU.

Резерв и скидки — как платить за облако меньше

Тут все совсем просто: хотите сэкономить — покупайте со скидкой. Многие провайдеры дают льготы за долгосрочные договоры, предоплату, фиксированные мощности. Особенно российские, которые после 2022-го сильно нарастили свою аудиторию, но по-прежнему стараются привлекать клиентов выгодными условиями.

VK Cloud, например, дает дисконт за годовую предоплату, Яндекс.Облако — за увеличение объемов, а Cloud.ru торгуется с клиентурой индивидуально. В общем, совсем бесплатно вам доступ к облаку не отдадут, но сэкономить точно позволят.

Тут главное – не пожадничать и не набрать про запас слишком много. Поэтому считайте долю зарезервированных ресурсов: тратите 200 тысяч в месяц, 130 по предоплате — доля 65%. Но важно не просто поднять процент, а убедиться, что резерв реально работает, иначе это просто деньги на ветер.

Так что резервируйте стабильные нагрузки: продакшн-базы, которые пашут 24/7. А вот dev-окружения и микросервисы долго не живут, поэтому их лучше резервировать по мере надобности.

Точность планирования — когда что-то идет не так

Предыдущие показатели помогают оптимизировать текущие расходы. Но не менее важно уметь их предсказывать.

Формула элементарная: (Факт - План) / План × 100%. А потом смотрим, что получилось. Отклонение до 10% можно считать нормальным, до 20% — приемлемым. Если цифры выше – 30% и больше – значит, пересматриваем процесс планирования. Звучит страшно, но на практике облачные платформы сами этому способствуют.

VK Cloud позволяет ставить лимиты и шлет уведомления в случае превышения, а Яндекс.Облако следит за динамикой. Хотя, конечно, до продвинутых FinOps-фич наши поставщики пока не дошли.

Практический совет: настройте оповещения о превышении дневного бюджета на 25%. Проще решить проблему сразу, чем объяснять руководству причины двукратного перерасхода.

Конечно, российские реалии усложняют долгосрочное планирование. Из-за скачков курса доллара тарифы меняются, оборудование дорожает, а у регуляторов появляются новые требования и ограничения. Однако базовый принцип не меняется: лучше понимать ситуацию хотя бы примерно, чем не понимать ее совсем.

Индикатор финансовых аномалий – риски в российских реалиях

В российских реалиях аномалий даже больше, и FinOps тут незаменим
В российских реалиях аномалий даже больше, и FinOps тут незаменим

Внезапные скачки в расходах часто указывают на серьезные технические проблемы. А избежать катастрофических потерь поможет их раннее обнаружение.

Просто следуем алгоритму: если дневные траты превысили средний показатель за неделю более чем в полтора раза — нужна немедленная диагностика.

Частые причины аномалий:

  • Ошибки в коде после неудачного релиза
  • Неэффективные SQL-запросы под высокой нагрузкой
  • Проблемы с кэшированием
  • DDoS-атаки на публичные API
  • Вирусная активность в соцсетях, резко увеличившая трафик

Методика расследования: сначала смотрим биллинги, чтобы понять, какие сервисы дали рост. Потом изучаем логи приложений, метрики мониторинга, историю деплоев. Обычно источник проблемы обнаруживается за 10-15 минут. Но в российских условиях источники всплесков могут быть специфическими. Не надо забывать, что тут мы можем столкнуться со всем чем угодно – от блокировки популярных сервисов до изменений в поведении пользователей из-за внешних событий.

С чего начать

Все эти метрики работают в связке и по отдельности от них толку мало. Но знать — еще не значит уметь применять. Поэтому начинайте с малого. Выберите 2-3 метрики, например, коэффициент использования и процент потерь, и это будет хорошей базой для старта.

Кроме того, не забывайте нашу специфику: провайдеров мало, валютные качели, куча регуляторных требований. Это все влияет на интерпретацию метрик. Да и API у российских провайдеров требуют больше костылей, поэтому не пренебрегайте кастомными решениями. Иногда именно они могут дать наибольшую эффективность.

Стройте дашборды, чтобы все метрики были в одном месте. Ну, и приучайте команды обсуждать затраты на код-ревью и планерках, а не только техническую красоту.

Результаты начнутся, как только вы сможете четко ответить на вопросы, сколько у вас сейчас простаивает серверов, сколько стоит обслуживания одного клиента и т.п. Если нет — пора начинать мерить. Иначе все это просто не будет иметь смысла.