You are on page 1of 3

Разлика между continuous integration и contiunous

delivery
Белослава Висарионова 12В

Континуираната интеграция (Continuous Integration - CI) и континуираната доставка


(Continuous Delivery - CD) са две ключови практики в разработката на софтуери.
Континуираната интеграция (Continuous Integration - CI) е разработъчна практика в
софтуерното инженерство, която се съсредоточава върху редовната интеграция на
кода от различни разработчици в общ репозитори. Основната идея зад CI е да се
минимизират конфликтите при сливане на код, като се извършва автоматична
сборка и тестове на кода при всяка промяна, което помага да се открият и разрешат
потенциални проблеми веднага.
Програмистите редовно проверяват своя код в репозитория, а автоматизирани
процеси на CI системи (като Jenkins, Travis CI, GitLab CI и др.) се стартират кога се
додаде нов код. Тези CI процеси включват компилиране на кода, изпълнение на юнит
тестове и интеграционни тестове, както и проверка на качеството на кода. Ако има
някакъв проблем с интеграцията, отборът бързо се уведомява за това, което
позволява бързи корекции.

Основният процес на CI включва следните стъпки:

 Сливане на кода: Разработчиците правят промени в кода си и ги качват в


общия репозиторий.

 Автоматична сборка: Система за CI автоматично извлича кода от репозитория


и го компилира

 Автоматични тестове: След компилацията, CI системата изпълнява


автоматизирани тестове, които проверяват функционалността и стабилността
на приложението.

 Обратна връзка: Ако тестовете не минават успешно, отборът за разработка


бързо се информира за проблемите, което позволява на тях да ги отстранят.
 Интеграция в основната грана (master): След успешно преминаване на
тестовете, промените се интегрират в основната грана на репозитория.

Предимствата на CI включват намаляване на времето за откриване и отстраняване


на проблеми в кода, намаляване на риска от конфликти при сливане и подобряване
на качеството на софтуера. Тази практика също така помага да се насърчи по-
бързото разработване и доставка на софтуерни продукти.

Континуираната доставка (Continuous Delivery - CD) е практика в софтуерното


инженерство, която цели да автоматизира процесите на доставка на софтуерни
приложения до крайния потребител или до средата, където приложението ще бъде
използвано. Основната цел на континуираната доставка е да се ускори и опрости
процесът на доставка, като се гарантира възможността за бързо, безпроблемно и
автоматизирано разпространение на софтуерни изменения.
CD върви една стъпка напред след успешната CI практика, като позволява
автоматична и честа доставка на функционалности до потребителите.
След успешната интеграция на кода, CI системът може автоматично да стартира
процеси на доставка, които включват тестване в реална среда, опаковане на
приложението, деплоймент и др. Това позволява на екипите редовно да доставят
ъпдейти и нови функционалности без много ръчно участие.

Основните етапи на процеса на континуирана доставка включват:

 Сглобяване и Тестване: След успешното завършване на процеса на


континуирана интеграция (CI), който включва компилиране на кода и
изпълнение на тестове, сглобеният софтуер е готов за доставка.

 Автоматизирано Деплоиране: Софтуерът се автоматизира за деплоиране на


целевата среда, било то тестваща, стадийна или продукционна.
 Тестове на Средата: След деплоиране на приложението в целевата среда се
изпълняват различни видове тестове, включително функционални тестове,
интеграционни тестове, изпитване на производителността и други.

 Окончателна Валидация и Утвърждаване: Ако всички тестове са успешни,


измененията се считат за одобрени и готови за използване.

Континуираната доставка осигурява постоянна итеративна разработка и доставка на


софтуер, като минимизира времето от идея до пускане на приложението на пазара.
Това дава възможност за по-често и по-предсказуемо пускане на нови функции и
подобрения за крайните потребители.
В резюме, CI се отнася до практика, която се фокусира върху интеграцията на кода в
общ репозитори и проверката на неговата функционалност, докато CD е разширение
на тази практика, което позволява автоматична доставка на функционалности до
потребителите.

You might also like