Система виртуализации для абстрагирования от аппаратного уровня и создания изолированной среды для выполнения программного кода прошла большой путь в процессе развития технологий. За более чем 30 лет существования технологии появилось множество решений, среди которых можно выделить два направления: полноценные виртуальные машины или виртуальное окружение с разделяемым экземпляром ядра операционной системы. Такой подход позволяет достичь баланса между накладными расходами и степенью изоляции рабочего окружения.
В настоящее для предоставления услуг хостинга виртуальных машин существует большое количество готовых решений. Однако в случае применения подхода с разделяемым ядром операционной количество комплексных решений куда меньше, а то и вовсе отсутствуют.
На данный момент существует несколько популярных технологий виртуализации подобного плана, например, устаревший OpenVZ и современный LXC, изначально обладавший куда меньшим уровнем изоляции чем OpenVZ. Так же имеется программное обеспечение Docker для автоматизации развертывания и управления изолированными средами выполнения программного кода также оперирующее контейнерами. Данные технологии применяют ядро Linux. И, если для предоставления услуг хостинга на базе технологий OpenVZ или LXC существуют готовые решения, то в случае Docker таких решений нет.
В случае применения Docker для предоставления услуг хостинга можно выделить следующие достоинства как для конечного пользователя, так и для оператора услуги:
- конечный пользователь услуги самостоятельно указывает требуемый ему образ, из которого будет развернут контейнер. Оператору, предоставляющему услугу, не требуется самостоятельно подготавливать шаблоны;
- конечный пользователь может с легкостью самостоятельно единожды подготовить необходимый образ, который при желании будет автоматически поддерживаться в актуальном состоянии;
- после создания контейнер не требует дополнительной установки пакетов так как образ является готовым к работе;
- минимальные накладные расходы ресурсов, а в некоторых случаях возможна экономия места так как все контейнеры могут использовать разделяемые слои данных при помощи union file system;
- пользователю не нужно самостоятельно подготавливать ПО Docker для работы так как это сделано оператором услуги;
- возможность гибко регулировать возможности контейнеров при их создании обеспечивает повышенную безопасность при изоляции ресурсов;
- динамически устанавливаемая квота на использование ресурсов не требует перезапуска контейнера в случае увеличения ресурсов, а также позволяет уменьшать дисковую квоту, что недоступно при использовании виртуальных машин.
Кроме перечисленных преимуществ пользователь может быть заинтересован в отсутствии так называемого vendor lock-in, когда шаблон услуги невозможно перенести от одного провайдера к другому.
Таким образом разработка программного обеспечения для предоставления услуг хостинга Docker контейнеров является актуальной и может принести пользу как оператору услуг, так и конечному пользователю из-за удачного сочетания возможностей и гибкости технологии.
Литература:
- Использование Docker / пер. с англ. А. В. Снастина; науч. ред. А. А. Маркелов. — М.: ДМК Пресс, 2017. — 354 с
- Docker overview [Электронный ресурс]. URL: https://docs.docker.com/get-started/overview/ (дата обращения: 01.06.2020).
- Linux Containers — LXC — Introduction [Электронный ресурс]. URL: https://linuxcontainers.org/lxc/introduction/ (дата обращения: 01.06.2020).
- Open source container-based virtualization for Linux. [Электронный ресурс]. URL: https://openvz.org/ (дата обращения: 01.06.2020).
References:
- Ispolzovanie Docker / per. s angl. A. V. Snastina; nauch. red. A. A. Markelov. — M.: DMK Press, 2017. — 354 s
- Docker overview [Elektronnyi resurs]. URL: https://docs.docker.com/get-started/overview/ (data obrashcheniia: 01.06.2020).
- Linux Containers — LXC — Introduction [Elektronnyi resurs]. URL: https://linuxcontainers.org/lxc/introduction/ (data obrashcheniia: 01.06.2020).
- Open source container-based virtualization for Linux. [Elektronnyi resurs]. URL: https://openvz.org/ (data obrashcheniia: 01.06.2020).