Быстрый взгляд новичка на процесс непрерывной интеграции

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

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

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

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

Каковы преимущества?

  • Непрерывная интеграция делает процесс разработки более безопасным. Поскольку каждый представленный код проверяется автоматически, вы выявляете ошибки до того, как они станут проблемой в кодовой базе.
  • Непрерывная интеграция ускоряет процесс разработки быстрее. Трудно постоянно интегрировать большие объемы кода, так как вполне вероятно, что это приведет к конфликту слияния за конфликтом слияния в вашей системе контроля версий. Код, отправляемый в процессе непрерывной интеграции, как правило, представляет собой небольшое количество кода за раз, что снижает вероятность возникновения конфликтов слияния. Внесение небольших изменений в кодовую базу занимает меньше времени и, поскольку возникает меньше конфликтов, позволяет внести больший вклад в код в процессе разработки и создать больше функций. Работая таким образом быстрее, непрерывно интегрируя свой код в продукт, над которым ведется работа, вы быстрее увидите, как ваши новые функции используются пользователями. Это приводит к лучшему принятию решений в целом, поскольку вы можете наблюдать за эффектами, которые оказывают изменения в вашем коде, и быстро тестировать функции, а не работать над чем-то месяцами и ждать его выпуска, чтобы увидеть, какие эффекты он имеет. Непрерывная интеграция позволяет лучше понять, чего люди хотят от вашего продукта, видя, как они используют новые функции, внедряемые в более короткие сроки.
  • Поскольку процесс разработки становится более безопасным и быстрым, общая непрерывная интеграция повышает качество и производительность.

Некоторые примеры поставщиков:

Существует множество инструментов непрерывной интеграции, вот лишь некоторые из наиболее известных:

Ознакомьтесь с этой статьей Guru99 notes об этих и других инструментах: 20 лучших инструментов непрерывной интеграции в 2020 году.