Istilah-istilah tersebut menggambarkan konsep dan tanggung jawab yang sangat mirip, dan secara umum mereka agak sinonim. Istilah "DevOps" adalah yang relatif baru, dipopulerkan oleh konferensi Devopsdays Ghent 2009 dan acara Devopsdays berikutnya . Paling baik dijelaskan dalam diagram ini :
Di sisi lain, Manajemen Konfigurasi Perangkat Lunak adalah istilah yang jauh lebih mapan dalam profesi ini, dan berasal dari istilah Konfigurasi Manajemen non-perangkat lunak tertentu . Manajemen Konfigurasi Perangkat Lunak sering dirujuk dalam konteks rekayasa perangkat lunak, definisi sederhana diberikan oleh Roger Pressman dalam "Rekayasa Perangkat Lunak: Pendekatan Praktisi" :
adalah serangkaian kegiatan yang dirancang untuk mengendalikan perubahan dengan mengidentifikasi produk kerja yang kemungkinan akan berubah, membangun hubungan di antara mereka, mendefinisikan mekanisme untuk mengelola berbagai versi produk kerja ini, mengendalikan perubahan yang diberlakukan, dan mengaudit dan melaporkan perubahan yang dibuat.
Meskipun semua istilah yang Anda rujuk tidak jelas, DevOps tampaknya hanya cara yang kurang formal untuk menggambarkan kurang lebih seperangkat prinsip yang sama dengan Manajemen Konfigurasi, atau Manajemen Konfigurasi Perangkat Lunak jika dilihat dari perspektif pengembang perangkat lunak, terutama memprioritaskan tim yang dirangkai ketat :
DevOps adalah respons terhadap kesadaran yang berkembang bahwa ada keterputusan antara apa yang secara tradisional dianggap sebagai aktivitas pembangunan dan apa yang secara tradisional dianggap aktivitas operasi. Putus hubungan ini sering memanifestasikan dirinya sebagai konflik dan ketidakefisienan.
Dalam artikel yang sama, kesamaan dengan SCM dicatat:
Menambahkan ke Wall of Confusion adalah ketidakcocokan yang terlalu umum dalam pengembangan dan peralatan operasi. Lihatlah alat populer yang diminta dan digunakan pengembang setiap hari. Kemudian lihat alat populer yang diminta dan digunakan oleh administrator sistem setiap hari. Dengan beberapa pengecualian penting, seperti pelacak bug dan mungkin SCM , diragukan Anda akan melihat banyak minat dalam menggunakan alat satu sama lain atau integrasi yang signifikan di antara mereka. Bahkan jika ada beberapa jenis alat yang tumpang tindih, seringkali implementasinya akan berbeda di setiap kelompok.
Mengenai penggunaan istilah, perbandingan Anda tidak terlalu masuk akal:
- SCM adalah bagian dari CM, bukan istilah kompetitif,
- DevOps adalah istilah yang cukup baru, tidak ada gunanya membandingkan dengan ketentuan yang ada,
- DevOps berasal dari Operasi Pengembang (jelas) tetapi jarang diperluas.
Secara pribadi menjadi Manajer Konfigurasi Perangkat Lunak Sr selama bertahun-tahun (10+) Saya mendengar istilah yang tidak cocok dalam berbagai situasi kehidupan nyata. Bukan hal yang aneh bagi personel non teknis karena sifat relatif dari posisi tersebut. Keduanya memiliki peran, kebutuhan, dan persyaratan khusus yang serupa tetapi belum dapat dibagi dengan jelas menurut pendapat saya.
Saya percaya cara terbaik untuk menggambarkan pembagian peran ini adalah dengan fokus pada relativitas mereka terhadap interaksi. Artinya, Manajemen Konfigurasi Perangkat Lunak berfokus pada sistem dan lingkungan internal, bersama dengan integrasi, penyebaran, rilis, dan pengelolaan kode sumber. Sedangkan Operasi Pengembang (DevOps) lebih berfokus pada aspek operasional arsitektur aplikasi yang dihadapi secara eksternal, sambil mempertahankan pemahaman yang jelas tentang kode seperti yang dimaksudkan untuk digunakan dan praktik lingkungannya. Jika kinerja mesin menunjukkan tanda-tanda penurunan, komunikasi antara beberapa aplikasi salah, komunikasi bisnis ke bisnis (BtB) dan / atau batasan arsitektur dalam kaitannya dengan lingkungan produksi, maka Anda akan melihat Operasi Pengembang untuk diagnosis dan larutan.
Biasanya, dalam pengalaman saya, Manajer Konfigurasi Perangkat Lunak dapat melakukan hal-hal ini juga, tetapi ini menghilangkan fokus inti mereka untuk melacak, mengelola, dan menggunakan konfigurasi lingkungan dan revisi perangkat lunak. Mengelola perangkat lunak yang memungkinkan pemisahan tugas, pelacakan bug dan cacat, pelacakan proyek, dan siklus hidup pengembangan perangkat lunak dan alur kerja. Tugas-tugas ini bukan fokus inti dari Operasi Pengembang dan karena itu kurang penting, tetapi masih dapat dilakukan.
Saya telah melihat banyak contoh kebingungan masing-masing, dan di masing-masing ada beberapa crossover terbatas. Namun, yang paling penting adalah memikirkan perbedaan antara tanggung jawab masing-masing posisi independen dalam kaitannya dengan fokus utama mereka. Terutama ketika berhadapan dengan sistem dan perangkat keras yang digunakan secara internal untuk mengelola konfigurasi lingkungan dan pelepasan produk, Anda akan mencari Manajer Konfigurasi Perangkat Lunak. Di sisi lain, ketika berhadapan dengan kinerja sistem, pemantauan, penelitian dan diagnosis sistem yang digunakan oleh pelanggan Anda, Anda harus melihat ke Operasi Pengembang atau DevOps.
Sekarang, ini bukan dimaksudkan sebagai kata-kata kasar, atau sebagai jawaban yang pasti, tetapi lebih merupakan identifikasi pribadi dari perbedaan masing-masing posisi. Saya ingin tahu apakah saya kaya, atau apakah ada yang lebih jelas dengan jawaban ini.
sumber
Anda akan sulit sekali menemukan definisi yang solid untuk DevOps. Ini lebih dari sekedar ide daripada pekerjaan yang harus dilakukan. Dan itu adalah ide yang terlalu baru bagi semua orang untuk menyetujui apa artinya. Meskipun demikian, ini pendapat saya.
DevOps sebenarnya hanyalah istilah baru untuk manajemen konfigurasi, tetapi dipilih untuk menunjukkan bahwa peran tersebut bukan peran satu orang, ini adalah kolaborasi antara tim pengembangan dan tim operasi.
Secara historis, manajemen konfigurasi akan dilakukan hanya oleh tim pengembangan dan kemudian diserahkan kepada operasi yang akan melihatnya dengan kecurigaan yang mendalam. Yang cukup adil, jujur saja. Mereka bertanggung jawab untuk itu. Mereka yang pertama dipanggil pada jam 4 pagi ketika ada yang salah. Mereka benar-benar harus memiliki keterlibatan dalam pengembangannya.
sumber
Ini adalah klarifikasi sederhana untuk pertanyaan: DevOps adalah istilah yang digunakan untuk menggambarkan koordinasi atau hubungan antara Pembangunan (mengembangkan kode program dalam lingkungan pengembangan) dan Operasi (memastikan waktu produksi maksimum yang maksimal).
Manajemen Konfigurasi Perangkat Lunak adalah cara untuk mencapai koordinasi ini. SCM melibatkan alat dan teknik untuk mengelola otomatisasi proses perpindahan dari pengembangan ke produksi (operasi)
Untuk meringkas, SCM menghubungkan Dev dan Ops.
sumber
Saya melihat DEVOP berada di skrip otomasi penerapan akhir penyebaran, pembangunan lingkungan, hal semacam itu. SCM di sisi lain, adalah tentang integritas produk dan manajemen yang efektif dan keterlacakan perubahan pada produk. Saya selalu melihat ALM sebagai bagian dari SCM - bagaimana pun, bagaimana Anda bisa mengelola perubahan pada produk jika Anda tidak tahu driver untuk perubahan atau siapa yang membuatnya? Kerangka kerja penerapan dapat jatuh di kedua sisi - dan sisi mana yang akan selalu bergantung pada kebutuhan peraturan organisasi tempat Anda bekerja - setelah semua - apakah Anda ingin pengembang dapat melakukan peretasan cepat yang berarti mesin dialisis Anda hanya berfungsi dengan baik 99,99% pada saat itu, atau apakah Anda memerlukan situasi itu untuk memungkinkan Anda meretas kode situs web Anda karena pengembang Anda memiliki alamat IP hardcoded?
sumber