Лучшие практики AWS CodePipeline с двумя аккаунтами AWS - PullRequest
0 голосов
/ 29 апреля 2018

В настоящее время в моем проекте используются 2 учетные записи AWS - одна для постановки, на которую наши клиенты могут положиться при тестировании, а другая - для производства / работы. Я пытаюсь настроить CodePipeline для нового безсерверного приложения. Мне было интересно, правильна ли эта установка и есть ли способы улучшить ее.

Промежуточная учетная запись AWS: Источник GitHub -> AWS CodeBuild (тестирование и сборка в промежуточной среде) -> Ворота ручного утверждения -> Развертывание приложения в промежуточной стадии

Затем я проверю изменения в стадии подготовки перед утверждением развертывания производства:

Производственная учетная запись AWS: Источник GitHub -> AWS CodeBuild (тестирование и сборка в prod env) -> Ворота ручного утверждения -> Развертывание приложения в prod

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

Всякий раз, когда я нажимаю, чтобы освоить, это в основном вызывает оба этих конвейера. Является ли избыточность недостатком, который легко исправить? Разве проще, чтобы промежуточный аккаунт имел ручное одобрение, чтобы перейти на конвейер аккаунта prod и вызвать его?

1 Ответ

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

Отдельная промежуточная и производственная учетные записи - хорошая идея. Вы рассматривали возможность использования одного конвейера (возможно, в третьем аккаунте)? Можно настроить действия между учетными записями в CodePipeline. В противном случае вам будет сложно согласовать выпуск по двум конвейерам.

Я бы посоветовал действия между учетными записями в качестве наилучшей практики для этого типа установки. Тем не менее, некоторые возможные обходные пути:

  • Ручное утверждение, вероятно, самый простой способ координировать выбросы между конвейерами. Это также наиболее подвержено ошибкам, потому что человеку легко ошибочно рекламировать не то, что нужно. Конвейер 1 может наблюдать коммит 1, а конвейер 2 может наблюдать коммит 2, если коммит 1 и коммит 2 происходят в течение короткого промежутка времени.
  • Публикация промежуточного конвейера в объекте S3, являющемся источником для производственного конвейера (т. Е. Не дублировать этапы создания, сборки и тестирования). Хорошая особенность этого подхода в том, что производственный конвейер будет выпускать только изменения, которые прошли промежуточный конвейер.
...