4. Ситуация год назад
• Инфраструктурой еще
никто не занимается
• Более 10 сильносвязанных
компонентов приложения
• Много конфигов
• Тесты зависят от данных
5. Проблемы
• Долгий деплой
• Сложность конфигурации
• Создание окружений
• Синхронизация тестовых
окружений
• Воспроизводимость
14. Плюсы Augeas
• Всеми конфигами
управляем единообразно
• Поддерживает почти все
форматы конфигов
• Строгий — встроенная
валидация синтаксиса
• Можно расширять
15. Минусы Augeas
• Расширять сложно
• Плохо работает с
нестрогими форматами
• Форматов обычно мало —
теряет смысл
17. Образ сервера
• Jenkins ежедневно
собирает AMI при
помощи Packer
• Публикует Vagrant box в
нашем репозитории
Vagrant
18. Vagrant box
• Packer создает его, если
указан постпроцессор
• Кладем файл .box на
локальный HTTP
• Обновляем JSON с
информацией о версиях
19. Vagrant box
$
cat
~/.vagrant.d/boxes/cinarra-‐VAGRANTSLASH-‐baseami-‐
daily-‐1.2/1.0.174/aws/Vagrantfile
Vagrant.configure("2")
do
|config|
config.vm.provider
"aws"
do
|aws|
aws.region_config
"eu-‐west-‐1",
ami:
"ami-‐fb384f8c"
end
end
23. Разработчику
#
Делается
один
раз
при
добавлении
box-‐а
export
VAGRANT_SERVER_URL="http://www.example.com/boxes"
vagrant
box
add
orgname/baseami
#
Перед
работой
каждый
день
vagrant
box
update
vagrant
up
#
После
работы
vagrant
destroy
32. Центральная сборка
• Задает дополнительные
параметры
• Checkout всех git repo
• Запускает сборки с
нужными параметрами
• Достает и публикует
тесты и артефакты