Популярный open source — часть вторая: 5 инструментов для управления облаком

    В прошлый раз мы рассказывали о наиболее популярных и обсуждаемых инструментах и сервисах для работы с логами и базами данных. Тема сегодняшнего материала — управление контейнерами и балансировка нагрузки в облаке.


    / фото Nicolas Henderson CC BY


    Apache OpenWhisk



    Apache OpenWhisk — открытая облачная платформа для бессерверных (serverless) вычислений. Эта концепция предполагает, что вычислительные ресурсы облака используются как сервисы. Таким образом, разработчикам и администраторам не нужно заботиться об инфраструктуре и обслуживании серверов. Получается, что вопросами масштабируемости, поддержки кода и безопасности окружения занимается OpenWhisk.

    Работу над OpenWhisk начали сотрудники IBM Research в 2015 году. А в 2016 году исходный код проекта появился на GitHub. Платформа быстро приобрела популярность благодаря активно развивающемуся тренду на бессерверные вычисления. В Markets&Markets прогнозируют, что к 2021 году стоимость этого рынка составит 7,7 млрд долларов (при стоимости 2 млрд в 2016-м). Уже сегодня, помимо IBM, в своих решениях платформу используют такие компании, как Adobe и Naver (самая популярная поисковая система в Южной Корее).

    Плюсы платформы оценили и в Red Hat. Представители компании считают, что другие открытые проекты — Fission, Kubeless, IronFunctions — уступают OpenWhisk в объеме кодовой базы, качестве функций и количестве контрибьюторов. Поэтому Red Hat сами работают с OpenWhisk и помогают проекту развиваться.

    Есть и у платформы недостатки. Пользователи отмечают, что у OpenWhisk слишком большой инструментарий. В него входят: CouchDB, Kafka, Nginx, Redis и Zookeeper. Само по себе наличие дополнительной функциональности не является чем-то плохим, просто во всем этом многообразии бывает сложно разобраться.

    Кроме того, в 2018 году репутацию OpenWhisk «подпортили» уязвимости, которые позволяли злоумышленнику при определённых условиях менять пользовательские функции. Их оперативно закрыли, но разработчикам нужно было обновить теги Docker или Git до последней версии. Поэтому точное количество систем, остающихся уязвимыми, неизвестно. Подробнее о защите OpenWhisk можно прочитать в статье на Medium. Те же, кто хочет поближе познакомиться с платформой и опробовать её в работе, стоит обратить внимание на гайд из блога Джеймса Томаса (James Thomas), разработчика IBM Cloud.


    Pulumi



    Это новая облачная платформа для разработки программ на JavaScript, Python, Go и др. Готовые приложения можно запускать в любом облаке, в том числе с использованием контейнеров Kubernetes. При этом в основе Pulumi лежит концепция программируемой инфраструктуры (infrastructure-as-code). Пользователи получают возможность работать с железом как с кодом (управлять настройками оборудования программно).

    Оценить то, насколько эффективным окажется инструмент на реальных проектах, пока сложно. Ряд резидентов Hacker News в тематическом треде отметили, что Pulumi не подходит для работы на bare metal. Плюс у инструмента пока нет каких-либо серьезных преимуществ перед аналогичными инструментами вроде Terraform, который существует на рынке уже четыре года и успел обрести сообщество.

    Если вам все же интересно оценить возможности Pulumi, гайд для быстрого старта можно найти в репозитории на GitHub.


    GLB Director



    GLB Director — это балансировщик нагрузки GitHub, доступ к которому разработчики открыли в конце лета прошлого года. Об этом событии мы рассказывали в одном из материалов нашего блога.

    Сам инструмент стал ответом на проблему, с которой столкнулись в компании. Предыдущее решение — haproxy — не справлялось с нагрузками на GitHub. При использовании haproxy масштабировать сервисы можно только вертикально — добавлять ресурсы процессора, памяти, дисков, что не давало ощутимого прироста производительности. Поэтому разработчики создали своё решение, заточенное под нагрузки веб-сервиса.

    GLB Director не направляет пакеты на единый узел, а распределяет их между первичным и вторичным прокси-серверами с помощью системы на базе рандеву-хеширования (HRW). Если один сервер «упадет», пакеты перенаправляются на второй. За счет этого балансировщик поддерживает отказоустойчивость TCP-соединений.

    Пользователи Hacker News полагают, что сходу понять, как работать с балансировщиком сложно. Однако он оказывается эффективен для распределения нагрузки в крупных дата-центрах. При этом GLB Director может быть неудобным при распределении нагрузки между backend-серверами. Для этой задачи имеет смысл обратить на другое открытое решение — балансировщик Katran от Facebook.


    / фото Christopher A. Dominic CC BY


    Crossplane



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

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

    Отличие Crossplane в том, что в этой платформе все конфигурационные файлы собраны в одном месте. Однако есть мнение, что новый инструмент придется использовать вместе с Terraform, а не вместо него.

    Чтобы познакомиться с платформой на практике, авторы предлагают запустить Wordpress-приложение с помощью руководства в блоге сообщества.


    Titus



    Titus — это платформа для управления контейнерами от Netflix, которая была передана в open source в прошлом году. Она позволяет компании работать с 200 тыс. вычислительных кластеров ежедневно. В основе решения лежит система управления Apache Mesos, которая объединяет виртуальные машины в один кластер. Аналогичный подход применяется в ядре Linux, когда нужно разделить ресурсы железа между локальными процессами.

    Есть мнение, что открытие кода — это попытка Netflix удержать проект «на плаву». Решение для управления контейнерными средами понадобилось Netflix еще до того, как появился Kubernetes. Поэтому у их системы почти нет преимуществ над инструментом Google (выгоду могут получить разве что те компании, которые уже работают с Apache Mesos). Он разрабатывался позже и с прицелом на мультиоблачные среды, поэтому вокруг него уже сформировалось большое комьюнити.

    В связи с этим есть вероятность, что в будущем разработчики Netflix сами откажутся от Titus и перейдут на Kubernetes.



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



    Материалы из нашего корпоративного блога:


    Дополнительное чтение в нашем Telegram-канале:

    ИТ-ГРАД
    438,00
    vmware iaas provider
    Поделиться публикацией

    Комментарии 0

    Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

    Самое читаемое