EngX Code Review: почни писати код іще краще й побудуй ефективний процес код-рев’ю.

Хмарні обчислення: історія, можливості, перспективи

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

Автор статтіSenior Systems Engineer EPAM Костянтин Костін.


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

Що таке хмарні обчислення?

Хмарні обчислення — це відносно новий напрям розвитку інформаційних технологій, який пропонує клієнтам віртуальне апаратне забезпечення, платформи, сервіси та програмне забезпечення через інтернет. Слово «хмара» використовується, тому що ми не знаємо точного фізичного розташування інфраструктури, яка підтримує ці віртуальні сервіси.

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

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

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

Впровадження хмарних технологій із точки зору управління проєктами

Історія хмарних обчислень

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

1960-ті роки: початок

  • Ідею хмарних обчислень можна простежити до 1960-х років, коли вчений-інформатик Дж. С. Р. Ліклайдер запропонував концепцію «Міжгалактичної комп’ютерної мережі». Ця ідея й заклала основу для майбутнього інтернету. Багато авторів визначають принцип поділу часу (англ. time-sharing) у використанні комп’ютерів у 1960-х і 1970-х роках як ранні хмарні обчислення, однак він відрізняється від сучасного поняття. Хмарні обчислення стали можливими й набули популярності, коли інтернет став швидким і надійним.

1970-ті роки: віртуалізація та зародження інтернету

  • У 1970-х роках IBM запропонували концепцію віртуалізації як спосіб логічного поділу ресурсів мейнфрейму. Це стало основою для майбутнього розвитку хмарних сервісів.
  • 1974 року Вінтон Серф і Боб Кан створили протокол TCP. Пізніше його об’єднали з протоколом IP, щоб сформувати мережу, відому сьогодні як інтернет.

1990-ті роки: поява сучасних хмар

  • Невідомо, хто вперше ввів термін «хмарні обчислення». Різні джерела приписують перше використання терміна різними людьми у внутрішніх документах компаній, презентаціях або книгах.
  • 1999 року було засновано компанію Salesforce , яка стала першим постачальником програмного забезпечення як послуги (SaaS). Цей момент можна вважати поворотним, оскільки вона однією з перших надала доступ до застосунків через інтернет.

2000-ні роки: важливі досягнення в хмарних обчисленнях

  • 2002 року Amazon запустили Amazon Web Services (AWS)— платформу з різними хмарними сервісами. 2006 року з’явилася служба AWS Elastic Compute Cloud (EC2), що дає змогу користувачам орендувати віртуальні машини. Це поклало початок сучасній інфраструктурі хмарних обчислень.
  • 2008 року Google запропонували Google App Engine — платформу для розробки, хостингу та масштабування застосунків у хмарі.
  • 2010 року Microsoft запустили Azure — власну хмарну платформу з широким спектром сервісів, зокрема сховищем, базами даних і обчислювальними ресурсами.

2010-ті роки: бум хмарних обчислень

  • 2010-ті роки були часом масового впровадження хмарних обчислень, зумовленого збільшенням кількості постачальників SaaS, IaaS та PaaS.
  • 2013 року IBM придбали SoftLayer — провідного постачальника хмарної інфраструктури, щоб розширити свої хмарні пропозиції та краще конкурувати з лідерами галузі, як-от AWS та Azure.
  • 2016 року Google перейменували всі свої хмарні сервіси на Google Cloud Platform (GCP), що ще більше зміцнило її присутність на ринку.

Як бачите, сучасні хмарні обчислення зародилися на початку 2000-х років із запуском Amazon Web Services. Потім Google і Microsoft створили свої хмарні сервіси. Згодом нечисленні хмарні сервіси розширилися до великих маркетплейсів із сотнями різних варіантів сервісів. Зі зростанням цікавості до штучного інтелекту та інтернету речей провайдери хмарних сервісів почали пропонувати спеціальні послуги, оптимізовані під ці нові технології.

Як використовувати Amazon CloudFront на проєктах

Моделі хмарних обчислень

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

Інфраструктура як послуга (IaaS)

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

Платформа як послуга (PaaS)

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

Програмне забезпечення як послуга (SaaS)

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

Переваги та недоліки хмарних обчислень

Розглянемо переваги та недоліки хмарних обчислень порівняно з використанням власної (серверної) інфраструктури.

Переваги

  • Економічна вигода. Хмарні обчислення набагато дешевші для перевірки концепції (англ. Proof of Concept, PoC) і створення мінімально життєздатного продукту (англ. Minimum Viable Product, MVP), особливо якщо проєкт не переходить у продакшн. У хмарі ми можемо оптимізувати витрати на будь-якій фазі проєкту, на відміну від інфраструктури, яка розгорнута локально.
  • Швидке розгортання інфраструктури. Для створення власної хмарної IT-інфраструктури потрібен лише доступ до інтернету. Немає потреби їхати в магазин, замовляти обладнання й тижнями чекати на його доставку.
  • Гнучкість і можливість швидкого виправлення архітектурних помилок. Видалення й повторне створення хмарних ресурсів можливе без додаткових витрат, тоді як продаж зайвого фізичного обладнання набагато складніший.
  • Високий рівень автоматизації. Інфраструктура як код (англ. Infrastructure-as-Code, IaС) — підхід, завдяки якому ви можете керувати віртуальним обладнанням на тому ж рівні автоматизації, що й будь-яким іншим програмним забезпеченням. Опис віртуального обладнання зберігається в Git-репозиторії у вигляді шаблонів розгортання. Вони можуть слугувати документацією, а Git дає змогу зберігати історію змін.

Недоліки

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

Висновок

Швидкий і дешевий інтернет, а також прогрес у галузі комп’ютерної техніки привели IT-індустрію до розвитку хмарних обчислень. Як неминучий підсумок, з’явилася концепція віртуального обладнання, доступного через інтернет. У майбутньому хмарні провайдери, найімовірніше, запропонують ще більш різноманітні типи сервісів, покликані спростити розробку нейронних мереж, рішень для обробки великих даних і застосунків штучного інтелекту.

Матеріали за темою
Стеж за новинами на улюблених платформах