Непрерывная интеграция – это практика разработки программного обеспечения DevOps, при которой разработчики регулярно объединяют изменения программного кода в центральном депозитарии, после чего автоматически выполняется сборка и тестирование. Непрерывная интеграция чаще всего относится к этапу сборки или интеграции в процессе выпуска программного обеспечения и подразумевает как компонент автоматизации (например, CI или сервис сборки), так и культурный компонент (например, обучение частой интеграции). Главная задача непрерывной интеграции – быстрее находить и исправлять ошибки, улучшать качество ПО и сокращать временные затраты на проверку и выпуск обновлений ПО.
Раньше разработчики одной команды могли в течение долгого времени работать изолированно и объединяли свои изменения с основной частью проекта только по завершении собственной работы. Это делало слияние кода сложной и трудоемкой задачей, к тому же ошибки накапливались и не исправлялись в течение долгого времени. Такие факторы затрудняли быструю доставку обновлений пользователям.
При непрерывной интеграции разработчики часто подтверждают записи в совместно используемый репозиторий, используя систему контроля версий, например Git. Перед каждым подтверждением записи разработчики могут запускать локальные модульные тесты программного кода в качестве дополнительного уровня проверки перед интеграцией. Сервис непрерывной интеграции автоматически выполняет сборку и запуск модульных тестов для изменений кода, что позволяет моментально выявлять ошибки.
![Непрерывная интеграция и непрерывная доставка Непрерывная интеграция и непрерывная доставка](https://d1.awsstatic.com/product-marketing/DevOps/continuous_integration.4f4cddb8556e2b1a0ca0872ace4d5fe2f68bbc58.png)
Непрерывная интеграция относится к стадии сборки и поэлементного тестирования процесса выпуска ПО. Каждое подтвержденное изменение кода запускает автоматический процесс сборки и тестирования.
С помощью непрерывной доставки изменения программного кода автоматически проходят сборку, тестируются и подготавливаются к запуску в рабочей среде. Непрерывная доставка расширяет практику непрерывной интеграции за счет того, что все изменения кода после стадии сборки развертываются в тестовой и (или) в рабочей среде.
![Более продуктивная разработка Более продуктивная разработка](https://d1.awsstatic.com/product-marketing/DevOps/CICD_improve-productivity.c73191c7af7e9f0a859c9ec8af8b1bd4e4eae5be.png)
Непрерывная интеграция повышает производительность вашей команды за счет освобождения разработчиков от ручной работы и стимуляции подходов, которые помогают уменьшить количество ошибок и дефектов в версиях ПО для конечных пользователей.
![Заблаговременное обнаружение и устранение ошибок Заблаговременное обнаружение и устранение ошибок](https://d1.awsstatic.com/product-marketing/DevOps/CICD_find-bugs.a60937d9bd1ba25ac3781db46758ebe92c5c889a.png)
За счет более частого и всестороннего тестирования ваша команда сможет выявлять и устранять ошибки заблаговременно – до того, как они перерастут в серьезные проблемы.
![Быстрая доставка обновлений Быстрая доставка обновлений](https://d1.awsstatic.com/product-marketing/DevOps/CICD_deliver-updates.1d175ba80e02e998a0bcb5f4918bac95338820b2.png)
Непрерывная интеграция дает возможность вашей команде быстрее и чаще доставлять обновления конечным пользователям.
Непрерывную интеграцию в AWS можно реализовать несколькими способами.
![](https://d1.awsstatic.com/product-marketing/DevOps/CICD.1479aa595c5b4625f98c85662073d0eea1efa9fa.png)
Рабочий поток непрерывной интеграции можно настроить с помощью сервиса AWS CodePipeline, позволяющего создать рабочий поток, который осуществляет сборку кода в AWS CodeBuild после каждого подтверждения записи.
![](https://d1.awsstatic.com/product-marketing/DevOps/CICDpartners.d6b99316c941fb57bb834c1c5ea7d1cc40620931.png)
Ознакомьтесь с решениями наших партнеров.