bamboo что это за программа

Выполняйте сборку, тестирование и развертывание уверенно

Bamboo Data Center — это конвейер непрерывной поставки, обеспечивающий отказоустойчивость, надежность и масштабируемость для команд любого размера.

bamboo что это за программа. Смотреть фото bamboo что это за программа. Смотреть картинку bamboo что это за программа. Картинка про bamboo что это за программа. Фото bamboo что это за программа

Непрерывная поставка ПО, от кода до развертывания

bamboo что это за программа. Смотреть фото bamboo что это за программа. Смотреть картинку bamboo что это за программа. Картинка про bamboo что это за программа. Фото bamboo что это за программа

Автоматизация рабочих процессов

Раскройте возможности agile-разработки с помощью автоматизированных рабочих процессов, от написания кода до развертывания.

Встроенное аварийное восстановление

Обеспечивайте непрерывную работу команды благодаря отказоустойчивым сборкам и высокой доступности.

Масштабируйте с уверенностью

Наращивайте ресурсы и поддерживайте производительность по мере роста организации.

bamboo что это за программа. Смотреть фото bamboo что это за программа. Смотреть картинку bamboo что это за программа. Картинка про bamboo что это за программа. Фото bamboo что это за программа

Bamboo, Bitbucket и Jira Software полностью интегрированы и позволяют нам отслеживать весь процесс, от получения запроса на функцию до ее развертывания.

—СКОТТ КАРПЕНТЕР, руководитель рабочей программы

Важные интеграции

bamboo что это за программа. Смотреть фото bamboo что это за программа. Смотреть картинку bamboo что это за программа. Картинка про bamboo что это за программа. Фото bamboo что это за программа

Процесс разработки

Подключите Bamboo к Bitbucket и Jira для удобного использования при любом типе развертывания.

bamboo что это за программа. Смотреть фото bamboo что это за программа. Смотреть картинку bamboo что это за программа. Картинка про bamboo что это за программа. Фото bamboo что это за программа

Непрерывная поставка

Легко выпускайте релизы и доставляйте конечный продукт с помощью Docker и AWS CodeDeploy.

bamboo что это за программа. Смотреть фото bamboo что это за программа. Смотреть картинку bamboo что это за программа. Картинка про bamboo что это за программа. Фото bamboo что это за программа

Расследование инцидентов

Интеграция с Opsgenie позволит вашим командам реагирования быстро расследовать инциденты.

Простые тарифные планы, подходящие командам любых размеров

Data Center

Полный контроль над средой

Высокая доступность на основе функции «холодного» резервирования

Лицензия на один год и обслуживание

Оптимизировано для отказоустойчивости сборок

Приоритетная поддержка в комплекте

Начало работы с Bamboo Data Center

Сборка, тест, развертывание

Профессиональные команды выбирают Bamboo Server для непрерывной интеграции, развертывания и поставки ПО

Непрерывная поставка ПО, от кода до развертывания

Объедините автоматизированные сборки, тесты и релизы в единый жизненный цикл

bamboo что это за программа. Смотреть фото bamboo что это за программа. Смотреть картинку bamboo что это за программа. Картинка про bamboo что это за программа. Фото bamboo что это за программа

Сборка

Уделяйте внимание коду и положитесь на Bamboo в качестве сервера непрерывной интеграции и сборки. Создавайте многоступенчатые планы сборки, настраивайте триггеры для запуска сборок по результатам коммитов и выделяйте агентов для самых важных сборок и развертываний.

Тестирование — это важнейший этап непрерывной интеграции. Запускайте в Bamboo автоматизированные тесты, чтобы тщательно проверить каждое изменение. Параллельные автоматизированные тесты раскрывают всю мощь agile-разработки и помогают найти баги проще и быстрее.

Развертывание

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

Интегрируйте

Bamboo отличается самой эффективной интеграцией с Jira Software, Bitbucket и Fisheye. Расширьте возможности конвейера непрерывной интеграции, выбрав нужные приложения более чем из 150 вариантов в Atlassian Marketplace или создав собственное приложение.

bamboo что это за программа. Смотреть фото bamboo что это за программа. Смотреть картинку bamboo что это за программа. Картинка про bamboo что это за программа. Фото bamboo что это за программа

bamboo что это за программа. Смотреть фото bamboo что это за программа. Смотреть картинку bamboo что это за программа. Картинка про bamboo что это за программа. Фото bamboo что это за программа

Bamboo или Jenkins

Посетите эту страницу, чтобы узнать подробнее о причинах, по которым стоит перейти на Bamboo

Bamboo, Bitbucket и Jira Software полностью интегрированы и позволяют нам отслеживать весь процесс, от получения запроса на функцию до ее развертывания.

— СКОТТ КАРПЕНТЕР, РУКОВОДИТЕЛЬ РАБОЧЕЙ ПРОГРАММЫ

bamboo что это за программа. Смотреть фото bamboo что это за программа. Смотреть картинку bamboo что это за программа. Картинка про bamboo что это за программа. Фото bamboo что это за программа

Вооружаем команды по выпуску продуктов компаний любых размеров по всему миру

Ускорьте свой конвейер релизов

Уровни цен на Bamboo рассчитываются по количеству удаленных агентов, а не рабочих мест лицензии. Чем больше агентов, тем больше процессов могут работать одновременно (это могут быть как разные этапы одной сборки, так и разные сборки).

Небольшие команды

Растущие команды

Хотите запускать сборки в облаке? Зарегистрируйтесь для работы с Bitbucket Pipelines

Создавайте качественные продукты! Делайте это быстро!

bamboo что это за программа. Смотреть фото bamboo что это за программа. Смотреть картинку bamboo что это за программа. Картинка про bamboo что это за программа. Фото bamboo что это за программа

Улучшенные процессы непрерывной интеграции/CD

Команды по выпуску ПО различных направлений обновляют свои конвейеры непрерывной интеграции и поставки ПО, используя Bamboo. За счет легкого импорта сборок из популярных решений с открытым исходным кодом и встроенной поддержки Git, Hg и SVN вы станете чемпионами по части сборок и развертываний.

bamboo что это за программа. Смотреть фото bamboo что это за программа. Смотреть картинку bamboo что это за программа. Картинка про bamboo что это за программа. Фото bamboo что это за программа

Dev + Ops

Мы знакомы с принципом DevOps и обо всём позаботились! Настройте сборки непрерывной интеграции как обычно и отправляйте артефакты в проекты разработки. Комбинируйте скрипты собственной разработки, smoke-тесты и технологии сторонних разработчиков, чтобы определить последовательность развертывания для каждой среды. Bamboo поддерживает вас на протяжении всего пути, от непрерывной интеграции к развертыванию и поставке.

bamboo что это за программа. Смотреть фото bamboo что это за программа. Смотреть картинку bamboo что это за программа. Картинка про bamboo что это за программа. Фото bamboo что это за программа

Инструмент для импорта Jenkins

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

Сравнение возможностей Jenkins и Bamboo см. по ссылке.

bamboo что это за программа. Смотреть фото bamboo что это за программа. Смотреть картинку bamboo что это за программа. Картинка про bamboo что это за программа. Фото bamboo что это за программа

Непрерывное обучение

Разнообразные учебные материалы, рекомендации и ресурсы поддержки — это помощь, которая всегда под рукой. Ищите информацию в руководстве по быстрому старту, блоге Atlassian, справочной документации и ответах Atlassian. К тому же лицензия Bamboo включает доступ к нашей легендарной команде поддержки. Отправьте заявку, и помощь не заставит себя долго ждать!

bamboo что это за программа. Смотреть фото bamboo что это за программа. Смотреть картинку bamboo что это за программа. Картинка про bamboo что это за программа. Фото bamboo что это за программа

Полная поддержка SCM

Помимо Git, Bamboo интегрируется с SVN, Mercurial, Perforce, CVS, а также с репозиториями в Bitbucket и Fisheye. Решение связывает сборки с изменениями кода в репозиториях. Сообщения о коммитах, их авторы, ссылки и даты отображаются в результатах каждой сборки, позволяя одним щелчком мыши перейти к просмотру репозитория с последними изменениями, их историей и всем кодом.

bamboo что это за программа. Смотреть фото bamboo что это за программа. Смотреть картинку bamboo что это за программа. Картинка про bamboo что это за программа. Фото bamboo что это за программа

Bamboo устраняет проблемы, которые возникают при попытке объединить непрерывную интеграцию (CI) и распределенные системы управления версиями, такие как Git и Mercurial. Новые ветки автоматически приводятся к той же схеме CI, что и главная ветка, и можно настроить автоматическое слияние любых двух веток в репозиторий перед выполнением каждого теста. См. наши подробные руководства по работе с Git.

Источник

Bamboo: установка и настройка на CentOS + MySQL/MariaDB

Bamboo – билд-сервер и Сontinuous Integration tool, аналогичен TeamCity, но так как разработчик – Atlassian – то в нём реализована тесная интеграция с Jira и другими продуктами Atlassian.

Именно поэтому на новом проекте решили попробовать мигрировать на Bamboo вместо TeamCity.

Домашняя страница проекта – тут>>>. Установка выполняется на CentOS 6.6 + 10.0.17-MariaDB.

Переключаемся на него:

Создаём директорию для установки:

Создаём директорию для Java:

С сайта http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html качаем подходящую сборку JDK. Так как там необходимо принять условия лицензии – качаем с другой машины браузером, а потом – загружаем на сервер.

Устанавливаем MariaDB – подробно описано тут>>>.

Приступаем к установке Bamboo.

Создаём директорию для данных Bamboo:

Редактируем файл настроек Bamboo:

И устанавливаем строку:

Переходим на страницу http://dev.mysql.com/downloads/connector/j/, логинимся (Oracle, надеюсь – тебе икнулось), загружаем нужный драйвер на локальную машину, распаковываем, и копируем mysql-connector-java-5.1.34-bin.jar на Bamboo сервер в каталог

Запускаем Bamboo:

По умолчанию Bamboo запускает Tomcat на порту 8085 :

Открываем порт на фаерволе:

Заходим на http://bamboo.domain.local:8085

bamboo что это за программа. Смотреть фото bamboo что это за программа. Смотреть картинку bamboo что это за программа. Картинка про bamboo что это за программа. Фото bamboo что это за программа

Регистрируемся, и переходим в New Evaluation License:

bamboo что это за программа. Смотреть фото bamboo что это за программа. Смотреть картинку bamboo что это за программа. Картинка про bamboo что это за программа. Фото bamboo что это за программа

В списке выбираем Bamboo (server):

bamboo что это за программа. Смотреть фото bamboo что это за программа. Смотреть картинку bamboo что это за программа. Картинка про bamboo что это за программа. Фото bamboo что это за программаСо страницы вашего Bamboo копируем Server ID:

bamboo что это за программа. Смотреть фото bamboo что это за программа. Смотреть картинку bamboo что это за программа. Картинка про bamboo что это за программа. Фото bamboo что это за программа

При желании – заполняем простую форму:

bamboo что это за программа. Смотреть фото bamboo что это за программа. Смотреть картинку bamboo что это за программа. Картинка про bamboo что это за программа. Фото bamboo что это за программа

Копируем лицензионный ключ:

bamboo что это за программа. Смотреть фото bamboo что это за программа. Смотреть картинку bamboo что это за программа. Картинка про bamboo что это за программа. Фото bamboo что это за программа

И добавляем лицензию в вашу установку Bamboo:

bamboo что это за программа. Смотреть фото bamboo что это за программа. Смотреть картинку bamboo что это за программа. Картинка про bamboo что это за программа. Фото bamboo что это за программа

Если нажать Express Installation то, по аналогии с TeamCity, предполагаю что будет использоваться какая-то локальная база типа SQLite или HSQLDB.Так как мы используем MariaDB – то выбираем Custom.

В первом окне можно ничего не менять:

bamboo что это за программа. Смотреть фото bamboo что это за программа. Смотреть картинку bamboo что это за программа. Картинка про bamboo что это за программа. Фото bamboo что это за программа

В следующем окне выбираем MySQL (MariaDB):

bamboo что это за программа. Смотреть фото bamboo что это за программа. Смотреть картинку bamboo что это за программа. Картинка про bamboo что это за программа. Фото bamboo что это за программа

bamboo что это за программа. Смотреть фото bamboo что это за программа. Смотреть картинку bamboo что это за программа. Картинка про bamboo что это за программа. Фото bamboo что это за программа bamboo что это за программа. Смотреть фото bamboo что это за программа. Смотреть картинку bamboo что это за программа. Картинка про bamboo что это за программа. Фото bamboo что это за программа

Ждём, пока будут созданы все таблицы:

bamboo что это за программа. Смотреть фото bamboo что это за программа. Смотреть картинку bamboo что это за программа. Картинка про bamboo что это за программа. Фото bamboo что это за программа

Оставляем без изменений:

bamboo что это за программа. Смотреть фото bamboo что это за программа. Смотреть картинку bamboo что это за программа. Картинка про bamboo что это за программа. Фото bamboo что это за программа

bamboo что это за программа. Смотреть фото bamboo что это за программа. Смотреть картинку bamboo что это за программа. Картинка про bamboo что это за программа. Фото bamboo что это за программа

bamboo что это за программа. Смотреть фото bamboo что это за программа. Смотреть картинку bamboo что это за программа. Картинка про bamboo что это за программа. Фото bamboo что это за программа

Источник

CI/CD с помощью AWS и Bamboo

Наша команда состоит из одного разработчика и одного DevOps инженера. Я отвечаю за разворачивание приложения в кластере Amazon ECS. В качестве CI/CD сервера я использую Bamboo. В этой статье я подробно расскажу, как я осуществляю разворачивание приложения в dev-среде.

bamboo что это за программа. Смотреть фото bamboo что это за программа. Смотреть картинку bamboo что это за программа. Картинка про bamboo что это за программа. Фото bamboo что это за программа

bamboo что это за программа. Смотреть фото bamboo что это за программа. Смотреть картинку bamboo что это за программа. Картинка про bamboo что это за программа. Фото bamboo что это за программа

Сборка Docker образа

Здесь я выполняю следующие шаги:

Шаг 1: Установка и настройка Docker

Сначала я обновляю сервер, на котором установлен Bamboo, устанавливаю необходимые пакеты и настраиваю репозиторий Docker. Здесь надо отметить, что Bamboo я установил на операционной системе CentOS 7. Информацию по установке docker на других операционных системах можно найти на сайте www.docker.com.

Затем я устанавливаю приложение Docker и запускаю сервис:

Потом добавляю пользователя bamboo в группу Docker:

Если после запуска этих команд docker отвечает сообщением «Hello from Docker!», то это означает, что моя установка работает правильно.

Шаг 2. Настройка артефактов в Bamboo

Разработка приложения ведется на Grails. При компиляции приложения создается файл с расширением war. Данный файл, в терминологии Bamboo, является артефактом. Настроим Bamboo для использования данного файла в последующих задачах. Для этого я перехожу во вкладку Tasks:

bamboo что это за программа. Смотреть фото bamboo что это за программа. Смотреть картинку bamboo что это за программа. Картинка про bamboo что это за программа. Фото bamboo что это за программа

И настраиваю задачу Grails, как показано ниже:

bamboo что это за программа. Смотреть фото bamboo что это за программа. Смотреть картинку bamboo что это за программа. Картинка про bamboo что это за программа. Фото bamboo что это за программа

Мы видим, что Grails сначала очищает папку сборки, затем запускает тесты и, наконец, создает war-файл для dev среды.

После этого я нажимаю вкладку Artifacts и кнопку Create artifact:

bamboo что это за программа. Смотреть фото bamboo что это за программа. Смотреть картинку bamboo что это за программа. Картинка про bamboo что это за программа. Фото bamboo что это за программа

Я задаю артефакт, как показано ниже:

bamboo что это за программа. Смотреть фото bamboo что это за программа. Смотреть картинку bamboo что это за программа. Картинка про bamboo что это за программа. Фото bamboo что это за программа

Grails помещает war-файл в каталог build/libs. Поставлю галочку для параметра Shared, так как этот артефакт мне понадобится позже.

Теперь я создаю проект развертывания (deployment project) и указываю артефакт для использования в своем плане сборки:

bamboo что это за программа. Смотреть фото bamboo что это за программа. Смотреть картинку bamboo что это за программа. Картинка про bamboo что это за программа. Фото bamboo что это за программа

bamboo что это за программа. Смотреть фото bamboo что это за программа. Смотреть картинку bamboo что это за программа. Картинка про bamboo что это за программа. Фото bamboo что это за программа

Ещё я настраиваю задачу Artifact download в проекте развертывания:

bamboo что это за программа. Смотреть фото bamboo что это за программа. Смотреть картинку bamboo что это за программа. Картинка про bamboo что это за программа. Фото bamboo что это за программа

Таким образом, Bamboo теперь настроен на использование war-файла.

Шаг 3. Настройка репозитария Amazon ECR

Amazon ECR – это сервис хранения Docker образов, а также управления ими. Для настройки необходимо открыть консоль AWS и выбрать ECR:

bamboo что это за программа. Смотреть фото bamboo что это за программа. Смотреть картинку bamboo что это за программа. Картинка про bamboo что это за программа. Фото bamboo что это за программа

Создав репозитарий, я получаю такой адрес:

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

Шаг 4: Сборка Docker образа в Bamboo

Теперь мне необходимо настроить тригер для запуска сборки Docker образа. Для этого я перехожу во вкладку Triggers и нажимаю на кнопку Add trigger:

bamboo что это за программа. Смотреть фото bamboo что это за программа. Смотреть картинку bamboo что это за программа. Картинка про bamboo что это за программа. Фото bamboo что это за программа

Здесь я выбираю опцию Build after successfully building the plan для того, чтобы Docker образ собирался после компиляции проекта.

Теперь надо добавить задание сборки Docker образа. Для этого переходим во вкладку Tasks, нажинаем Add task, выбираем тип Docker. Вводим описание и выбираем Build a Docker image из списка раскрывающегося меню. В поле Repository вводим

Что же касается Dockerfile, то он может быть таким, как показано ниже:

При запуске приложения необходимо указать базу данных. Переменные среды DATASOURCE_URL, DATASOURCE_USERNAME, DATASOURCE_PASSWORD служат для передачи этой информации приложению, но их значения задаются во время запуска контейнера.

На этом настройка процесса сборки Docker образа с приложением завершена. Следующим шагом является настройки загрузки этого образа на репозитарий Amazon ECR.

bamboo что это за программа. Смотреть фото bamboo что это за программа. Смотреть картинку bamboo что это за программа. Картинка про bamboo что это за программа. Фото bamboo что это за программа

Загрузка образа в Elastic Container Registry

Для хранения образов, собранных с помощью Bamboo, можно использовать Elastic Container Registry. Для достижения этой цели я выполняю следующие шаги:

Шаг 1. Установка Amazon ECR Docker Credential Helper

Для загрузки Docker образов на Amazon ECR нужно иметь учетные данные. Такие учетные данные можно получить, выполнив команду

Однако эти учетные данные действительны только в течение 12 часов. Поэтому можно либо каждый раз перед загрузкой образа на ECR выполнять вышеуказанную команду, либо установить ECR Docker Credential Helper, который держит в актуальном состоянии временные учетные данные и логинится на ECR. Для установки ECR Docker Credential Helper необходимо выполнить следующие шаги.

Для начала надо установить git, а затем склонировать github репозитарий:

Потом надо поместить следующие строки в файл /home/bamboo/.docker/config.json:

И скопировать собранное приложение в каталог /usr/bin:

Шаг 2. Подключение IAM роли к серверу Bamboo

Для того, чтобы сервер Bamboo смог использовать ECR, надо создать роль, добавить к этой роли политику AmazonEC2ContainerRegistryPowerUser, а затем прикрепить эту роль к EC2 инстансу Bamboo. Открываем консоль AWS и выбираем IAM. Далее нажимаем кнопку Create role, выбираем AWS service и EC2, как показано ниже:

bamboo что это за программа. Смотреть фото bamboo что это за программа. Смотреть картинку bamboo что это за программа. Картинка про bamboo что это за программа. Фото bamboo что это за программа

Затем нажимаем кнопку Next: Permissions и на следующем экране находим и выбираем политику AmazonEC2ContainerRegistryPowerUser. После этого заканчиваем создание роли и присоединяем ее к своему серверу Bamboo.

Шаг 3: Настройка задания загрузки Docker образа

Приложение мы собрали и собрали Docker образ с war-файлом. Теперь надо этот образ загрузить в репозитарий. Для этого добавляю еще одно задание Docker, в этот раз для загрузки образа в ECR репозитарий. Перехожу во вкладку Tasks, нажимаю Add task, выбираю тип Docker. Ввожу описание и выбираю Push a Docker image to a Docker registry из списка раскрывающегося меню. Выбираю Custom registry и вписываю адрес репозитория в поле Repository. В качестве типа аутентификации (Authentication type) я выбираю Use the agent’s native credentials.

На этом настройка процесса загрузки Docker образа на репозитарий Amazon ECR завершена. В следующих шагах описывается процесс настройки кластера и сервиса для запуска контейнерного приложения. Но перед этим надо настроить параметры запуска контейнера. Этим мы сейчас и займемся.

bamboo что это за программа. Смотреть фото bamboo что это за программа. Смотреть картинку bamboo что это за программа. Картинка про bamboo что это за программа. Фото bamboo что это за программа

Создание Amazon ECS Task Definition

Task Definition – здесь записываются параметры исполнения контейнеров. Наше приложение использует базу данных, параметры которого указываются при запуске контейнера, поэтому в этом разделе мы еще создадим базу данных. В качестве базы данных я использую Amazon RDS, а пароль для доступа к базе в зашифрованном виде я храню в AWS Systems Manager Parameter Store. Следующие шаги я выполняю для того, чтобы создать Task Definition:

Шаг 1. Создание базы данных на инстансе Amazon RDS

Наше приложение использует базу данных PostgreSQL. Для создания базы данных открываю консоль AWS, выбираю сервис Amazon RDS, нажимаю кнопку Create database, затем в качестве движка базы данных выбираю PostgreSQL. На следующей странице я выбираю Dev/Test в качестве рабочей среды и нажимаю кнопку Next. Затем обозначаю DB instance identifier как onboard-dev-db, и master username как devdbadmin. Потом я перехожу на следующую страницу, чтобы настроить VPC, группу подсетей (subnet group) и группу безопасности (security group). Эта база данных будет использоваться в частной сети, поэтому для параметра Public accessibility выбираю No. В поле Database name ввожу devdb и нажимаю кнопку Create database.

Шаг 2. Настройка AWS Systems Manager Parameter Store

Пароль базы данных я храню в зашифрованном виде. Для этого открываю AWS консоль и перехожу в AWS Systems Manager → Shared Resources → Parameter Store → Create Parameter. В качестве имени параметра ввожу devdbpassword и выбираю SecureString для типа параметра, затем ввожу пароль базы данных в поле Value.

Шаг 3. Создание Task Definition

Amazon ECS – это кластер, в котором запускаются контейнерные приложения. Он использует Task Definition для указания параметров выполнения контейнерного приложения. Для задания таких параметров нажимаю кнопку Create new Task Definition. Затем выбираю в качестве типа запуска Fargate и перехожу к следующему шагу. Здесь я задаю имя как onboard-dev-taskdef. Для параметра Task execution IAM role field выбираю Create new role. Что же касается выделенных для данного приложения ресурсов, я обозначаю 2 ГБ памяти и 1 vCPU. Теперь необходимо добавить параметры запуска контейнера. Контейнер я назову onboard-dev-container. Имя образа обозначу так:

aws_account_id.dkr.ecr.us-east-2.amazonaws.com/onboard:latest. Приложение Amazon ECR Docker Credential Helper будет заботиться об аутентификации на ECR, поэтому опцию Private repository authentication оставляю неотмеченным. В dev-среде приложение доступно по порту 8080, поэтому для параметра port mappings записываю 8080 и выбираю протокол tcp. Параметры URL базы данных, имя пользователя и пароль передаются в контейнер с помощью переменных среды. Эти параметры я задаю в разделе Environment variables. Для того, чтобы получить значение параметра devdbpassword из Parameter Store указываю тип ValueFrom. Последнее, что я настраиваю – это Log configuration, здесь выбираю Auto-configure CloudWatch Logs. Теперь создание Task Definition завершено.

Однако, для роли ecsTaskExecutionRole нужна политика для получения devdbpassword из Parameter Store. Для этого перехожу в IAM Roles и выбираю ecsTaskExecutionRole, нажимаю Add inline policy. В данном случае я добавляю с помощью визуального редактора. Поэтому в поле Service ввожу Systems Manager, в поле Actions — GetParameters. Затем нажимаю Add ARN для поля Resources и заполняю свои значения:

bamboo что это за программа. Смотреть фото bamboo что это за программа. Смотреть картинку bamboo что это за программа. Картинка про bamboo что это за программа. Фото bamboo что это за программа

В конце просматриваю значения задаваемых параметров, нажав Review policy, даю ему имя и завершаю работу с конфигурацией ecsTaskExecutionRole.

На этом настройка параметров запуска контейнерного приложения завершена. Теперь надо создать кластер ECS и сервис.

bamboo что это за программа. Смотреть фото bamboo что это за программа. Смотреть картинку bamboo что это за программа. Картинка про bamboo что это за программа. Фото bamboo что это за программа

Создание сервиса Amazon ECS

Наше контейнерное приложение запускается в виде сервиса в кластере ECS. Для настройки необходимо выполнить следующие шаги:

Шаг 1. Создание кластера Amazon ECS

Для создания кластера ECS надо перейти в консоль AWS и выбрать сервис ECS. Затем нажать Create Cluster и выбрать кластерный шаблон Networking only. На следующей странице я называю кластер как onboard-dev-cluster и завершаю создание кластера. Теперь у меня есть кластер ECS основанный на Fargate.

Шаг 2: Создание сервиса

Чтобы создать сервис, я нажимаю на ссылку onboard-dev-cluster, затем перехожу во вкладку Services и нажимаю кнопку Create. Для параметра launch type выбираю Fargate, для Task Definition выбираю onboard-dev-taskdef. Кроме того, я выбираю onboard-dev-cluster в поле Cluster. В поле Service name я прописываю onboard-dev. Устанавливаю параметр Number of tasks на ноль, так как я не хочу запускать приложение прямо сейчас. Я оставляю значения параметров Minimum healthy percent равным 100, а Maximum percent – 200. Для параметра Deployment type выбираю Rolling update и перехожу к следующему шагу.

На странице Configure Network для параметра Cluster VPC я выбираю ранее созданный VPC, который называется Development VPC. Приложение в стадии разработки доступно только в частной сети, поэтому я выбираю две частные подсети. Для настройки групп безопасности я нажимаю кнопку Edit, затем выбираю Select existing security group, затем группу безопасности default и нажимаю кнопку Save. Для параметра Auto-assign public IP я выбираю Disabled. Далее, для параметра Load balancer type я выбираю None и оставляю невыбранным опцию Enable service discovery integration. Затем я нажимаю Next, Next и Create service.

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

bamboo что это за программа. Смотреть фото bamboo что это за программа. Смотреть картинку bamboo что это за программа. Картинка про bamboo что это за программа. Фото bamboo что это за программа

Обновление сервиса

Как только разработчик обновляет код приложения, наше развертывание проходит через создание Docker-образа, его загрузка в Elastic Container Registry и, наконец, запуск контейнерного приложения в виде сервиса в кластере ECS Fargate. На данный момент количество заданий, запущенных в кластере равно нулю. Чтобы приложение запустилось нужно обновить сервис, указав количество равным одному. Я выполняю следующие шаги для достижения этой цели:

Шаг 1. Установка плагина Tasks for AWS Bamboo

Tasks for AWS Bamboo – это плагин, который упрощает подготовку и эксплуатацию ресурсов AWS из проектов сборки и развертывания Bamboo. Для установки этого плагина перехожу в проект развертывания, нажимаю Add task, захожу на Atlassian Marketplace и устанавливаю Tasks for AWS (Bamboo).

Шаг 2. Обновление сервиса ECS

Теперь в проекте развертывания я добавляю задание Amazon ECS Service. Затем записываю в поле описания задания Update Service for onBoard-dev. В поле Action выбираю Update Service и Force new deployment. Потом в качестве региона запуска приложения выбираю US East (Ohio). Затем записываю в соответствующих полях ARN (Amazon Resource Name) для Task Definiton, кластера и сервиса. В этом задании я обновляю желаемое количество запущенных заданий до одного. Далее я заполняю текстовое поле конфигурации развертывания следующими значениями:

Я настраиваю сеть без публичного IP следующим образом:

В разделе Source для параметра AWS Security Credentials я выбираю IAM Role for EC2.

Мне нужно иметь возможность обновлять службу ECS, поэтому я присоединяю политику AmazonECS_FullAccess к своему экземпляру Bamboo EC2. Для этого открываю консоль AWS, выбираю IAM. Затем я выбираю роль, которую использую для своего сервера Bamboo. Нажимаю кнопку Attach policies, нахожу политику AmazonECS_FullAccess, устанавливаю флажок слева и заканчиваю прикреплять политику.

На этом заканчивается настройка CI/CD с использованием AWS и Bamboo. Таким образом, при обновлении кода приложения разработчиком, загрузки этого кода в репозитарий, запускается тестирование, сборка приложения. Затем выполняется сборка Docker образа с war-файлом приложения, и этот образ копируется на репозитарий Amazon ECR. Далее в кластере Amazon ECS запускается в виде сервиса контейнерное приложение, которое обновляет текущее приложение, если оно не было остановлено. Если же приложение было остановлено для экономии ресурсов, то приложение просто запускается. После завершения проверки приложения в dev-среде можно приложение остановить, указав количество заданий, запущенных в кластере равным нулю.

Если вам понравилась статья и есть идеи для улучшения, напишите в комментариях.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *