Оркестраторы: Docker Swarm vs Kubernetes

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

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

Зачем это нужно

Контейнерная технология позволила решить проблему переносимости кода. Стали менее важны операционные системы разработчиков приложения и производства. Главное – чтобы под ней работала система оркестрации (манипулирования контейнерами).

Так, технология контейнеров имеет следующие плюсы:

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

С чего начиналась контейнеризация

Аппараты для копирования документов появились в недрах компании XEROX (отсюда пошло «ксерокопирование»). Поиск информации в интернете стал простым благодаря Google, а у истоков технологии контейнеризации стояла компания с одноименным программным обеспечением Docker. С его помощью можно создавать контейнеры, предоставлять к ним доступ, объединять контейнеры в группы (кластеры) для повышения быстродействия и надежности работы. В Docker встроена система оркестрации контейнеров. Несколько хостов, управляемых программой, можно с помощью инструмента Docker Swarm преобразовать в кластер (или рой). Плюсы Docker Swarm:

  • сравнительно прост в установке, поэтому именно с него начинают знакомство с миром оркестрации;
  • нетребователен к ресурсам;
  • обеспечивает балансировку нагрузки для контейнеров;
  • отлично согласуется с другими инструментами Docker.

Что же выбрать

При росте числа контейнеров в проекте Docker требует подстраховки в работе. Для этого большие IT-корпорации стали разрабатывать собственные надстройки, призванные поддержать используемую систему оркестрации. В недрах Google родилась система, разработанная для собственных нужд, а затем переданная Cloud Native Computing Foundation. Система оркестрации, названная Kubernetes, расширила возможности Docker. Затем Kubernetes научилась работать и с другими системами контейнеризации. В последней версии системы разработчики вообще собираются отказаться от привязки к Docker. Для этого оркестратора остаются сравнительно простые проекты, плюс его легко освоить. А Kubernetes задействуется для сверхсложных вычислений с десятками и сотнями тысяч контейнеров.

Любое из представленного программного обеспечения успешно запускается и работает на выделенных и виртуальных серверах FirstByte.

Читайте также