Использование контейнеров — один из наиболее активно развивающихся сегментов
Контейнеры на рынке виртуализации появились относительно недавно. В основном благодаря технологии Docker, позволяющей запускать приложения в контейнере. Это похоже на обычную виртуальную машину, но гораздо лучше, поскольку достигается практически полная независимость от инфраструктуры и пониженное потребление ресурсами. Именно поэтому сейчас можно заметить смещение от традиционных виртуальных машин в сторону контейнеров. Крупные предприятия используют их при создании облачной
Когда говорят о контейнерах, нельзя не упомянуть об оркестрации. Оркестрация — это координация взаимодействия нескольких контейнеров. Конечно, можно работать и без оркестрации — никто не запрещает создать контейнер, в котором будут запущены все необходимые процессы. Однако в этом случае вы будете лишены гибкости, масштабируемости, а также возникнут вопросы безопасности, поскольку запущенные в одном контейнере процессы не будут изолированы и смогут влиять друг на друга.
Оркестрация позволяет создавать информационные системы из множества контейнеров, каждый из которых отвечает только за одну определенную задачу, а общение осуществляется через сетевые порты и общие каталоги. При необходимости каждый такой контейнер можно заменить другим, что позволяет, например, быстро перейти на другую версию базы данных при необходимости.
Существуют различные платформы для оркестрации контейнеров. Они позволяют реализовать удобные и эффективные средства развертывания контейнерных систем, построения единой централизованной консоли для применения политик управления. Наиболее известны следующие системы: Kubernetes, Docker Swarm и Apache Mesos. Это не единственные системы — есть еще Nomad, Fleet, Aurora, Amazon EC2 Container Service, Microsoft Azure Container Service, однако они менее популярны.
Kubernetes —
Благодаря тому, что Google открыла код и сделала свою систему оркестрации открытой, она стала самой популярной. Сегодня многие рассматривают ее как лучшее и универсальное решение для работы с приложениями в облачной среде. Платформу оркестрации поддерживают такие именитые вендоры как Red Hat, IBM, CoreOS и др.
Kubernetes выстраивает эффективную систему распределения контейнеров по узлам кластера в зависимости от текущей нагрузки и имеющихся потребностей в работе сервисов. Эта платформа оркестрации способна обслуживать огромное количество хостов, запускать на них многочисленные контейнеры Docker или Rocket, отслеживать их состояние, контролировать совместную работу, проводить балансировку нагрузки и многое другое.
Kubernetes — очень сложная система и позволяет делать практически все, что касается оркестрации контейнеров. У нее отличный dashboard, гибкие политики безопасности, она поддерживает распределенные/сетевые файловые системы без танцев с бубнами, обладает широкими возможностями по определению своих метаданных для сервисов, что удобно в больших инфраструктурах. Все бы хорошо, но у нее есть один бич — довольно скудная документация, особенно для такой сложной системы оркестрации.
Docker Swarm — вторая по популярности система оркестрации и это не случайно. Ведь компания Docker была первой, кто предложил эффективную и удобную для корпоративного использования систему в 2013 г. Docker значительно упростила развертывание полноценных виртуальных систем и оркестрацию в целом.
Инструмент контейнерной кластеризации Docker Swarm появился немного позже и стал частью платформы Docker. Он позволяет объединять
Docker Swarm интересна, прежде всего, малым и средним предприятиям, потребности которых не выходят за рамки запуска более 50 тысяч контейнеров и 1000 нод.
Несмотря на то, что Docker Swarm занимает более скромные позиции по сравнению с Kubernetes, ее поддержка со стороны корпоративного рынка достаточно весома. Чего стоит только активная поддержка со стороны Microsoft Azure! Именно поэтому данная платформа сейчас активно развивается, и никто не знает, какую долю рынка она займет через пару лет.
На третьем месте по популярности система Apache Mesos. Изначально она появилась как исследовательский проект в Университете Беркли. Впервые она была собрана в полноценный продукт и представлена публично в 2009 г.
Apache Mesos — это централизованная отказоустойчивая система для управления кластером. Позволяет объединять в группы отдельные узлы, согласно определенным требованиям, а также обеспечивать их изоляцию от остальных
Сущность работы Apache Mesos отличается от привычной и уже ставшей традиционной модели виртуализации. Традиционный подход предусматривает дробление вычислительной среды, состоящей из множества физических машин, на их виртуальные аналоги. Apache Mesos работает иначе: она объединяет существующие объекты в единый виртуальный ресурс, формируя крупные кластеры и эффективную систему управления серверной инфраструктурой, в которой каждому кластеру выделяется свой индивидуальный пул ресурсов.
Система с поддержкой оркестрации получила широкую поддержку вендоров. В качестве операционной системы для центров обработки данных ее используют более 60 крупных компаний, в том числе Microsoft, Cisco, Dell, HPE, Autodesk, Twitter, eBay и др. Apache Mesos будет интересна крупным компаниям, которым приходится работать с очень большим количеством контейнерных кластеров (в отличие от той же Docker Swarm).
Выбор системы оркестрации зависит от поставленных задач и своих предпочтений. Если вам нужна простая система, можно выбрать Docker Swarm. Но не стоит забывать о ее ограничениях: если нужно запускать большее количество контейнерных кластеров, тогда нужно смотреть в сторону Kubernetes или Apache Mesos.