Tất cả các công cụ mà bạn đã đề cập (Jenkins, ant, git) giúp thực sự xây dựng và kiểm tra cổ vật của bạn. Trong thế giới java thường có thể là chiến tranh, tai hoặc chỉ là zip với ứng dụng bên trong. Đôi khi đối với các ứng dụng phức tạp, nó có thể nhiều hơn một tạo tác. Đối với các nền tảng lập trình khác, nó có thể khác nhau, DLL, nhị phân cho nhiều nền tảng khác nhau, v.v.
Bây giờ hãy nói rằng bạn muốn triển khai ứng dụng của mình. Nếu bạn có một máy chủ, bạn có thể thực hiện thủ công hoặc với một số tập lệnh trong nhà. Càng xa càng tốt :)
Nhưng nếu bạn có nhiều trang trại (nhóm máy), các trang trại khác nhau nên triển khai với các cấu hình khác nhau (cơ sở dữ liệu, vị trí địa lý khác nhau) Điều gì sẽ xảy ra nếu ứng dụng của bạn có thể mở rộng theo chiều ngang để thêm một vài nút mới vào trang trại một nhiệm vụ tầm thường. Nhóm QA của bạn có thể chỉ yêu cầu môi trường mới để chạy thử nghiệm, nhóm hiệu suất của bạn có thể yêu cầu môi trường mới hoặc thêm các nút vào trang trại để chạy thử nghiệm căng thẳng, v.v. Bây giờ quản lý tất cả những thứ này dường như là phức tạp. Đó là nơi các công cụ như ansible, đầu bếp, muối, con rối và những người khác chơi.
Đây thực sự là giúp để tự động hóa triển khai. Họ có thể cung cấp công thức triển khai, cài đặt các phụ thuộc bị thiếu (để chạy dự án của bạn có thể yêu cầu jre, tomcat của phiên bản cụ thể và nginx cho nội dung tĩnh). Tất cả điều này ở cấp độ trang trại.
Tôi biết câu trả lời quá chung chung và có vẻ ít rõ ràng hơn đối với nhà phát triển java (Tôi là một trong số đó). Nhưng nếu bạn có một nhóm các hệ thống / tín đồ, họ nên ngay lập tức chỉ ra lợi ích của các công cụ này.