Apache Continuum

Материал из Национальной библиотеки им. Н. Э. Баумана
Последнее изменение этой страницы: 20:39, 29 ноября 2016.
Apache Continuum
Разработчик {{#property:p112}}

Apache Continuum - это сервер непрерывной интеграции, направленный на внедрение в крупные организации и поддерживающий такие возможности, как автоматическая сборка проектов, управление релизами, обладающий безопасностью, основанной на ролях и обеспечивающий интеграцию с популярными средствами сборки проектов и систем контроля и управления исходным кодом. Имеется ли у вас централизованная команда по сборке проектов или вы хотите возложить контроль над релизами в руки разработчиков, то Continuum поможет вам улучшить качество сборки проектов и управления релизами.

Обзор

Apache Continuum, являющийся партнером Apache Maven[1], - это кросс-платформенный сервер непрерывной индикации и сборки, написанный на языке программирования Java. Continuum выполняет сборку по настраиваемому графику[2][3]. Также как и CruiseControl[4], Continuum посылает уведомления разработчикам об успешной или неудачной сборке, сообщая о необходимости решить возникшую проблему.

Apache Continuum разработан Apache Software Foundation[5]. Последней стабильной мажорной версией является 1.4.2, опубликованная в июне 2014 года.[6]

Непрерывная интеграция

Непрерывная интеграция (CI, англ. Continuous Integration) — это практика разработки программного обеспечения, которая заключается в выполнении частых автоматизированных сборок проекта для скорейшего выявления и решения интеграционных проблем. В обычном проекте, где над разными частями системы разработчики трудятся независимо, стадия интеграции является заключительной. Она может непредсказуемо задержать окончание работ. Переход к непрерывной интеграции позволяет снизить трудоёмкость интеграции и сделать её более предсказуемой за счет наиболее раннего обнаружения и устранения ошибок и противоречий. Термин непрерывная интеграция впервые придумал Grady Booch в 1991 году[7]

Непрерывная интеграция является одним из основных приёмов экстремального программирования.

Преимущества

  • проблемы интеграции выявляются и исправляются быстро, что оказывается дешевле;
  • немедленный прогон модульных тестов для свежих изменений;
  • постоянное наличие текущей стабильной версии вместе с продуктами сборок — для тестирования, демонстрации, и т. п.
  • немедленный эффект от неполного или неработающего кода приучает разработчиков к работе в итеративном режиме с более коротким циклом.

Недостатки

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

Особенности

Continuum предоставляет разработчикам следующие особенности и черты:

  • Простая установка: Просто загрузите последнюю стабильную версию проекта и запустите для развертывания рабочего окружения[8];
  • Простая настройка: Сборка проектов вручную через веб-интерфейс или по расписанию;
  • Поддержка популярных СУВ: CVS, Subversion, Git, Clearcase, Perforce, Starteam, Visual Source Safe, CM Synergy, Bazaar, Mercurial;
  • Поддержка установки изменений: Для каждой сборки проекта Continuum выводит все изменения для СУВ (авторы коммитов, лог коммитов, измененные файлы);
  • Уведомления: Электронная почта, Jabber и Google Talk, MSN, IRC поддерживаются в качестве средств уведомлений для разработчиков;
  • Поддержка утилит сборок: Поддерживаются Maven, Ant and shell типы сборок;
  • Внешняя интеграция: Возможность интеграции внешних средств с Continuum через XMLRPC API[9];
  • Типы сборок: Ручная, по-расписанию;
  • Шаблоны сборок: Пользователи могут определят шаблоны по умолчанию для использования в своих проектах;
  • Очередь сборок: Пользователи могут видеть все проекты в виде очереди с возможностью прервать выполнение текущей сборки;
  • Распределенные сборки: Проекты можно распределить по разным узлам и хостам сети для удаленного доступа;
  • Параллельные сборки: Проекты можно собирать параллельно, используя конкурентные очереди.

Быстрый старт

Первичная настройка Continuum очень проста. Вначале его нужно установить:

svn co http://svn.apache.org/repos/asf/continuum/all continuum-all
cd /path/to/continuum-all/parent
mvn install
cd /path/to/continuum-all/continuum
mvn install

После успешной установки вы найдете дистрибутивы Continuum в continuum-jetty/target и файл WAR в continuum-webapp/target.

После распаковки дистрибутивов, запустите следующую команду из рабочего каталога:

continuum console

Continuum будет запущен из командной строки. Для выхода нижмите Дополнительные инструкции можно найти в официальном руководстве[10].

Когда вы впервые запускаете Continuum (без существующей базы данных), необходимо создать профиль администратора и провести первичную настройку[11].

Admin-account-creation.png

После создания профиля администратора можно залогиниться под этим профилем и просмотреть возможные настройки.

Configuration.png

Использование настроек по-умолчанию достаточно для нормальной работы сервера, поэтому можно сохранить конфигурацию. В дальнейшем можно обратиться к этому окну настроек, если необходимо, например, включить распределенные сборки.

Следующие шаги

После запуска сервера может потребоваться выполнение следующих действий:

  • Создать пользователей через меню Users, поэтому необязательно постоянно использовать профиль администратора для ежедневных нужд;
  • Добавить проекты в очередь сборки[12];
  • Настроить Continuum для работы с распределенными сборками;
  • Настроить установленное ПО и переменные окружения так, как лучше использовать конкретно в вашем проекте.

Установка на Windows

Для установки для Windows вам необходимо будет скачать JDK и скачать дистрибутив Apache Continuum. В первую очередь нужно установить JDK. Подробную инструкцию можно найти здесь.

После этого необходимо в консоли указать путь на continuum.bat и запустить установку. То есть команда установки будет иметь следующий вид

 C:<местонахождение папки>\<название дистрибутива>\bin\continuum.bat console 

Например

 C:\soft\apache\apache-continuum-1.4.0\bin\continuum.bat console 

Обычно в процессе установки мы будем видеть это

wrapper  | --> Wrapper Started as Console
wrapper  | Launching a JVM...
jvm 1    | Wrapper (Version 3.2.3) http://wrapper.tanukisoftware.org
jvm 1    |   Copyright 1999-2006 Tanuki Software, Inc.  All Rights Reserved.
jvm 1    |
jvm 1    | 2011-11-29 17:09:52.010::INFO:  Logging to STDERR via org.mortbay.log.StdErrLog
jvm 1    | 2011-11-29 17:09:52.139::WARN:  Deprecated configuration used for ./apps
jvm 1    | 2011-11-29 17:09:52.182::INFO:  jetty-6.1.19
jvm 1    | 2011-11-29 17:09:52.744::INFO:  No Transaction manager found - if your webapp requires one, please configure one.
jvm 1    | 2011-11-29 17:09:53.056:/continuum:INFO:  Initializing Spring root WebApplicationContext
jvm 1    | 2011-11-29 17:10:06.112::INFO:  Opened C:\soft\apache\continuum-1.4.0\logs\2011_11_29.request.log
jvm 1    | 2011-11-29 17:10:06.149::INFO:  Started SelectChannelConnector@0.0.0.0:8090
jvm 1    | 2011-11-29 17:30:35.820::INFO:  seeing JVM BUG(s) - cancelling interestOps==0 

Обратите внимание на предпоследнюю строку, а именно на SelectChannelConnector@0.0.0.0:8090. Последние 4 цифры- порт вашего сервера.

После этого можно входить на сервер через:

https://localhost:<номер порта>

То есть в случае описанном выше выход будет производиться по следующей ссылке:

https://localhost:8090

Ссылки

  1. https://maven.apache.org Apache Maven
  2. Brett Porter, Maria Odea Ching. "Apache Continuum: Ensuring the Health of your Source Code". Packt. Retrieved 13 February 2014.
  3. Smart, John Ferguson. "Continuous Integration with Continuum". Java.net. Retrieved 13 February 2014.
  4. http://cruisecontrol.sourceforge.net CruiseControl
  5. https://www.apache.org Apache
  6. https://continuum.apache.org/docs/1.4.2/release-notes.html Release notes
  7. Booch, Grady (1991). Object Oriented Design: With Applications. Benjamin Cummings. p. 209. ISBN 9780805300918. Retrieved 2014-08-18.
  8. https://continuum.apache.org/docs/1.4.2/installation/installation.html
  9. https://continuum.apache.org/docs/1.4.2/developer_guides/xmlrpc.html
  10. https://continuum.apache.org/docs/1.4.2/installation/index.html
  11. https://continuum.apache.org/docs/1.4.2/administrator_guides/configuration.html
  12. https://continuum.apache.org/docs/1.4.2/user_guides/managing_project/addProject.html

Ссылки по теме