Как настроить два набора хостов (3 для QA и 3 для Prod) для развертывания распределенной системы с помощью Spinnaker?

Я использую Spinnaker для развертывания трехуровневой системы в QA, а затем в Production. Файлы конфигурации в каждой из этих систем указывают на другие. Если я запеку конфигурацию для QA в AMI, то как мне ее изменить при продвижении в Prod? Это 1) наличие двух разных наборов AMI — один для QA и один для Prod, или 2) наличие AMI без конфигурации, а затем настройка его (каким-то образом) после развертывания для изменения файлов конфигурации? Что рекомендуется?


person V. James    schedule 13.02.2016    source источник


Ответы (2)


Вы можете определить собственные AWS пользовательские данные для кластера во время развертывания (в дополнительных настройках конфигурации кластера). Затем вы можете получить эти пользовательские данные в своем приложении. Это позволит вам изменить этот тип конфигураций.

В Netflix у нас есть ряд сценариев инициализации, которые встроены в базовый образ и предоставляют механизм расширения пользовательских сценариев запуска (init.d) через туманность/градель. Обычно это устанавливает такие значения, как NETFLIX_ENVIRONMENT, которые хорошо известны и запрограммированы.

Мы также используем механизм переключения функций через https://github.com/Netflix/archaius . Это позволяет нам добавлять свойства, которые являются внешними по отношению к кластерам, но могут быть нацелены на них.

Когда дело доходит до защищенных учетных данных, подход описан в этой презентации, но, по сути, изображения обращаются к внешней службе, которая выдает эти типы учетных данных. https://speakerdeck.com/bdpayne/key-management-in-aws-how-netflix-secures-sensitive-data-without-its-own-data-center

person Tomas Lin    schedule 16.02.2016

Я сам борюсь с подобными проблемами в нашей компании. Мое решение состояло в том, чтобы создать образы AMI для конкретных целей с помощью скрипта Packer. Это позволяет мне: 1. Настроить сервер как можно лучше, а затем сохранить эти конфигурации в AMI. 2. Легко изменить эти конфигурации, если возникнет необходимость.

Затем запустите AMI с помощью сценария Ansible и выполните все остальные настройки для конкретного экземпляра.

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

Преимущество, которое Ansible дает вам здесь, заключается в том, что вы учитываете свои конфигурации и включаете однократную запись как на рабочий, так и на промежуточный серверы.

person Yaron Idan    schedule 14.02.2016