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

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

Ответы

Ответ 1

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

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

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

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

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

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

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

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

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

Ответ 2

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

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

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

  • Spinnaker по-прежнему требует инструмента построения, поэтому вам, возможно, придется поддерживать Jenkins. Поэтому, если Jenkins Pipeline станет вашим инструментом CD, он может изначально выполнить ваши специфические для исполнителя задачи.
  • Spinnaker не имеет мелкомасштабных элементов управления доступом (и только недавно добавила аутентификацию любого типа), тогда как у Jenkins есть много плагинов и встроенных конфигураций в Pipeline, чтобы предлагать управление доступом на уровне ресурсов.
  • Все управляется одним groovy script, поэтому он является истинным конфигурационным кодом. Это позволяет использовать простой поток/логику/управление, что невозможно (или, по крайней мере, легко) в других инструментах CD.
  • Поддержка нескольких ветвей, легко создавать/удалять/изменять ветки.
  • Расширенная поддержка плагинов для Jenkins. Например, мы используем AWS ECS Plugin, чтобы позволить динамические узлы докеров для наших конвейеров.
  • Легко делиться/сотрудничать по коду с конвейерами. У вас наверняка будут многоразовые функции, которые вы хотите использовать по нескольким конвейерам, Jenkins делает это легко с помощью таких инструментов, как Удаленный плагин загрузчика
  • Поддержка большого сообщества.

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

Ответ 3

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

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

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

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

  • Откат назад - всего лишь один клик.

  • Все современные концепции развертывания, такие как Blue-green/Red-Black, Canary, highlander и т.д., здесь OOB.

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

  • Многопользовательские развертывания (стратегические стратегии DR)

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

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