Непрерывная интеграция – это практика разработки программного обеспечения DevOps, при которой разработчики регулярно объединяют изменения программного кода в центральном депозитарии, после чего автоматически выполняется сборка и тестирование. Непрерывная интеграция чаще всего относится к этапу сборки или интеграции в процессе выпуска программного обеспечения и подразумевает как компонент автоматизации (например, CI или сервис сборки), так и культурный компонент (например, обучение частой интеграции). Главная задача непрерывной интеграции – быстрее находить и исправлять ошибки, улучшать качество ПО и сокращать временные затраты на проверку и выпуск обновлений ПО.

Раньше разработчики одной команды могли в течение долгого времени работать изолированно и объединяли свои изменения с основной частью проекта только по завершении собственной работы. Это делало слияние кода сложной и трудоемкой задачей, к тому же ошибки накапливались и не исправлялись в течение долгого времени. Такие факторы затрудняли быструю доставку обновлений пользователям.

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

Непрерывная интеграция и непрерывная доставка

Непрерывная интеграция относится к стадии сборки и поэлементного тестирования процесса выпуска ПО. Каждое подтвержденное изменение кода запускает автоматический процесс сборки и тестирования.

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

 


Более продуктивная разработка

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

Заблаговременное обнаружение и устранение ошибок

За счет более частого и всестороннего тестирования ваша команда сможет выявлять и устранять ошибки заблаговременно – до того, как они перерастут в серьезные проблемы.

Быстрая доставка обновлений

Непрерывная интеграция дает возможность вашей команде быстрее и чаще доставлять обновления конечным пользователям.

Непрерывную интеграцию в AWS можно реализовать несколькими способами.

Рабочий поток непрерывной интеграции можно настроить с помощью сервиса AWS CodePipeline, позволяющего создать рабочий поток, который осуществляет сборку кода в AWS CodeBuild после каждого подтверждения записи.