Perbedaan antara DevOps dan Manajemen Konfigurasi Perangkat Lunak

15

Apa perbedaan antara Operasi Pengembangan dan Manajemen Konfigurasi Perangkat Lunak?

Bagi saya tampaknya sama selama DevOps dan Manajemen Konfigurasi Perangkat Lunak difokuskan pada:

  1. Membangun infrastruktur pengembangan - bertanggung jawab atas kontrol versi , manajemen pembangunan, manajemen penempatan, manajemen dependensi, integrasi dan pengiriman berkelanjutan , dll.
  2. Menggunakan praktik terbaik untuk mengatur lingkungan pengembang .
  3. Jaminan Kualitas proses pembangunan - mengumpulkan metrik efektivitas pembangunan, bekerja untuk menghilangkan hambatan proses pengembangan (menjalankan tes unit, mengevaluasi cakupan tes unit, menjalankan inspeksi, dll)
  4. Manajemen infrastruktur - platform target dan spesifiknya.
  5. Manajemen rilis - memastikan rilis telah dikirim ke pelanggan / klien pada waktunya.

Mungkin saya melewatkan sesuatu? Tautan ini menunjukkan bahwa penggunaan istilah 'Manajemen Konfigurasi Perangkat Lunak' berlaku. Tapi tetap saja, kombinasi kata apa yang ingin Anda gunakan untuk menggambarkan berbagai kegiatan yang terdaftar: Operasi Pengembangan atau Manajemen Konfigurasi Perangkat Lunak ?

alternatif
sumber

Jawaban:

18

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 :

masukkan deskripsi gambar di sini

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:

  1. SCM adalah bagian dari CM, bukan istilah kompetitif,
  2. DevOps adalah istilah yang cukup baru, tidak ada gunanya membandingkan dengan ketentuan yang ada,
  3. DevOps berasal dari Operasi Pengembang (jelas) tetapi jarang diperluas.
yannis
sumber
Apakah maksud Anda SCM sebagai Manajemen Kode Sumber atau Manajemen Konfigurasi Perangkat Lunak adalah bagian dari CM?
altern
@zaphod_beeblebrox: gambar itu diambil dari artikel wikipedia: en.wikipedia.org/wiki/DevOps :)
altern
@altern Paragraph di bawah gambar cantik: "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." : P Gambar juga diambil dari blog yang saya tautkan. Jika penulis mengambilnya dari Wikipedia, saya tidak akan tahu.
yannis
@zaphod_beeblebrox: Saya mungkin harus mengubah judul pertanyaan saya
altern
@altern Apa maksudmu? Manajemen Konfigurasi Perangkat Lunak tidak hanya dalam judul. Juga apa sih itu "Manajemen Kode Sumber". Apakah maksud Anda kontrol revisi? Jika ya, kontrol revisi adalah aspek dari Manajemen Konfigurasi Perangkat Lunak, jadi jawabannya tetap apa adanya. Tetapi membandingkan kontrol revisi dengan devops aneh untuk dikatakan.
yannis
6

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.

Phyro
sumber
2
Sejujurnya, ketika semuanya sudah matang, DevOps adalah membuat pengembang perangkat lunak sepenuhnya sadar dan bertanggung jawab atas Manajemen Konfigurasi Perangkat Lunak. Ketika Anda melakukan itu, Anda mendapatkan pendekatan yang sama sekali berbeda untuk SCM daripada yang telah dilakukan secara tradisional - yang lebih berfokus pada integrasi berkelanjutan dan pengiriman terus-menerus, dan satu dengan (biasanya) lebih sedikit manusia dalam campuran. DevOps dapat (dan sering) dipandang sebagai Lean diterapkan ke SCM, seperti Agile dapat dilihat sebagai Lean diterapkan pada pengembangan perangkat lunak.
Calphool
4

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.

pdr
sumber
1

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.

Koneksi antara Pengembangan dan Operasi adalah SCM

Kindson The Genius
sumber
-1

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?

Mendongkrak
sumber
4
ini lebih seperti kata-kata kasar daripada jawaban untuk pertanyaan yang diajukan
nyamuk
Pemburu Rusa, Kata-kata kasar, ya tentu saja, tapi relevan? 100% Percayalah pada saya ini - sampai industri tumbuh dan menghentikan tipuan, pawai kematian tidak hanya akan berlanjut, mereka akan menjadi lebih buruk. Ini janji.
Jack
Kata-kata kasar baik-baik saja, tetapi stackexchange bukan tempat untuk mereka.
matt freake