Виртуализация или контейниризация?
-
Уровень изоляции:
- Виртуализация: Виртуализация предполагает создание виртуальных машин (ВМ), каждая из которых включает в себя полную операционную систему и набор приложений. Эти ВМ работают на гипервизоре (программном или аппаратном уровне), который обеспечивает абстракцию аппаратных ресурсов и позволяет запускать несколько изолированных экземпляров операционных систем на одном физическом сервере.
- Контейнеризация: Контейнеризация представляет собой уровень виртуализации на уровне операционной системы, где различные контейнеры делят общий ядро операционной системы. Каждый контейнер включает в себя только необходимые библиотеки, зависимости и приложения, обеспечивая изоляцию на уровне процессов.
-
Затраты ресурсов:
- Виртуализация: Так как каждая виртуальная машина включает в себя полную операционную систему, она требует значительных ресурсов, таких как память и процессорное время, для поддержания этой ОС и её компонентов.
- Контейнеризация: Контейнеры используют общее ядро операционной системы и делят библиотеки, что позволяет им быть более легковесными и экономичными в использовании ресурсов.
-
Скорость развёртывания:
- Виртуализация: Запуск новой виртуальной машины может занять некоторое время, так как требуется загрузка операционной системы и конфигурирование.
- Контейнеризация: Контейнеры гораздо быстрее запускаются, так как они используют общее ядро операционной системы и уже содержат необходимые библиотеки и зависимости.
-
Изоляция:
- Виртуализация: Изоляция виртуальных машин более строгая, так как каждая машина имеет свою собственную ОС и ядро. Это обеспечивает высокий уровень изоляции между ВМ.
- Контейнеризация: Изоляция контейнеров менее строгая, так как они делят общее ядро. Это может означать, что некорректно настроенные контейнеры могут иметь доступ к некоторым ресурсам друг друга.
AWS
- S3 files versioning
- Lambda layers
- Lambda cold start
- Lambda time and memory limits
- VPC группа
- ECR, ECS, EKS