Bamboo Server разработан компанией Atlassian. Используется для непрерывной интеграции, развертывания, тестирования и поставки ПО. С Bamboo вы можете разрабатывать продукты на Java, .Net, PHP, Ruby, Node.js и не только. Сильными сторонами продукта является плотная интеграция с другими продуктами компании Atlassian, а также с прочими системами для эффективного CI и CD .
Если Вы – разработчик ПО, Bamboo даст Вам:
- Автоматический, и поэтому надежный процесс сборки и тестирования, позволяя Вам больше внимания уделять именно разработке.
- Способ управления билдами, которые имеют различные требования или цели.
- Автоматическая публикация на сервер, в том числе AppStore и GooglePlay
Если Вы работаете в команде, дополнительными преимуществами использования Bamboo будет то:
- Что процесс сборки и тестирования не зависит от специфического локального окружения
- Сборки и тестирования запускаются автоматически, как только разработчик закоммитит код.
Если Вы работаете над большим и сложным приложением, вдобавок ко всему вышесказанному Bamboo поможет Вам:
Бамбук /Bamboo | Интересные факты
- Оптимизировать производительность сборки, используя распараллеливание.
- Гибко использовать ресурсы.
- Внедрить управление релизами
Для внедрения и использования Bamboo Вас уже должны быть: репозитарий, в котором хранятся все исходные коды проекта, скрипты для сборки и утилиты для тестирования вашего проекта.
Продукт разработан для решения задач DevOps, поэтому на главной странице размещен список планов сборки продукта. Планы могут запускаться вручную, в автоматическом режиме или с использованием механизма хуков. Каждый план можно просмотреть на отдельной странице, получив информацию о предыдущих запусках плана (builds), а также графические данные полученных результатах. Отсюда же можно посмотреть тикеты JIRA, описывающие изменения, тестируемые в этом плане, коммиты Bitbucket, и сами тесты. Конечно же, по нажатию на ссылку тикета, вы попадете в Jira, а переход по ссылке коммита откроет его страницу в Bitbucket.
Также можно посмотреть на планы в разрезе текущей активности и в разрезе текущего пользователя. В последнем случае там же может отображаться и список требуемых изменений в виде тикетов Jira и список планов, в которых есть эти изменения. В настройках плана можно указать репозитарии исходного кода и удобно работать с ветками разрабатываемого ПО:
- Помимо сборки основной ветки репозитария имеется возможность собирать другие ветки, именование которых соответствует определенному шаблону.
- Имеется возможность автоматической синхронизации между ветками по одному из 2х доступных принципов: Gatekeeper (master -> feature) или Brunch Updater (feature -> master)
План Bamboo делится на несколько стадий. Каждая стадия состоит из одной или нескольких работ. В свою очередь работа представляет собой набор заданий. Такое разделение сделано для удобства работы с планом и повышения эффективности его выполнения.
В случае, если одна или несколько работ завершается неуспешно, то можно перезапустить не весь план, а только проблемную его часть. Также стадии предполагают последовательное выполнение, в то время как в рамках одной стадии работы могут выполняться параллельно. Например, можно создать три стадии — сборка (build), тестирование (testing) и развертывание (deployment), и работать в каждой из них с несколькими различными деревьями кода на различных серверах.
Bamboo может использовать API Amazon Web Services для развертывания тестовой среды под тестирования, предусмотренные планом. В настройках можно указать количество и типы требуемых инстансов, требуемые образы виртуальных серверов. Запуская план, Bamboo автоматически проверит наличие инстанса и при его отсутствии создаст его, а после выполнения (при отсутствии других работ с инстансом) также автоматически его выключит. Подход, реализованный в Bamboo, позволяет грамотно распоряжаться имеющимися ресурсами.
Интеграция Bamboo с Confluence дает возможность организовать вам единое представление вашего проекта разработки программного обеспечения. Когда Bamboo интегрирован с Confluence, вы можете добавить на странице Confluence такие макросы Bamboo как: Диаграммы, Bamboo Plan Summary Диаграммы, Bamboo Plan Статусы.
Bamboo является платным решением. Пробная версия бесплатна на 30 дней. Лицензия для небольших команд (до 10 работ (jobs), неограниченное количество локальных агентов, без удаленных агентов) стоит 10$, включая 1 год поддержки. Удаленные агенты лицензируются дополнительно. Таким образом, неограниченное количество работ и 1 удаленный агент стоят 800$, 5 агентов – 2200$ и т.д.
Выводы. Bamboo Server от Atlassian имеет достаточный функционал и интеграцию с продуктами управления процессами разработки, контроля версий и систем баз знаний, для того, чтобы быть удобным и полезным помощником для успешной команды разработчиков. Максимально удобен при использовании других продуктов компании Atlassian. Распространяется на платной основе.
Предоставляем услуги по внедрению и поддержке инструментов devops, [email protected]
Источник: system-admins.ru
Bamboo
Любой сервер сборки может бессмысленно запускать сборки снова и снова. Делайте больше с автоматизированной сборкой, тестированием, развертыванием и выпуском Вашего ПО.
Работайте с автоматически управляемыми агентами, которые работают на месте или в облаке с использованием Amazon EC2. Интегрируйте Bamboo с JIRA, чтобы создать полный рабочий релиз или работайте с Bamboo непосредственно из IDE.
Кто использует Bamboo?
Bamboo используется для непрерывной интеграции более чем 1200 организациями в 53 странах по всему миру — Fortune 1000, государственных предприятия, научная и технологическая сферы.
За пределами автоматизации сборки
Запускайте и работайте с Вашими сборками в предпочтительной среде разработки.
Сохраняйте сборку свежей
Наблюдайте за состоянием Вашего кода и быстро реагируйте любые события.
Интеграция с JIRA
Просматривайте сборки, связанные с запросом, связывайте сборки с запросами JIRA , и помещайте метрику сборки на Вашу информационную панель (information radiator) на рабочем столе.
Получите быстрый отклик и протестируйте больше конфигураций путем создания удаленных агентов за пределами брандмауэра или в облаке Amazon EC2.
Держите сборку стабильной, быстро реагируйте на неудачные сборки и непрерывное развертывание.
Автоматизируйте бизнес-процесс выпуска релизов с JIRA и Bamboo.
Плагины и расширения
Настройка и расширение Bamboo для Ваших потребностей. Выберите из списка плагины и расширения, или создайте свои собственные.
Если вам нужна помощь, консультация по покупке или внедрению системы — обращайтесь к нам!
Перед внедрением системы мы рекомендуем посетить наши тренинги и вебинары по установке, настройке и администрированию приложения.
Подробнее о тренингах.
Сервер непрерывной интеграции
Bamboo сопровождает исходный код от фиксации локальных изменений в хранилище (check-in) до развертывания Экономьте время, оптимизируйте сборки и развертывайте.
Сохраняйте сборку свежей
Когда сборка неправильная, Bamboo дает инструменты и информацию, с помощью которых команда должна быстро исправить сборку.
Запросы JIRA и сборки Bamboo
Больше, чем просто сервер непрерывной интеграции, Bamboo интегрируется в среду разработки, чтобы организовать связь между результатами сборки, исходным кодом, и запросами.
Объедините возможности Вашего трекера и сервера непрерывной интеграции, чтобы иметь единое представление о проекте разработки ПО. Используйте JIRA и Bamboo , чтобы видеть, какие запросы в настоящее время активны, какие сборки находятся в запросах и найти сборку, которая вызвала тот или иной запрос.
Распределенные сборки и расширение Bamboo
В процессе работы Вашей команды над непрерывной интеграцией растет сложность и количество сборок. Добавьте больше вычислительной мощности, чтобы поддерживать быструю обратную связь в сборке и результаты тестирования.
Делайте Вашу команду гибкой за счет автоматизации всей сборки и процесса развертывания с Bamboo.
Управление релизами Bamboo плагин позволяет объединять мощность бамбука и JIRA для поддержания контроля над процессом выпуска. Создание, тестирование, выпуск, очистка, повторение!
Плагины и расширения
Система плагинов Bamboo позволяет легко настраивать и расширять Bamboo, чтобы встроиться в процесс разработки. Atlassian Plugin Exchange представляет собой экосистему плагинов, которая позволит Вам изучить пути расширения Bamboo в соответствии с Вашими запросами. Интегрируйте плагины с существующими инструментами, установите плагин или создайте собственный.
Пользователей | Ваш сервер (1-й год) | Наш хостинг (на год) |
Starter (No Remote Agents, 10 Jobs) | $ 50 | $ 130 |
1 Remote Agent (Unlimited Jobs) | $ 800 | $ 1050 |
5 Remote Agents (Unlimited Jobs) | $ 2,200 | $ 2,850 |
10 Remote Agents (Unlimited Jobs) | $ 4,000 | $ 5,100 |
25 Remote Agents (Unlimited Jobs) | $ 8,000 | $ 10,100 |
100 Remote Agents (Unlimited Jobs) | $ 16,000 | $ 20,150 |
Пользователей | Обновление (1 год) |
Starter | $ 10 |
1 Remote Agent | $ 440 |
5 Remote Agents | $ 1,210 |
10 Remote Agents | $ 2,200 |
25 Remote Agents | $ 4,400 |
100 Remote Agents | $ 8,800 |
на 5 Remote Agents | на 10 Remote Agents | на 25 Remote Agents | на 100 Remote Agents | |
со Starter | ||||
с 1 Remote Agent | $ 1,800 | $ 3,600 | $ 7,600 | $ 15,600 |
с 5 Remote Agents | $ 2,900 | $ 6,900 | $ 14,900 | |
с 10 Remote Agents | $ 6,000 | $ 14,000 | ||
с 25 Remote Agents | $ 12,000 |
- указана стоимость за 1-й год использования продукта, без косвенных налогов
- в стоимость всех лицензий входит плагин локализации на русский язык.
- оплата лицензий осуществляется в рублях, по курсу «ЦБ РФ+1,5%» на день оплаты счёта
Источник: www.teamlead.ru
Atlassian Bamboo в картинках
В этой статье я хотел бы поделиться своими впечатлениями от использования Atlassian Bamboo — системы непрерывной интеграции от компании Atlassian. В Java-проекте, над которым мы работаем, изначально в качестве системы управления использовалась JIRA On Demand, т.е. облачная версия JIRA, установленная на серверах компании Atlassian.
В определенный момент появилась необходимость внедрения системы непрерывной интеграции. Важным требованием при выборе такой системы была поддержка из коробки системы автоматической сборки Gradle. Подобному требованию удовлетворяло лишь несколько систем непрерывной интеграции: всем известный Jenkins, Jetbrains TeamCity и Atlassian Bamboo. Под катом изложено как это работает и почему же мы выбрали Atlassian Bamboo. Осторожно — много картинок!
Главная страница
Так выглядит главная страница Bamboo, отображающая список т.н. планов сборки (build plan), т.е. независимых наборов заданий, которые нужно выполнять с некоторой периодичностью или при выполнении определенных условий или при запуске вручную.
Каждый план может использовать один и тот же исходный код, но выполняться с различной периодичностью или разворачивать приложение на разные сервера. Например, в нашем случае требовалось ежедневно развертывать приложение на тестовый сервер в автоматическом режиме и собирать исходный код, предназначенный для выкладывания на production, но не выкладывать его. На главной странице отображается список планов, их статус и последние изменения в коде. Также можно запустить план вручную или перейти на страницу настройки.
На странице «Текущая активность» можно увидеть список планов, выполняемых в данный момент и список ранее запущенных планов.
На странице «My Bamboo» приведен список планов, в которых присутствуют изменения, внесенные текущим аккаунтом. Поскольку в Bamboo On Demand используются та же учетная запись, что и для JIRA, выводится список JIRA-тикетов, присвоенных текущему пользователю и список планов, в которых присутствуют изменения, касающиеся этих тикетов. Также имеется список избранных планов.
Страница плана
Каждый план имеет собственную страницу, где приведена сводная таблица предыдущих запусков плана (билдов), а также графические данные о соотношении успешных и неудачных билдов.
Страница билда содержит информацию о длительности и успешности билда и позволяет добавить комментарии.
Кроме того имеется список JIRA-тикетов и коммитов, включенных в билд. Нажатие на тикет — открывает соответствующую страницу JIRA, а на коммит — страницу коммита в Bitbucket (как выясняется, принадлежащий Atlassian и хорошо интегрированный с остальными онлайн-сервисами). В нашем случае речь идет о Git-коммитах, но также поддерживаются другие популярные системы контроля версий (Subversion, Mercurial). С этой же страницы можно скачать полный лог-файл, относящийся к билду, или посмотреть статистику по пройденным автоматическим тестам. Если билд выполняется в текущий момент, то зеленая панель представляет собой шкалу, отображающую текущий прогресс сборки, а лог-файл обновляется в реальном времени и отображается внизу страницы.
На отдельной странице доступны для ручного скачивания файлы, сгенерированные в ходы выполнения плана (т.н. артефакты). В версии JIRA On Demand на серверах Atlassian хранится до 1 Гб таких файлов.
Настройка плана
Настройка плана представляет собой серию страниц, позволяющих задать имя плана…
… список используемых репозиториев исходного кода и настройки подключения к ним…
… способ работы с ветками исходного кода (branches). Bamboo имеет несколько полезных возможностей при работе с ветками. Во-первых, можно собирать не только основную ветку (master), но и все другие ветки репозитория, имена которых удовлетворяют заданному регулярному выражению. Например, при использовании Git Flow можно собирать все ветки, содержащие feature/.
Это позволяет быть более уверенным, что изменения вносимые в feature-ветках, не сломают билд, при вливании в основной код. Во-вторых, поддерживается автоматическая синхронизация изменений между master-веткой и feature-ветками. Здесь возможно выбрать между двумя стратегиями: вливать успешно собранные изменения из feature-ветки обратно в master-ветку (Gatekeeper) или же вливать изменения из master-ветки в feature-ветки (Branch Updater). Если имя ветки содержит название тикета из JIRA, то такая ветка будет автоматически прикреплена к этому тикету для быстрого перехода.
Страница «Triggers» позволяет настроить условия, при которых план запускается на выполнение. Например, билд может запускаться периодически в заданное время и только при условии, что в репозиторий были отправлены изменения. Можно запускать билд, по завершению коммита, используя механизм хуков (post-commit hook), или же просто раз в день, как это делают многие команды.
План в Bamboo состоит из набора стадий (stage), каждая из которых может содержать одну или несколько работ (job), которые в свою очередь состоят из заданий (task). В случае, если одна из работ завершается с ошибкой, можно перезапустить только эту работу, а не весь план. Кроме того работы в рамках одной стадии могут выполняться параллельно. Например, можно создать три стадии — сборка (build), тестирование (testing) и развертывание (deployment). В каждой из этих стадий может собираться, тестироваться и развертываться на разные сервера несколько деревьев исходного кода.
Набор встроенных заданий не очень большой, но содержит все необходимое для наших нужд. Например, поддерживается сборка проекта при помощи Ant или Maven, запуск тестов JUnit (или PHPUnit, если вы пишете на PHP), выполнение произвольных shell-сценариев, развертывание war-файла под Tomcat или Heroku, добавление тегов в систему контроля версий, копирование файлов по SSH и многое другое.
Панель администратора
Панель администратора Bamboo имеет множество опций. Я не буду описывать такие стандартные опции, как управление правами доступа пользователей или просмотр лог-файлов. Наиболее важной настройкой в Bamboo On Demand, с моей точки зрения, является настройка Amazon инстансов, используемых для выполнения планов.
Все дело в том, что Atlassian не предоставляет вычислительные мощности своего дата-центра для сборки ваших проектов. Вместо этого Bamboo использует ваш ключ от API Amazon Web Services для создания инстансов виртуальных машин и запуска планов на этих инстансах.
В панели администратора мы можете указать свои данные для работы с AWS API, тип и количество создаваемых инстансов, используемые образы виртуальных машин (AMI) и тома EBS. При запуске плана Bamboo проверяет нет ли уже запущенного инстанса, и при его отсутствии создает требуемый инстанс. По-умолчанию через 300 секунд после завершения выполнения плана и при отсутствии других заданий в очереди инстанс выключается. При задании конфигурации инстанса нужно учитывать, что в Amazon On Demand оплата производится минимум за час работы, поэтому в целях экономии имеет смысл подумать о выборе менее производительного инстанса, если для выполнения всех планов достаточно часа. Также можно использовать снимки EBS-томов, чтобы хранить относительно свежую версию исходного кода, т.к. это позволит избежать значительного расхода трафика при загрузке полного дерева исходного кода при каждом выполнении плана (в больших проектах Git репозиторий может иметь размер в сотни мегабайт и даже гигабайты).
Интеграция с JIRA
Atlassian Bamboo хорошо интегрирован с JIRA и другими сервисами Atlassian. Если вы указываете названия тикетов JIRA в описаниях коммитов, то сможете легко перемещаться между Bamboo и страницами этих тикетов. Кроме того статус выполнения каждого плана отображается в панели состояния JIRA (Activity Stream).
Заключение
Я не считаю, что Bamboo значительно выделяется по своим возможностям среди других популярных систем непрерывной интеграции. Однако, его очень удобно использовать с другими облачными сервисами Atlassian из-за хорошей интеграции и единообразного пользовательского интерфейса. Bamboo можно использовать в облаке или же скачать его и установить на один из своих серверов. С информацией о ценах можно ознакомиться тут (если коротко, то начиная от $10 в месяц или $10 за скачивание и лицензию на 10 разработчиков). Для небольших проектов цена и издержки времени на поддержку Bamboo On Demand значительно ниже, чем аналогичные затраты на развертывание системы непрерывной интеграции на собственных серверах, а хорошая интеграция с JIRA позволяет увеличить производительность труда, вот почему для себя мы выбрали Bamboo.
Примечание
Если кому-то картинки показались маловаты по размеру, полный архив можно забрать по ссылке.
- continuous integration
- системы управления версиями
- управление проектами
Источник: habr.com