Комбинация контейнеризации и виртуализации как способ совершенствования информационной системы
Бесплатный доступ
Рассмотрены преимущества использования технологий контейнеризации и виртуализации, способы обеспечения бесперебойной работы информационной системы, описана возможная польза от применения данных технологий в инфраструктуре компании.
Контейнер, виртуальная машина, платформа виртуализации, облачные технологии, бесперебойность системы.
Короткий адрес: https://sciup.org/148322472
IDR: 148322472 | DOI: 10.25586/RNU.V9187.21.03.P.171
Текст научной статьи Комбинация контейнеризации и виртуализации как способ совершенствования информационной системы
У компаний, занимающихся предоставлением UCaaS-платформы с большим набором функций, – голос, видео, текст, факсы, конференции, онлайн-митинги, контактный центр и корпоративный чат – нет необходимости в настройке собственных рабочих серверов для общения с коллегами, достаточно войти в приложение на телефоне или на сайт в браузере, имея подключение к интернету. В условиях удаленной работы из дома это одно из наиболее удачных решений для поддержки коммуникации между сотрудниками.
Развитая инфраструктура компании позволяет размещать виртуальные машины и контейнеры, в меньшей степени реальные физические серверы, во многих дата-центрах. Возможность использования UCaaS-платформы представлена почти во всех частях света; в каждой из точек присутствия развернуты либо аппаратные, либо облачные ресурсы. Подобное размещение накладывает определенные сложности при поддержке всей инфраструктуры в целом.
Для повышения эффективности при разработке, внедрении и поддержке новых сервисов в информационной системе компания использует методологию DevOps. Данный термин условно объединяет такие понятия как разработка (Development) и операции (Operations). Под «разработкой», очевидно, подразумевают разработчиков, а под «операциями» – всех инженеров, задействованных при внедрении этих сервисов и их поддержке в работоспособном состоянии.
В рамках данной статьи будут рассмотрены следующие вопросы:
-
1) Каким образом можно обеспечить высокий уровень бесперебойности сложной информационной системы?
-
2) Какими преимуществами обладают технологии контейнеризации и виртуализации в сравнении с физическими серверами?
Практика программирования
Резенов Григорий Валерьевич магистрант 2-го курса Российского нового университета, Москва. Сфера научных интересов: администрирование высоконагруженных информационных систем. Автор 1 опубликованной научной работы.
-
3) Какую пользу может принести использование контейнеров и виртуальных машин в информационной системе?
Методы поддержки бесперебойной работы информационной системы
Сегодня любая более или менее серьезная компания пользуется или обладает собственной информационной системой. С ее помощью можно хранить, обрабатывать и передавать информацию, необходимую для выполнения бизнес-процессов компании. Для кого-то это просто средство для документации, для кого-то – основной способ получения прибыли. Так или иначе, от стабильности работы информационной системы компании напрямую зависит ее благополучие.
На данный момент интернет позволяет намного быстрее и проще привлекать новых клиентов, чем любое другое средство информации. Развитие систем электронной коммерции подталкивает компании активнее переводить свой бизнес в онлайн. В таких условиях даже небольшие перебои в работе сайтов или онлайн-сервисов могут принести крупные убытки или повредить имиджу компании. Как правило, малые, средние и даже крупные компании стараются размещать свои серверные мощности в специализированных дата-центрах. Это позволяет им не беспокоиться о стабильности подачи электроэнергии, предоставлении подключения к интернету. В дата-центре можно арендовать серверные мощности или поместить собственное оборудование.
Задача по поддержке стабильной работы инфраструктуры компании лежит на системных администраторах. Учитывая, что бесперебойность на физическом уровне уже обеспечена дата-центром, остается лишь настроить ее на аппаратном уровне. Сделать это можно, комбинируя следующие способы: 1) Репликация сервисов и их объединение в единый кластер, 2) Горизонтальное и вертикальное масштабирование, 3) Резервные каналы обработки трафика, 4) Ежедневное резервное копирование элементов информационной системы.
Если станет недоступен какой-либо узел, то его трафик может перенять на себя «сосед» из кластера. При резком увеличении объема трафика можно повысить мощность узлов или увеличить их число. В случае полной сетевой недоступности сервиса трафик можно направить по резервному каналу для его последующей обработки. Резервные копии позволят восстановить инфраструктуру в случае выхода из строя какого-либо оборудования.
Связка «контейнеризация + оркестратор»
Ранее в статьях уже рассматривалась реализация архитектуры микросервисов с помощью технологии контейнеризации. Было отмечено, что контейнеры – это изолированная среда, отлично подходящая для тестирования программного обеспечения и обладающая всеми необходимыми для работы приложения модулями, библиотеками. Любые изменения можно легко откатить, заново установив текущую или предыдущую стабильную версию приложения [2].
Комбинация контейнеризации и виртуализации как способ совершенствования...
Помимо вышеперечисленных преимуществ контейнеры обладают свойством легковесности. Они занимают ощутимо меньше дискового пространства, чем какая-либо виртуальная машина. Также благодаря встроенному в современные Linux-ядра механизму контрольных групп для контейнера можно ограничить объем доступных системных ресурсов, например, объем потребляемой оперативной памяти, процессорное время и число операций записи/чтения на диске. При правильной настройке ограничений на одном хосте можно запустить множество изолированных друг от друга контейнеров. При этом ни один из них не будет превышать указанный лимит системных ресурсов в процессе своей работы, исключая влияние на стабильность работы своих соседей.
Чаще всего для управления контейнерами используются оркестраторы. Оркестратор – это, как правило, виртуальная машина или отдельный физический сервер, обладающий большими объемами системных ресурсов. Взаимодействуя с ним с помощью пользовательского интерфейса или командной строки, системный администратор может создавать новые контейнеры, управлять ими, объединять или изолировать их друг от друга на сетевом уровне. Набравшись опыта, все эти процессы можно автоматизировать с помощью встроенных в приложение инструментов. Большинство известных оркестраторов, например, DockerSwarm или Kubernetes (K8s), способны самостоятельно следить за основными характеристиками контейнеров: текущее состояние, сетевая доступность, объем потребляемой памяти, процессорного времени и др. [1].
Исходя из вышеперечисленного можно сделать вывод, что использование контейнеров в комбинации с оркестратором позволяет значительно эффективнее использовать имеющиеся системные ресурсы в рабочей системе.
Виртуализация
Несмотря на все свои преимущества, у контейнеров есть один явный недостаток – приложения, разработанные для среды Windows, не могут быть в нем запущены. Не сложно догадаться, что причиной тому является то, что контейнеры изначально были реализованы на основе Linux и технологии контрольных групп в нем. Конечно, можно запустить контейнер, а затем развернуть в нем приложение для эмуляции Windows-среды, например, Wine, и запустить необходимое приложение, но данное решение будет неудачным. Этому способствуют несколько причин: 1) Использование виртуализации внутри виртуализации, а значит, еще более сильное ограничение ресурсов для работы приложения; 2) Легковесный контейнер начинает занимать заметно больше дискового пространства за счет установленного в нем эмулятора.
Компания Microsoft, заметив популярность использования контейнеров в технических кругах, тоже присоединилась к движению Open Container Initiative (OCI) [4]. В рамках этого движения разработчики всего мира занимаются совершенствованием технологии контейнеризации, приведению ее к единому стандарту. Таким образом, в среде Windows появилась сначала поддержка Docker и Linux, а затем – собственные контейнеры. Контейнерами их можно назвать условно, потому что на самом деле они являются виртуальными машинами, то есть обладают полной и независимой ОС вместе с виртуальными драйверами устройств, управлением памятью и другими компонентами, которые добавляют накладные расходы [5].
Так или иначе без использования виртуальных машин не обойтись, если речь идет о приложениях, разработанных для Windows. Компании, которые стараются превратить свое монолитное приложение в набор взаимосвязанных сервисов, вынуждены прибегать
Практика программирования к использованию виртуальных машин. В данном случае каждая из них представляет собой отдельный сервис, выполняющий свой определенный функционал.
Как и в случае с контейнерами, для управления виртуальными машинами используются оркестраторы, точнее, платформы виртуализации. Примером такой системы является VMware vSphere. С ее помощью можно виртуализировать приложения, поддерживать их горизонтальное и вертикальное масштабирование. Разработчики данного инструмента, например, заявляют о следующих преимуществах при использовании их продукта в качестве центра обработки данных.
-
1. Эффективность за счет правильного применения и автоматизации: достижение коэффициента консолидации 15:1 и увеличение коэффициентов использования с 5…15 до 80 % и более без ущерба для производительности.
-
2. Максимальное время безотказной работы облачной инфраструктуры: сокращение внеплановых простоев и исключение плановых простоев при обслуживании серверов и хранилищ.
-
3. Значительное снижение ИТ-расходов: сокращение капитальных расходов на 70 %, эксплуатационных расходов – на 30 % обеспечивает снижение общих расходов на инфраструктуру на 20…30 % из расчета на приложение в среде vSphere.
-
4. Свобода выбора: общая платформа на основе единых стандартов обеспечивает использование существующих ИТ-ресурсов и предоставление ИТ-услуг нового поколения, а также расширяет возможности vSphere с помощью открытых API-интерфейсов, реализующих взаимодействие с решениями ведущих поставщиков технологий, объединенных в глобальную экосистему [3].
Предложения по использованию контейнеров, виртуальных машин и облачных технологий
Опираясь на вышеперечисленные преимущества контейнеров и виртуализации, можно сделать вывод, что их использование позволяет заметно снизить затраты на обслуживание инфраструктуры компании, чем если бы это были только физические машины. Главное – это грамотно рассчитать объем ресурсов, достаточный для поддержания работоспособности системы и резерв на случай необходимости в расширении.
Я уверен, что серверное оборудование компании лучше всего размещать в дата-центре. Оно должно быть достаточно мощным для обработки ожидаемого клиентского трафика. Серверные ресурсы необходимо распределить следующим образом: 45 % – платформа виртуализации, 25 % – оркестратор для контейнеров, 20 % – физические серверы, 10 % – резерв. Подобное распределение, по-видимому, является оптимальным. Нельзя полностью отказаться от физических серверов, потому что порой необходима полная изоляция каких-либо рабочих данных или сервисов. Виртуализация требует ощутимо больше ресурсов, чем контейнеризация, поэтому и мощностей у нее должно быть больше. Десятипроцентный резерв позволит в случае срочной необходимости добавить недостающих ресурсов в том или ином сегменте информационной системы.
Не стоит забывать и об облачных технологиях. Стоит приобрести подписку у какого-либо облачного провайдера и развернуть в его среде хотя бы по одному экземпляру сервисов, выполняющих основные бизнес-процессы компании. В случае каких-либо неполадок с дата-центром в облако можно будет перевести весь клиентский трафик. Вряд ли оно справится с ним полностью, но это позволит избежать полной недоступности сервисов компании, что поможет избежать крупных финансовых потерь.
Комбинация контейнеризации и виртуализации как способ совершенствования...
Заключение
Пользу от перехода инфраструктуры компании на виртуализацию, контейнеры и облако трудно выразить в денежном эквиваленте, не обладая точными сведениями об информационной системе. Можно выделить следующие плюсы и минусы.
Плюсы:
-
– развертывание новых сервисов и их масштабирование занимает не более получаса-часа, тогда как с физическими серверами процесс мог бы занять несколько дней;
– надежная система с низкой вероятностью перебоя: сервисы масштабируются по необходимости, в случае недоступности дата-центра трафик можно перенаправить в облако;
– нет необходимости в самостоятельном обеспечении питания, охлаждения, доступа к интернету, ведения наблюдения за физическим доступом к серверам. Всем этим занимается дата-центр. В случае с облаком за его доступность отвечает сам провайдер.
Минусы:
– необходимо оплачивать аренду помещений в дата-центре и мощностей в облачной среде;
– системные администраторы компании должны обладать навыками использования технологий контейнеризации, виртуализации и облачных сред.
Таким образом, перевод инфраструктуры компании на контейнеры и виртуальные машины может окупиться и принести прибыль в том случае, если число рабочих серверов составляет порядка 50…60 и более. В этом случае от перехода удастся ощутить весомую выгоду, так как автоматизация позволит сэкономить ощутимое количество рабочего времени системных администраторов. Это время можно потратить на другие активности по оптимизации рабочих процессов, что тоже приведет к снижению затрат на обслуживание информационной системы.
Список литературы Комбинация контейнеризации и виртуализации как способ совершенствования информационной системы
- Моуэт Э. Использование Docker / пер. с англ. А.В. Снастиной; ред. А.А. Маркелова. Севастополь: O’Reilly Media, 2017. 354 с.
- Резенов Г.В. Архитектура микросервисов и ее реализация с помощью технологии контейнеризации // Вестник Российского нового университета. 2020. № 3. С. 131–138.
- Технический проспект «VMware vSphere. Лучшая в отрасли платформа виртуализации» [Электронный ресурс]. URL: https://www.vmware.com/files/ru/pdf/products/vsphere/VMware-vSphere-Datasheet.pdf (дата обращения 13.05.2021).
- Open Container Initiative (OCI) [Электронный ресурс]. – URL: https://opencontainers.org (дата обращения 10.05.2021).
- Windows контейнеры и Docker // Блог компании «КРОК» [Электронный ресурс]. – URL: https://cloud.croc.ru/blog/byt-v-teme/windows-konteynery-i-docker/ (дата обращения 12.05.2021).