Вікіпедія дає досить хороші підсумки більшості цих термінів. Ось мій погляд на них:
Автоматизація побудови - це автоматизація побудови програмного забезпечення замість того, щоб вручну викликати компілятор. Це можна зробити за допомогою таких інструментів, як напр. Make or Ant .
Автоматизація розгортання приймає вбудоване програмне забезпечення та розгортає або встановлює його в тестовій або виробничій системі.
Безперервна інтеграція означає автоматизований процес безперервно будувати програмне забезпечення, оскільки розробники перевіряють код і запускають тестові одиниці, щоб переконатися, що код все ще працює. Наприклад, кожні 15-30 хвилин сервер може прокидатися, сканувати VCS на нові реєстрації, потім оновити та скласти проект, якщо були внесені зміни. Окрім виконання етапів компіляції, це також чудова можливість запустити автоматизовані тести одиниць та перевірити якість коду .
Безперервна доставка - це сукупність усіх попередніх концепцій, коли складання програмного забезпечення також розгорнуто до тестової системи, необов'язково з виконаними тестами та згенерованими звітами.
Принаймні, вам потрібно мати автоматизацію побудови, тобто якийсь сценарій збірки. Це дозволяє вам натиснути одну кнопку або задати одну команду для створення вашого проекту. Користь для цього полягає в зменшенні помилок від ручних кроків. Складні середовища складання можуть включати генерування коду (подумайте, DAO з конфігурацій , інтерфейсного коду, такого як JAXB ), компілюючи код, упаковуючи його, налаштовуючи метадані тощо. З багатьма речами вам потрібен контрольний список: чому б не зробити контрольний список ваш сценарій збирання та використовуєте інструмент для його запуску? Це зменшує помилки та забезпечує послідовність.
Далі - CI: це дійсно добре, але це не обов'язково. Це допомагає виявити проблеми в побудові завчасно. Якщо у вас є кілька розробників, які перевіряють код протягом дня і, можливо, не синхронізують власні робочі простори постійно, є ризик, що їх зміни будуть заважати один одному. Я маю на увазі конкретно помилки статичного коду, а не конфлікти управління версіями. Сервер збирання CI зменшить цей ризик.
Нарешті ми маємо кроки розгортання. Ідея тут полягає в тому, щоб заощадити час та зменшити помилки при ручному розгортанні програмного забезпечення. Так само, як автоматизація побудови, існує сто способів виправити програмне забезпечення. Я особисто затримався в офісі, щоб виправити проблеми з ручним розгортанням багато разів, коли нам потрібна функціонуюча система для клієнтів, які приїдуть завтра на майданчик. Автоматизація декількох систем створює більше ризику: замість того, щоб одна система, можливо, вийшла з ладу або мала дивні помилки, тепер у нас є кількасистеми, які можуть піти не так. Однак цей ризик набагато нижчий, ніж хтось пропускає крок у контрольному списку або видає неправильну команду і псує розгортання. Якщо вам пощастило, ви можете просто відновити резервну копію БД і почати заново, якщо вам не пощастило, помилка може призвести до неправильної роботи системи. Це дефект програмного забезпечення? Чи технік не встановив конфігурацію правильно? Це потребує часу для діагностики, часу, якого у вас може бути, і часу, який не потрібно витрачати, якщо ви автоматизуєте процес.