
Beberapa tahun yang lalu, banyak organisasi memandang DevOps sebagai percobaan yang menjanjikan, bukan pendekatan dasar untuk pengembangan perangkat lunak. Sekarang DevOps adalah seperangkat praktik pengembangan dan penerapan dan alat yang terbukti dan kuat yang mempercepat rilis produk baru dan meningkatkan produktivitas. Lebih penting lagi, efek DevOps ditujukan pada pertumbuhan bisnis secara keseluruhan dan meningkatkan profitabilitasnya.
Tim
Cloud Solutions Mail.ru menerjemahkan yang paling menarik dari
Accelerate State of DevOps Report 2019 , yang disusun oleh para ahli dari DevOps Research & Assessment (DORA). Studi ini melibatkan 31.000 profesional dari seluruh dunia. Mari kita lihat apa yang telah berubah di industri pada 2019 dan bagaimana sebuah bisnis dapat meningkatkan efisiensi pengiriman perangkat lunak.
Bagaimana dampak ukuran industri dan perusahaan DevOps
Studi ini tidak mengidentifikasi hubungan antara kinerja DevOps dan industri organisasi, dengan pengecualian ritel, di mana kinerja sedikit lebih baik. Ini, khususnya, disebabkan oleh kenyataan bahwa pengecer perlu dengan cepat menanggapi fluktuasi permintaan dan kebutuhan pelanggan. Menurut penelitian, setiap perusahaan, termasuk sektor keuangan dan sektor publik, dapat mencapai tingkat tinggi di DevOps.
Indikator kinerja DevOps di perusahaan dengan lebih dari 5.000 karyawan lebih rendah daripada di perusahaan dengan kurang dari 5.000 karyawan. Kemungkinan besar, ini disebabkan oleh fakta bahwa dalam organisasi besar, proses yang lebih besar, kontrol yang lebih ketat, arsitektur sistem TI yang lebih rumit, yang menyebabkan penundaan dalam proses pengembangan dan peluncuran kode. Pada saat yang sama, para ahli percaya bahwa skala perusahaan tidak menghalangi kesuksesan dalam membangun DevOps, hanya dalam beberapa kasus mungkin memerlukan lebih banyak usaha.
Bagaimana cara mengevaluasi tingkat DevOps dalam suatu perusahaan
Para ahli membandingkan proses DevOps dengan tolok ukur, membagi peserta survei menjadi empat kelompok dengan indikator terbaik, baik, sedang, dan rendah.
Empat metrik kunci untuk mengevaluasi efektivitas DevOps diambil untuk laporan: waktu yang dibutuhkan untuk menyelesaikan perubahan selama pengembangan perangkat lunak, frekuensi penyebaran, frekuensi kegagalan, dan waktu pemulihan.
Empat tingkat DevOps - mengevaluasi di mana perusahaan Anda berada:
Studi ini mengungkapkan tren berikut: jumlah tim dengan indikator tingkat tinggi hampir tiga kali lipat, meningkat dari 7% dari semua responden pada 2018 menjadi 20% pada 2019.
Distribusi tim pengembangan berdasarkan tingkat kinerja.Dibandingkan dengan tim dalam grup berkinerja rendah, tim DevOps berkinerja tinggi:
- Diselesaikan 208 kali lebih banyak penyebaran kode.
- 106 kali lebih sedikit waktu yang dihabiskan untuk menggunakan kode.
- 7 kali lebih kecil kemungkinannya mengalami kegagalan.
- 2,604 kali lebih cepat untuk mengembalikan perangkat lunak setelah kegagalan.
Selain itu, tim DevOps dengan skor tinggi dua kali lebih mungkin untuk mencapai atau melampaui metrik kinerja organisasi mereka daripada tim dengan skor rendah.
Banyak ahli berpikir bahwa tidak mungkin untuk mencapai peningkatan dalam semua indikator pada saat yang sama, kita harus berkompromi. Jadi, beberapa orang percaya bahwa meningkatkan kecepatan peluncuran rilis dapat mempengaruhi keandalan proses pengiriman perangkat lunak dan penyediaan layanan. Namun, penelitian telah menunjukkan bahwa kecepatan dan stabilitas hasil tidak saling eksklusif.
Dalam pertumbuhan jumlah tim DevOps, saya tidak melihat sesuatu yang mengejutkan, itu logis: filosofi DevOps sekarang populer, dan jumlah startup semakin meningkat.
Tapi, menurut saya, para ahli memilih parameter yang tidak tepat untuk mengevaluasi efektivitas DevOps.
Mengevaluasinya dengan kecepatan meluncurkan kode setidaknya aneh. Ini hanya berlaku untuk start-up, di mana parameter kunci akan menjadi kecepatan di mana produk dibawa ke pasar, dan seringkali produk ditampilkan dalam bentuk mentah. Dalam keadaan seperti itu, mekanisme yang mempercepat pengembangan dan pengiriman produksi sangat penting. Tetapi untuk perangkat lunak yang sudah mapan, seperti keuangan atau medis, parameter frekuensi kegagalan mungkin tidak ada - kegagalan mungkin tidak dapat diterima.
Demikian pula, dengan waktu pemulihan suatu layanan: untuk layanan apa pun yang dikembangkan, layanan tersebut harus dihitung dalam hitungan detik, dan bagi banyak layanan, layanan sederhana tidak dapat diterima, karena ini mereka menciptakan teknologi rolling yang mulus (misalnya, hijau / biru).
Juga, jangan fokus pada jumlah penyebaran kode - itu tergantung pada kebutuhan dan kompetensi tim pengembangan. Jika penyebaran melibatkan penambahan fungsionalitas baru, ini adalah satu hal, dan jika memperbaiki kesalahan yang dilakukan selama penerapan sebelumnya benar-benar berbeda.
Denis Romanenko, pakar lepas Solusi Cloud Mail.ruCara meningkatkan proses DevOps
Laporan ini menyajikan dua bidang yang akan membantu meningkatkan DevOps: meningkatkan efisiensi pengembangan dan pengiriman perangkat lunak dan meningkatkan produktivitas.
Masing-masing arahan mencakup komponennya sendiri, sehingga Anda dapat mencapai tujuan yang diinginkan.Menurut laporan itu, kunci transformasi digital adalah budaya perusahaan. Tim DevOps yang sangat efektif membutuhkan budaya kepercayaan dan keamanan psikologis, pemahaman tentang hasil kerja dan tujuan yang jelas. Lingkungan seperti itu memungkinkan anggota tim untuk membuat keputusan yang tepat, mengungkapkan pendapat mereka dan menjadi lebih kreatif.
Teknologi cloud, pengiriman berkelanjutan, pengujian pemulihan bencana, dan manajemen perubahan juga akan membantu meningkatkan efisiensi pengembangan dan pengiriman perangkat lunak. Produktivitas tenaga kerja dapat ditingkatkan dengan berinvestasi pada alat yang mudah digunakan, mengurangi hutang teknis, yaitu, mengurangi persentase kode yang tidak efisien dan teknologi yang usang, mengorganisir basis pengetahuan perusahaan dan akses ke solusi eksternal.
Saya pikir metodologi dan ideologi DevOps tepat bahwa proses ini tidak tergantung pada kondisi eksternal, seperti cloud atau perangkat keras Anda sendiri. Cloud itu sendiri tidak lebih dari sebuah alat, di suatu tempat ia akan membantu, di suatu tempat ia akan menghalangi atau tidak akan diminati.
Denis Romanenko, pakar lepas Solusi Cloud Mail.ruDi bawah ini kita akan melihat beberapa komponen yang meningkatkan kinerja tim DevOps.
Teknologi cloud berkontribusi pada kesuksesan DevOps
Pada tahun 2019, semakin banyak organisasi yang memilih solusi cloud yang secara signifikan meningkatkan produktivitas tim DevOps.
Infrastruktur apa yang menggunakan perintah DevOps.DORA menemukan bahwa 80% responden meng
- host
aplikasi inti atau layanan pada platform cloud . Namun demikian, hanya 29% responden yang menerapkan kelima karakteristik utama komputasi awan di Institut Standar dan Teknologi Nasional - ini adalah standar paling penting untuk mengevaluasi nilai cloud dalam DevOps.
Platform as a Service (PaaS) semakin bergerak menuju model penyebaran yang berpusat di sekitar kontainer. Platform cloud menyederhanakan penyebaran perangkat lunak, sehingga tim hanya perlu khawatir menjalankan kode aplikasi itu sendiri. Penskalaan, perencanaan sumber daya, administrasi dan pemeliharaan infrastruktur juga menjadi perhatian penyedia.
Untuk penyedia cloud, standar universal adalah penyediaan berbagai layanan: jaringan mesin virtual, identitas dan kontrol akses (IAM), penyimpanan dan basis data, pembelajaran mesin, Internet of things (IoT), solusi wadah, solusi keamanan, solusi keamanan, dan lainnya.
Klien penyedia cloud hanya membayar sumber daya yang mereka gunakan, yang memastikan transparansi biaya, berbeda dengan pusat data tradisional, di mana informasi mengenai biaya pengembangan sulit atau tidak mungkin diperoleh. Responden dari perusahaan yang memenuhi karakteristik cloud yang tercantum di atas adalah 2,6 kali lebih akurat dalam memperkirakan biaya pekerjaan perangkat lunak, 2 kali lebih sering memahami aplikasi mana yang menggunakan lebih banyak sumber daya, dan 1,65 kali lebih sering tetap dalam anggaran yang dialokasikan untuk TI.
Kadang-kadang ternyata lebih menguntungkan untuk menyewa spesialis yang kompeten dan mengambil kapasitas yang dialokasikan di pusat data daripada membayar untuk cloud. Pilihan mana yang lebih baik tergantung pada profil dan skala perusahaan, ketersediaan staf spesialis dan keahlian IT-nya sendiri. Misalnya, cloud nyaman digunakan pada awal bisnis atau jika perusahaan tidak memiliki departemen TI sendiri. Saat melakukan penskalaan, mungkin lebih hemat biaya untuk memuat semua atau sebagian infrastruktur di lokasi.
Denis Romanenko, pakar lepas Solusi Cloud Mail.ruPraktik Teknis DevOps
Banyak organisasi yang ingin menerapkan DevOps mencari serangkaian instruksi atau praktik terbaik. Namun, tidak ada perusahaan yang identik, oleh karena itu, praktik apa yang harus dipilih tergantung pada kondisi bisnis saat ini dan tujuannya.
Pada saat yang sama, ada arahan umum yang membantu meningkatkan efisiensi DevOps: beberapa di antaranya dikembangkan di tingkat tim, yang lain membutuhkan upaya di tingkat organisasi.
Apa arah pertumbuhan untuk tim DevOps di 2019:
Studi ini mengkonfirmasi dampak positif dari arsitektur yang digabungkan secara longgar pada kinerja DevOps.
Arsitektur yang digabungkan secara longgar adalah ketika tim dapat secara independen menguji, menggunakan, dan memodifikasi sistem sesuai permintaan, terlepas dari tim lain, tanpa dukungan tambahan, sumber daya, persetujuan, dengan umpan balik yang lebih sedikit. Ini memungkinkan Anda untuk bekerja lebih efisien, tetapi membutuhkan tingkat organisasi dan manajemen yang tinggi.
Pendekatan ini hanya mungkin untuk startup dan dengan beberapa pemesanan. Perusahaan lain mungkin memiliki situasi yang berbeda. Contoh yang bagus: perbankan / fintech. Hanya solusi eksklusif yang dapat digunakan di sana, tetapi praktik DevOps akan diterapkan.
Denis Romanenko, pakar lepas Solusi Cloud Mail.ruTim DevOps yang sukses mengotomatiskan segalanya
Integrasi dan pengiriman berkelanjutan (CI / CD) memungkinkan Anda untuk membawa layanan dan aplikasi ke prod dengan lebih sedikit biaya dan risiko, serta mempertahankan rilis sesuai dengan tujuan organisasi.
CI / CD yang sukses juga berarti bahwa tim dapat menerapkan perubahan pada produksi sesuai permintaan, mereka dapat segera melihat umpan balik tentang kualitas penempatan, mereka dapat dengan cepat dikerjakan dan siklus penyebaran selanjutnya dapat ditingkatkan.
Laporan ini menunjukkan bahwa tim DevOps yang berhasil berinvestasi dalam berbagai proses, praktik, dan alat pendukung:
- 92% menggunakan alat perakitan otomatis;
- 87% menggunakan tes unit otomatis;
- 57% memperpanjang otomatisasi ke tes penerimaan;
- 72% mengotomatiskan penyebaran di lingkungan pengujian, 69% melakukan hal yang sama untuk penyebaran dalam produksi;
- 69% mengintegrasikan chatbots dalam proses penyebaran;
- 57% terintegrasi dengan alat pemantauan.
Penting untuk memilih alat dan teknologi yang tepat.
Saat membangun sistem yang kompleks dan mengelola infrastruktur bisnis yang kritis, penting untuk memilih teknologi berikut:
- yang mudah digunakan baik selama koneksi pertama dan dalam operasi konstan;
- yang membantu mencapai tujuan Anda.
Laporan tersebut memeriksa alat yang digunakan untuk menyebarkan perangkat lunak melalui CI / CD, dan menguji alat otomatisasi - ini adalah teknologi yang mendasari DevOps.
Teknologi apa yang menggunakan perintah DevOps:
Kenyamanan alat secara signifikan memengaruhi kemampuan tim untuk memaksimalkan nilai tumpukan teknologi yang dipilih: insinyur dengan teknologi yang mudah digunakan 1,5 kali lebih mungkin menjadi anggota tim dengan tarif tinggi.
Menurut pendapat saya, tabel ini memberikan perasaan bahwa untuk menjadi tim DevOps yang sukses, Anda harus mengikuti mod, dan bukan tugas teknis.
Seorang spesialis yang kompeten memilih alat untuk tugas tersebut, dan bukan sebaliknya. Untuk mengatasi masalah apa pun, selalu ada beberapa alat dan pendekatan. Alat spesifik ditentukan oleh: spesifikasi tugas; seberapa akrab staf dengan alat ini (seberapa besar ambang masuknya jika alat ini baru); komponen keuangan, jika ada.
Denis Romanenko, pakar lepas Solusi Cloud Mail.ruPemulihan bencana
Setiap organisasi yang pekerjaannya bergantung pada pengoperasian perangkat lunak harus memiliki
rencana pemulihan bencana . Laporan tersebut menunjukkan jenis pengujian toleransi bencana apa yang digunakan oleh berbagai perusahaan.
Apa jenis percobaan yang digunakan perusahaan untuk pemulihan bencana
Hanya 40% responden yang melakukan pengujian pemulihan bencana setiap tahun menggunakan satu atau lebih dari metode ini. Pada saat yang sama, perusahaan yang melakukan tes pemulihan bencana memiliki tingkat ketersediaan layanan yang lebih tinggi. Laporan tersebut menunjukkan bahwa tim DevOps dengan kinerja tinggi 1,4 kali lebih mungkin untuk memperhitungkan data uji pemulihan bencana dalam pengembangan perangkat lunak dan proses penyebaran.
Penting bahwa tim DevOps memiliki akses ke informasi
Menjaga kinerja perintah DevOps pada tingkat tinggi akan difasilitasi oleh pencarian informasi yang mudah untuk menyelesaikan masalah. Ini terutama benar dalam lingkungan teknologi modern, yang terdiri dari sistem yang kompleks.
Sumber informasi tersebut dapat dibagi menjadi dua kelompok:
- Sumber internal : dokumentasi perusahaan untuk membuat dan memelihara kode, basis pengetahuan perusahaan, repositori, dan banyak lagi. Tim DevOps yang menggunakan sumber pengetahuan internal 1,73 kali lebih produktif.
- Sumber eksternal : mesin pencari dan penambahan tumpukan. Tim DevOps eksternal 1,67 kali lebih produktif. Teknologi eksternal menawarkan keuntungan besar untuk pembelajaran dan pertumbuhan, terutama penggunaan cloud publik dan perangkat sumber terbuka.
Penting bagi perusahaan untuk mengurangi utang teknis
Utang teknis mencakup kode atau sistem dengan bug yang diketahui tetapi tidak diperbaiki; cakupan tes yang tidak memadai; kode atau desain berkualitas rendah; artefak yang tidak digunakan tetapi tidak dihapus; implementasi yang tidak dapat didukung oleh tim secara efektif; teknologi usang; dokumentasi tidak lengkap atau ketinggalan jaman.
Para ahli telah menemukan bahwa utang teknis mempengaruhi kinerja DevOps. Tim dengan utang teknis tinggi 1,6 kali lebih tidak produktif. Tim dengan tingkat tinggi 1,4 kali lebih mungkin memiliki hutang teknis yang rendah.
Temuan kunci dari penelitian DevOps
- Persentase tim DevOps berkinerja tinggi hampir tiga kali lipat pada 20%. Ini berarti bahwa bisnis memahami janji praktik untuk meningkatkan pengembangan dan pengiriman perangkat lunak, perusahaan secara aktif memperkenalkan DevOps di departemen TI mereka.
- Aplikasi dan pengiriman layanan yang cepat adalah jantung dari teknologi dan transformasi organisasi. Kecepatan dan stabilitas peluncuran rilis meningkatkan keuntungan dan kepuasan pelanggan.
- Teknologi cloud terus menjadi kunci untuk mencapai tim DevOps berkinerja tinggi. Menggunakan cloud memungkinkan Anda mengatur pengiriman perangkat lunak dengan kecepatan yang tepat, menyediakan ketersediaan, skalabilitas, dan produktivitas infrastruktur.
- Efektivitas tim DevOps dapat ditingkatkan jika Anda memperhatikan produktivitas anggota tim, memberikan suasana psikologis yang nyaman dan penggunaan alat yang mudah.
- Meningkatkan kecepatan peluncuran rilis dengan pendekatan yang tepat tidak mempengaruhi stabilitas layanan dan aplikasi perusahaan.