Wikipedia cung cấp tóm tắt khá tốt của hầu hết các điều khoản này. Đây là nhận của tôi về họ:
Xây dựng tự động hóa là tự động hóa cách phần mềm được xây dựng thay vì gọi trình biên dịch theo cách thủ công. Điều này sẽ được thực hiện thông qua các công cụ như Make hoặc Ant .
Tự động hóa triển khai đang lấy phần mềm được xây dựng của bạn và triển khai hoặc cài đặt nó trên hệ thống thử nghiệm hoặc sản xuất.
Tích hợp liên tục có nghĩa là có một quy trình tự động xây dựng phần mềm của bạn liên tục khi các nhà phát triển kiểm tra mã và chạy thử nghiệm đơn vị để đảm bảo mã vẫn hoạt động. Ví dụ: cứ sau 15 đến 30 phút, một máy chủ có thể thức dậy, quét VCS để đăng ký mới, sau đó cập nhật và xây dựng dự án nếu có bất kỳ thay đổi nào được thực hiện. Ngoài việc thực hiện các bước biên dịch, đây cũng là một cơ hội tuyệt vời để chạy thử nghiệm đơn vị tự động và kiểm tra chất lượng mã .
Phân phối liên tục là sự kết hợp của tất cả các khái niệm trước đây, nơi các bản dựng phần mềm cũng được triển khai cho một hệ thống thử nghiệm, tùy chọn với các thử nghiệm được thực hiện và các báo cáo được tạo.
Ít nhất, bạn cần phải có tự động hóa xây dựng, tức là một kịch bản xây dựng nào đó. Điều đó cho phép bạn nhấp vào một nút hoặc phát hành một lệnh để xây dựng dự án của bạn. Lợi ích của việc này là giảm lỗi từ các bước chạy thủ công. Các môi trường xây dựng phức tạp có thể liên quan đến việc tạo mã (nghĩ DAO từ cấu hình, mã giao diện như JAXB ), biên dịch mã, đóng gói mã, tùy chỉnh siêu dữ liệu, v.v ... Với rất nhiều thứ bạn cần có một danh sách kiểm tra: tại sao không tạo danh sách kiểm tra tập lệnh xây dựng của bạn và sử dụng một công cụ để chạy nó? Nó làm giảm lỗi và cung cấp sự nhất quán.
Tiếp theo là CI: điều này thực sự tốt để có nhưng không bắt buộc. Nó giúp xác định vấn đề xây dựng sớm. Nếu bạn có nhiều nhà phát triển kiểm tra mã trong suốt cả ngày và có lẽ không đồng bộ hóa không gian làm việc của riêng họ liên tục, có nguy cơ những thay đổi của họ sẽ can thiệp lẫn nhau. Tôi đang đề cập cụ thể đến lỗi mã tĩnh, không phải xung đột kiểm soát phiên bản. Một máy chủ xây dựng CI sẽ giảm thiểu rủi ro này.
Cuối cùng chúng ta có các bước triển khai. Ý tưởng ở đây là để tiết kiệm thời gian và giảm lỗi từ việc triển khai phần mềm thủ công. Giống như tự động hóa xây dựng, có hàng trăm cách để triển khai phần mềm. Cá nhân tôi đã ở lại muộn tại văn phòng để khắc phục các sự cố triển khai thủ công trong nhiều trường hợp khi chúng tôi cần một hệ thống chức năng cho khách hàng đến tại chỗ vào ngày mai. Tự động hóa nhiều hệ thống gây ra nhiều rủi ro hơn: thay vì một hệ thống có thể gặp sự cố hoặc có lỗi lạ, giờ đây chúng tôi có nhiều hệ thốnghệ thống có thể đi sai. Tuy nhiên, rủi ro đó thấp hơn nhiều so với việc ai đó thiếu một bước trong danh sách kiểm tra hoặc đưa ra lệnh sai và làm rối loạn việc triển khai. Nếu may mắn, bạn chỉ cần khôi phục bản sao lưu DB và bắt đầu lại, nếu bạn không may gặp lỗi có thể khiến hệ thống hoạt động không chính xác. Có phải là một lỗi phần mềm? Kỹ thuật viên không đặt cấu hình chính xác? Điều này cần có thời gian để chẩn đoán, thời gian mà bạn có thể không có và thời gian không cần phải sử dụng nếu bạn tự động hóa quy trình.