Bagaimana cara menerapkan langkah manual pada akhir pengiriman kontinu?

13

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?
Pierre.Vriens
sumber
Untuk penerapan AWS, saya membuat skrip unggah / sebarkan yang hanya dapat diakses oleh manajer tim. Jadi untuk menyebarkan ke produksi, manajer tim perlu menjalankan skrip.
Turtle
Maaf untuk menghancurkan impian Anda, tetapi kami masih memiliki tim ´deploy ', yang Oek akan meluncurkan pembaruan DB pada Db2-iSeries dengan ARCAD kemudian koki di server Tomcart untuk menyebarkan versi dalam produksi setiap 2 Kamis antara jam 8 malam dan tengah malam. Jadi, sayangnya, kadang-kadang ada operator yang buruk (mudah-mudahan itu bukan satu-satunya pekerjaan mereka)
Tensibai

Jawaban:

5

Secara pribadi saya menganggap distributionperangkat lunak sebagai target hanya langkah perantara penyebaran - instalasi / aktivasi perangkat lunak yang diperlukan untuk menyelesaikan penyebaran itu.

Bagi saya, delivery(seperti dalam continuos 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:

  • keputusan otomatis ditimpa
    • penyebaran dapat dibatalkan meskipun tidak semua kriteria kualitas terpenuhi (kita semua tahu bahwa ini bukan hanya kasus teoritis)
    • penyebaran diadakan untuk alasan apa pun, bahkan jika semua kriteria terpenuhi (karena implikasi waktu pasar misalnya)
  • algoritma otomatis belum (belum) diterapkan / digunakan
  • algoritma mencakup pemeriksaan untuk beberapa kriteria tergantung pada keputusan manusia (katakanlah hasil dari pengujian manual)
  • penyebaran sebenarnya dilakukan di lingkungan pelanggan pihak ke-3, mengikuti pemeriksaan pelanggan tambahan

Jadi saya tidak akan melihat langkah manual hanya sebagai masalah implementasi.

Dan Cornilescu
sumber
Merci (oeps: terima kasih) telah berbagi sudut pandang Anda tentang hal ini. Sepertinya kita memiliki persepsi yang berbeda tentang "distribusi". Jadi izinkan saya menambahkan 1 skenario: Anda memiliki jendela 1 jam, untuk sistem perbankan online, pada hari Minggu pagi, untuk "mengaktifkan" 150.000 executable yang diperbarui. Dan jika karena alasan apa pun rollback akan diperlukan, maka tidak ada negosiasi yang mungkin untuk memperpanjang jendela itu. Apakah Anda benar-benar ingin membuang-buang waktu untuk "mendistribusikan", alih-alih menggunakan waktu yang diperlukan untuk "berjaga-jaga jika diperlukan? Pikirkan dua kali: jika dibutuhkan lebih lama dari 1 jam .. Anda dipecat ... Yah ... ???
Pierre.Vriens
Itu IMHO hanya detail optimasi atau implementasi dari penyebaran itu sendiri, berlaku dalam kasus Anda, (tapi itu tidak membuatnya menjadi aturan). Hanya karena Anda menjalankan bagian dari penyebaran Anda sebelum benar-benar mematikan eksekusi sw lama tidak berarti bahwa masing-masing pekerjaan adalah bagian dari tahap pengiriman. Ini juga tidak selalu berarti bahwa begitu Anda memulai penyebaran Anda juga perlu menyelesaikannya. Sw dikirimkan secara efektif (yaitu tersedia / siap untuk penerapan) bahkan jika Anda tidak benar-benar menyebarkan.
Dan Cornilescu
2

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.

hvindin
sumber