Применение контейнеров — это сегодня один из наиболее динамично развивающихся сегментов ИТ-рынка, который ориентирован на активное корпоративное использование облачных услуг. Одно из направлений этого процесса — развитие систем оркестрации контейнеров, затрагивающих функции запуска, настройки и администрирования этих инструментов виртуализации.
Контейнеры стремительно ворвались на корпоративный рынок всего несколько лет назад. Во многом благодаря Docker — технологии, позволяющей запускать приложения в контейнере, получая результат, близкий к привычной виртуальной машине, но значительно более эффективный. Легковесность, пониженная ресурсоемкость, практически полная независимость от инфраструктуры предопределили переход на контейнеры с традиционных ВМ.
По оценкам Forrester Research, сегодня контейнеры уже получили признание у 31% корпоративного рынка. Согласно прогнозу компании 451 Research, выпущенному в начале 2017 г., мировой объем продаж контейнеров в ближайшее время будет продолжен. Если в 2016 г. он оценивался в размере 762 млн. долл., то к 2020 г. должен достигнуть уровня 2,7 млрд. долл., что соответствует среднегодовому темпу роста на уровне 40%.
Впрочем, несмотря на такую активную динамику роста, этот сегмент пока еще остается сравнительно малым по сравнению с общим рынком облачных услуг, который учитывает и другие направления, такие как системы виртуализации, частные PaaS, средства автоматизации и управления облачными услугами и пр. Его объем в 2017 г. оценивается в размере 23,1 млрд. долл.; к концу 2020 г. он достигнет 39,6 млрд. долл., что соответствует среднегодовому темпу роста на уровне 15%.
Развитие платформ для оркестрации контейнеров — одно из направлений рыночного сегмента систем виртуализации. Они служат для реализации удобных и эффективных средств развертывания контейнерных систем, выстраивания единой централизованной консоли для применения политик управления. В настоящее время наибольшей известностью пользуются такие системы, как Kubernetes, Docker Swarm и Apache Mesos. Помимо них есть и другие системы, например, Amazon EC2 Container Service или Microsoft Azure Container Service, однако с точки зрения популярности они пока уступают трем фаворитам.
Согласно опросу, проведенному среди посетителей портала SDxCentral, свой выбор системы оркестрации в пользу Kubernetes сделали 64% респондентов; 36% отдали голос за Docker Swarm и 18% — за Apache Mesos (анкета позволяла выбрать несколько вариантов ответа).
Более подробно о каждой из этих платформ рассказал Дан Мейер (Dan Meyer) старший редактор SDxCentral.
Kubernetes на вершине славы
Open Source-система Kubernetes для управления контейнерными кластерами появилась в результате наработок, которые были накоплены Google в течение 10 лет эксплуатации Borg — механизма для изоляции процессов в виртуальной среде. В 2014 г. Google открыла код Kubernetes, который был написан на языке Go, и начала распространять систему под лицензией Apache 2.0. Благодаря компании Mirantis система Kubernetes совсем скоро появилась в каталоге OpenStack в составе платформы Cloud Native Computing Foundation, развиваемой Linux Foundation, получив тем самым отличные шансы на то, чтобы быстро стать популярной среди пользователей.
Расчет Google оправдался — сегодня многие рассматривают Kubernetes как лучшее универсальное решение для работы с приложениями в облачном окружении. Платформу активно поддерживают около десятка вендоров, среди которых Mirantis, CoreOS, IBM и Red Hat.
Благодаря полученной со стороны рынка поддержке Kubernetes сегодня часто называют «идеальной платформой» для оркестрации контейнеров. Она позволяет управлять кластерами виртуальных машин и Linux-контейнеров как единым целым, находится в первых рядах списка систем, рекомендуемых для внедрения для средних и крупных предприятий.
Назначение Kubernetes состоит в выстраивании эффективной системы распределения контейнеров по узлам кластера в зависимости от текущей нагрузки и имеющихся потребностей при работе сервисов. Kubernetes способен обслуживать сразу большое количество хостов, запускать на них многочисленные контейнеры Docker или Rocket, отслеживать их состояние, контролировать совместную работу и репликацию, проводить масштабирование и балансировку нагрузки.
Для платформы Kubernetes налажен трехмесячный цикл обновлений. Новые улучшения делаются в основном в направлении развития системы защиты, наращивания объемов используемых данных и масштабируемости.
Docker Swarm интересен СМБ
Второй крупный игрок на рынке систем оркестрации контейнеров — система Docker Swarm, и это не случайно: компания Docker была фактически первой, кто предложил действительно эффективную и удобную для корпоративного использования одноименную платформу. Ее решение, выпущенное в 2013 г., значительно упростило развертывание полноценных виртуальных систем. По сути с этого момента стало возможным легко объединять вместе тысячи ВМ, запускать тысячи изолированных друг от друга приложений, быстро выстраивая нужную конфигурацию из виртуализованных прикладных систем
Инструмент контейнерной кластеризации Docker Swarm появился немного позже и стал частью платформы Docker. С его помощью решается задача объединения Docker-хостов в общий виртуальный хост.
Вендору удалось предложить действительно элегантное решение. Docker Swarm предоставляет REST API-интерфейс, который совместим с Docker API. Поэтому все пользователи, которые ранее активно использовали Docker-инструменты, сразу получили возможность работать с контейнерными кластерами под управлением Docker Swarm, даже не волнуясь, что теперь вместо одной машины им приходится управлять сразу роем (swarm) Docker-контейнеров.
Режим Swarm интересен в первую очередь представителям малых и средних предприятий, «аппетиты» которых не выходят за рамки запуска более 50 тыс. контейнеров и до 1000 нод. Благодаря автоматической совместимости с Docker применение Swarm интересно разработчику как развитие его бизнес-модели наращивания своего облачного присутствия. Большую помощь в развитии этого направления оказывает Microsoft Azure, которая предлагает поддержку Swarm.
Несмотря на то, что за Docker Swarm пока занимает более скромные позиции на рынке, чем Kubernetes, его поддержка со стороны корпоративного рынка достаточно весома. Для многих Swarm уже стал главным механизмом для выстраивания будущей облачной стратегии развития.
Mesos достигла поры зрелости
Третий основной игрок на рынке оркестрации контейнеров — система Apache Mesos. Появившись как исследовательский студенческий проект в Университете Беркли, она затем была собрана в полноценный продукт и впервые представлена публично в 2009 г. Apache Mesos — это централизованная отказоустойчивая система для управления кластером, позволяющая объединять в группы отдельные узлы (Mesos Slaves) согласно выставленным требованиям и в последующем обеспечивать им изоляцию от остальных ИТ-ресурсов и управление.
Сущность работы системы Mesos в определенной степени противоположна модели виртуализации. Если традиционный подход предусматривает дробление вычислительной среды, состоящей из множества физических машин, на их виртуальные аналоги с предоставлением каждой своей доли общих ресурсов ЦОДа, то Mesos наоборот объединяет существующие объекты в единый виртуальный ресурс, формируя крупные кластеры и эффективную систему управления серверной инфраструктурой с выделением каждому кластеру индивидуального пула ресурсов.
Подход Mesos позволяет значительно упростить процедуры развертывания и управления, легко перемещать приложения, запущенные в контейнерах, с одного места на другое, быстро переходить в публичное облако.
Главным инструментом, осуществляющим контроль за работой кластеров, являются Mesos Masters. Они занимаются предоставлением ресурсов, распределением задач между узлами Mesos Slaves, объединяющими запущенные контейнеры. Чтобы гарантировать высокий уровень доступности в системе запускается сразу несколько Mesos Masters, однако в каждый момент времени активным лидером выступает только один сервер. Логика запуска задач, мониторинг, масштабирование — эти операции находятся в распоряжении Mesos Frameworks.
Модель Apache Mesos также получила широкую поддержку среди вендоров. В качестве ОС для ЦОДов ее взяли на вооружение свыше 60 партнеров, в том числе Microsoft, HPE, Accenture, Autodesk, Cisco, Dell EMC, Equinix, Puppet и Verizon.
С точки зрения потребителей заинтересованность в Mesos проявили прежде всего компании, которым приходится работать с очень большим количеством контейнеров. Наиболее известные среди них — Twitter, eBay, Netflix, Verizon; они применяют Mesos для управления вычислительной нагрузкой в облаке и дата-центрах.
Mesosphere, разработчик этой системы, предлагает также использовать Mesos для реализации моделей типа «как сервис». В этом отношении наибольший интерес представляют сейчас совместные проекты компании с HPE.