Jawaban yang diterima untuk pertanyaan saya tentang " Bagaimana integrasi berkelanjutan terkait dengan pengiriman / penyebaran berkelanjutan? " Juga menjelaskan perbedaan kecil antara pengiriman berkelanjutan dan penyebaran berkelanjutan . Tampaknya terkait dengan jawaban untuk pertanyaan seperti "Bagaimana Anda ingin menggunakan untuk produksi, sedangkan ini adalah opsi (eksklusif) untuk dipilih:
- Otomatis).
- Manual.
Saya tidak dapat membayangkan bahwa akan ada "operator" yang buruk di sisi lain dari dinding DevOps, yang harus melakukan sesuatu yang sesuai dengan "manual" apa pun artinya ... Pertanyaan saya:
- Apakah referensi saya (dalam pertanyaan saya) untuk "mendistribusikan" versus "menginstal" dekat dengan kemungkinan implementasi "manual" semacam itu? Berikut adalah kutipan yang relevan dari pertanyaan terkait saya:
- mendistribusikan ke beberapa lingkungan target, menggunakan sesuatu seperti FTP (jika salinan standar tidak dapat menjembatani kesenjangan), tetapi belum mengaktifkannya di target. Itu yang harus mirip / dekat dengan pengiriman terus menerus , atau tidak?
- instal (atau aktifkan ) di beberapa lingkungan target, dikombinasikan dengan hal-hal seperti mengikat, menghentikan / memulai operasi, dll. Itu yang harus serupa / dekat dengan penyebaran berkelanjutan , atau tidak?
- Apa kemungkinan implementasi lain dari itu?
continuous-delivery
continuous-deployment
Pierre.Vriens
sumber
sumber
Jawaban:
Secara pribadi saya menganggap
distribution
perangkat lunak sebagai target hanya langkah perantara penyebaran - instalasi / aktivasi perangkat lunak yang diperlukan untuk menyelesaikan penyebaran itu.Bagi saya,
delivery
(seperti dalamcontinuos delivery
) berhenti ketika perangkat lunak yang akan digunakan dibuat dan tersedia untuk penyebaran (yaitu untuk distribusi, instalasi dan aktivasi)Jadi, untuk menjawab pertanyaan pertama Anda, tidak, saya tidak akan menganggap distribusi dan pemasangan mencerminkan langkah manual yang membedakan pengiriman terus-menerus dari penyebaran berkelanjutan.
Ya, dalam beberapa kasus (mudah-mudahan jarang) bahwa langkah manual hanyalah keputusan manusia terakhir untuk digunakan dalam produksi, yang mencerminkan ketidakpercayaan budaya dalam otomatisasi proses dan kenyamanan mental memiliki pengecekan manusia dan penandatanganan keputusan penyebaran (dengan demikian mengasumsikan responsability for it) bahkan jika keputusan itu murni dibuat berdasarkan pada algoritma yang dapat diotomatisasi (seperti menghitung lulus / gagal hasil pengujian).
Tetapi secara umum itu hanya mencerminkan fakta bahwa keputusan untuk melakukan penyebaran dalam produksi bukan hanya hasil dari algoritma otomatis. Berikut ini beberapa contoh kasus tersebut:
Jadi saya tidak akan melihat langkah manual hanya sebagai masalah implementasi.
sumber
Satu pertimbangan tambahan jika Anda menerbitkan sesuatu yang Anda harapkan untuk dikonsumsi proyek lain, menyebarkan juga berarti "menerbitkan untuk digunakan orang lain"
Pertimbangkan alur kerja tempat Anda menggunakan pustaka ke repositori artefak umum. Bagian dari proses ini mungkin bagian dari Anda menggunakan komponen lain yang memerlukan artefak itu pada waktu membangun atau mungkin hanya pembaruan ke perpustakaan umum. Namun terlepas dari itu, untuk artefak itu, siklus hidupnya tidak selalu diakhiri dengan menjadi tersedia untuk konsumsi oleh orang lain, tetapi penyebaran artefak itu ke repositori artefak mungkin merupakan tahap terakhir dalam pekerjaan pengembang setelah mereka memutuskan untuk memotong versi rilis baru dan sebelum yang lain dapat menggunakan versi baru dengan aman.
sumber