Mengapa administrator, pengembang, dan penguji sistem harus mempelajari praktik DevOps?



Ke mana harus pergi dengan pengetahuan ini, apa yang harus dilakukan dalam proyek dan berapa banyak untuk mendapatkan, apa yang harus dikatakan dan ditanyakan dalam wawancara, kata Alexander Titov, managing partner Express 42 dan penulis kursus online "DevOps Practices and Tools" .

Halo! Meskipun istilah DevOps telah ada sejak 2009, masih belum ada konsensus di komunitas Rusia. Tentunya, Anda memperhatikan bahwa beberapa orang menganggap DevOps sebagai spesialisasi, yang lain - sebuah filosofi, yang lain di bawah istilah tersebut berarti seperangkat teknologi. Saya sudah memberikan ceramah berkali-kali tentang pengembangan daerah ini, jadi saya tidak akan membahas secara terperinci dalam artikel ini. Saya hanya bisa mengatakan bahwa kami di Express 42 memasukkan yang berikut ke dalamnya:

DevOps - teknik khusus, budaya menciptakan produk digital, ketika semua spesialis dalam tim berpartisipasi dalam produksi.

Dalam pengembangan perusahaan klasik, semuanya berjalan berurutan: pemrograman, pengujian, dan hanya kemudian eksploitasi, dan kecepatan proses seperti itu dari ide ke produksi adalah 3 bulan. Untuk produk digital, ini adalah masalah global, karena Anda tidak dapat segera menerima umpan balik dari pelanggan.

Di DevOps, alat dan pendekatan dipertajam sehingga pengembangan, pengujian dan proses operasi diluncurkan secara bersamaan.

Apa yang mengikuti dari pendekatan ini?


  • Anda tidak dapat mempekerjakan "insinyur" tertentu yang akan datang dan menyelesaikan semua masalah dengan produksi. Seluruh tim harus menerapkan teknik ini.


  • DevOPS BUKAN bentuk sysadmin selanjutnya yang bisa Anda tingkatkan. Insinyur DevOps terdengar sangat mirip dengan Agile Developer.



  • Jika tim menggunakan Kubernetes, Ansible, Prometheus, Mesosphere dan Docker, ini tidak berarti bahwa praktik DevOps diterapkan di sana.





Kehidupan setelah DevOps tidak akan sama


Pendekatan DevOps, pertama-tama, adalah cara berpikir yang berbeda, persepsi tentang perkembangan secara keseluruhan dan tempatnya dalam proses. Kami membagi kursus online kami menjadi 2 blok:

1. Penentuan nasib sendiri

Pertama, kami menganalisis esensi dari pendekatan DevOps secara terperinci, dan siswa menemukan peran baru dalam tim, melihat mana yang merespons lebih dan menentukan sendiri cara pengembangan yang mana.

2. Alat dan Praktek

Siswa menguasai teknologi khusus dalam hal metode DevOps.

Perangkat DevOps dapat digunakan baik dalam pendekatan DevOps dan dalam pengembangan klasik. Contoh paling jelas adalah menggunakan alat manajemen konfigurasi Ansible. Itu dibuat dan dikandung untuk menerapkan praktik DevOps "Infrastruktur sebagai kode", yang berarti bahwa keadaan yang berbeda dari sistem dijelaskan dari pengaturan sistem operasi ke perangkat lunak aplikasi. Deskripsi ini dibagi menjadi beberapa lapisan dan memungkinkan Anda mengelola konfigurasi kompleks yang terus berubah. Namun seringkali, insinyur menggunakan Ansible sebagai cara untuk mengeksekusi skrip bash pada banyak mesin. Ini tidak buruk dan tidak baik, tetapi Anda harus memahami bahwa kehadiran Ansible tidak menjamin kehadiran DevOps di perusahaan.

Bersama kami selama kursusAnda akan terjun ke dalam proses pengembangan aplikasi yang mirip dengan Reddit yang terkenal, pertama dengan versi monolitiknya, melanjutkan langkah demi langkah ke layanan-layanan mikro. Langkah demi langkah kita akan belajar alat baru: Git, Ansible, Gitlab dan selesaikan Kubernetes dan Prometheus.

Dengan berlatih, kami akan mengikuti taktik dari tiga jalur yang dijelaskan dalam Buku Pegangan DevOps - praktik pengiriman berkelanjutan, praktik umpan balik, dan inti dari seluruh kursus pendidikan berkelanjutan dengan sistem Anda.

Apa yang diberikan pengetahuan ini kepada masing-masing spesialis?


Administrator sistem


Praktik-praktik akan memungkinkan pemindahan dari administrasi ke arah menciptakan jalur pengiriman yang berkelanjutan dan platform pengiriman perangkat lunak infrastruktur. Intinya adalah ia menciptakan produk - platform infrastruktur untuk pengembang, yang membantu mereka dengan cepat mempromosikan perubahan dalam produksi.

Sebelumnya, administrator sistem adalah benteng terakhir, setelah semuanya menjadi produksi. Dan pada dasarnya mereka terlibat dalam pemadaman kebakaran secara terus menerus - mengingat sulitnya untuk mempelajari kebutuhan bisnis, memikirkan produk dan manfaatnya bagi pengguna.
Berkat metode DevOps, pemikiran berubah. Administrator sistem memahami cara menerjemahkan konfigurasi ke dalam kode, yang ada untuk praktik ini.

Ini penting karena perusahaan semakin menyadari bahwa mereka tidak hanya perlu mengotomatiskan segalanya dan segalanya, yaitu. pada apa, pada dasarnya, administrator sistem sekolah lama terbiasa melakukan, yang, ditambah, mereka tidak berkomunikasi banyak dan tidak memberi tahu tim tentang semua perubahan yang dibuat. Sekarang tim mencari mereka yang akan menjadi produsen produk infrastruktur internal dan membantu menggabungkan proses yang dibagi menjadi satu.

Kepada pengembang


Pengembang berhenti berpikir hanya dengan algoritma. Ia memperoleh keterampilan bekerja dengan infrastruktur, keterampilan kesadaran arsitektur lansekap. Pengembang seperti itu memahami cara kerja aplikasi, bagaimana melalui jalur pengiriman yang berkelanjutan, bagaimana memonitornya, bagaimana cara mengamankannya, sehingga menguntungkan klien. Akibatnya, semua pengetahuan ini memungkinkan Anda untuk menulis kode yang relevan.

Penguji


Pengujian telah lama beralih ke mode otomatis, kita semua mengatakan bahwa banyak pengujian tidak boleh dilakukan, tetapi tertulis :) Pengujian menjadi bagian dari keseluruhan pipa untuk mengirimkan produk Anda. Penguji tidak hanya perlu belajar cara menulis kode, tetapi juga untuk memahami cara mengintegrasikannya ke dalam sistem pengiriman berkelanjutan, cara menerima umpan balik dari kode pada semua tahap pengiriman, cara meningkatkan pengujian secara konstan untuk mendeteksi kesalahan sedini mungkin.

Jadi ternyata ketiga tahap itu terjadi secara bersamaan . Sebagai contoh, mungkin terlihat seperti ini:

Pengembang menulis kode, segera menulis tes untuk itu dan menggambarkan wadah buruh pelabuhan untuk kode yang harus dijalankan. Ini juga segera menggambarkan pemantauan yang akan memantau operasi layanan ini dalam produksi, dan semua ini dilakukan.

Ketika integrasi berkelanjutan dimulai, proses berjalan secara bersamaan. Layanan dimulai, dapat dikonfigurasi. Pada saat yang sama, wadah buruh pelabuhan dimulai, diperiksa apakah berfungsi. Pada saat yang sama, semua informasi masuk ke sistem logging. Dan pada setiap tahap pengembangan - ternyata kerja tim nyata dari administrator sistem, pengembang dan penguji.

Belajar DevOps, lalu apa?


Seperti yang Anda tahu, satu di lapangan bukan prajurit. Jika perusahaan Anda tidak menggunakan metode ini, keterampilan yang diperoleh akan menganggur. Dan setelah bertemu dengan pendekatan DevOps, kemungkinan besar, Anda tidak akan ingin menjadi roda penggerak dalam pengembangan perusahaan. Ada satu pengecualian: Anda adalah administrator sistem di tim dan Anda dapat membangun kembali semua proses dengan cara baru. Di sini perlu ditambahkan bahwa ada banyak perusahaan yang menggunakan pendekatan ini, dan mereka tidak terpengaruh oleh penguncian dan mencari spesialis. Karena DevOps adalah tentang menciptakan produk online.
Dan sekarang tentang hal yang menyenangkan: memiliki praktik dan alat DevOps sekitar + 30% dari nilai Anda di pasar tenaga kerja. Gaji dimulai dari 140 ribu rubel, tetapi ditentukan, tentu saja, berdasarkan spesialisasi dan fungsi utama Anda.

Anda dapat melihat lowongan yang bertanda “dengan fokus pada infrastruktur”, di mana terdapat otomatisasi pengujian, pengembangan aplikasi layanan mikro menggunakan teknologi cloud, lowongan insinyur infrastruktur, dan segala macam referensi untuk DevOps. Ingatlah bahwa setiap perusahaan memiliki arti berbeda berdasarkan definisi ini - baca deskripsi dengan cermat.

Selama peluncuran kursus kami, wawasan datang kepada saya - banyak orang setelah kursus jatuh ke dalam perangkap seorang insinyur DevOps. Mereka menemukan lowongan dengan nama yang disebutkan di atas, mendapatkan penawaran yang bagus, dan kemudian mereka mulai bekerja dan memahami bahwa mereka harus mendukung skrip bash tiga halaman di Jenkins. Dan di mana Kubernetes, ChatOps, rilis kenari, dan hanya itu? Dan tidak ada apa-apa, karena perusahaan tidak membutuhkan DevOps, sebagai metodologi, tetapi menggunakan inovasi terpisah.

Ini adalah kesempatan untuk secara intensif mencari tahu dari perusahaan bagaimana proses pengiriman perangkat lunak diatur, tumpukan teknologi dan tanggung jawab apa yang akan Anda penuhi.

Jika majikan menjawab pertanyaan Anda secara abstrak, seperti dalam buku, tanpa perincian, maka kemungkinan besar perusahaan belum memiliki proses DevOps, tetapi ini bukan alasan untuk menolak, mempelajari perusahaan dan produk-produknya, apakah ada layanan online yang dikembangkan sendiri oleh perusahaan, aplikasi seluler , ide produk.

Jika ya, maka tentukan apakah Anda harus bekerja secara langsung dengan sistem ini atau apakah mungkin untuk pindah secara horizontal ke tim layanan ini sambil menunjukkan hasil yang baik dalam praktik DevOps. Jika demikian, maka layak untuk dijalankan dan aktif dan membantu, dan jika Anda menyelesaikan kursus kami, maka yang terakhir dijamin.

Penting untuk dicatat bahwa nilai sebenarnya dari praktik Devops hanya diperoleh jika Anda memiliki pengalaman dalam pengembangan / administrasi / pengujian. Hanya dengan demikian pengetahuan tidak akan abstrak, tetapi memperkaya spesialis (dalam segala hal). Oleh karena itu, ide "belajar merancang dari awal" hampir sama dengan belajar untuk "menggunakan lensa dari awal" jika Anda belum pernah memegang kamera di tangan Anda atau mengarahkan bidikan. Untuk membantu Anda memutuskan apakah kursus ini cocok untuk Anda, kami melakukan tes pengantar yang akan menguji tingkat pengetahuan yang memadai.

Saya pikir salah satu chip saja- fakta bahwa selama pelatihan setiap siswa menentukan untuk dirinya sendiri ke arah mana dia ingin berkembang. Kami sering mengamati transisi ketika pengembang menjadi insinyur infrastruktur, dan administrator memahami bahwa ia tertarik untuk menulis kode - kemudian ia juga mempelajari bahasa dan menambahkannya dengan keterampilan DevOps yang didapat. Karena itu, kami sangat menantikan mereka yang merasa bahwa karirnya macet di persimpangan jalan. Kursus dimulai pada 28 Mei, tetapi Anda dapat bergabung 2 minggu setelah dimulainya kelas. Anda dapat menonton program dan mengikuti tes di sini . Sampai jumpa di OTUS!

All Articles