Запускаем FinOps в организации с помощью бюджетов и serverless
Рассказываем, что такое FinOps и как начать внедрение этих практик в вашей компании с помощью бюджетов Yandex Cloud и создания триггеров для остановки виртуальных машин.
16 января 2023 г.
10 минут чтения
Вместе с внедрением в разработку DevOps‑практик начинаются неизбежные изменения и в корпоративных процессах. В компаниях организовывают центры компетенций, вырабатывают различные подходы к управлению затратами на облачные технологии, а также появляются инженеры‑экономисты, которые умеют работать с большими данными и понимают как финансовую, так и техническую сторону облаков. Так на наших глазах формируется полноценное направление под названием FinOps — Financial Operations (по аналогии с DevOps — Developer Operations).
Как сокращать расходы на облако
Почти любой владелец бизнеса, CTO, да и опытный разработчик задумывается, во сколько обходится инфраструктура проекта в облаке. При этом бывает, что рост расходов не линеен относительно нагрузок. Очень не хочется переплачивать и выходить за рамки бюджета. А как понять, что вы переплачиваете и за что конкретно?
Опытный руководитель предпочитает принимать решения, основываясь на данных. Процесс сбора сметных расходов за определённый период можно назвать бюджетированием расходов в облаках. Если наши расходы меньше запланированных — это благоприятный исход, а в противном случае — серьёзный повод внимательно присмотреться к расходам. Выход за границы бюджета — сигнал, что, возможно, требуется оперативно принять какие‑то решения по управлению ресурсами или проектами.
В консервативной, отложенной стратегии принятия решений работа по сокращению расходов сводится к простому поиску наиболее дешёвого способа:
Если мы говорим об оборудовании, то это выливается в оптимизацию конфигурации.
Если переходим в область бизнеса, то это поиск тарифов и проведение переговоров с поставщиками услуг.
Если мы углубимся в область разработки, то наши решения коснутся области архитектуры наших приложений.
Часто принимаются комплексные решения, требующие значительного времени на внедрение в жизнь.
С одной стороны FinOps — это корпоративный процесс управления затратами на облачные технологии, в котором вместо ЦОДов с длинными закупочными циклами используются облака с различными типами тарификации на используемые ресурсы. С другой стороны FinOps — это не просто набор инструментов или чётко прописанных инструкций. Можно сказать, это культурное взаимопроникновение IT и финансов. И важно отметить, что все практики FinOps построены на актуальной информации о затратах.
FinOps как направление деятельности — это процесс извлечения полезной информации о затратах на облако. Он может выглядеть довольно сложно — например, так:
Получение данных из источников и настройка надёжных процессов регулярного обновления.
Очистка сырых данных.
Объединение датасетов.
Агрегация данных объединённого датасета с расчётом интересующих метрик.
Доставка информации стейкхолдерам через BI.
Прибавим к вышеописанному такие важные процессы, как прогнозирование, бюджетирование и выявление аномалий, которые тоже весьма непросты. Взять и внедрить практики FinOps в своей организации — задача подчас сложная и многоступенчатая. Но как быть и с чего начать, если следить за расходами нужно уже сейчас? А иногда нужно не только следить, но и принимать экстренные меры для предотвращения перерасхода средств.
У биллинга Yandex Cloud есть такая простая концепция, как бюджет — это способ контролировать расходы на потребление ресурсов. С их помощью вы можете настраивать пороги потребления, чтобы при их достижении вам приходили уведомления. Бюджеты могут считать потребление средств двумя способами: ресурсами и остатком средств на лицевом счёте.
С остатком средств всё просто: проверяется баланс лицевого счёта и сравнивается с установленным порогом. Уведомления отправляются пользователям, когда баланс лицевого счёта становится меньше порогового значения. В то же время для бюджетов на потребление есть два варианта: один учитывает активные скидки и промокоды — это «к оплате», а второй считает стоимость ресурсов без учёта скидок — это «стоимость потребления». Чтобы установить уведомления для вашего бюджета, можно воспользоваться простой инструкцией. Несложное использование механизма даст вам возможность уже здесь и сейчас реагировать на превышение вашего бюджета.
Простого уведомления может оказаться недостаточно. Тогда вы можете перейти к активному внедрению практик FinOps и начать управлять вашим бюджетом исходя из поставляемых данных.
Выделим три большие задачи для управления бюджетом:
Накопление сметных расходов за определённый период.
Отслеживание фактических и прогнозирование оставшихся расходов, и сравнение их с заложенной в бюджет суммой для выявления существенных отклонений от бюджета, которые являются благоприятными или неблагоприятными.
Изучение причин отклонений от бюджета.
В качестве отправной точки для активного встраивания элементов управления бюджетом можно воспользоваться триггерами для бюджетов. Вы заранее создаёте бюджет в биллинге и тем самым задаёте необходимое пороговое значение. Например, вы можете создать триггер для бюджетов, который вызывает функцию Cloud Functions для остановки ваших виртуальных машин. В момент вызова функции вы получите необходимое управляющее воздействие для принятия решений, основанное на данных.
ChatOps для разработчиков сервисов на Serverless
Использование сервисов из serverless‑экосистемы, конечно, требует построения отдельного процесса и некоторой разработки. Вы сможете напрямую использовать бюджеты и управлять ресурсами в облаке, например, останавливая нужные вам виртуальные машины в автоматическом режиме. Также это открывает перед вами возможности интегрировать сигналы из биллинга и со своими ChatOps‑практиками, что позволит улучшить DevOps‑процессы в вашей компании.