Это машинный перевод текста, который может содержать ошибки!
Облачные услуги и виртуализация
Облачные услуги и виртуализация тесно связаны между собой: обе подразумевают использование ресурсов данных без необходимости владеть всем оборудованием самостоятельно. Однако существуют важные различия.
Что такое виртуализация?
Виртуализация означает запуск нескольких «виртуальных» машин на одном и том же физическом компьютере. Вместо того чтобы иметь отдельный физический сервер для веб-сервера, один для базы данных и один для файлового сервера, вы можете запустить все три как виртуальные машины на одной машине.
Программное обеспечение, которое делает это возможным, называется гипервизором:
| Тип | Описание | Пример |
|---|---|---|
| Тип 1 (bare-metal) | Работает напрямую с оборудованием, без обычной ОС под ним | Proxmox, VMware ESXi |
| Тип 2 (хостовый) | Запускается поверх обычной операционной системы | VirtualBox, VMware Workstation |
Тип 1 против типа 2
- Тип 1 — это то, что мы используем в производстве и на серверах. Proxmox работает напрямую на сервере.
- Тип 2 — это то, что вы используете на своем компьютере для тестирования. VirtualBox запускается поверх Windows или macOS.
Что такое виртуальная машина (ВМ)?
ВМ — это полноценная операционная система, работающая внутри другой системы. Она имеет собственную (виртуальную) память, ЦП и диск, но разделяет физическое аппаратное обеспечение с другими ВМ.
Преимущества использования ВМ:
- Изоляция — Каждая ВМ независима. Если одна ВМ аварийно завершает работу, другие не пострадают.
- Гибкость — Вы можете запускать различные операционные системы на одной машине (например, Ubuntu и Windows Server).
- Снимки/резервное копирование — Вы можете сделать снимок состояния ВМ и откатиться к нему, если что-то пойдет не так.
- Эффективное использование ресурсов — Физическая машина с большим объемом ОЗУ и мощным ЦП может запускать множество ВМ.
Что такое контейнеры?
Контейнеры легче виртуальных машин. Они разделяют ядро операционной системы с хост-машиной, но работают в изолированных средах.
| Свойство | Виртуальная машина | Контейнер |
|---|---|---|
| Размер | Большой (всё ОС) | Маленький (только приложение и зависимости) |
| Время запуска | Минуты | Секунды |
| Изоляция | Сильная (собственная ОС) | Хорошая, но делит ядро ОС |
| Область применения | Когда нужна полностью отдельная ОС | Одноприкладные приложения и микросервисы |
| Пример | Промокс ВМ, VirtualBox | Докер, Подман |
Когда мы что используем?
- Используйте ВМ, когда вам нужна полноценная операционная система, например, сервер Windows или сервер Linux с полным контролем.
- Используйте контейнер, если вам нужно только запустить приложение, например, веб-сервер, базу данных или Grafana.
На практике мы часто используем оба варианта: ВМ в качестве хостов для контейнеров Docker.
Облачные сервисы
Облачные сервисы означают, что кто-то другой владеет и эксплуатирует оборудование, а вы арендуете то, что вам нужно, через интернет. Вместо покупки и обслуживания физического сервера вы платите за использование виртуальной машины в облаке.
Модели обслуживания
Существуют три основные модели облачных услуг:
| Модель | Полное название | Что вы получаете | Чем управляете сами | Пример |
|---|---|---|---|---|
| IaaS | Инфраструктура как сервис | Виртуальные машины, сети и хранилища | ОС, приложения, настройка | Azure VM, AWS EC2 |
| PaaS | Платформа как сервис | Готовая платформа для запуска вашего кода | Только приложение | Azure App Service, Heroku |
| SaaS | Программное обеспечение как сервис | Готовые приложения, доступные через браузер | Ничего технического | Microsoft 365, Google Docs |
Простой способ запомнить это
- IaaS = Вы арендуете пустую машину. Вы устанавливаете и настраиваете всё сами.
- PaaS = Вы арендуете готовое окружение. Вам нужно только добавить свой код.
- SaaS = Вы арендуете готовое приложение. Вам нужно просто войти в систему и использовать его.
Модели предоставления услуг
Облачные услуги могут предоставляться различными способами:
| Модель | Описание | Пример |
|---|---|---|
| Публичное облако | Общая инфраструктура, доступная всем | Azure, AWS, Google Cloud |
| Частное облако | Выделенная инфраструктура для одного предприятия | Proxmox в серверной комнате школы |
| Гибридное облако | Комбинация публичного и частного | Некоторые службы локально, некоторые в Azure |
VPS: Стандартное облачное решение
VPS (виртуальный выделенный сервер) является одним из самых распространённых решений в категории IaaS. Вы арендуете виртуальную машину у провайдера облачных услуг и получаете полный контроль над ней, точно так же, как если бы у вас был собственный физический сервер.
Типичные области применения:
- Запуск веб-сервера
- Настройка службы VPN
- Размещение приложения (например, Flask + база данных)
- Тестирование без риска для собственного оборудования
Популярные поставщики VPS:
| Поставщик | Преимущества |
|---|---|
| Linode (Akamai) | Простота использования, хорошее соотношение цены и качества, качественные руководства |
| DigitalOcean | Удобство интерфейса, хорошая документация |
| Hetzner | Дешевый вариант, европейский (соответствие GDPR) |
| Azure | Интеграция с экосистемой Microsoft |
Расходы в облаке
Облачные услуги стоят денег, и они могут быстро стать дорогими, если не следить за расходами. Виртуальная машина, работающая 24/7, стоит больше, чем та, которую выключают после использования. Всегда проверяйте цены и настраивайте уведомления о затратах.
Локально или в облаке
Многие компании используют комбинацию локальных серверов и облачных услуг. Вот некоторые факторы, которые следует учитывать:
| Фактор | Локальный (на месте) | Облако |
|---|---|---|
| Контроль | Полный контроль над оборудованием и данными | Зависит от поставщика |
| Стоимость | Большие начальные инвестиции | Ежемесячные текущие расходы |
| Масштабируемость | Ограничена физическим оборудованием | Можно масштабировать вверх и вниз по мере необходимости |
| Поддержка | Вы должны ремонтировать всё сами | Поставщик обслуживает оборудование |
| Конфиденциальность данных | Вы знаете, где находятся данные | Данные могут храниться в других странах |
Задание 1 — Запуск ВМ на собственном компьютере
Скачайте VirtualBox (бесплатно) и попробуйте установить дистрибутив Linux, например Ubuntu Desktop или Linux Mint.
- Сколько ОЗУ и ЦП вы решаете выделить виртуальной машине?
- Замечаете ли вы, что ваш компьютер становится медленнее во время работы виртуальной машины?
- Что произойдет, если вы попытаетесь выделить виртуальной машине больше ОЗУ, чем есть в вашем физическом устройстве?
Это даст хорошее представление о том, как виртуальные машины разделяют ресурсы физического устройства.
Задача 2 — Запуск контейнера с помощью Docker
Если у вас установлен Docker (или есть доступ к ВМ с Docker), попробуйте выполнить команду:
docker run -d -p 8080:80 nginx
Затем откройте в браузере адрес http://localhost:8080. Теперь у вас запущен веб-сервер внутри контейнера! Сравните время, которое на это потребовалось, с временем настройки полноценной виртуальной машины с Nginx.
Задача 3 — Какие облачные сервисы вы уже используете?
Подумайте о том, какие услуги вы используете в повседневной жизни:
- Microsoft 365 (Word, Teams, OneDrive) является SaaS
- GitHub Pages для хостинга веб-сайта является PaaS
- Если вы создаете ВМ в Proxmox в школе, это фактически IaaS (только локально)
Удастся ли вам классифицировать другие службы, которые вы используете?
Задание 4 — Где хранятся ваши данные?
Перейдите на страницу Microsoft Privacy Dashboard и посмотрите, что Microsoft сохраняет о вас. Также проверьте условия использования облачного сервиса, которым вы пользуетесь:
- В какой части мира хранятся данные?
- Что происходит с данными, если вы удаляете свой аккаунт?
- Принадлежат ли вам ваши данные или их собственником является провайдер?
Эти вопросы особенно важны в контексте GDPR (Общего регламента по защите данных) и конфиденциальности персональных данных.
Резюме
- Виртуализация позволяет запускать несколько сервисов на одном и том же оборудовании, будь то в виде виртуальных машин или контейнеров
- Облачные услуги означают, что оборудование принадлежит кому-то другому, а вы арендуете только то, что вам нужно
- IaaS, PaaS и SaaS описывают степень ответственности, которую несете вы сами
- На практике многие используют решение с гибридной моделью, сочетающую локальные и облачные сервисы
- Выбор между локальным размещением и облаком зависит от контроля затрат, масштабируемости и конфиденциальности данных