ru:https://highload.today/blogs/dlya-spotify-eto-byl-nastoyashhij-chellendzh-7-glavnyh-prichin-i-riski-pereezda-v-oblako/ ua:https://highload.today/uk/blogs/dlya-spotify-tse-buv-spravzhnij-chelendzh-7-golovnih-prichin-ta-riziki-pereyizdu-v-hmaru/
logo
Хмари      21/12/2022

«Для Spotify це був справжній челендж»: 7 головних причин та ризики переїзду в хмару

Юрій Швидкий BLOG

Data Engineer в NIX

У моїй попередній статті ми познайомились з основними термінами хмарних обчислень. Тепер поговоримо про їх інтеграцію в систему. Розглянемо Cloud Adoption Framework та Well-Architected Framework, необхідні при проєктуванні систем у хмарі.

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

Переваги для бізнесу

Capacity planning

Йдеться про планування виробничих потужностей. Так компанія оцінює свої ресурси, необхідні для того, щоб продукт відповідав вимогам ринку та змінним навантаженням. Тут можливі дві проблеми. Перша — over provisioning, коли компанія закупила потужні та дорогі сервери, які простоюють без діла. Ось, наприклад, на графіку зображено співвідношення витрат на інфраструктуру та час її використання (Opportunity Cost):

Друга проблема — under provisioning, коли придбані сервери не справляються з навантаженням. На графіку це позначено як Unable to Serve Customers. В обох випадках помилки у плануванні потужностей призводять до втрати грошей, клієнтів та погіршення репутації самої компанії. Тож клауд-провайдер допоможе тут гнучко обирати ресурси під необхідне навантаження.

Cost reduction

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

Organization agility

Це гнучка адаптація до раптових змін через внутрішні чи зовнішні чинники. Як приклад — пандемія COVID-19 та викликаний нею масовий перехід на віддалену роботу. Через це навантаження на мережу та IT-інфраструктуру різко зросло. Компанії, які не були гнучкими у вирішенні цих питань, постраждали найбільше. Саме оснащення власного дата-центру або налаштування інфраструктури в клауді могло зарадити ситуації.

Ризики при використанні хмарних технологій

Регуляторні ризики

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

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

Гібридна клауд-інтеграція

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

Курс Fullstack Web Development від Mate academy.
Стань універсальним розробником, який може створювати веб-рішення з нуля.
Дізнатись про курс

Vendor lock-in

Враховуючи певні технології чи підписані контракти, компанії можуть потрапити у залежність їхнього продукту від конкретного провайдера.

Які можуть бути проблеми? Наприклад, із Service Level Agreement — коли після масштабування середній час відповіді сервісу не такий, як прогнозували. Також можливе зниження пропускної спроможності, стійкості під навантаженням, вичерпання пам’яті бази даних тощо. На все це варто додатково звертати увагу.

Відсутність експертизи інженерів

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

Час мігрувати у хмару

Розглянемо питання доцільності міграції з On premises на хмарні рішення з технічного боку.

1Нестача DevOps-фахівців

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

Хмарні інструменти стають все простішими і доступнішими. Частіше з’являються рішення «з коробки», зростає популярність no code/low code. В принципі, для роботи з цими інструментами не потрібно бути девопсом.

2Робота з георозподіленими даними

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

3Наявність розподілених послуг

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

4Потреба точної оцінки витрат

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

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

5Прискорення циклів розробки

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

6Безпека «з коробки»

Стандартний клауд-провайдер за замовчуванням надає досить високий рівень захисту даних. Тут все побудовано на ролях і не вимагає тривалого, складного і вартісного налаштування.

7Інтеграція продуктів

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

Перш ніж мігрувати до клауду, слід враховувати одну важливу деталь. Це доволі довгий і ресурсомісткий процес. Він вимагає стратегії та покрокового плану, аби спростити переїзд та уникнути можливих втрат.

У контексті цієї теми варто ще згадати Cloud Adoption Framework (CAF). Він дозволяє спростити процес міграції. Проте це доволі складний для розуміння фреймворк, який піднімає чимало питань навколо бізнесу, управління, безпеки та операційної ефективності.

Докладно на CAF не зупинятимусь, та ви можете самостійно ознайомитись із ним за цими посиланнями:

Хмарні системи та Well-Architected Framework

Перейдемо до питання розробки та проєктування систем. Існує багато підходів та практик розробки систем (12/15 Factor App, TOGAF, Zachman framework, Enterprise patterns). Так чи інакше все це розгортається в одній із моделей хмари. У цій статті я сфокусуюсь на загальних практиках використання Well-Architected Framework.

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

Своє бачення WAF мають усі великі хмарні провайдери: AWS WAF, Azure WAF та GCP WAF. Кожен із наведених за посиланнями стовпів фреймворку — це окрема тема, що виходить за межі цієї статті. Однак, як приклад, розглянемо загальні принципи проєктування від лідера ринку — AWS.

Ці поради є універсальними при розробці системи та зустрічаються у різних хмарних провайдерів. Хоча корисними вони будуть і тим, хто працює не лише з клауд-технологіями.

Досить вгадувати потребу в ресурсах

Цей принцип стосується Capacity planning. Клауд повинен дозволяти автоматично масштабувати залежно від зменшення чи збільшення навантаження. Як вертикально, так і горизонтально.Правило діє як для серверів, так і, скажімо, щодо кількості запитів до бази даних. 

Тестуйте систему під очікуване навантаження

Зазвичай це стосується тестування продакшену. Хмара дозволяє доволі легко створювати тестове оточення для тестування навантаження та перевіряти, чи всі ліміти системи відповідають передбачуваними оцінками. Після тестування це оточення можна без проблем видалити.

Всі подібні інструменти краще запускати через Infrastructure as Code — як репліку продакшену. Так ви зможете протестувати та видалити систему у будь-який момент.

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

Автоматизуйте для спрощення архітектурних експериментів

Більшою мірою йдеться про інфраструктуру: організацію її як коду, зберігання в системі контролю версій та змін невеликими імплементаціями (за потреби повертати зміни).

Рекомендується дотримуватись best practices та пропагованої культури в залежності від типу самого продукту (DevOps, DataOps, MLOps тощо).

Допускайте еволюцію архітектури

На відміну від традиційних On premise рішень, коли зміни в архітектурі відбувається значні, але не часто, в клауді ліпше вдаватися до змін частіше, проте невеликими ітераціями.

Скеровуйте дизайн архітектури за допомогою даних

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

Покращуйте архітектуру через Game days

Під час Game days моделюється проблемна подія у клауді, підготовлена за відповідним сценарієм, та проганяється у межах спеціальних івентів.

Можна опрацювати ситуацію, коли, скажімо, хтось отримав доступ до адмін-акаунту і почав вносити зміни в інфраструктуру. Тоді у команди має бути покрокова інструкція (runbook), як поводитись у такій ситуації. Відпрацювання сценарію дає зрозуміти, наскільки добре і швидко всі впоралися з вирішенням проблеми.

Ось приклад такого сценарію:

… та шаблон документації впродовж Game days:

Курс UX/UI дизайнер сайтів і застосунків з Alice K.
Курс від практикуючої UI/UX дизайнерки, після якого ви знатимете все про UI/UX дизайн .
Реєстрація на курс

Виключно використанням WAF та CAF робота у хмарі не обмежується. У кожній екосистемі є свої інструменти для покращення розробки застосунків у клауді. Втім, це вже тема для окремої статті.

Детальніше про застосування Well-Architected Framework читайте за посиланнями:

Spotify: історія успішної міграції до клауду

Наостанок наведу приклад — переїзд у хмару сервісу Spotify. У 2015 році його команда вирішила відмовитися від власної інфраструктури.

Причина — бажання зосередитись на підвищенні зручності сервісів і доставки музики, а не на обслуговуванні власної інфраструктури, як це заведено в IT-компаніях (Spotify позиціонують себе як продуктову компанію). У такому разі підтримка дата-центрів не впливає на цінність кінцевого продукту. А ще, за прогнозом, використання клауду мало заощадити чималі кошти.

У якості нової платформи обрали тоді ще початківця — Google Cloud Platform. Таким чином Spotify відійшли від питань підтримки, масштабування та балансування кластерів Kafka. Все це замінили Pub/Sub сервісом на стороні клауду. Те саме стосувалося й Sparkу зв’язці з Hadoop. Окремо Spotify оцінили один із найпопулярніших гуглових сервісів — BigQuery та BigTable. З ними вдалося швидко доставляти користувачам рекомендації у масштабі терабайтів даних.

Курс "Web design" від Web-academy.
Швидкий початок кар'єри у сфері IT! Опануйте професію веб-дизайнера — почніть самостійно керувати своїм часом й отримувати високий дохід вже за 9 тижнів.
Дізнатися більше

Міграція для Spotify виявилась справжнім челенджем. У 2015 році сервіс мав 120 розподілених команд та 170 млн користувачів. Це був найбільший Hadoop-кластер у Європі — 2500 нодів, 1200 сервісів, 20000 джобів на кластері та 100 ПБ даних. Якби компанія зупинила генерацію даних, то переїзд у хмару на доступній тоді швидкості 20 ГБ/с зайняв би 2 місяці. Насправді міграція тривала близько двох років. Лише на перенесення даних знадобився рік…

Протягом цього часу Spotify багато експериментували. Розробники полюбляли Scala та функціональне програмування, тому створили свій Scala-фреймворк для роботи з кластером. Більше про цей досвід міграції можете дізнатися з цього відео:

 

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

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

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

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

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

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

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

Топ текстів

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

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

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