Сегодня трудно представить IT-проект, не использующий облачные сервисы. Это влечет определенные расходы. А где есть деньги, должен быть и контроль. Поэтому все чаще говорят о важности внедрения на проектах культуры FinOps.
Разберемся, как этот подход помогает отслеживать бюджет и грамотно экономить.
Что такое FinOps
Finance Operations – это методология и практика управления затратами и ресурсами в облачных вычислениях, сервисах и инфраструктуре. Часто говорят, что FinOps — это об отслеживании бюджета и экономии. Но на самом деле понятие гораздо шире. Это как отдельная дисциплина, культура, которая задает в компании устоявшиеся подходы к использованию облачных сервисов.
Суть состоит в том, чтобы гармонично сочетать качество услуг, их стоимость и производительность процессов. Это не столько о строгом учете денег, сколько о целесообразном использовании ресурсов и создании для бизнеса условий для заработка. Не исключено, что с эффективностью затрат может возрасти и счет за облако. Однако бизнесу это позволит увеличить ценность продукта.
Почему не вести все в Google-таблице?
Кто-то спросит: зачем все усложнять? Создайте Google-таблицу с основными и дополнительными затратами – и все. Однако в действительности это не так просто. Облачные сервисы даже в пределах AWS, Azure или Google Cloud могут иметь разную тарификации. В частности, за объемы ресурсов или за время использования, за часы, минуты или секунды или с другими ограничениями.
Бюджеты с подробными расчетами каждой позиции с обновлениями в режиме реального времени могут получиться очень большими. А если на проекте пользуются услугами нескольких провайдеров, то у вас будут данные, которые крайне трудно привести к единому виду. Поэтому без особых навыков обработки, анализа и презентации данных нереально контролировать все издержки.
Четыре преимущества внедрения FinOps
- Экономия .Избавившись от ненужных затрат, вы снизите стоимость облачных услуг и как результат — бюджет создания конечного продукта без потери качества.
- Производительность .FinOps-специалисты находят лучшие решения в использовании облаков. Они анализируют работу продукта, его погрузку, доступные предложения на рынке облачных сервисов. Их задача — подобрать то, что позволит команде получать больше вычислительных ресурсов в пределах бюджета.
- Предсказуемость .Использование облаков может быть непропорционально в разные периоды работы над продуктом. Это отразится и на счетах. Но с FinOps-практикой можно более точно спланировать использование ресурсов. Так компания будет знать, когда нужно платить больше, а когда меньше.
- Прозрачность . Иногда команды платят за облачные сервисы, не понимая до конца, за что они платят. FinOps детализирует счета и вовлекает в этот процесс всю команду. Когда люди видят реальные расходы, лучше несут ответственность за них.
С чего начать?
Для старта сосредоточьтесь на ключевых задачах:
Информирование
Команда должна понимать необходимость финансового контроля, видеть расходы и возможности оптимизации бюджета. Поэтому на уровне каждой группы специалистов на проекте вводите политику работы с облаком и стройте систему аналитики с тегами. Это позволит прозрачно, в динамике отслеживать, за что компания платит провайдерам.
Оптимизация
Когда все видят расходы и понимают их происхождение, уже легче выявить ненужные потери как денег, так и ресурсов. Это помогает сократить бюджет, исключив излишние позиции. И на этом же этапе можно перенаправить финансы на другие, более важные потребности в разработке или поддержке продукта. Можно оптимизировать инструменты аналитики.
Контроль
Найденные пути оптимизации расходов следует внедрить на практике. Следите, как команда воплощает в себя новые принципы работы с облаками и какие результаты это дает. В идеале контроль должен быть автоматизирован.
Описанный выше жизненный цикл FinOps не является «одноразовым». Эта методика подразумевает постоянное повторение всех трех этапов. При этом каждая часть команды двигается в своем темпе в соответствии с задачами и возможностями определенной группы.
Двигаемся по модели зрелости FinOps
Вы всегда должны двигаться вперед — к лучшей оптимизации использования ресурсов. Ориентируйтесь на модель зрелости FinOps и три этапа ее внедрения:
- Crawl. Начальная стадия, когда команда учится анализировать и оптимизировать бюджет. Все внимание направлено на исправление найденных ошибок. В этом случае специалисты рассчитывают издержки с погрешностью в 20%.
- Walk . Команда смогла автоматизировать большую часть проверки расходов. На этом уровне качество прогнозирования бюджета увеличивается до погрешности в 15%.
- Run. Наивысший уровень внедрения FinOps-культуры, когда эту методику придерживается вся команда даже в больших и сложных проектах. Погрешность расчета не превышает 12%.
Лучшие практики
FinOps достаточно молодое направление не только в Украине, но и на западном IT-рынке. Устоявшихся практик не так уж много. По-моему, лучше всего обращаться к FinOps Framework . Созданный усилиями сообщества FinOps Foundation, он описывает все, что касается запуска и поддержки FinOps-культуры на проекте. Начиная от функциональных зон деятельности, доменов, стейкхолдеров и заканчивая конкретными задачами, процессами, этапами. Сообщество основало Linux Foundation в 2019 году. К нему уже присоединилось более 10 тысяч экспертов и более 3500 компаний.
Следует упомянуть, что этот фреймворк постоянно эволюционирует. Каждый участник сообщества может по своему усмотрению добавить идеи для его улучшения. И даже в самом FinOps Foundation говорят, что специалисты могут свободно адаптировать описанные решения под конкретные задачи своего проекта. В Microsoft считают, что лучше сосредоточиться на модели зрелости, чем на фреймворке. Разработчики Azure советуют учитывать не конкретные показатели зрелости, а оценивать достижения команды отдельно по каждому направлению.
Самые эффективные подходы FinOps
Из известных подходов FinOps хочу выделить наиболее эффективные, на мой взгляд:
- Привлекайте всю команду . О рациональном использовании облаков должны думать все, кто так или иначе работает с ними. Недостаточно, чтобы за расходами следил один человек. FinOps должно стать культурой для всех на проекте.
- Распределяйте ответственность . За каждый пункт в счете должен быть ответственен. Только так можно добиться эффекта, когда каждый сотрудник постоянно размышляет, как оптимизировать использование «своих» облачных ресурсов.
- Визуализируйте данные . Наглядные, хорошо стилизованные графики затрат формируют у команды лучшее понимание того, что и сколько стоит и какое влияние оказывает.
- Настройте лимиты . Даже когда все ответственно относятся к 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-ом построенной им инфраструктуры. Он знает технологии проекта и тарифы сервисов, потребности заказчика и бизнеса и подчиняет это единственной цели.
Представим, что вы должны определить причину изменения стоимости услуг за определенное время. Для этого нужно отслеживать многие метрики. Например, загрузка CPU. После обнаружения проблемы переходим к поиску микросервиса, потребляющего лишние ресурсы. Иногда можно дойти до уровня REST-запросов! А после этого необходимо определить, оправдано ли это с точки зрения бизнеса. Надо посчитать, насколько выше производительность с увеличением потребления ресурсов. Конечно, это простой пример. В реальности же эта работа предполагает множество коммуникаций со всеми стейкхолдерами: от разработчиков и бизнес-аналитиков до клиента и коллег на стороне его команды.
Задачи могут быть совершенно разные. В одном случае FinOps-инженер исследует предложения провайдеров, в другом – выступает в качестве менеджера и готовит рекомендации разработчикам, контролирует соответствие их работе принципам FinOps.
У большинства проектов обычно нет возможности выделить такую отдельную роль. Поэтому за FinOps-культуру отвечают, прежде всего, девопсы. В то же время и другие вовлеченные в проект специалисты на разных этапах могут приобщаться к брейнштормингу и продумывать реальные потребности в облачных сервисах для своих задач и связанных частях продукта. По желанию любой ИТ-специалист может постичь FinOps.
FinOps должен быть частью проекта уже на старте
Если применить эти принципы с самого начала разработки, на уровне архитектуры можно предусмотреть гибкость в использовании ресурсов и сэкономить средства. Такой подход поможет сформировать и поддерживать мощную, продолжительную FinOps-стратегию. А с ней бизнес непременно добьется успеха.
Этот материал – не редакционный, это – личное мнение его автора. Редакция может не разделять это мнение.
Сообщить об опечатке
Текст, который будет отправлен нашим редакторам: