TL; DR: в этой статье мы увидим, что такое непрерывная интеграция, и что лучшие отраслевые разработчики систем непрерывной интеграции должны использовать в 2019 году.

Что такое непрерывная интеграция

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

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

Непрерывная интеграция обычно сочетается с непрерывной доставкой, здесь шаги по доставке исполняемого кода в производственную сборку непрерывно автоматизируются, часто обозначаемые CI / CD.

Преимущества непрерывной интеграции

Непрерывная интеграция приносит вашей компании множество преимуществ, в том числе:

  • Заблаговременное выявление проблем и их устранение перед объединением.
  • Более короткие и менее напряженные интеграции.
  • Повышение эффективности общения за счет улучшения видимости.
  • Меньше времени на поиск ошибок.
  • Вам больше не нужно ждать тестирования кода.
  • Повышает эффективность быстрой доставки программного обеспечения.
  • Обеспечение постоянной обратной связи об изменениях, которые со временем могут улучшить продукт.

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

Дженкинс

Jenkins с более чем 11000 файлов на github - это инструмент непрерывной интеграции с открытым исходным кодом, написанный на Java. Jenkins обеспечивает тестирование в реальном времени и отчеты об отдельных изменениях в более крупной базе кода. Этот инструмент в основном помогает разработчикам быстро отмечать и исправлять ошибки и ошибки в своей базе кода, а затем автоматизировать тестирование своих сборок.

Его очень легко установить и настроить благодаря интуитивно понятному пользовательскому интерфейсу, доступному во всех операционных системах Linux, Macintosh и Windows. Он создан для крупномасштабной интеграции, что упрощает распределение работы по различным машинам. Он предоставляет более 1000 плагинов для поддержки автоматизации практически всего, так что члены вашей команды могут тратить свое время на то, что машины не могут.

TeamCity

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

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

Трэвис Си

Travis с более чем 7000 центов на github - очень популярный инструмент непрерывной интеграции, бесплатный для проектов с открытым исходным кодом. Можно сказать, что он независим от платформы, потому что он не зависит ни от чего. Инструмент непрерывной интеграции Travis поддерживает множество языков, таких как Node и php, а также множество конфигураций сборки.

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

Gitlab CI

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

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

Круг CI

Circle CI - это гибкий инструмент непрерывной интеграции, который работает в любой среде, такой как кроссплатформенное мобильное приложение, сервер Python API или кластер Docker. Он направлен на выявление ошибок и, в основном, на улучшение качества и эффективности приложений с течением времени.

Он легко интегрируется с системами контроля версий, поддерживает многие языки Javascript, C ++, php, python, а также поддерживает докеры. Вы можете выбрать среду сборки, и она поставляется с бесплатной версией в соответствии с вашими потребностями на тот случай, если вы хотите сначала поиграть. Он выполняет кеширование, разбиение и балансировку тестов в целях оптимизации.

GoCD

GoCD с более чем 4500 ⭐️ на github - это сервер непрерывной интеграции с открытым исходным кодом. Он используется для простого моделирования и визуализации сложных рабочих процессов. GoCD также обеспечивает непрерывную доставку, что делает его идеальным решением для рабочего процесса CI / CD.

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

Бамбук

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

Он имеет простой в использовании интерфейс, имеет встроенное ветвление и рабочий процесс git, а также интегрируется с hipchat. Сборки могут запускаться при обнаружении изменений в базе кода.

Кодирование

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

Buildbot

Buildbot - это платформа для тестирования непрерывной интеграции на основе Python, которая автоматизирует цикл компиляции / тестирования и имеет более 3700 центов на github. Многие проекты используют его для проверки изменений кода, поскольку он предлагает очень распределенное параллельное выполнение заданий и является кроссплатформенным.

Помимо того, что BuildBot является открытым исходным кодом, он поддерживает репозиторий с одним исходным кодом, автоматизируя сборки и даже развертывание, которое осуществляется централизованно CI / CD. BuildBot поставляется с поддержкой различных платформ тестирования с разным составом, он сообщает хостам о сбоях ядра. Предпочтительный способ установки Buildbot - использовать pip. Для мастера:

pip install buildbot

а для рабочего:

pip install buildbot-worker

StriderCD

Strider с более чем 4000 центов на github - это инструмент непрерывной интеграции с открытым исходным кодом. Для установки на вашем компьютере должны быть установлены node js и mongoDB, потому что они записаны в node и MongoDB как уровень хранилища данных. Инструмент предлагает поддержку различных плагинов, которые изменяют схему базы данных и регистрируют HTTP-маршруты.

Strider позволяет публиковать события сокетов и даже подписываться на них, вы можете создать свой собственный пользовательский интерфейс на Strider. Он поставляется с поддержкой github и других систем контроля версий. Strider также поддерживает ряд плагинов для изменения конфигураций по умолчанию и действительно отличную поддержку докеров. Для начала клонируем страйдера:

git clone https://github.com/Strider-CD/strider.git && cd strider

Перейдите в папку по вашему выбору и клонируйте код Strider на свой компьютер. Убедитесь, что на вашем компьютере установлены все требования. Отсюда остается всего одна команда для установки Strider.

npm install

Почетные упоминания







Заключение

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