Apa metodologi DevOps dan siapa yang membutuhkannya

Kami memahami apa esensi dari metodologi ini dan kepada siapa itu dapat bermanfaat.

Kami juga akan berbicara tentang spesialis DevOps: tugas, gaji, dan keterampilan mereka.


Foto oleh Matt Moor / Flickr / CC BY-SA

Apa itu DevOps


DevOps adalah metodologi pengembangan perangkat lunak yang tugasnya adalah untuk membangun interaksi pemrogram dan administrator sistem dalam suatu perusahaan. Jika profesional TI dari berbagai departemen tidak memahami esensi dari tugas masing-masing, rilis aplikasi baru dan pembaruan untuk mereka tertunda.

DevOps membentuk siklus pengembangan yang "mulus", sehingga membantu mempercepat pelepasan produk perangkat lunak. Akselerasi dicapai melalui pengenalan sistem otomasi. Plus, programmer mulai berpartisipasi dalam menyiapkan server dan menemukan bug, misalnya, mereka dapat menulis tes otomatis.

Dengan demikian, interaksi antar departemen terjalin. Karyawan mulai lebih memahami tahap apa yang dilalui produk perangkat lunak sebelum jatuh ke tangan pengguna.

Ketika pengembang memahami apa yang dihadapi administrator ketika mengatur server, ia akan mencoba untuk melicinkan kemungkinan "sudut tajam" dalam kode. Ini mengurangi jumlah bug saat menggunakan aplikasi - menurut statistik, itu berkurang sekitar lima kali.

Siapa yang butuh dan tidak membutuhkan metodologi


Banyak pakar TI percaya bahwa DevOps akan menguntungkan organisasi mana pun yang mengembangkan perangkat lunak. Ini benar bahkan jika perusahaan adalah konsumen sederhana layanan TI dan tidak mengembangkan aplikasi sendiri. Dalam hal ini, implementasi budaya DevOps akan membantu fokus pada inovasi.

Startup adalah pengecualian, tetapi di sini semuanya tergantung pada ukuran proyek. Jika tujuan Anda adalah meluncurkan produk yang layak minimum (MVP) untuk menguji ide baru, maka Anda dapat melakukannya tanpa DevOps. Sebagai contoh, pendiri Groupon pada awal pekerjaan pada layanan itu sendiri secara manual memposting semua penawaran di situs dan mengumpulkan pesanan. Dia tidak menggunakan alat otomasi.

Menerapkan metodologi dan alat otomatisasi hanya masuk akal ketika aplikasi mulai mendapatkan popularitas. Ini akan membantu membangun proses bisnis dan mempercepat pelepasan pembaruan.

Bagaimana cara mengimplementasikan DevOps


Selanjutnya, beberapa rekomendasi untuk transisi ke metodologi baru.

Identifikasi masalah dalam proses bisnis. Sebelum menerapkan metodologi, sorot tujuan dan masalah organisasi. Strategi untuk beralih ke DevOps akan bergantung pada mereka. Untuk melakukan ini, buat daftar pertanyaan, misalnya:

  • Apa yang paling memakan waktu untuk memperbarui perangkat lunak?
  • Apakah mungkin untuk mengotomatiskan proses ini?
  • Apakah struktur organisasi memengaruhinya?

Rincian tentang mengidentifikasi masalah dalam organisasi dapat ditemukan dalam buku " Project Phoenix" dan " DevOps Guide " dari penulis metodologi.

Ubah budaya di perusahaan. Penting untuk meyakinkan semua karyawan untuk mengubah cara kerja mereka yang biasa dan memperluas jangkauan kompetensi mereka. Misalnya, di Facebook, semua programmer bertanggung jawab atas seluruh siklus hidup aplikasi: dari penulisan kode hingga implementasi. Juga di Facebook tidak ada departemen pengujian yang terpisah - tes ditulis oleh pengembang sendiri.

Mulai dari yang kecil. Pilih proses yang paling memakan waktu dan upaya ketika merilis pembaruan, dan mengotomatiskannya. Ini bisa berupa pengujian atau proses penerapan aplikasi. Para ahli menyarankan hal pertama untuk mengimplementasikan alat kontrol versi terdistribusi. Dengan mereka lebih mudah untuk mengelola sumbernya. Di antara solusi ini, yang paling terkenal adalah Git, Mercurial, Subversion (SVN) dan CVS.

Penting juga memperhatikan sistem integrasi berkelanjutan yang bertanggung jawab untuk perakitan dan pengujian produk akhir. Contoh alat tersebut adalah Jenkins, TeamCity, dan Bamboo.

Ukur peningkatan. Kembangkan metrik efektivitas solusi tertanam dan buat daftar periksa. Metrik dapat berupa frekuensi rilis, waktu yang dihabiskan untuk mengerjakan fungsi perangkat lunak, dan jumlah bug dalam kode. Diskusikan hasilnya tidak hanya dengan manajer, tetapi juga dengan seluruh tim yang terlibat dalam proyek. Tanyakan alat apa yang hilang. Ingatlah permintaan ini ketika lebih mengoptimalkan proses Anda.

Kritik terhadap DevOps


Meskipun metodologi membantu organisasi membuat keputusan tentang pengembangan aplikasi lebih cepat, mengurangi jumlah bug perangkat lunak dan mendorong karyawan untuk mempelajari hal-hal baru, metodologi ini juga memiliki kritik.

Dipercaya bahwa pemrogram tidak harus memahami rincian pekerjaan administrator sistem. Diduga, DevOps mengarah pada fakta bahwa alih-alih spesialis dalam pengembangan atau administrasi, orang-orang muncul di perusahaan yang memahami segalanya, tetapi secara dangkal.

Dipercaya juga bahwa DevOps tidak bekerja dengan manajemen yang buruk. Jika tim pengembang dan administrator tidak memiliki tujuan bersama, ini adalah kesalahan manajer yang tidak mengatur interaksi antara tim. Untuk mengatasi masalah ini, kita tidak perlu metodologi baru, tetapi sistem untuk mengevaluasi manajer berdasarkan umpan balik dari bawahan. Di sini Anda dapat membaca pertanyaan apa yang harus dimasukkan dalam formulir survei untuk karyawan .


Foto Ed Ivanushkin / Flickr / CC BY-SA

Siapa Insinyur DevOps


Insinyur DevOps menerapkan metodologi DevOps. Ini menyinkronkan semua tahap pembuatan produk perangkat lunak: dari menulis kode hingga menguji dan merilis aplikasi. Spesialis seperti itu mengendalikan departemen pengembangan dan administrasi, plus mengotomatiskan pelaksanaan tugas mereka dengan memperkenalkan berbagai perangkat lunak.

Fitur dari insinyur DevOps adalah bahwa ia menggabungkan banyak profesi: admin, pengembang, penguji, dan manajer.

Joe Sanchez, penginjil DevOps dari VMware, sebuah perusahaan perangkat lunak virtualisasi, menguraikan sejumlah keterampilan yang harus dimiliki seorang insinyur DevOps. Selain pengetahuan yang jelas tentang metodologi DevOps, orang ini harus memiliki pengalaman dalam mengelola Windows dan Linux dan pengalaman dengan alat otomatisasi seperti Chef , Puppet , Ansible . Ia juga harus dapat menulis skrip dan kode dalam beberapa bahasa dan memahami teknologi jaringan.

Insinyur DevOps bertanggung jawab atas otomatisasi tugas yang terkait dengan konfigurasi dan penyebaran aplikasi. Pemantauan perangkat lunak juga ada di pundaknya. Untuk mengatasi masalah ini, ia menggunakan berbagai sistem manajemen konfigurasi, solusi virtualisasi dan alat cloud untuk menyeimbangkan sumber daya.

Siapa yang mempekerjakan


Insinyur DevOps dapat memberi manfaat bagi organisasi mana pun yang bisnisnya melibatkan pengembangan aplikasi atau mengelola sejumlah besar server. Raksasa TI seperti Amazon, Adobe, dan Facebook merekrut insinyur DevOps. Mereka juga bekerja untuk Netflix, Walmart dan Etsy.

Hanya startup yang tidak mempekerjakan insinyur DevOps. Tugas mereka adalah merilis produk yang layak untuk menguji ide baru. Dalam kebanyakan kasus, startup dapat dilakukan tanpa DevOps.

Berapa yang mereka bayar


Insinyur DevOps menghasilkan paling banyak di industri ini. Gaji rata-rata dari spesialis semacam itu di dunia adalah 100 hingga 125 ribu dolar setahun.

Di AS mereka menerima 90 ribu dolar setahun (500 ribu rubel per bulan). Di Kanada, mereka dibayar 122 ribu dolar per tahun (670 ribu rubel per bulan), dan di Inggris - 67,5 ribu pound per tahun (490 ribu rubel per bulan).

Adapun Rusia, perusahaan Moskow siap membayar spesialis DevOps dari 100 hingga 200 ribu rubel sebulan. Di St. Petersburg, pengusaha sedikit lebih murah hati - mereka menawarkan 160-360 ribu rubel sebulan. Di daerah, gajinya 100-120 ribu rubel per bulan.

Bagaimana menjadi Spesialis DevOps


DevOps adalah arah yang relatif baru di bidang TI, sehingga tidak ada daftar persyaratan yang ditetapkan untuk insinyur DevOps. Dalam lowongan, persyaratan untuk posisi ini termasuk keterampilan administrasi Debian dan CentOS dan kemampuan untuk bekerja dengan array RAID disk.

Berdasarkan ini, kita dapat menyimpulkan bahwa, pertama-tama, insinyur DevOps harus memiliki pandangan teknis yang baik. Penting bagi orang seperti itu untuk terus-menerus mempelajari alat dan teknologi baru.

Cara termudah untuk menjadi insinyur DevOps adalah dengan administrator sistem atau pengembang. Mereka sudah memiliki sejumlah keterampilan yang hanya perlu dikembangkan. Tugas utama adalah untuk memperketat seperangkat pengetahuan minimum tentang DevOps, memahami cara bekerja dengan alat otomatisasi dan mengisi kesenjangan dalam keterampilan administrasi, pemrograman, dan virtualisasi.

Untuk memahami di mana pengetahuan masih kurang, Anda dapat menggunakan mini-Wikipedia di GitHub atau peta mental . Penduduk Hacker News juga merekomendasikan untuk membaca buku Phoenix Project dan DevOps Guide (yang kami sebutkan di atas) dan DevOps Philosophy. Seni Manajemen TI ”di bawah tanda tangan O'Reilly Media.

Anda juga dapat berlangganan buletin Devops Weekly , membaca artikel dari portal tematik DZone dan mulai mengobrol dengan teknisi DevOps di Slack chat . Anda juga perlu menjelajahi kursus gratis tentang Udacity atau edX .

Posting dari blog kami:

Source: https://habr.com/ru/post/id447742/


All Articles