ru:https://highload.today/blogs/finops-kak-kultura-kak-pravilno-upravlyat-rashodami-v-oblachnyh-servisah/ ua:https://highload.today/uk/blogs/finops-yak-kultura-yak-pravilno-upravlyati-vitratami-u-hmarnih-servisah/
logo
DevOps      26/07/2023

FinOps як культура. Як правильно управляти витратами у хмарних сервісах

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

DevOps-інженер в NIX

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

Розберемось, як цей підхід допомагає відстежувати бюджет та грамотно економити.

Що таке FinOps

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

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

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

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

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

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

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

  • Передбачуваність.  Використання хмар може бути непропорційним у різні періоди роботи над продуктом. Це позначиться і на рахунках. Але з FinOps-практикою можна більш точно спланувати використання ресурсів. Так компанія знатиме, коли потрібно платити більше, а коли — менше.
  • Онлайн-курс Frontend-разробник від Powercode academy.
    Курс на якому ти напишеш свій чистий код на JavaScript, попрацюєш із різними видами верстки, а також адаптаціями проектів під будь-які екрани. .
    Зарееструватися
  • Прозорість. Інколи команди платять за хмарні сервіси, до кінця не розуміючи, за що вони платять. FinOps деталізує рахунки і залучає до цього процесу всю команду. Коли люди бачать реальні витрати, то краще несуть відповідальність за них.

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

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

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

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

Оптимізація

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

Контроль

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

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

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

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

  • Crawl. Початкова стадія, коли команда вчиться аналізувати й оптимізувати бюджет. Всю увагу спрямовано на виправлення знайдених помилок. У цьому випадку фахівці розраховують витрати з погрішністю у 20%.
  • Онлайн-курс "Продуктова аналітика" від Laba.
    Станьте універсальним аналітиком, опанувавши 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 має стати культурою для всіх на проєкті.
  • Розподіляйте відповідальність.  За кожен пункт у рахунку має бути відповідальний. Тільки так можна досягти ефекту, коли кожен співробітник постійно розмірковує, як оптимізувати використання «своїх» хмарних ресурсів.
  • Візуалізуйте дані.  Наочні, гарно стилізовані графіки витрат формують у команди краще розуміння того, що й скільки коштує та який вплив має.
  • Онлайн-курс "Директор з продажу" від Laba.
    Як стратегічно впливати на дохід компанії, мотивувати сейлзів перевиконувати KPI та впроваджувати аналітику — навчить комерційний директор Laba з 12-річним досвідом у продажах.
    Приєднатись до курсу
  • Налаштуйте ліміти.  Навіть коли всі відповідально ставляться до 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-ом побудованої ним інфраструктури. Він знає технології проєкту і тарифи сервісів, потреби замовника та бізнесу — і підпорядковує це єдиній меті.

Курс Power Skills For Tech від Enlgish4IT.
Зменшіть кількість непорозумінь на робочому місці та станьте більш ефективним у спілкуванні в мультикультурній команді. Отримайте знижку 10% за промокодом ITCENG.
Реєстрація на курс

Уявімо, що ви маєте визначити причину зміни вартості послуг за певний час. Для цього треба відстежувати багато метрик. Наприклад, навантаження CPU. Після виявлення проблеми переходимо до пошуку мікросервісу, який споживає зайві ресурси. Інколи так можна дійти до рівня REST-запитів! А після цього необхідно визначити, чи виправдано це з точки зору бізнесу. Треба порахувати, наскільки вищою є продуктивність зі збільшенням споживання ресурсів. Звісно, це простий приклад. У реальності ж ця робота передбачає багато комунікацій з усіма стейкхолдерами: від розробників та бізнес-аналітиків до клієнта і колег на боці його команди.

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

У більшості проєктів зазвичай немає можливості виділити таку окрему роль. Тому за FinOps-культуру відповідають передусім девопси. Водночас й інші залучені до проєкту фахівці на різних етапах можуть долучатись до брейнштормінгу і продумувати реальні потреби у хмарних сервісах для своїх задач та пов’язаних частинах продукту. За бажання, будь-який ІТ-спеціаліст може осягнути FinOps.

FinOps має бути частиною проєкту вже на старті

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

Якщо ви знайшли помилку, будь ласка, виділіть фрагмент тексту та натисніть Ctrl+Enter.

Онлайн-курс "Архітектура високих навантажень" від robot_dreams.
Досвід та інсайти від інженера, який 12 років створює програмне забезпечення для Google.
Програма курсу і реєстрація

Цей матеріал – не редакційний, це – особиста думка його автора. Редакція може не поділяти цю думку.

Топ-5 найпопулярніших блогерів березня

PHP Developer в ScrumLaunch
Всего просмотровВсього переглядів
2434
#1
Всего просмотровВсього переглядів
2434
Founder at Shallwe, Python Software Engineer (Django/React)
Всего просмотровВсього переглядів
113
#2
Всего просмотровВсього переглядів
113
Career Consultant в GoIT
Всего просмотровВсього переглядів
95
#3
Всего просмотровВсього переглядів
95
CEO & Founder в Trustee
Всего просмотровВсього переглядів
94
#4
Всего просмотровВсього переглядів
94
Рейтинг блогерів

Найбільш обговорювані статті

Топ текстів

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

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

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