UA RU
logo
DevOps      27/07/2023

FinOps как культура. Как правильно управлять расходами в облачных сервисах

Олексій Вінніченко BLOG

DevOps-інженер в NIX

Сегодня трудно представить IT-проект, не использующий облачные сервисы. Это влечет определенные расходы. А где есть деньги, должен быть и контроль. Поэтому все чаще говорят о важности внедрения на проектах культуры FinOps.

Разберемся, как этот подход помогает отслеживать бюджет и грамотно экономить.

Что такое FinOps

Finance Operations – это методология и практика управления затратами и ресурсами в облачных вычислениях, сервисах и инфраструктуре. Часто говорят, что FinOps — это об отслеживании бюджета и экономии. Но на самом деле понятие гораздо шире. Это как отдельная дисциплина, культура, которая задает в компании устоявшиеся подходы к использованию облачных сервисов.

Суть состоит в том, чтобы гармонично сочетать качество услуг, их стоимость и производительность процессов. Это не столько о строгом учете денег, сколько о целесообразном использовании ресурсов и создании для бизнеса условий для заработка. Не исключено, что с эффективностью затрат может возрасти и счет за облако. Однако бизнесу это позволит увеличить ценность продукта.

Почему не вести все в Google-таблице?

Кто-то спросит: зачем все усложнять? Создайте Google-таблицу с основными и дополнительными затратами – и все. Однако в действительности это не так просто. Облачные сервисы даже в пределах AWS, Azure или Google Cloud могут иметь разную тарификации. В частности, за объемы ресурсов или за время использования, за часы, минуты или секунды или с другими ограничениями.

Бюджеты с подробными расчетами каждой позиции с обновлениями в режиме реального времени могут получиться очень большими. А если на проекте пользуются услугами нескольких провайдеров, то у вас будут данные, которые крайне трудно привести к единому виду. Поэтому без особых навыков обработки, анализа и презентации данных нереально контролировать все издержки.

Четыре преимущества внедрения FinOps

  • Экономия .Избавившись от ненужных затрат, вы снизите стоимость облачных услуг и как результат — бюджет создания конечного продукта без потери качества.
  • Производительность .FinOps-специалисты находят лучшие решения в использовании облаков. Они анализируют работу продукта, его погрузку, доступные предложения на рынке облачных сервисов. Их задача — подобрать то, что позволит команде получать больше вычислительных ресурсов в пределах бюджета.

  • Предсказуемость .Использование облаков может быть непропорционально в разные периоды работы над продуктом. Это отразится и на счетах. Но с FinOps-практикой можно более точно спланировать использование ресурсов. Так компания будет знать, когда нужно платить больше, а когда меньше.
  • Психологічний профорієнтаційний тест для IT-фахівців від Hillel IT School.
    Пройдіть психологічний профорієнтаційний тест для IT-фахівців щоб дізнатися ваші сильні сторони, вподобання і інтереси і з'ясувати, яка IT-спеціальність вам підходить.
    Пройти тест
  • Прозрачность . Иногда команды платят за облачные сервисы, не понимая до конца, за что они платят. FinOps детализирует счета и вовлекает в этот процесс всю команду. Когда люди видят реальные расходы, лучше несут ответственность за них.

С чего начать?

Для старта сосредоточьтесь на ключевых задачах:

Информирование

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

Оптимизация

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

Контроль

Найденные пути оптимизации расходов следует внедрить на практике. Следите, как команда воплощает в себя новые принципы работы с облаками и какие результаты это дает. В идеале контроль должен быть автоматизирован.

Описанный выше жизненный цикл FinOps не является «одноразовым». Эта методика подразумевает постоянное повторение всех трех этапов. При этом каждая часть команды двигается в своем темпе в соответствии с задачами и возможностями определенной группы.

Двигаемся по модели зрелости FinOps

Вы всегда должны двигаться вперед — к лучшей оптимизации использования ресурсов. Ориентируйтесь на модель зрелости FinOps и три этапа ее внедрения:

  • Crawl.  Начальная стадия, когда команда учится анализировать и оптимизировать бюджет. Все внимание направлено на исправление найденных ошибок. В этом случае специалисты рассчитывают издержки с погрешностью в 20%.
  • Онлайн-курс "Ціноутворення для виробників та ритейлу" від Laba.
    Масштабуйте бізнес, незалежно від конкурентів, завдяки оптимізації стратегії ціноутворення.Досвід та фідбек від Senior Product Manager Pricing Platform у Zalando.
    Детальніше про курс
  • Walk . Команда смогла автоматизировать большую часть проверки расходов. На этом уровне качество прогнозирования бюджета увеличивается до погрешности в 15%.
  • Run.  Наивысший уровень внедрения FinOps-культуры, когда эту методику придерживается вся команда даже в больших и сложных проектах. Погрешность расчета не превышает 12%.

Лучшие практики

FinOps достаточно молодое направление не только в Украине, но и на западном IT-рынке. Устоявшихся практик не так уж много. По-моему, лучше всего обращаться к FinOps Framework . Созданный усилиями сообщества FinOps Foundation, он описывает все, что касается запуска и поддержки FinOps-культуры на проекте. Начиная от функциональных зон деятельности, доменов, стейкхолдеров и заканчивая конкретными задачами, процессами, этапами. Сообщество основало Linux Foundation в 2019 году. К нему уже присоединилось более 10 тысяч экспертов и более 3500 компаний.

Следует упомянуть, что этот фреймворк постоянно эволюционирует. Каждый участник сообщества может по своему усмотрению добавить идеи для его улучшения. И даже в самом FinOps Foundation говорят, что специалисты могут свободно адаптировать описанные решения под конкретные задачи своего проекта. В Microsoft считают, что лучше сосредоточиться на модели зрелости, чем на фреймворке. Разработчики Azure советуют учитывать не конкретные показатели зрелости, а оценивать достижения команды отдельно по каждому направлению.

Самые эффективные подходы FinOps

Из известных подходов FinOps хочу выделить наиболее эффективные, на мой взгляд:

  • Привлекайте всю команду . О рациональном использовании облаков должны думать все, кто так или иначе работает с ними. Недостаточно, чтобы за расходами следил один человек. FinOps должно стать культурой для всех на проекте.
  • Распределяйте ответственность . За каждый пункт в счете должен быть ответственен. Только так можно добиться эффекта, когда каждый сотрудник постоянно размышляет, как оптимизировать использование «своих» облачных ресурсов.
  • Визуализируйте данные . Наглядные, хорошо стилизованные графики затрат формируют у команды лучшее понимание того, что и сколько стоит и какое влияние оказывает.
  • Курс-професія "Unreal Engine Developer" від robot_dreams.
    Отримайте фундаментальні знання з розробки ігор, навчіться кодити на С++ та використовувати Blueprints і Gameplay Ability System, щоб створювати віртуальні всесвіти на топовому рівні.
    Про курс
  • Настройте лимиты . Даже когда все ответственно относятся к FinOps, есть риск превышения бюджета. Причин может быть множество: от роста трафика до ошибок в коде. Поэтому стоит  подключить оповещение и автоматическое ограничение ресурсов при критических ситуациях, чтобы не потерять большие деньги.
  • Не ограничивайтесь одной платформой . Зачастую на проектах подключают сервисы одного провайдера. Это упрощает работу разработчиков, девопсов, да и легче гарантировать стабильность продукта. Но иногда разделение микросервисов на разные платформы позволяет сэкономить значительные средства и предотвратить определенные риски.
  • Комбинируйте инструменты . Существуют хорошие нативные приложения FinOps: AWS Cost Explorer, Azure Invoices, Google Cloud Pricing Calculator. Так же пригодятся и посторонние решения вроде Apptio Cloudability и Spot by NetApp.
  • Обращайтесь к техподдержке . Может показаться странным спрашивать у провайдера, как сэкономить на оплате его услуг. На самом же деле сапорт вполне адекватно относится к оптимизации ресурсов и бюджетов клиентов. Все клауд-гиганты предлагают разные варианты экономии: сезонные акции, споты, оптовые цены. Иногда это касается определенных технологий. К примеру, в AWS обещают до 72% скидки на зарезервированные инстансы по сравнению с инстансами по запросу.
  • Отказывайтесь не только от значительных, но и от малых затрат . Было бы классно найти такой пункт бюджета, который сразу позволит сэкономить 20% и больше. В действительности же такого почти никогда не бывает. Однако избавляясь от многих мельчайших затрат, вы тоже оптимизируете немало ресурсов.
  • Отключайте или удаляйте ненужное . Много средств идет на инстансы, которые не используются здесь и сейчас. Настройте автоматические системы зума так, чтобы отключать или вообще удалять то, что не требуется на проекте в данный момент. Более предпочтительно затем включить или создать их заново.
  • Прогнозируйте . Многие инструменты позволяют рассчитать затраты на определенные ресурсы еще до их подключения. Так разработчики сразу оценивают целесообразность определенного технического решения. В будущем это поможет избежать ошибок на деплое.

Что нужно знать, чтобы стать FinOps-инженером

Вам понадобятся знания DevOps, Business Intelligence, Big Data, а также понимание сферы финансов (прогнозирование, бюджетирование).

Обычно это направление выбирают DevOps-специалисты, которые хорошо разбираются в облачных решениях и могут встраивать методологии в пайплайны CI/CD. В какой-то степени специалист становится Product Owner-ом построенной им инфраструктуры. Он знает технологии проекта и тарифы сервисов, потребности заказчика и бизнеса и подчиняет это единственной цели.

Онлайн-курс DevOps engineer від Mate academy.
DevOps інженери відповідають за автоматизацію процесів розробки, тестування та випуску продукту. Завдяки цьому курсу ви швидко станете високооплачуваним спеціалістом.
Отримати знижку на курс

Представим, что вы должны определить причину изменения стоимости услуг за определенное время. Для этого нужно отслеживать многие метрики. Например, загрузка CPU. После обнаружения проблемы переходим к поиску микросервиса, потребляющего лишние ресурсы. Иногда можно дойти до уровня REST-запросов! А после этого необходимо определить, оправдано ли это с точки зрения бизнеса. Надо посчитать, насколько выше производительность с увеличением потребления ресурсов. Конечно, это простой пример. В реальности же эта работа предполагает множество коммуникаций со всеми стейкхолдерами: от разработчиков и бизнес-аналитиков до клиента и коллег на стороне его команды.

Задачи могут быть совершенно разные. В одном случае FinOps-инженер исследует предложения провайдеров, в другом – выступает в качестве менеджера и готовит рекомендации разработчикам, контролирует соответствие их работе принципам FinOps.

У большинства проектов обычно нет возможности выделить такую ​​отдельную роль. Поэтому за FinOps-культуру отвечают, прежде всего, девопсы. В то же время и другие вовлеченные в проект специалисты на разных этапах могут приобщаться к брейнштормингу и продумывать реальные потребности в облачных сервисах для своих задач и связанных частях продукта. По желанию любой ИТ-специалист может постичь FinOps.

FinOps должен быть частью проекта уже на старте

Если применить эти принципы с самого начала разработки, на уровне архитектуры можно предусмотреть гибкость в использовании ресурсов и сэкономить средства. Такой подход поможет сформировать и поддерживать мощную, продолжительную FinOps-стратегию. А с ней бизнес непременно добьется успеха.

If you have found a spelling error, please, notify us by selecting that text and pressing Ctrl+Enter.

Онлайн-курс Pyton від Powercode academy.
Опануйте PYTHON з нуля та майте проект у своєму портфоліо вже через 4 місяця.
Приєднатися

Этот материал – не редакционный, это – личное мнение его автора. Редакция может не разделять это мнение.

Ваша жалоба отправлена модератору

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: