Как автоматически развернуть код GIT в EC2 - PullRequest
0 голосов
/ 28 апреля 2018

У меня есть приложение git repo и локальная среда разработки для некоторых приложений Spring Micro-service. У меня есть 10 экземпляров EC2 для Prod и 5 экземпляров EC2 для тестового развертывания.

Для теста и продукции у нас есть две разные ветви GIT, и наш план таков ...

  1. Во-первых, мы разработаем код и проведем модульное тестирование на местном уровне.
  2. Мы загрузим код в git test brunch и развернем изменения в тестовых экземплярах EC2
  3. После успешного тестирования мы загрузим изменения кода в prod brunch и, наконец, развернем экземпляры кода prod EC2.

копирование файла войны микросервиса во всех экземплярах EC2 по одному для каждого изменения, я думаю, не очень хорошая идея. Есть ли какой-нибудь автоматизированный способ / сервис, с помощью которого я могу подключить свое GIT-репо к сервису AWS, который скомпилирует код и выполнит сборку и копирование файла war в конкретный локальный компьютер в конкретном экземпляре EC2?

Это должно быть сделано для каждой базы проекта, так как это микросервис,

Война Procect1 должна идти в EC2-1 (скажем, один экземпляр ec2) / home / user / war

Война Project2 должна идти в EC2-2 (скажем, в другом экземпляре ec2) / home / user / war

что-то в этом роде.

Ответы [ 2 ]

0 голосов
/ 28 апреля 2018

Вам нужно определить релиз конвейер CI & CD , теперь то, как вы это делаете, слишком широкое и зависит от многих факторов.

enter image description here

Вы можете использовать все данные, используя только git, и реализовать рабочий процесс, используя ловушку после получения , вплоть до «контейнерного» решения, которое может или не может применяться в зависимости от вашего случая.

Если вы не хотите иметь дело с Jenkins или buildbot , вы можете использовать такие сервисы, как Travis CI и реализовать AWS CodeDeploy . В этом случае вы будете больше рассказывать о том, как вы используете git и о git-flow , который вы реализуете.

enter image description here

Обычно каждый коммит, входящий в ветку develop, развертывается в тестовой среде и после слияния с master попадает непосредственно в производство, это сильно зависит от webhooks , но с некоторыми тонкими настройками как очарование, так как в конце весь конвейер может быть полностью автоматизирован

Если вы инициализируете экземпляры, используя что-то вроде ansible или salttack , вы, вероятно, можете воспользоваться преимуществами вашей настройки и просто добавив несколько webhooks (как упоминалось выше) до) может быть быстрее, чем, например, иметь дело с AWS opsworks.

Помимо этого, у вас всегда есть решения AWS, но, как уже упоминалось, это слишком широкое и очень самоуверенное, то, что работает для кого-то, может не сработать для вас.

0 голосов
/ 28 апреля 2018

Вы можете использовать сервер сборки, такой как Jenkins, для автоматизации этого, есть способы, которыми он может наблюдать за фиксацией в ветке git, а затем запускать задание сборки и развертывания, которое скомпилирует код и затем развернет его в ваши экземпляры.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...