Sapa sing DevOps?

Ing wayahe, iki meh posisi paling larang ing pasar. Keributan ing sekitar insinyur "DevOps" ngluwihi kabeh watesan sing bisa dibayangake, lan luwih elek karo insinyur Senior DevOps.
Aku kerja minangka kepala departemen integrasi lan otomatisasi, guess decoding Inggris - DevOps Manager. Ora mungkin transkrip Inggris nggambarake kegiatan saben dinane, nanging versi Rusia ing kasus iki luwih akurat. Amarga sifat kegiatanku, wajar yen aku kudu wawancara karo anggota tim sing bakal teka, lan ing taun kepungkur, kira-kira 50 wong wis ngliwati aku, lan jumlah sing padha wis dipotong ing prescreen karo karyawanku.

Kita isih nggolek rekan kerja, amarga ing mburi label DevOps ana lapisan gedhe saka macem-macem insinyur sing ndhelik.

Kabeh sing ditulis ing ngisor iki minangka pendapat pribadi, sampeyan ora kudu setuju, nanging aku ngakoni yen bakal nambah warna kanggo sikap sampeyan menyang topik kasebut. Senadyan risiko tiba metu saka sih, Aku nerbitaké mratelakake panemume amarga aku pracaya sing wis Panggonan kanggo.

Perusahaan duwe pangerten sing beda babagan sapa insinyur DevOps lan, kanggo nyewa sumber daya kanthi cepet, dheweke nggantung label iki ing kabeh wong. Kahanan kasebut cukup aneh, amarga perusahaan wis siyap mbayar remunerasi sing ora nyata kanggo wong-wong iki, nampa, ing kasus-kasus, administrator alat kanggo wong-wong mau.

Dadi sapa insinyur DevOps?

Ayo diwiwiti kanthi riwayat penampilane - Operasi Pangembangan muncul minangka langkah liyane kanggo ngoptimalake interaksi ing tim cilik kanggo nambah kacepetan produksi produk, minangka akibat sing dikarepake. Ide iki kanggo nguatake tim pangembangan kanthi kawruh babagan prosedur lan pendekatan kanggo ngatur lingkungan produk. Kanthi tembung liyane, pangembang kudu ngerti lan ngerti cara produke ing kahanan tartamtu, kudu ngerti carane nyebarake produke, apa karakteristik lingkungan sing bisa diatur kanggo nambah kinerja. Dadi, sawetara wektu, pangembang kanthi pendekatan DevOps muncul. Pangembang DevOps nulis skrip mbangun lan kemasan kanggo nyederhanakake kegiatan lan kinerja lingkungan produksi. Nanging, kerumitan arsitektur solusi lan pengaruh bebarengan komponen infrastruktur liwat wektu wiwit ngrusak kinerja lingkungan; saben iterasi, pangerten sing luwih jero babagan komponen tartamtu dibutuhake, nyuda produktivitas pangembang amarga tambahan. biaya kanggo mangerteni komponen lan sistem tuning kanggo tugas tartamtu. Biaya pangembang dhewe tansaya tambah, biaya prodhuk bebarengan karo, syarat kanggo pangembang anyar ing tim mlumpat banget, amarga padha uga kudu nutupi tanggung jawab pembangunan "bintang" lan, mesthi, "lintang" dadi kurang. lan kurang kasedhiya. Wigati uga, ing pengalamanku, sawetara pangembang kasengsem ing spesifik pangolahan paket dening kernel sistem operasi, aturan rute paket, lan aspek keamanan host. Langkah logis ana kanggo narik kawigaten administrator sing menowo iki lan menehi tanggung jawab padha kanggo wong, kang, thanks kanggo pengalaman, wis bisa kanggo entuk pratondho padha ing biaya murah dibandhingake biaya pembangunan "bintang". Administrator kasebut diselehake ing tim lan tugas utamane yaiku ngatur lingkungan tes lan produksi, miturut aturan tim tartamtu, kanthi sumber daya sing diwenehake kanggo tim tartamtu iki. Iki carane, nyatane, DevOps muncul ing pikiran mayoritas.

Sebagean utawa rampung, liwat wektu, administrator sistem iki wiwit ngerti kabutuhan tim tartamtu iki ing lapangan pembangunan, carane nggawe urip luwih gampang kanggo pangembang lan tester, carane muter metu nganyari lan ora kudu nginep ing dina Jumuah ing kantor, mbenerake kasalahan penyebaran. Wektu liwati, lan saiki "lintang" minangka administrator sistem sing ngerti apa sing dikarepake para pangembang. Kanggo nyilikake impact, utilitas manajemen wiwit muncul; kabeh wong ngelingi cara sing lawas lan dipercaya kanggo ngisolasi tingkat OS, sing bisa nyilikake syarat keamanan, manajemen bagean jaringan, lan konfigurasi host minangka a kabèh lan, minangka asil, nyuda syarat kanggo "lintang" anyar.

A "apik" wis katon - docker. Kok apik tenan? Ya, mung amarga nggawe isolasi ing chroot utawa kunjara, uga OpenVZ, mbutuhake kawruh OS sing ora pati penting, ing kontras, sarana kasebut ngidini sampeyan nggawe lingkungan aplikasi sing terisolasi ing host tartamtu kanthi kabeh sing dibutuhake ing njero lan tangan. liwat reins pembangunan maneh, lan administrator sistem mung bisa ngatur karo mung siji inang, njamin keamanan lan kasedhiyan dhuwur - simplifikasi logis. Nanging kemajuan ora mandheg lan sistem maneh dadi luwih rumit, saya tambah akeh komponen, siji host ora nyukupi kabutuhan sistem lan perlu kanggo mbangun kluster, kita bali maneh menyang administrator sistem sing bisa mbangun sistem kasebut.

Siklus sawise siklus, macem-macem sistem katon sing nyederhanakake pangembangan lan / utawa administrasi, sistem orkestrasi katon, sing, nganti sampeyan kudu nyimpang saka proses standar, gampang digunakake. Arsitèktur microservice uga muncul kanthi tujuan kanggo nyederhanakake kabeh sing diterangake ing ndhuwur - hubungan sing luwih sithik, luwih gampang diatur. Ing pengalaman, aku ora nemu arsitektur rampung microservice, Aku bakal ngomong 50 kanggo 50 - 50 persen microservices, kothak ireng, mlebu, metu diproses, liyane 50 monolith ambruk, layanan ora bisa digunakake kanthi kapisah saka liyane. komponen. Kabeh iki maneh dileksanakake watesan ing tingkat kawruh loro pangembang lan administrator.

"Swings" padha ing tingkat kawruh pakar saka sumber tartamtu terus kanggo dina iki. Nanging kita digress sethitik, ana akeh TCTerms worth nyorot.

Build Engineer / Release Engineer

Insinyur khusus banget sing muncul minangka alat standarisasi proses lan rilis piranti lunak. Ing proses ngenalake Agile sing nyebar, mesthine ora dikarepake, nanging iki adoh saka kasus kasebut. Spesialisasi iki muncul minangka sarana standarisasi perakitan lan pangiriman piranti lunak ing skala industri, yaiku. nggunakake teknik standar kanggo kabeh produk perusahaan. Kanthi tekane DevOps, pangembang sebagian ilang fungsine, amarga para pangembang wiwit nyiapake produk kasebut kanggo dikirim, lan menehi prasarana sing ganti lan pendekatan kanggo ngirim kanthi cepet tanpa preduli saka kualitas, suwe-suwe dheweke dadi. stopper saka owah-owahan, wiwit ketaatan kanggo standar kualitas mesthi slows mudhun pangiriman. Dadi, mboko sithik, bagean saka fungsi insinyur Build / Release pindhah menyang pundhak administrator sistem.

Ops beda banget

Kita nerusake lan maneh ana macem-macem tanggung jawab lan kekurangan personel sing berkualitas nyurung kita menyang spesialisasi sing ketat, kaya jamur sawise udan, macem-macem Operasi katon:

  • TechOps - administrator sistem enikey alias HelpDesk Engineer
  • LiveOps - administrator sistem utamané tanggung jawab kanggo lingkungan produksi
  • CloudOps - administrator sistem khusus ing awan umum Azure, AWS, GCP, lsp.
  • PlatOps/InfraOps/SysOps - administrator sistem infrastruktur.
  • NetOps - administrator jaringan
  • SecOps - pangurus sistem khusus ing keamanan informasi - kepatuhan PCI, kepatuhan CIS, patching, lsp.

DevOps minangka (ing teori) wong sing ngerti kabeh proses siklus pangembangan - pangembangan, tes, ngerti arsitektur produk, bisa ngevaluasi risiko keamanan, ngerti pendekatan lan alat otomatisasi, paling ora ing dhuwur. tingkat, saliyane iki, uga mangertos pre- lan post-Processing support release produk. Wong sing bisa tumindak minangka advokat kanggo Operasi lan Pembangunan, sing ngidini kerjasama sing apik ing antarane rong pilar kasebut. Ngerti proses perencanaan karya dening tim lan ngatur pangarepan pelanggan.

Kanggo nindakake pakaryan lan tanggung jawab iki, wong iki kudu duwe sarana kanggo ngatur ora mung proses pangembangan lan tes, nanging uga manajemen infrastruktur produk, uga perencanaan sumber daya. DevOps ing pangerten iki ora bisa ditemokake ing IT, utawa ing R&D, utawa malah ing PMO; kudu duwe pengaruh ing kabeh wilayah kasebut - direktur teknis perusahaan, Kepala Pegawai Teknis.

Apa iki bener ing perusahaan sampeyan? - Aku ora yakin. Umume kasus, iki minangka IT utawa R&D.

Kurang dana lan kemampuan kanggo mengaruhi paling ora salah siji saka telung wilayah kegiatan kasebut bakal nggeser bobot masalah menyang ngendi owah-owahan kasebut luwih gampang ditrapake, kayata aplikasi watesan teknis babagan rilis sing ana hubungane karo kode "kotor" miturut statis. sistem analisa. Yaiku, nalika PMO netepake tenggat wektu sing ketat kanggo ngeculake fungsi, R&D ora bisa ngasilake asil sing berkualitas ing tenggat wektu kasebut lan ngasilake kanthi paling apik, ninggalake refactoring mengko, DevOps sing ana gandhengane karo IT ngalangi rilis kanthi cara teknis. . Lack of wewenang kanggo ngganti kahanan, ing cilik saka karyawan tanggung jawab, ndadékaké kanggo manifestation saka hyper-tanggung jawab kanggo apa padha ora bisa pengaruhe, utamané yen karyawan iki ngerti lan ndeleng kesalahane, lan carane mbenerake - "Bliss ora nggatekke", lan minangka akibat kanggo burnout lan mundhut karyawan kasebut.

Pasar sumber daya DevOps

Ayo goleki sawetara lowongan kanggo posisi DevOps saka macem-macem perusahaan.

Kita siyap ketemu karo sampeyan yen sampeyan:

  1. Sampeyan duwe Zabbix lan ngerti apa Prometheus;
  2. Iptables;
  3. Mahasiswa PhD BASH;
  4. Profesor Ansible;
  5. Linux Guru;
  6. Ngerti carane nggunakake debugging lan nemokake masalah aplikasi bebarengan karo pangembang (php/java/python);
  7. Routing ora nggawe sampeyan histeris;
  8. Pay manungsa waé sing penting kanggo keamanan sistem;
  9. Gawe serep "apa wae lan kabeh", lan uga kasil mulihake "apa wae lan kabeh" iki;
  10. Sampeyan ngerti carane ngatur sistem ing kuwi cara kanggo njaluk maksimum metu saka minimal;
  11. Nggawe replikasi sadurunge turu ing Postgres lan MySQL;
  12. Nyetel lan nyetel CI / CD minangka perlu kanggo sampeyan minangka sarapan / nedha awan / nedha bengi.
  13. Duwe pengalaman karo AWS;
  14. Siap berkembang karo perusahaan;

Dadi:

  • saka 1 nganti 6 - administrator sistem
  • 7 - administrasi jaringan sethitik, kang uga mathuk menyang administrator sistem, tingkat Tengah
  • 8 - keamanan sethitik, kang prentah kanggo administrator sistem tingkat Tengah
  • 9-11 – Administrator Sistem Tengah
  • 12 - Gumantung ing tugas sing ditugasake, Administrator Sistem Tengah utawa Insinyur Bangun
  • 13 - Virtualisasi - Administrator Sistem Tengah, utawa sing diarani CloudOps, kawruh majeng babagan layanan situs hosting tartamtu, kanggo panggunaan dana sing efisien lan nyuda beban pangopènan.

Ringkesan lowongan iki, kita bisa ngomong sing Tengah / Administrator Sistem Senior cukup kanggo wong lanang.

Miturut cara, sampeyan ora kudu banget dibagi administrator ing Linux / Windows. Mesthi wae, aku ngerti manawa layanan lan sistem saka rong jagad iki beda, nanging dhasar kabeh padha lan admin sing ngajeni awake dhewe wis kenal karo siji lan sijine, lan sanajan dheweke ora kenal, mesthine bakal ngerti. Ora angel kanggo admin sing kompeten kanggo ngerti.

Ayo nimbang lowongan liyane:

  1. Pengalaman ing mbangun sistem beban dhuwur;
  2. Kawruh banget babagan OS Linux, piranti lunak sistem umum lan tumpukan web (Nginx, PHP/Python, HAProxy, MySQL/PostgreSQL, Memcached, Redis, RabbitMQ, ELK);
  3. Pengalaman karo sistem virtualisasi (KVM, VMWare, LXC/Docker);
  4. Keahlian ing basa skrip;
  5. Pangertosan prinsip operasi jaringan protokol jaringan;
  6. Pangerten babagan prinsip mbangun sistem toleransi kesalahan;
  7. Kamardikan lan inisiatif;

Ayo katon ing:

  • 1 – Administrator Sistem Senior
  • 2 - Gumantung ing makna sing dilebokake ing tumpukan iki - Administrator Sistem Tengah / Senior
  • 3 - Pengalaman kerja, kalebu, bisa uga tegese - "Kluster kasebut ora mundhak, nanging nggawe lan ngatur mesin virtual, ana siji host Docker, akses menyang kontaner ora kasedhiya" - Administrator Sistem Tengah
  • 4 - Administrator Sistem Junior - ya, admin sing ora ngerti carane nulis skrip otomatisasi dhasar, preduli saka basa, dudu admin - enikey.
  • 5 - Administrator Sistem Tengah
  • 6 – Administrator Sistem Senior

Kanggo ngringkes - Administrator Sistem Tengah/Senior

Siji liyane:

  1. Pengalaman devops;
  2. Pengalaman nggunakake siji utawa luwih produk kanggo nggawe proses CI / CD. Gitlab CI bakal dadi kauntungan;
  3. Nggarap kontaner lan virtualisasi; Yen sampeyan nggunakake docker, apik, nanging yen sampeyan nggunakake k8s, apik!
  4. Pengalaman kerja ing tim sing tangkas;
  5. Kawruh basa pamrograman apa wae;

Ayo ndeleng:

  • 1 - Hmm... Apa tegese wong lanang? =) Paling kamungkinan dheweke dhewe ora ngerti apa sing didhelikake
  • 2 - Mbangun Engineer
  • 3 - Administrator Sistem Tengah
  • 4 - Katrampilan alus, kita ora bakal nganggep saiki, sanajan Agile minangka perkara liya sing diinterpretasikake kanthi cara sing trep.
  • 5 - Banget verbose - bisa dadi basa skrip utawa kompilasi. Aku wonder yen nulis ing Pascal lan dhasar ing sekolah bakal cocog karo wong-wong mau? =)

Aku uga kaya kanggo ninggalake cathetan bab titik 3 kanggo ngiyataken pangerten apa titik iki dijamin dening administrator sistem. Kubernetes mung minangka orkestrasi, alat sing mbungkus printah langsung menyang driver jaringan lan virtualisasi / host pamisahan ing sawetara perintah lan ngidini sampeyan nggawe komunikasi karo wong-wong mau abstrak, iku kabeh. Contone, ayo njupuk 'build framework' Nggawe, sing, kanthi cara, aku ora nganggep kerangka. Ya, aku ngerti babagan fashion shoving Make ngendi wae, ngendi iku perlu lan ora perlu - mbungkus Maven ing Make, contone, serius?
Ateges, Make mung mbungkus cangkang, nyederhanakake kompilasi, ngubungake, lan perintah lingkungan kompilasi, kaya k8s.

Sawise, aku diwawancarai wong sing nggunakake k8s ing karya ing ndhuwur OpenStack, lan ngedika bab carane wong tugasaken layanan ing, Nanging, nalika aku takon bab OpenStack, ternyata iku wis diterbitake, uga wungu dening sistem. pangurus. Apa sampeyan mikir yen wong sing wis nginstal OpenStack, preduli saka platform apa sing digunakake ing mburine, ora bisa nggunakake k8s? =)
Pelamar iki dudu DevOps, nanging Administrator Sistem lan, luwih tepat, Administrator Kubernetes.

Ayo diringkes maneh - Administrator Sistem Tengah / Senior bakal cukup kanggo dheweke.

Carane akeh kanggo nimbang ing gram

Kisaran gaji sing diusulake kanggo lowongan sing dituduhake yaiku 90k-200k
Saiki aku pengin nggambar paralel antarane ganjaran dhuwit saka Administrator Sistem lan Insinyur DevOps.

Ing asas, kanggo nyederhanakake samubarang, sampeyan bisa nyebarake gelar adhedhasar pengalaman kerja, sanajan iki ora pas, nanging kanggo tujuan artikel bakal cukup.

Pengalaman:

  1. nganti 3 taun - Junior
  2. nganti 6 taun - Tengah
  3. luwih saka 6 - Senior

Situs telusuran karyawan nawakake:
Administrator Sistem:

  1. Junior - 2 taun - 50k rub.
  2. Tengah - 5 taun - 70k rub.
  3. Senior - 11 taun - 100k rub.

Insinyur DevOps:

  1. Junior - 2 taun - 100k rub.
  2. Tengah - 3 taun - 160k rub.
  3. Senior - 6 taun - 220k rub.

Miturut pengalaman "DevOps", pengalaman digunakake sing paling ora kena pengaruh SDLC.

Saka ndhuwur kasebut, nyatane perusahaan ora mbutuhake DevOps, lan uga bisa ngirit paling ora 50 persen saka biaya sing direncanakake kanthi nyewa Administrator; Kajaba iku, dheweke bisa nemtokake tanggung jawab sing luwih jelas saka wong sing digoleki. lan ngisi kabutuhan luwih cepet. Kita uga ora lali manawa divisi tanggung jawab sing jelas ngidini kita nyuda syarat kanggo personel, uga nggawe atmosfer sing luwih apik ing tim, amarga ora ana tumpang tindih. Umume lowongan kebak keperluan lan label DevOps, nanging ora adhedhasar syarat nyata kanggo Engineer DevOps, mung njaluk administrator alat.

Proses pelatihan insinyur DevOps uga diwatesi mung kanggo sakumpulan karya, utilitas, lan ora menehi pangerten umum babagan proses lan dependensi. Iku mesthi apik nalika wong bisa masang AWS EKS nggunakake Terraform, magepokan karo sidecar Fluentd ing kluster iki lan tumpukan AWS ELK kanggo sistem logging ing 10 menit, nggunakake mung siji printah ing console, nanging yen ora ngerti asas Processing dhewe log lan apa padha needed kanggo, yen sampeyan ora ngerti carane ngumpulake metrik ing wong lan trek degradasi layanan, banjur iku isih bakal enikey padha sing ngerti carane nggunakake sawetara keperluan.

Dikarepake, Nanging, nggawe sumber, lan kita ndeleng pasar banget overheated kanggo posisi DevOps, ngendi syarat ora cocog karo peran nyata, nanging mung ngidini administrator sistem kanggo entuk luwih.

Dadi sapa sing? DevOps utawa administrator sistem rakus? =)

Kepiye carane terus urip?

Juragan kudu ngramu syarat luwih tepat lan goleki persis sing dibutuhake, lan ora mbuwang label. Sampeyan ora ngerti apa sing ditindakake DevOps - sampeyan ora butuh ing kasus kasebut.

Buruh - Sinau. Tansah nambah kawruh, deleng gambaran sakabèhé proses lan lacak dalan menyang tujuan sampeyan. Sampeyan bisa dadi sapa wae sing dikarepake, sampeyan mung kudu nyoba.

Source: www.habr.com

Add a comment