АНАЛИЗ АКТУАЛЬНОСТИ РАЗРАБОТКИ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ ДЛЯ ПРЕДОСТАВЛЕНИЯ УСЛУГ ХОСТИНГА DOCKER КОНТЕЙНЕРОВ

ANALYSIS OF THE RELEVANCE OF THE SOFTWARE DEVELOPMENT FOR THE PROVISION OF DOCKER CONTAINER HOSTING SERVICES

Система виртуализации для абстрагирования от аппаратного уровня и создания изолированной среды для выполнения программного кода прошла большой путь в процессе развития технологий. За более чем 30 лет существования технологии появилось множество решений, среди которых можно выделить два направления: полноценные виртуальные машины или виртуальное окружение с разделяемым экземпляром ядра операционной системы. Такой подход позволяет достичь баланса между накладными расходами и степенью изоляции рабочего окружения.

В настоящее для предоставления услуг хостинга виртуальных машин существует большое количество готовых решений. Однако в случае применения подхода с разделяемым ядром операционной количество комплексных решений куда меньше, а то и вовсе отсутствуют.

На данный момент существует несколько популярных технологий виртуализации подобного плана, например, устаревший OpenVZ и современный LXC, изначально обладавший куда меньшим уровнем изоляции чем OpenVZ. Так же имеется программное обеспечение Docker для автоматизации развертывания и управления изолированными средами выполнения программного кода также оперирующее контейнерами. Данные технологии применяют ядро Linux. И, если для предоставления услуг хостинга на базе технологий OpenVZ или LXC существуют готовые решения, то в случае Docker таких решений нет.

В случае применения Docker для предоставления услуг хостинга можно выделить следующие достоинства как для конечного пользователя, так и для оператора услуги:

  • конечный пользователь услуги самостоятельно указывает требуемый ему образ, из которого будет развернут контейнер. Оператору, предоставляющему услугу, не требуется самостоятельно подготавливать шаблоны;
  • конечный пользователь может с легкостью самостоятельно единожды подготовить необходимый образ, который при желании будет автоматически поддерживаться в актуальном состоянии;
  • после создания контейнер не требует дополнительной установки пакетов так как образ является готовым к работе;
  • минимальные накладные расходы ресурсов, а в некоторых случаях возможна экономия места так как все контейнеры могут использовать разделяемые слои данных при помощи union file system;
  • пользователю не нужно самостоятельно подготавливать ПО Docker для работы так как это сделано оператором услуги;
  • возможность гибко регулировать возможности контейнеров при их создании обеспечивает повышенную безопасность при изоляции ресурсов;
  • динамически устанавливаемая квота на использование ресурсов не требует перезапуска контейнера в случае увеличения ресурсов, а также позволяет уменьшать дисковую квоту, что недоступно при использовании виртуальных машин.

Кроме перечисленных преимуществ пользователь может быть заинтересован в отсутствии так называемого vendor lock-in, когда шаблон услуги невозможно перенести от одного провайдера к другому.

Таким образом разработка программного обеспечения для предоставления услуг хостинга Docker контейнеров является актуальной и может принести пользу как оператору услуг, так и конечному пользователю из-за удачного сочетания возможностей и гибкости технологии.

 

Литература:

  1. Использование Docker / пер. с англ. А. В. Снастина; науч. ред. А. А. Маркелов. - М.: ДМК Пресс, 2017. - 354 с
  2. Docker overview [Электронный ресурс]. URL: https://docs.docker.com/get-started/overview/ (дата обращения: 01.06.2020).
  3. Linux Containers - LXC - Introduction [Электронный ресурс]. URL: https://linuxcontainers.org/lxc/introduction/ (дата обращения: 01.06.2020).
  4. Open source container-based virtualization for Linux. [Электронный ресурс]. URL: https://openvz.org/ (дата обращения: 01.06.2020).

 

References:

  1. Ispolzovanie Docker / per. s angl. A. V. Snastina; nauch. red. A. A. Markelov. - M.: DMK Press, 2017. - 354 s
  2. Docker overview [Elektronnyi resurs]. URL: https://docs.docker.com/get-started/overview/ (data obrashcheniia: 01.06.2020).
  3. Linux Containers - LXC - Introduction [Elektronnyi resurs]. URL: https://linuxcontainers.org/lxc/introduction/ (data obrashcheniia: 01.06.2020).
  4. Open source container-based virtualization for Linux. [Elektronnyi resurs]. URL: https://openvz.org/ (data obrashcheniia: 01.06.2020).