Автоматизация всегда была ключевой задачей в жизненном цикле разработки программного обеспечения (SDLC). Используя правильные инструменты, оцифруйте повторяющиеся процессы разработки, чтобы повысить производительность и улучшить качество и затраты. Команды разработчиков все чаще вынуждены выпускать приложения быстро и без проблем.
С помощью AWS Elastic Beanstalk вы можете быстро развертывать приложения и управлять ими в облаке AWS, не беспокоясь об инфраструктуре, в которой выполняются эти приложения. AWS Elastic Beanstalk упрощает управление без ограничения выбора или контроля. Вы просто загружаете свое приложение, и AWS Elastic Beanstalk автоматически обрабатывает детали выделения емкости, балансировки нагрузки, масштабирования и мониторинга работоспособности приложения.
Travis CI может автоматически развернуть ваше приложение в Elastic Beanstalk после успешной сборки. Если вы не знаете о Travis CI, можете прочитать документацию.
Чтобы развернуть на AWS Elastic Beastalk, добавьте в свой .travis.yml
следующее:
access-key-id
: Идентификатор ключа доступа к AWS, полученный из вашей Консоли AWS.secret-access-key
: Зашифрованный секретный ключ AWS, полученный из вашей Консоли AWS.region
: должен быть регион, в котором работает приложение Elastic Beastalk, напримерus-east-1
.app
: Название приложения.env
: среда Elastic Beanstalk, в которой будет развернуто приложение.bucket_name
: название сегмента, в который нужно загрузить приложение.
deploy:
provider: elasticbeanstalk
access_key_id: <access-key-id>
secret_access_key:
secure: "Encypted <secret-access-key>="
region: "us-east-1"
app: "example-app-name"
env: "example-app-environment"
bucket_name: "the-target-S3-bucket"
YAML
В качестве альтернативы используйте инструмент настройки командной строки Travis CI, чтобы добавить развертывание travis setup elasticbeanstalk
.
Создание приложения без его развертывания #
Чтобы создать приложение без его развертывания, добавьте only_create_app_version: "true"
в свой .travis.yml
, для получения дополнительной информации перейдите здесь.
Дополнительные настройки
zip_file
: ZIP-файл для развертывания. Вам также необходимо установитьskip_cleanup
, чтобы Travis CI не удалял zip-файл в конце сборки. Если это не указано, будет создан zip-файл из всех файлов, которые являются частью тестируемого репозитория (определяется с помощьюgit ls-files
).bucket_path
: место в сегменте, в которое нужно загрузить приложение.
Переменные среды
Доступны следующие переменные среды:
ELASTIC_BEANSTALK_ENV
: используется, если в вашем.travis.yml
не задан ключenv
.ELASTIC_BEANSTALK_LABEL
: Имя ярлыка новой версии.ELASTIC_BEANSTALK_DESCRIPTION
: Описание новой версии. По умолчанию используется последнее сообщение фиксации.
Выполнение команд до и после развертывания #
Иногда вы хотите запускать команды до или после развертывания. Для этого можно использовать этапы before_deploy
и after_deploy
. Они будут срабатывать только в том случае, если Travis CI действительно развертывается.
before_deploy: "echo 'ready?'"
deploy:
..
after_deploy:
- ./after_deploy_1.sh
- ./after_deploy_2.sh
Пример полного кода
language: node_js node_js: - 6.9.1 before_script: script: before_deploy: - rm -rf .tmp - rm -rf .DS_Store - rm -rf node_modules - export ELASTIC_BEANSTALK_ENV=node-server-${TRAVIS_BRANCH} - zip -r --exclude=\*.git\* --exclude=\*.DS_Store\* --exclude=\*test\ node-server.zip . - export ELASTIC_BEANSTALK_LABEL=git-$(git rev-parse --verify HEAD --short) - export ELASTIC_BEANSTALK_DESCRIPTION=https://github.com/sumn2u/node-server/tree/$(git rev-parse HEAD) after_deploy: - rm node-server.zip deploy: provider: elasticbeanstalk access_key_id:<access-key-id>
secret_access_key: "${SECRET_ACCESS_KEY_NODE}" zip-file: node-server.zip skip_cleanup: true region: us-east-1 app: node-server only_create_app_version: false env: global: secure:<secret-access-key>
=
Заключение
Кажется, просто, не правда ли? Мы можем настраивать приложения в зависимости от наших потребностей, а также есть другие способы автоматизации процесса развертывания.