Saya telah melakukan / membuat banyak presentasi terkait SCM, dan sekarang saya mencoba untuk "meningkatkan" ke penerus DevOps itu.
Apa yang selalu saya coba lakukan dalam presentasi saya, adalah membuat slide pengantar yang entah bagaimana termasuk pesan yang ingin saya sampaikan (dan yang kemudian saya uraikan di sisa presentasi saya). Ketika melakukan itu, saya mencoba menjawab pertanyaan saya sendiri seperti "Apa yang akan saya 1 sampai 3 frasa yang ingin saya gunakan jika saya punya 10 hingga 20 detik (hanya!) Untuk menjelaskannya kepada seseorang yang baru mengenalnya? * ".
Saya pikir saya tahu apa arti DevOps sebenarnya, dan tentang apa itu. Tetapi saya telah melihat beberapa penggunaan / konteks yang aneh dari DevOps (bahkan pada DevOps.SE ...). Itu membuat saya bertanya-tanya apakah mungkin apa yang saya pikirkan adalah DevOps, benar-benar salah.
Jadi apa yang secara umum disetujui untuk menjadi definisi DevOps?
sumber
Jawaban:
Singkatnya singkat
Dari Wikipedia :
Dari Ikhtisar :
Meskipun tidak ada "alat" tunggal untuk DevOps, melainkan seperangkat alat, juga dikenal sebagai rantai alat DevOps :
Ilustrasi DevOps
Di bawah ini adalah beberapa kutipan dari beberapa pertanyaan di DevOps.SE , yang semuanya sepertinya cocok / mengkonfirmasi bagian dari deskripsi DevOps di atas:
Dari ' Apa perbedaan antara SRE dan DevOps? ':
Dari ( jawaban untuk) ' Bagaimana cara saya menyewa seorang DevOps yang baik, cocok dengan perusahaan saya? ':
Dari ' Apakah organisasi saya perlu mengadopsi Agile Soft. Dev. sebelum mengadopsi DevOps? ':
DevOPS BUKAN peran
Di bawah ini adalah beberapa kutipan dari beberapa pertanyaan di DevOps.SE , yang semuanya menggambarkan bahwa DevOps BUKAN peran:
Dari ( jawaban untuk) ' Apa perbedaan antara Sysadmin dan DevOps Engineer? ':
Dari ( jawaban untuk) ' Bagaimana cara saya menyewa seorang DevOps yang baik, cocok dengan perusahaan saya? ':
sumber
Saya telah berlatih dan memberi nasihat tentang DevOps sebagai konsultan dengan klien yang berbeda selama hampir lima tahun sekarang, sebelum posisi saya saat ini, saya memegang peran dalam pengembangan perangkat lunak, operasi web, dan administrasi sistem. Dalam pengalaman pribadi saya, DevOps hadir dalam banyak rasa.
Pola Organisasi
DevOps Antipatterns:
NoOps dan NoDevs - tidak sepenuhnya DevOps dalam arti yang paling ketat, namun, tim-tim ini membangun dan mengoperasikan perangkat lunak tanpa garis pemisah antara Pengembangan dan Operasi. Tantangan dengan tim-tim ini jatuh tempo, tim Pengembangan mungkin ahli Pengembang Perangkat Lunak tetapi Operator pemula dan sebaliknya.
The DevOps Bridge - di sinilah satu atau lebih tim diberi tanggung jawab untuk mengambil pekerjaan dari tim pengembangan dan " Memproduksi " untuk membuatnya bisa beroperasi. Tantangan datang ke sekarang ada dua hand-off, yaitu Pengembangan → DevOps dan DevOps → Operasi.
Tim DevOps - ini bisa, bisa dibilang, bekerja jika tim memiliki tanggung jawab untuk membangun alat yang mendukung Model Operasi yang diaktifkan DevOps, namun, mungkin harus disebut "Tim Alat" atau "Tim Platform".
Pola DevOps:
Embedded DevOps - lebih umum disebut sebagai Platform Engineering, di mana ada seseorang dalam tim yang bertanggung jawab tetapi tidak bertanggung jawab untuk memberikan otomatisasi, alat dan infrastruktur untuk penyediaan dan penyebaran solusi, kadang-kadang juga termasuk mengoperasikan perangkat lunak - dalam pikiran saya , yang terakhir inilah yang sebenarnya mewakili DevOps.
DevOps yang dilembagakan - di mana tim proyek bersama-sama bertanggung jawab atas pengembangan dan pengoperasian paket perangkat lunak, membangun kepemilikan bersama dan loop umpan balik positif.
Praktik
Praktik DevOps yang sebenarnya dibangun di atas beberapa praktik lainnya, yaitu:
Masing-masing praktik di atas dibangun di atas yang lain, mungkin untuk tidak mengikuti praktik, namun, artinya siklus umpan balik penting tidak ada yang mungkin mengindikasikan "peluang yang hilang". Perbedaan utama antara mengikuti praktik-praktik lain dan DevOps adalah pengoperasian perangkat lunak dalam produksi .
Tiga Cara
Dalam The Phoenix Project Gene Kim dan rekan penulisnya menjelaskan tiga cara DevOps :
Sistem berpikir
Dalam pengalaman saya, membuat Pengembang mempertimbangkan Masalah Operasional dan persyaratan Non-fungsional mencapai tujuan ini. Ini sangat banyak bagian dari aspek budaya DevOps.
Amplifikasi dari Umpan Balik
Saya umumnya mencapai ini melalui Integrasi / Pengiriman / Penempatan Berkelanjutan dan pemantauan dan peringatan bersama, sehingga sangat cocok dengan komponen alat DevOps.
Budaya Eksperimen dan Pembelajaran Berkelanjutan
Ini sangat cocok di ruang budaya , meskipun sangat bergantung pada alat dan proses untuk memungkinkan budaya tumbuh.
sumber
Saya telah mendengar banyak sekali definisi DevOps. Mereka termasuk:
Tidak ada konsensus umum tentang apa DevOps sebenarnya adalah . Beberapa tahun yang lalu kami memiliki masalah yang sama dengan "Agile", dan itu memiliki definisi tertulis .
Ketika memperkenalkan konsep Anda kepada pendatang baru, saya akan fokus pada memperkenalkan konsep, daripada menerapkan label, atau mereka akan berakhir dengan mendengar definisi yang bertentangan dan menjadi bingung. Misalnya, jika Anda mencoba berbicara tentang infrastruktur sebagai kode , beri tahu mereka bahwa Anda berbicara tentang infrastruktur sebagai kode. Semakin spesifik Anda, semakin baik, bahkan dengan definisi yang disepakati sebagian besar perusahaan lebih berfokus pada bagian-bagian tertentu dari filosofi.
sumber
Definisi yang selalu saya gunakan dalam situasi ini adalah sebagai berikut:
“Budaya penciptaan perangkat lunak yang menekankan komunikasi dan kolaborasi antara pengembangan perangkat lunak dan tim operasi sembari mengotomatiskan proses pengiriman perangkat lunak dan perubahan infrastruktur. Tujuan dari DevOps adalah untuk membuat proses pengembangan, pengujian, dan penyebaran perangkat lunak sesering, secepat dan secepat mungkin. ”
Namun, bersama dengan definisi, penting juga bagi mereka untuk memahami MENGAPA kita membutuhkan DevOps. Pastikan untuk memberi tahu mereka bahwa DevOps mengurangi kerusakan perangkat lunak lebih cepat, memungkinkan manajemen sumber daya yang lebih baik, lebih sedikit kesalahan manusia, kontrol versi yang lebih baik, lingkungan operasi yang stabil dll.
sumber
Dengan makalah penelitian ilmiah berikut untuk mengeksplorasi secara tepat pertanyaan ini, "Apa itu DevOps", definisi turunan DevOps yang diusulkan adalah:
[Jabbari et al.] "Apa itu DevOps ?: Studi Pemetaan Sistematik tentang Definisi dan Praktek" (2016)
sumber
Devops adalah praktik pengembangan aplikasi penulisan yang domain bisnisnya beroperasi. Di mana sebagian besar pengembangan aplikasi berfokus pada membangun aplikasi yang membiayai atau layanan kesehatan atau logistik atau video kucing, devops berfokus pada aplikasi yang memungkinkan pembangunan, penyebaran, pemantauan, dan pengumpulan metrik.
Tujuan utama harus selalu memungkinkan pembuat keputusan untuk menjadi pengambil keputusan . Bayangkan aplikasi seluler bank Anda. Ketika Anda meminta transfer, itu terjadi ketika Anda menekan tombol. Anda membuat keputusan, lalu mengambil keputusan. Hal yang sama dengan operasi Anda. Ketika orang yang tepat memutuskan beberapa pekerjaan siap untuk disebarkan ke produksi, mereka harus dapat menekan tombol dan "Hal Benar Terjadi". Demikian pula, mereka harus memiliki semua informasi yang diperlukan yang mereka butuhkan untuk membuat keputusan bisnis yang benar.
Ini bukan tentang memberi pebisnis akses shell ke server - itu tujuan membingungkan dengan implementasi. Ini tentang memberikan kenop dan tuas yang tepat dengan informasi yang benar dan pagar pengawal yang tepat untuk orang yang tepat sehingga pengambil keputusan adalah pengambil keputusan.
sumber
whose business domain is operations
: Kemungkinan untuk memperluas ini, atau memberikan beberapa contoh?