BC/NW 2016 № 1 (28): 3.1

ИССЛЕДОВАНИЕ ТЕХНОЛОГИИ DOCKER   ДЛЯ ВИРТУАЛИЗАЦИИ ИНФРАСТРУКТУРЫ РАСПРЕДЕЛЕННЫХ ВЫЧИСЛЕНИЙ

Абрамов И.В.

Виртуализация это технология абстрагирования вычислительных ресурсов.

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

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

Все эти достоинства приводят к неуклонному росту использования виртуализационных решений в мире информационных технологий.

В последнее время в IT сообществе на слуху виртуализация уровня операционной системы, или контейнерная виртуализация.

Рисунок 1. Виртуализация с использованием гипервизора.

При традиционной сегодня виртуализации используется менеджер виртуальных машин (гипервизор), который осуществляет связь между гостевой операционной системой и аппаратными средствами системы.

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

Рисунок 2. Контейнерная виртуализация. Docker.

Контейнерная виртуализация или виртуализация на уровне операционной системы — это метод виртуализации, при котором ядро операционной системы поддерживает несколько изолированных экземпляров пространства пользователя, вместо одного. Это снижает накладные расходы и позволяет использовать виртуализацию наиболее эффективно.

Контейнерная виртуализация не использует виртуальные машины, а создает виртуальное окружение с собственным пространством процессов и сетевым стеком. Экземпляры пространств пользователя (часто называемые контейнерами или зонами) с точки зрения пользователя полностью идентичны реальному серверу, но они в своей работе используют один экземпляр ядра операционной системы. Ядро обеспечивает полную изолированность контейнеров, поэтому программы из разных контейнеров не могут воздействовать друг на друга.

Docker — это программное обеспечение для автоматизации развёртывания и управления приложениями в среде виртуализации LXC.

LXC (Linux Containers) — система виртуализации на уровне операционной системы для запуска нескольких изолированных экземпляров операционной системы Linux на одном узле. LXC основана на технологии cgroups, входящей в ядро Linux, начиная с версии 2.6.29.

Docker позволяет «упаковать» приложение со всем его окружением и зависимостями в контейнер, который может быть перенесён на любой Linux-системе с поддержкой cgroups в ядре, а также предоставляет среду по управлению контейнерами.

Данный вид виртуализации обладает следующими преимуществами:

1.                    Производительность - отсутствует гипервизор и накладные расходы.

2.                    Масштабируемость - ещё одна виртуальная машина запускается одной командой, сразу готова к работе или требуется совсем небольшая надстройка, не связанная с ОС.

3.                    Управление - происходит из гостевой ОС, нет необходимости быть "внутри контейнера".

4.                    Миграция - легко переносить контейнеры с одного физического сервера  на другой.

Это позволяет гибко проводить балансировку нагрузки на вычислительных узлах.

Рисунок 3. Использование Docker.

Docker активно используется в следующих направлениях:

DevOps - методология разработки ПО, нацеленная на активное взаимодействие и интеграцию специалистов по разработке и специалистов по информационно-технологическому обслуживанию. Если говорить кратко, то главный плюс от использования Docker – единое окружения как у различных команд, участвующих в процессе разработки – разработчиков, тестировщиков и впоследствии на промышленном комплексе.

Big Data – это новое направление, которые появилось в последние несколько лет. Docker здесь применяется для кластеризации, позволяя эффективно организовывать обработку данных в части инфраструктуры.

Infrastructure Optimization – контейнер содержит только то, чтобы запустить приложение внутри. Отсутствует гипервизор, гостевая ОС. Это позволяет снизить объем вычислительных ресурсов и финансовых затрат.

Рисунок 4. Поддержка Docker вендорами.

С выходом новой операционной системы RHEL 7 появилась официальная поддержка Docker со стороны компании Red Hat. Это означает, что постепенно технология все шире будет применяться в системах уровне Enterprise, где время простоя системы критично.

Рисунок 5. Задача оптимизации балансировки нагрузки в распределенной среде.

В проводимом автором исследовании разрабатывается система динамического управления балансировкой нагрузки.

На данном слайде схематично изображены контейнеры, выполняющиеся на физических серверах.

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

Литература

1.                    Портал проекта Docker - Электронный ресурс - https://www.docker.com/.

2.                    Статья https://web-creator.ru/articles/linux_containers.