FinOps як культура. Що це та як впровадити на проєкті

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

Сьогодні важко уявити IT-проєкт, який не використовує хмарні сервіси. Відповідно це тягне за собою певні витрати. А де є гроші, має бути їх контроль. Саме тому все частіше говорять про важливість впровадження на проєктах культури FinOps. Як цей підхід допомагає відстежувати бюджет та грамотно економити — розповідає Олексій Вінніченко, DevOps-інженер в IT-команді NIX.

 

Що таке FinOps

 

Finance Operations — це методологія та практика управління витратами і ресурсами у хмарних обчисленнях, сервісах та інфраструктурі. Часто кажуть, що FinOps — це про відстеження бюджету та економію. Та насправді поняття набагато ширше. Це ніби окрема дисципліна, культура, яка задає в компанії усталені підходи до використання хмарних сервісів. Суть у тому, щоб гармонійно поєднувати якість послуг, їхню вартість та продуктивність процесів. Це не стільки про суворий облік грошей, скільки про доцільне використання ресурсів та створення для бізнесу умов для заробітку. Не виключено, що з ефективністю витрат може зрости і рахунок за хмари. Однак бізнесу це дозволить збільшити цінність продукту.

 

Хтось запитає: навіщо все ускладнювати? Створіть Google-таблицю з основними і додатковими витратами — і все. Проте в реальності це не так просто. Хмарні сервіси навіть у межах AWS, Azure або Google Cloud можуть мати різну тарифікацію. Зокрема, за обсяги ресурсів чи за час використання, за години, хвилини або секунди, чи з іншими обмеженнями. Бюджети з детальними розрахунками кожної позиції з оновленнями в режимі реального часу можуть вийти дуже великими. А якщо на проєкті користуються послугами кількох провайдерів, то ви матимете дані, які вкрай важко привести до єдиного вигляду. Тому без спеціальних навичок обробки, аналізу та презентації даних неможливо контролювати всі витрати.

 

4 переваги впровадження FinOps

 

  • Економія. Позбавившись від непотрібних витрат, ви зменшите вартість хмарних послуг і як результат — бюджет створення кінцевого продукту без втрати якості.

 

  • Продуктивність. FinOps-спеціалісти знаходять кращі рішення у використанні хмар. Вони аналізують роботу продукту, його навантаження, доступні пропозиції на ринку хмарних сервісів. Їхня задача — підібрати те, що дозволить команді отримувати більше обчислювальних ресурсів у межах наявного бюджету.

 

  • Передбачуваність. Використання хмар може бути непропорційним у різні періоди роботи над продуктом. Це позначиться і на рахунках. Але з FinOps-практикою можна більш точно спланувати використання ресурсів. Так компанія знатиме, коли потрібно платити більше, а коли — менше.

 

  • Прозорість. Інколи команди платять за хмарні сервіси, до кінця не розуміючи, за що вони платять. FinOps деталізує рахунки і залучає до цього процесу всю команду. Коли люди бачать реальні витрати, то краще несуть відповідальність за них.

 

З чого почати?

 

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

 

  • Інформування

Команда має розуміти необхідність фінансового контролю, бачити витрати та можливості для оптимізації бюджету. Тому на рівні кожної групи фахівців на проєкті впроваджуйте політику роботи з хмарою і будуйте систему аналітики з тегами. Це дозволить прозоро, в динаміці відстежувати, за що компанія платить провайдерам.

 

  • Оптимізація

Коли всі бачать витрати та розуміють їх походження, вже легше виявити непотрібні втрати — як грошей, так і ресурсів. Це допомагає скоротити бюджет, виключивши зайві позиції. І на цьому ж етапі можна перенаправити фінанси на інші, важливіші потреби в розробці або підтримці продукту. Можна й оптимізувати інструменти аналітики.

 

  • Контроль

Знайдені шляхи оптимізації витрат треба впровадити на практиці. Слідкуйте, як команда втілює нові принципи роботи з хмарами та які результати це дає. В ідеалі контроль має бути автоматизованим.

 

Описаний вище життєвий цикл FinOps не є «одноразовим». Ця методика передбачає постійне повторення всіх трьох етапів. При цьому кожна частина команди рухається у своєму темпі відповідно до задач і можливостей певної групи.

 

Рухаємось по моделі зрілості FinOps

 

Ви завжди маєте рухатися вперед — до кращої оптимізації використання ресурсів. Орієнтуйтесь на модель зрілості FinOps та 3 етапи її впровадження:

 

  • Crawl — початкова стадія, коли команда вчиться аналізувати й оптимізувати бюджет. Всю увагу спрямовано на виправлення знайдених помилок. У цьому випадку фахівці розраховують витрати з погрішністю у 20%.

 

  • Walk — команда змогла автоматизувати більшу частину перевірки витрат. На цьому рівні якість прогнозування бюджету підвищується до погрішності у 15%.

 

  • Run — найвищий рівень впровадження FinOps-культури, коли цієї методики дотримується вся команда навіть у великих та складних проєктах. Погрішність розрахунків не перевищує 12%.

 

Best practices

 

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

 

Варто згадати, що цей фреймворк постійно еволюціонує. Кожен учасник спільноти може на свій розсуд додати ідеї для його покращення. Та й навіть у самому FinOps Foundation кажуть, що фахівці можуть вільно адаптувати описані рішення під конкретні задачі свого проєкту. У Microsoft вважають, що краще зосередитись на моделі зрілості, аніж на цьому фреймворку. Розробники Azure радять зважати не на конкретні показники зрілості, а оцінювати досягнення команди окремо по кожному напряму.

 

З відомих підходів 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-стратегію. А з нею бізнес неодмінно досягне успіху.

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

Останні статті

Токсичные коллеги. Как не стать одним из них и прекратить ныть

В благословенные офисные времена, когда не было большой войны и коронавируса, люди гораздо больше общались…

07.12.2023

Делать что-то впервые всегда очень трудно. Две истории о начале карьеры PM

Вот две истории из собственного опыта, с тех пор, когда только начинал делать свою карьеру…

04.12.2023

«Тыжпрограммист». Как люди не из ІТ-отрасли обесценивают профессию

«Ты же программист». За свою жизнь я много раз слышал эту фразу. От всех. Кто…

15.11.2023

Почему чат GitHub Copilot лучше для разработчиков, чем ChatGPT

Отличные новости! Если вы пропустили, GitHub Copilot — это уже не отдельный продукт, а набор…

13.11.2023

Как мы используем ИИ и Low-Code технологии для разработки IT-продукта

Несколько месяцев назад мы с командой Promodo (агентство инвестировало в продукт более $100 000) запустили…

07.11.2023

Университет или курсы. Что лучше для получения IT-образования

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

19.10.2023