8

Мы используем кучу экземпляров EC2, которые могут масштабироваться в будущем (около 100 экземпляров), теперь мы смотрим на автоматическое развертывание с использованием развертывания Jenkins или AWS.Каковы преимущества и недостатки использования AWS Code Deploy Vs Jenkins?

Я нашел, что мы можем использовать плагин развертывания AWS Code с Jenkins, но каковы плюсы и минусы следующего?

1) Автономный код AWS Развертывание 2) Дженкинс с кодом AWS Развертывание плагина.

ответ

10

Мы используем как CodeDeploy и Дженкинс, чтобы управлять развертыванием наших условиях AWS.

У каждого из них есть свои роли, и я не рассматриваю его как анализ pro/con. Я считаю, что вам нужно ОБА управлять и непрерывной интеграции сборок (Jenkins) и процесс развертывания испытания сборки ваших EC2 средах (CodeDeploy)

Здесь наша установка:

  1. Дженкинс опросы нашего SCM для измененных. Когда происходит изменение, приложение создается, архивируется в ZIP и регистрируется как разворачиваемый артефакт в CodeDeploy. Мы обозначаем ревизию номером сборки Jenkins - скажем, app_6111.zip. Каждая сборка отправляется нашим ковшом развертывания кода: s3: codedeploy-example-com/app

  2. В CodeDeploy у нас есть приложение, настроенное с группами развертывания для каждой среды, например Testing, Production. Поскольку мы используем # 1, все наши сборки всегда готовы к немедленному развертыванию. Таким образом, с одним или двумя щелчками мыши, например, мы развертываем ревизию app_6111.zip на сервер тестирования.

Для нас Дженкинс - это швейцарский армейский нож современных детексов и непрерывной интеграции, тестирования и развертывания. Это основа, из которой мы можем управлять сборкой, тестированием и созданием артефактов развертывания. Мы можем интегрировать все услуги AWS, такие как S3, CodeDeploy, Elastic Beanstalk и т.д.

Чтобы ответить на конкретные вопросы:

я обнаружил, что мы можем использовать AWS код развертывания плагин с Дженкинс, но Что являются плюсы и минусы следования?

1) Standalone AWS Код Deploy

Автономный CodeDeploy не будет интегрирована с процессом сборки. Он должен быть настроен либо на статический артефакт S3, который загружен вручную, либо на URL-адрес Github. Github в порядке, но нет концепции сборки - она ​​развертывается из ведущей или другой ветви. Например, вы не можете легко вернуться к известной сборке. Тестирование не интегрировано. Отсутствие возможности конвейерных задач/заданий.

2) Дженкинс с кодом AWS Развертывание плагина.

Это предпочтительный подход ИМХО. Используйте оба инструмента. Создайте известные и протестированные сборки, затем зарегистрируйте развертывание в CodeDeploy.Жизнь хороша.

+3

Для тех, кто все еще читает ответ, AWS недавно выпустил инструмент CodeBuild, чтобы заполнить это пустое пространство. Я еще не использовал его, но концепция заключается в том, что вы можете делать все на AWS. Из репозитория кода (CodeCommit), тестирования и построения (CodeBuild), развертывания (CodeDeploy) до конечного конца EC2. –

3

Проверьте это сравнение стеков различными разработчиками. Многие вещи станут ясными.

http://stackshare.io/stackups/aws-codedeploy-vs-jenkins

+0

Мне нужно развернуть приложение node.js, я могу развернуть его, используя разворачивание кода Jenkins и AWS. Развертывание кода AWS поддерживает только архитектуру AWS, поэтому в будущем для развертывания приложений NodeJs, которые могут быть недоступны при развертывании кода AWS, могут понадобиться вещи. – user2379271

+0

Да, вы можете развернуть его с помощью обоих. – error2007s

+0

Таким образом, оставляя часть с открытым исходным кодом и другие функции, я хочу знать в контексте приложения nodejs, где развертывание AWS-кода может завершиться неудачно, потому что я считаю, что Jenkins сможет обрабатывать все (я буду использовать модуль развертывания кода AWS с Jenkins) – user2379271