IMO DevOps adalah budaya, seperti Agile (tanpa memilih metodologi lincah.) Karena itu Anda tidak "melakukan" DevOps.
Anda "melakukan" metodologi rilis yang disebut Pengiriman Berkelanjutan sebagai bagian dari Budaya DevOps. (pengungkapan penuh, saya tidak berpikir saya pernah menyebut CD sebagai metodologi rilis sebelumnya, tetapi dalam kondisi jetlagged saya pikir itu berfungsi)
Jika Anda akan membelinya, maka inilah definisi Pengiriman Berkelanjutan dari salah satu orang yang menulis buku dengan judul yang sama, Jez Humble .
Pengiriman Berkelanjutan adalah kemampuan untuk mendapatkan perubahan dari semua jenis — termasuk fitur baru, perubahan konfigurasi, perbaikan bug, dan eksperimen — ke dalam produksi, atau ke tangan pengguna, secara aman dan cepat dengan cara yang berkelanjutan.
Tujuan kami adalah membuat penyebaran — apakah sistem terdistribusi skala besar, lingkungan produksi yang kompleks, sistem tertanam, atau aplikasi — yang dapat diprediksi, urusan rutin yang dapat dilakukan sesuai permintaan.
Kami mencapai semua ini dengan memastikan kode kami selalu dalam status yang dapat digunakan, bahkan di hadapan tim yang terdiri dari ribuan pengembang yang melakukan perubahan setiap hari. Kami dengan demikian sepenuhnya menghilangkan fase integrasi, pengujian, dan pengerasan yang secara tradisional mengikuti "dev complete", serta pembekuan kode.
Jadi, Anda dapat bekerja dalam metodologi Agile, memiliki perangkat lunak yang dapat Anda tunjukkan kepada bisnis, memastikan Anda melakukan pengujian otomatis yang tepat, bereaksi dengan baik terhadap perubahan dan semua hal yang membuatnya lebih baik daripada air terjun. Terlalu sering itu tidak berarti Anda benar-benar dapat menggunakannya untuk produksi.
Anda berakhir dengan sesuatu seperti ini:
Jadi perangkat lunak akan (mungkin) lebih baik ketika Anda selesai maka jika Anda tidak memiliki semacam pendekatan iteratif, tetapi Anda tidak benar-benar tahu karena pengguna nyata belum pernah melihatnya.
Yang benar-benar Anda inginkan adalah sesuatu yang lebih terlihat seperti ini:
Setiap iterasi, sesuatu dikerahkan untuk produksi. Jadi, perangkat lunak digunakan . Jika Anda memutuskan untuk membuat unduhan, buka server web, atau bagaimanapun Anda mendapatkan perangkat lunak ke tangan pengguna yang dirilis .
Apa apaan!? Saya bertanya tentang DevOps! Tidak ada yang bertanya tentang Pengiriman Berkelanjutan !!
Jadi apa yang harus dilakukan DevOps dengan ini?
Sangat, sangat sulit (mendekati tidak mungkin) untuk benar-benar memiliki perangkat lunak Anda dalam keadaan di mana Anda dapat menyebarkannya kapan pun Anda inginkan kecuali jika tim itu bekerja dalam budaya DevOps. Budaya di mana Admin Sistem, DBA, SRE, Petugas Keamanan, Pengembang, QA, dll., Semuanya adalah bagian dari satu tim dan tidak membungkam bagian dari organisasi dengan handoff.
Catatan :
Tentang bagian dari komentar yang diposting ke jawaban ini, yang seperti itu:
Tentang "... perangkat lunak Anda dalam keadaan di mana Anda dapat menggunakannya kapan saja ...": yang mengingatkan saya tentang perangkat lunak "pilot otomatis" (di pesawat) ... Pertanyaan favorit saya tentang itu: " Bayangkan pembaruan diterapkan ke perangkat lunak seperti itu ... Bagaimana perasaan Anda tentang melakukan hal itu di dalam pesawat ... Saat Anda berada di dalam pesawat? "
Saya suka pertanyaan itu (dicetak tebal, dalam kutipan di atas)! Gagasan "apakah ini benar-benar siap?" adalah sesuatu yang saya ucapkan tentang sepanjang waktu - blog . IMO sangat penting bahwa Anda percaya diri dalam keamanan, kinerja, dan tes "sekunder" yang terlalu sering untuk berlatih CD. Fitur-fiturnya sudah selesai ketika sudah selesai, tetapi peretas selalu ada.