Це машинний переклад, який може містити помилки!
Хмарні послуги та віртуалізація тісно пов’язані: обидва стосуються використання обчислювальних ресурсів без володіння всім апаратним забезпеченням. Але є деякі важливі відмінності.
Що таке віртуалізація?
Віртуалізація означає запуск кількох «віртуальних» машин на одній фізичній машині. Замість того, щоб мати окремий фізичний сервер для веб-сервера, один для бази даних і один для файлового сервера, ви можете запустити всі три як віртуальні машини на одній і тій же машині.
Програмне забезпечення, яке робить це можливим, називається гіпервізором:
| Тип | Пояснення | Приклад |
|---|---|---|
| Тип 1 (bare-metal) | Запускається безпосередньо на апаратному забезпеченні, без звичайної ОС під ним | Proxmox, VMware ESXi |
| Тип 2 (hosted) | Запускається поверх звичайної операційної системи | VirtualBox, VMware Workstation |
Type 1 vs. Type 2
- Type 1 – це те, що ми використовуємо у виробництві та в серверній кімнаті. Proxmox працює безпосередньо на сервері.
- Type 2 – це те, що ви використовуєте на своєму комп’ютері для тестування. VirtualBox працює поверх Windows або macOS.
Що таке віртуальна машина (VM)?
VM – це ціла операційна система, яка працює всередині іншої. Вона має власну (віртуальну) пам’ять, CPU та диск, але ділить фізичне обладнання з іншими VM.
Переваги VM:
- Ізоляція - Кожна VM є незалежною. Якщо одна VM аварійно завершує роботу, це не впливає на інші.
- Гнучкість - Ви можете запускати різні операційні системи на одній машині (наприклад, Ubuntu та Windows Server).
- Snapshot/резервне копіювання - Ви можете зробити знімок VM і повернутися до попереднього стану, якщо щось піде не так.
- Використання ресурсів - Фізична машина з великою кількістю RAM та CPU може запускати багато VM.
Що таке контейнери?
Контейнери легші за ВМ. Вони використовують ядро операційної системи хост-машини, але працюють в ізольованих середовищах.
| Властивість | ВМ | Контейнер |
|---|---|---|
| Розмір | Великий (повна ОС) | Малий (лише додаток та залежності) |
| Час запуску | Хвилини | Секунди |
| Ізоляція | Сильна (власна ОС) | Хороша, але використовує ядро ОС |
| Сфера застосування | Коли потрібна повністю окрема ОС | Однокомпонентні додатки та мікросервіси |
| Приклад | Proxmox VM, VirtualBox | Docker, Podman |
Коли ми використовуємо що?
- Використовуйте VM, коли вам потрібна ціла операційна система, наприклад, Windows Server або Linux-сервер з повним контролем.
- Використовуйте контейнер, коли вам потрібно лише запустити додаток, наприклад, веб-сервер, базу даних або Grafana.
На практиці ми часто використовуємо обидва: VM як хости для Docker-контейнерів.
Хмарні послуги
Хмарні послуги означають, що хтось інший володіє та експлуатує апаратне забезпечення, а ви орендуєте те, що вам потрібно через інтернет. Замість того, щоб купувати та обслуговувати фізичний сервер, ви платите за використання віртуальної машини в хмарі.
Моделі послуг
Існує три основні моделі хмарних послуг:
| Модель | Повна назва | Що ви отримуєте | Що ви керуєте самостійно | Приклад |
|---|---|---|---|---|
| IaaS | Infrastructure as a Service | Віртуальні машини, мережі та зберігання | ОС, додатки, налаштування | Azure VM, AWS EC2 |
| PaaS | Platform as a Service | Готову платформу для запуску вашого коду | Лише додаток | Azure App Service, Heroku |
| SaaS | Software as a Service | Готові додатки, які ви використовуєте через браузер | Нічого технічного | Microsoft 365, Google Docs |
Простий спосіб це запам’ятати
- IaaS = Ви орендуєте порожню машину. Ви самостійно встановлюєте та налаштовуєте все.
- PaaS = Ви орендуєте готове середовище. Вам потрібно лише завантажити свій код.
- SaaS = Ви орендуєте готовий додаток. Вам потрібно лише увійти та використовувати його.
Моделі надання послуг
Хмарні послуги можуть надаватися різними способами:
| Модель | Пояснення | Приклад |
|---|---|---|
| Публічна хмара | Спільна інфраструктура, доступна для всіх | Azure, AWS, Google Cloud |
| Приватна хмара | Виділена інфраструктура для підприємства | Proxmox в серверній кімнаті школи |
| Гібридна хмара | Комбінація публічної та приватної | Деякі послуги локально, деякі в Azure |
VPS: Поширене хмарне рішення
VPS (Virtual Private Server) є одним з найпоширеніших IaaS-рішень. Ви орендуєте віртуальну машину у хмарного провайдера та маєте повний контроль над нею, як ніби у вас є власний сервер.
Типові сфери застосування:
- Запуск веб-сервера
- Налаштування VPN-сервісу
- Хостинг додатку (наприклад, Flask + база даних)
- Тестування речей, не ризикуючи власним обладнанням
Популярні VPS-провайдери:
| Провайдер | Переваги |
|---|---|
| Linode (Akamai) | Простота, хороша ціна, корисні посібники |
| DigitalOcean | Зручний у використанні, хороша документація |
| Hetzner | Доступний, європейський (відповідає GDPR) |
| Azure | Інтегрований з екосистемою Microsoft |
Kostnader i skyen
Хмарні сервіси коштують грошей, і може швидко стати дорого, якщо не бути уважним. VM, що працює 24/7, коштує дорожче, ніж той, який ви вимикаєте після використання. Завжди перевіряйте ціни та налаштовуйте сповіщення про витрати.
Локально проти хмари
Багато підприємств використовують комбінацію локальних серверів та хмарних послуг. Ось деякі фактори, які слід враховувати:
| Фактор | Локально (on-premises) | Хмара |
|---|---|---|
| Контроль | Повний контроль над апаратним забезпеченням та даними | Залежить від постачальника |
| Вартість | Значні інвестиції на старті | Поточні щомісячні витрати |
| Масштабованість | Обмежена фізичним апаратним забезпеченням | Можна масштабувати вгору та вниз за потреби |
| Обслуговування | Ви повинні все виправити самостійно | Постачальник обслуговує апаратне забезпечення |
| Конфіденційність | Ви знаєте, де знаходяться дані | Дані можуть зберігатися в інших країнах |
Завдання 1 - Запустіть VM на власній машині
Завантажте VirtualBox (безкоштовно) і спробуйте встановити дистрибутив Linux, наприклад Ubuntu Desktop або Linux Mint.
- Скільки оперативної пам’яті та процесорного часу ви вирішите виділити VM?
- Чи помічаєте ви, що ваш комп’ютер стає повільнішим під час роботи VM?
- Що станеться, якщо ви спробуєте виділити VM більше оперативної пам’яті, ніж є у вашій машині?
Це дає гарне розуміння того, як VM ділять ресурси фізичної машини.
Завдання 2 - Запустіть контейнер за допомогою Docker
Якщо у вас встановлено Docker (або є доступ до VM з Docker), спробуйте виконати:
docker run -d -p 8080:80 nginx # Запускає контейнер Nginx у фоновому режимі та відображає порт 8080 на порт 80
Відвідайте потім http://localhost:8080 у вашому браузері. Ви зараз запустили вебсервер у контейнері! Порівняйте, скільки часу це зайняло проти налаштування повної віртуальної машини з Nginx.
Завдання 3 - Які хмарні сервіси ви вже використовуєте?
Подумайте про те, якими сервісами ви користуєтеся в повсякденному житті:
- Microsoft 365 (Word, Teams, OneDrive) є SaaS
- GitHub Pages для хостингу веб-сайту є PaaS
- Якщо ви створюєте VM у Proxmox в школі, це фактично IaaS (лише локально)
Чи можете ви класифікувати інші сервіси, якими ви користуєтеся?
Завдання 4 - Де зберігаються ваші дані?
Перейдіть на Microsoft Privacy Dashboard та перегляньте, що Microsoft зберігає про вас. Також перевірте умови використання хмарного сервісу, який ви використовуєте:
- Де у світі зберігаються дані?
- Що станеться з даними, якщо ви видалите свій обліковий запис?
- Чи належать вам дані, чи постачальнику послуг?
Ці питання особливо важливі з огляду на GDPR та конфіденційність.
Підсумок
- Віртуалізація дозволяє запускати кілька служб на одному обладнанні, як у вигляді ВМ або контейнерів
- Хмарні послуги означають, що хтось інший володіє обладнанням, а ви орендуєте те, що вам потрібно
- IaaS, PaaS та SaaS описують, наскільки ви несете відповідальність самостійно
- На практиці багато хто використовує гібридне рішення як з локальними, так і з хмарними службами
- Вибір між локальним та хмарним рішенням залежить від контролю, вартості, масштабованості та конфіденційності