Сравните Spinnaker с Jenkins 2.0 в качестве инструмента непрерывной доставки

Как мы знаем, выпущен Jenkins 2.0, и он распространяется не только на непрерывную интеграцию (CI), но и на непрерывную доставку (CD). Поэтому я хочу спросить, каковы конкурентные преимущества Spinnaker по сравнению с Jenkins 2.0?

3 ответа

Я много работаю над интеграцией Jenkins в Spinnaker и над функциональностью Pipelines в Netflix.

Spinnaker никогда не задумывался как комплексный инструмент для сборки. Есть вещи, которые Дженкинс будет делать лучше с точки зрения управления SCM, выполнения тестов, построения пакетов, наличия плагинов gazillion и т. Д., И т. Д., И т. Д.

Spinnaker пытается добиться успеха в том, чтобы взять часть программного обеспечения, которую вы опубликовали (пакет debian, образ докера или развертываемый JAR-файл), и запустить его в рамках предсказуемого цикла развертывания программного обеспечения, который можно легко настраивать. Другими словами, каждая функция в Spinnaker создана для упрощения развертывания артефактов с несколькими учетными записями и несколькими облаками.

Трубопроводы Spinnaker имеют облачную ориентацию. Большинство наших этапов конвейера и элементов управления API связаны с созданием новых групп серверов и изменением существующих групп серверов таким образом, чтобы это было предсказуемо и удобно для пользователя. В случае сомнений, это тот случай, для которого мы оптимизируем.

У нас более четкие мнения о том, как выглядит облачное развертывание, и у нас часто будет пользовательский интерфейс "укажи и щелкни" при решении задач облачного развертывания в наших конвейерах CD - найдите образ в кластере x, отключите этот кластер, измените размер группы серверов., уменьшить этот кластер, заставить этот кластер принимать трафик, уничтожить этот старый кластер и т. д.

Когда мы начали писать Spinnaker 2+ года назад, функциональность конвейера Jenkins была нам недоступна, поэтому мы создали необходимую нам функциональность. Поддержка Jenkins, к которой мы пришли, возникла из наших потребностей, помогая другим командам в Netflix создавать тысячи конвейеров развертывания внутри компании. Поскольку Netflix в значительной степени полагается на Jenkins для сборки и тестирования, переход между заданиями Jenkins и этапами Spinnaker является довольно плавным.

В Netflix есть команды, которые не используют функциональность конвейера Spinnaker и вместо этого используют API Spinnaker в своих заданиях Jenkins в качестве ярлыка для развертывания в AWS. Если вы используете конвейеры Jenkins или аналогичные инструменты для компакт-дисков, Spinnaker делает фазу развертывания действительно гибкой.

У нас также есть команды, которым нравится, как Spinnaker разбивает задания Jenkins на атомарные, многократно используемые задачи вокруг одного приложения. Команды, которые не развертываются в облаке, используют Spinnaker, потому что наши конвейеры соответствуют их потребностям лучше, чем то, что они могут найти в мире Дженкинса.

Трубопроводы Дженкинса довольно аккуратны. Я не думаю, что Спинакер когда-либо полностью заменит Дженкинса и миллион вещей, которые он делает. Наша цель - сделать шаг "развертывание в облаке" более простым и расширяемым. Выбор использовать один над другим, вместе или не использовать вообще, остается за вами.

Есть несколько причин, по которым вы можете выбрать Spinnaker вместо Jenkins (2.0) Pipeline в качестве инструмента CD:

  1. Spinnaker включает в себя веб-интерфейс, который может фактически предоставлять ресурсы, и это делается в нескольких облачных средах. Поэтому для создания базовых ресурсов, таких как виртуальные машины, балансировщики нагрузки, кластеры и т. Д., Вы можете сделать это из того же интерфейса, что и инструмент доставки.
  2. Если ваша архитектура аналогична архитектуре Netflix, Netflix использует ее в качестве всей своей платформы управления облаком, поэтому практически не требуется разложенных инструментов для поддержки управления доставкой и инфраструктурой.

С другой стороны, есть много причин, чтобы выбрать Jenkins Pipeline вместо Spinnaker

  1. Spinnaker по-прежнему требует инструмент для сборки, так что вам может понадобиться поддерживать Jenkins в любом случае. Так что, если Jenkins Pipeline станет вашим CD-инструментом, он уже может выполнять ваши задачи, специфичные для исполнителя.
  2. Spinnaker не имеет детализированных элементов управления доступом (и только недавно добавил аутентификацию любого рода), в то время как у Jenkins есть много плагинов и собственных конфигураций в Pipeline, которые предлагают управление доступом на уровне ресурсов.
  3. Все управляется одним отличным скриптом, так что это настоящая конфигурация как код. Он допускает простой поток / логику / управление, что невозможно (или, по крайней мере, легко) в других инструментах CD.
  4. Поддержка нескольких веток конвейера, легко создавать / удалять / изменять ветки
  5. Обширная поддержка плагинов для Jenkins уже. Например, мы используем плагин AWS ECS, чтобы разрешить динамические стыковочные узлы для наших конвейеров.
  6. Легко делиться / сотрудничать над кодом к конвейерам. У вас наверняка будут многократно используемые функции, которые вы хотите использовать в нескольких конвейерах, Jenkins делает это легко с помощью таких инструментов, как плагин Remote Loader
  7. Поддержка большого сообщества

В конечном итоге мы выбрали Jenkins 2.0 Pipeline в качестве инструмента для компакт-дисков, помимо Spinnaker и некоторых других.

Мы используем Maven, чтобы упаковать всю кодовую базу вместе с конфигами, свойствами (т. Е. Все, что является версионным в GitHub) и создать из него RPM. С этим окончанием потока - мы запускаем конвейеры Spinnaker в AWS или любом другом облаке для запуска части CD.

Spinnaker очень уникален в этой области CD.

  1. Продвижение кода: тот же RPM, который мы будем продвигать, гарантирует, что мы сделаем наш основной код / ​​env неизменным.

  2. Мы можем контролировать изменение размера экземпляров с самой консоли Spinnaker.

  3. Откат только в один клик.

  4. Все современные концепции развертывания, такие как сине-зелёный / красно-чёрный, канарейка, горцы и т. Д., Здесь тоже есть

  5. Журналы конвейера дают очень проницательный обзор, как высокого уровня, так и низкого уровня

  6. Развертывание в нескольких регионах (стратегическое DR)

если кому-то нужна помощь (бесплатная помощь!) по установке Spinnaker в RHEL, вы можете сообщить мне об этом.

Но я должен сказать, что мы используем Spinnaker только для облачных развертываний.

Другие вопросы по тегам