Jesus prays in the clouds.
У цій статті хочу познайомити вас з основними поняттями в темі хмарних обчислень. Також розглянемо лідерів ринку серед провайдерів хмарних технологій та їхні послуги.
Термін «хмара» (з англ. — cloud) використовується для абстрактного опису віддаленого сервера з доступом через мережу. Коли потрібно позначити такі сервери схематично чи на мережевих діаграмах, то зображують саме хмару.
Пересічним користувачам хмару описують як усе те, що має доступ через мережу інтернет.
Коли кажуть, що щось зберігається у хмарі, мається на увазі — на віддаленому сервері.
Інший пов’язаний термін — це хмарні обчислення (Cloud Computing). Приблизно півстоліття тому почали говорити про хмарні обчислення як одну з форм публічного сервісу (public utility) яка, наприклад, як і у випадку з електрикою, одного дня слугуватиме для вирішення повсякденних задач.
Із розвитком вебтехнологій, широкосмугового доступу, заліза серверів, різних технологій кластерінгу та грід-обчислень, віртуалізації та мультиарендності така форма публічного сервісу стала доступною сьогодні.
Існує багато визначень терміну Cloud Computing, зокрема досить влучні від Gartner Glossary або Forrester Research. Найбільш вдалим мені здається визначення NIST (National Institute of Standards and Technology).
Хмарні обчислення вони описують як модель забезпечення повсюдного та зручного доступу за запитом через мережу до спільного пулу обчислювальних ресурсів (мереж, сховищ, сервісів, серверів тощо). Вони можуть бути оперативно надані з мінімальною взаємодією з провайдером.
В NIST також визначили п’ять основних характеристик хмарних сервісів:
NIST розглядає Cloud Computing з точки зору трьох сервіс-моделей. Це набір компонентів для розробки продукту: від налаштування низькорівневої інфраструктури до готових до використання бізнес-компонентів.
Провайдер підтримує, замінює та фізично захищає сервери та інше залізо — таким чином це перестає бути проблемою для замовника.
Замовник опікується лише тими компонентами, що лежать над гіпервізером. Тобто він ізолюються від заліза, займається налаштуванням операційної системи, файловою системою сховища, деплоєм застосунку або контейнера. Як приклад, до рішень IaaS належать Compute Engine від Google та EC2 від Amazon, сервіси DigitalOcean провайдера.
Провайдер займається налаштуванням мережі, ОС, сховища тощо. Тут все залежить від потреби клієнта. Замовнику залишається «прошарок» для розгортання та запуску застосунка, де можна описати бізнес-логіку виконання.
Як приклад, можна підняти базу даних та відповідати за логіку наповнення БД, її модель, схему. У цьому випадку провайдер стежить за масштабуванням, розміром дисків, бекапом бази, балансуванням навантаження і так далі. В якості прикладів PaaS можу згадати Pub/Sub від GCP та Kinesis від Amazon, сервіси Heroku провайдера
Провайдер продає готовий до використання продукт, який можна кастомізувати в рамках наявної платформи. Таких продуктів багато. Це можуть бути сервіси для бізнес-аналітики, де не потрібно з нуля дбати про інфраструктуру та писати код-базу продукту, а можна використовувати наявний інтерфейс. Іншими прикладами є Google Apps, Salesforce, GitHub, Jira.
За допомогою цієї ілюстрації можете побачити, які компетенції належать провайдеру, а які — команді підтримки продукту:
Стосовно першої колонки On premises — тут немає провайдера, який допоможе розгорнути систему з нуля. Користувачу треба самостійно займатися всіма аспектами своєї системи. Переважно це сильна команда інфраструктури, яка опікується залізом, мережею, організацією дата-центрів, можливо, ще й ПО для створення віртуалок і насамкінець — розробкою застосунка.
У випадку IaaS вимоги трохи простіші. Зазвичай тут оперує DevOps-команда. Ці фахівці розгортають рівень, який забезпечує виконання системи. Тут налаштовуються CI/CD процеси, відбувається їх підтримка, моніторинг, налаштування наявних інструментів для створення віртуалок, контейнерів — тобто середовище виконання.
NIST виділяє чотири моделі розгортання у хмарі:
Один із перших Cloud Computing провайдерів була компанія Salesforce. Наприкінці 1990-х компанія почала надавати свої віддалені сервери для комерційного використання. Згодом до них приєднався Amazon, запустивши у 2002 році Amazon Web Services. У 2010 році на ринку з’явилася платформа Microsoft Azure, а через три роки — Google Cloud Platform.
Посилаючись на цьогорічне дослідження Gartner, найпопулярнішими провайдерами хмарних послуг є Amazon Web Services, Azure від Microsoft та Google Cloud Platform (уже кілька років поспіль). Розглянемо трохи детальніше кожен з них.
Найбільш зрілий та перевірений постачальник. Відповідно до рекомендацій щодо використання — нічого конкретного, оскільки якщо продукт, не важливо складної чи простої архітектури, можна запустити у віртуалізованому середовищі, це можна зробити і в AWS.
Серед сильних сторін — це лідер на ринку, перевірений часом. AWS містить усі основні сервіси для розробки і в той же час продовжує розвивати нові та інноваційні сфери. Провайдеру довіряють розгортання критичної інфраструктури з великими робочими навантаженням та продукти з чутливих доменів. Існує багато кредитів та знижок, які пропонують стартапам та новачкам, а також сертифікатів та ліцензій на вимоги різних регуляторів.
Серед недоліків — багате різноманіття сервісів, які потребують глибокої технічної експертизи при виборі. У той же час AWS — це велика платформа, де щось постійно доопрацьовується, змінюється з точки зору технологій та практик. А це створює труднощі навіть для найбільш гнучких команд. Також є деякі сирі сервіси з точки зору комерційного використання (хоча по ним надаються знижки).
Платформа надає трохи менше, ніж AWS. Та її головна перевага — широка інтеграція з продуктами материнської компанії та різноманітні партнерські програми (VMware, NetApp, Red Hat, Cray, Databricks і так далі). Також в Azure активно розвиваються напрями Edge computing та IoT.
За даними Gartner, до недоліків платформи часто відносять зауваження клієнтів на періодичні проблеми з SLA у критичних сервісах, складнощі під час укладання комерційних контрактів та недостатню якість платної технічної підтримки.
Основні можливості подібні до AWS та Azure. У тому ж дослідженні Gartner особливо виділили акцент платформи на роботу з Big Data, Machine Learning та аналітикою. А ще в Google пропонують вигідніші умови, що пояснюється бажанням залучити частину ринку. Щоправда, іноді це створює складнощі для клієнтів. GCP може переводити замовників на інші тарифні сітки пізніше, вже під час роботи з користувачем. До мінусів можна віднести деякі труднощі у співпраці з ентерпрайз-компаніями. Це більше пов’язано зі швидким зростанням та організаційною незрілістю платформи.
Можливості різних клауд-провайдерів схожі. Різниця лише в особливостях використання тих чи інших сервісів. Розглянемо поширений приклад дата пайплайну — коли необхідно організувати роботу з великим масивом даних. Основними сервісами можуть бути:
Усі ці сервіси розгорнуті навколо таких основних компонентів клауду, як нетворкінг, комп’ютинг та IAM (Identity & Access Management).
Тож підіб’ємо невеликий підсумок. Система у хмарі складається із сервісів. За винятком технічних деталей і термінології, кожен провайдер має набір схожих сервісів. Знаючи, як побудувати рішення на одному клауді, ви вже зможете побудувати схоже на іншому.
Наступна моя стаття на Highload буде присвячена бізнес-драйверам та ризикам міграції в хмару, а також best practices у проєктуванні хмарних застосунків. Тож не пропустіть!
Блогер та розробник Джозеф Круз розповів, чому не варто писати ідеальний код та чому це…
Днями я завзято нила про щось ChatGPT (експериментую між сеансами з живим терапевтом). І от…
«Крутіть колесо, щоб отримати знижку до 50%!» «Натисніть тут, щоб відкрити таємничу пропозицію!» «Зареєструйтесь зараз,…
Дуже хочеться робити якісь десктопні апки. Сумую за часами коли всі програми були offline-first, і…
Надсилаючи криптовалюту, багато новачків ставлять запитання: як працюють комісії та чому вони відрізняються в різних…
Нова афера набирає обертів — ось детальний розбір того, як фальшиві потенційні роботодавці намагаються вкрасти…