Semua alat yang telah Anda sebutkan (Jenkins, semut, git) membantu untuk benar-benar membangun dan menguji artefak Anda. Di dunia java biasanya ini bisa berupa perang, kuping atau sekedar zip dengan aplikasi di dalamnya. Terkadang untuk aplikasi yang rumit, bisa lebih dari satu artefak. Untuk platform pemrograman lain, ini dapat bervariasi, DLL, biner untuk beberapa platform yang berbeda dan sebagainya.
Sekarang katakanlah Anda ingin menggunakan aplikasi Anda. Jika Anda memiliki satu server, Anda dapat melakukannya secara manual atau dengan beberapa skrip buatan sendiri. Sejauh ini bagus :)
Tetapi bagaimana jika Anda memiliki banyak tambak (kelompok mesin), tambak yang berbeda harus memiliki penyebaran dengan konfigurasi yang berbeda (database, lokasi geografis yang berbeda) Bagaimana jika aplikasi Anda dapat menskalakan secara horizontal sehingga menambahkan beberapa node baru ke tambak harus tugas sepele. Tim QA Anda mungkin hanya meminta lingkungan baru untuk menjalankan tes mereka, tim kinerja Anda dapat meminta lingkungan baru atau menambahkan node ke kebun untuk menjalankan tes stres dan sebagainya. Sekarang mengelola semua hal ini tampaknya rumit. Di situlah alat seperti ansible, koki, garam, boneka, dan lainnya ikut bermain.
Ini sebenarnya membantu mengotomatiskan penyebaran. Mereka dapat memberikan resep penyebaran, menginstal dependensi yang hilang (untuk menjalankan proyek Anda mungkin memerlukan jre, kucing jantan dari versi spesifik dan nginx untuk konten statis). Semua ini di tingkat peternakan.
Saya tahu jawabannya terlalu umum dan mungkin tampak kurang jelas untuk pengembang java (saya salah satunya). Tetapi jika Anda memiliki tim sistem / pengembang, mereka harus segera menunjukkan manfaat dari alat-alat ini.