Bakit dapat matutunan ng mga system administrator, developer at tester ang mga kasanayan sa DevOps?

Bakit dapat matutunan ng mga system administrator, developer at tester ang mga kasanayan sa DevOps?

Saan pupunta sa kaalamang ito, kung ano ang gagawin sa proyekto at kung magkano ang kikitain, kung ano ang sasabihin at itanong sa isang pakikipanayam - sabi ni Alexander Titov, managing partner ng Express 42 at may-akda online na kurso na "Mga kasanayan at tool ng DevOps".

Kamusta! Bagama't umiral na ang terminong DevOps mula noong 2009, wala pa ring pinagkasunduan sa komunidad ng Russia. Marahil ay napansin mo na itinuturing ng ilan na isang espesyalidad ang DevOps, itinuturing ito ng iba bilang isang pilosopiya, at itinuturing ng iba ang termino bilang isang hanay ng mga teknolohiya. Naka-perform na ako ng maraming beses kasama mga lecture tungkol sa pag-unlad ng direksyon na ito, kaya hindi na ako magdetalye sa artikulong ito. Sabihin ko lang na sa Express 42 kasama namin ang sumusunod dito:

Ang DevOps ay isang partikular na pamamaraan, isang kultura ng paglikha ng isang digital na produkto, kapag ang lahat ng mga espesyalista sa koponan ay lumahok sa produksyon.

Sa klasikong corporate development, ang lahat ay napupunta nang sunud-sunod: programming, pagsubok at pagkatapos lamang ng operasyon, at ang bilis ng prosesong ito mula sa ideya hanggang sa produksyon ay 3 buwan. Ito ay isang pandaigdigang problema para sa mga digital na produkto, dahil imposibleng mabilis na makatanggap ng feedback mula sa mga customer.

Sa DevOps, ang mga tool at diskarte ay idinisenyo upang matiyak na ang mga proseso ng pagbuo, pagsubok at pagpapatakbo ay tumatakbo nang sabay-sabay.

Ano ang sumusunod mula sa diskarteng ito?

  • Hindi ka maaaring kumuha ng ilang "engineer" na darating at lutasin ang lahat ng mga problema sa produksyon. Dapat ilapat ng buong koponan ang pamamaraan.

    Bakit dapat matutunan ng mga system administrator, developer at tester ang mga kasanayan sa DevOps?

  • HINDI ang DevOps ang susunod na anyo ng sysadmin na mag-a-upgrade. Ang β€œDevOps engineer” ay halos kapareho ng tunog ng β€œAgile developer.”

    Bakit dapat matutunan ng mga system administrator, developer at tester ang mga kasanayan sa DevOps?

  • Kung ang isang team ay gumagamit ng Kubernetes, Ansible, Prometheus, Mesosphere at Docker, hindi ito nangangahulugan na ang mga kasanayan sa DevOps ay ipinatupad doon.

    Bakit dapat matutunan ng mga system administrator, developer at tester ang mga kasanayan sa DevOps?

Ang buhay pagkatapos ng DevOps ay hindi magiging pareho

Ang diskarte sa DevOps ay, una sa lahat, ibang paraan ng pag-iisip, isang persepsyon ng pag-unlad sa kabuuan at ang lugar ng isang tao sa proseso. Hinati namin ang aming online na kurso sa 2 bloke:

1. Pagpapasya sa sarili

Una, sinusuri namin nang detalyado ang kakanyahan ng diskarte sa DevOps, at natuklasan ng mga mag-aaral ang mga bagong tungkulin sa team, tingnan kung alin ang mas tumutugon, at tinutukoy para sa kanilang sarili kung aling direksyon ang bubuo.

2. Mga kasangkapan at kasanayan

Kabisado ng mga mag-aaral ang mga partikular na teknolohiya mula sa punto ng view ng paraan ng DevOps.

Maaaring gamitin ang mga tool ng DevOps sa parehong diskarte sa DevOps at sa klasikal na pag-unlad. Ang pinaka-halatang halimbawa ay ang paggamit ng Ansible configuration management tool. Ito ay nilikha at inisip upang ipatupad ang kasanayan sa DevOps na "Imprastraktura bilang Code", na nangangahulugan na ang iba't ibang mga estado ng system ay inilalarawan, mula sa mga setting ng operating system hanggang sa software ng application. Ang paglalarawan ay nahahati sa mga layer at nagbibigay-daan sa iyong pamahalaan ang isang kumplikado, patuloy na nagbabago ng configuration. Ngunit kadalasang ginagamit ng mga inhinyero ang Ansible bilang isang paraan upang magpatakbo ng mga script ng bash sa maraming makina. Hindi ito masama o mabuti, ngunit kailangan mong maunawaan na ang pagkakaroon ng Ansible ay hindi ginagarantiyahan ang pagkakaroon ng DevOps sa kumpanya.

Nasa proseso kami kurso Ilulubog ka sa proseso ng pagbuo ng isang application na katulad ng sikat na Reddit, simula sa monolitikong bersyon nito, hakbang-hakbang na paglipat sa mga microservice. Hakbang-hakbang ay makakabisado tayo ng mga bagong tool: Git, Ansible, Gitlab at tapusin sa Kubernetes at Prometheus.

Sa mga tuntunin ng mga kasanayan, susundin namin ang mga taktika ng tatlong landas na inilarawan sa Handbook ng DevOps - tuluy-tuloy na mga kasanayan sa paghahatid, mga kasanayan sa feedback, at ang esensya ng buong kurso ay ang pagsasanay ng patuloy na pag-aaral kasama ng iyong system.

Ano ang ibinibigay ng kaalamang ito sa bawat isa sa mga espesyalista?

Para sa mga system administrator

Ang mga kasanayan ay magbibigay-daan sa iyo na lumayo mula sa pangangasiwa tungo sa paglikha ng tuloy-tuloy na pipeline ng paghahatid at isang platform ng imprastraktura para sa paghahatid ng software. Ang punto ay lumikha siya ng isang produkto - isang platform ng imprastraktura para sa mga developer na tumutulong sa kanila na mabilis na itulak ang kanilang mga pagbabago sa produksyon.

Noong nakaraan, ang mga tagapangasiwa ng system ay ang huling balwarte, pagkatapos nito ang lahat ay napupunta sa produksyon. At karaniwang sila ay nakikibahagi sa patuloy na pag-apula ng sunog - kung saan ito ay medyo mahirap na bungkalin ang mga pangangailangan ng negosyo, isipin ang tungkol sa produkto at ang mga benepisyo para sa gumagamit.
Salamat sa paraan ng DevOps, nagbabago ang pag-iisip. Naiintindihan ng system administrator kung paano isalin ang configuration sa code, kung anong mga kasanayan ang umiiral para dito.

Ito ay mahalaga dahil ang mga kumpanya ay lalong napagtatanto na hindi lang nila kailangan na i-automate ang lahat, i.e. sa kung ano ang karaniwang ginagawa ng mga administrator ng old-school system, na bukod dito ay kakaunti ang nakipag-ugnayan at hindi ipinaalam sa team ang tungkol sa lahat ng mga pagbabagong ginawa. Ngayon ang mga koponan ay naghahanap para sa mga magiging tagagawa ng panloob na produkto ng imprastraktura at makakatulong na pagsamahin ang mga pinaghiwalay na proseso sa isa.

Mga developer

Ang developer ay humihinto sa pag-iisip lamang sa mga algorithm. Nakukuha niya ang kasanayan sa pagtatrabaho sa imprastraktura, ang kasanayan ng kamalayan sa arkitektura ng tanawin. Nauunawaan ng naturang developer kung paano gumagana ang application, kung paano ito dumadaan sa tuluy-tuloy na pipeline ng paghahatid, kung paano ito susubaybayan, kung paano ito irehistro upang makinabang ito sa kliyente. Bilang resulta, pinapayagan ka ng lahat ng kaalamang ito na magsulat ng may-katuturang code.

Para sa mga tester

Matagal nang lumilipat sa awtomatikong mode ang pagsubok; sinasabi nating lahat na maraming pagsubok ang hindi dapat gawin, ngunit nakasulat :) Ang pagsubok ay nagiging bahagi ng buong pipeline ng paghahatid ng iyong produkto. Ang isang tester ay nangangailangan hindi lamang upang matutunan kung paano magsulat ng code, ngunit din upang maunawaan kung paano ito isama sa tuluy-tuloy na mga sistema ng paghahatid, kung paano makatanggap ng feedback mula sa code sa lahat ng mga yugto ng paghahatid, at kung paano patuloy na pagbutihin ang pagsubok upang makita ang mga error bilang maaga hangga't maaari.

Kaya lumalabas na lahat ng tatlong yugto ay nangyayari nang sabay-sabay. Halimbawa, maaaring ganito ang hitsura nito:

Isinulat ng developer ang code, agad na nagsusulat ng mga pagsubok para dito, at naglalarawan ng lalagyan ng docker para sa code na dapat patakbuhin. Agad din nitong inilalarawan ang pagsubaybay na susubaybay sa pagpapatakbo ng serbisyong ito sa produksyon, at ginagawa ang lahat ng ito.

Kapag nagsimula ang tuluy-tuloy na pagsasama, ang mga proseso ay tumatakbo nang sabay-sabay. Nagsisimula at na-configure ang serbisyo. Kasabay nito, ang lalagyan ng docker ay nagsisimula at nasuri kung ito ay tumatakbo. Kasabay nito, ang lahat ng impormasyon ay napupunta sa sistema ng pag-log. At iba pa sa bawat yugto ng pag-unlad - lumalabas na isang tunay na pagtutulungan ng mga system administrator, developer at tester.

Nag-aral ako ng DevOps, ano ang susunod?

Tulad ng alam mo, ang isa sa larangan ay hindi isang mandirigma. Kung hindi ginagamit ng iyong kumpanya ang pamamaraang ito, ang mga nakuhang kasanayan ay magiging walang ginagawa. At pagkatapos na makilala ang mga diskarte sa DevOps, malamang na hindi mo nais na maging isang cog sa corporate development. Maaaring may isang pagbubukod: ikaw ay isang system administrator sa koponan at maaaring muling buuin ang lahat ng mga proseso sa isang bagong paraan. Kapaki-pakinabang na idagdag dito na maraming kumpanya ang gumagamit ng diskarteng ito, at hindi sila apektado ng lockdown at naghahanap ng mga espesyalista. Dahil ang DevOps ay tungkol sa paglikha ng mga online na produkto.

At ngayon tungkol sa magagandang bagay: ang kahusayan sa mga kasanayan at tool ng DevOps ay humigit-kumulang +30% sa iyong halaga sa labor market. Ang mga suweldo ay nagsisimula mula sa 140 libong rubles, ngunit tinutukoy, natural, ng iyong pangunahing espesyalidad at pag-andar.

Maaari mong tingnan ang mga bakante na may markang "infrastructure-oriented", kung saan mayroong pagsubok na automation, pagbuo ng mga microservice application gamit ang mga teknolohiya ng cloud, mga bakante para sa mga inhinyero ng imprastraktura at lahat ng uri ng mga sanggunian sa DevOps. Tandaan lamang na ang bawat kumpanya ay may ibig sabihin na iba sa kahulugan na ito - basahin nang mabuti ang paglalarawan.

Sa panahon ng paglulunsad ng aming kurso, isang insight ang dumating sa akin - maraming tao pagkatapos ng kurso ay nahulog sa bitag ng isang DevOps engineer. Nakahanap sila ng bakante na may nabanggit na pamagat, tumanggap ng magandang alok, at pagkatapos ay pumasok sa trabaho at napagtanto na kakailanganin nilang magpanatili ng tatlong-pahinang bash script sa Jenkins. Nasaan ang mga Kubernetes, ChatOps, canary release at lahat ng iyon? Ngunit walang anuman, dahil ang kumpanya ay hindi nangangailangan ng DevOps bilang isang pamamaraan, ngunit gumagamit ng mga indibidwal na pagbabago.

Ito ay isang dahilan upang masinsinang malaman mula sa kumpanya kung paano gumagana ang proseso ng paghahatid ng software, ang stack ng teknolohiya at kung anong mga responsibilidad ang iyong gagawin.

Kung sinasagot ng employer ang iyong mga tanong nang abstract, na parang mula sa isang libro, nang walang mga detalye, malamang na wala pang proseso ng DevOps sa kumpanya, ngunit hindi ito dahilan para tumanggi, pag-aralan ang kumpanya at ang mga produkto nito, kung mayroong online mga serbisyong binuo mismo ng kumpanya, mga mobile application , mga ideya sa produkto.

Kung oo, linawin kung kailangan mong direktang magtrabaho sa mga system na ito o kung may posibilidad ng pahalang na paggalaw sa mga koponan ng mga serbisyong ito habang nagpapakita ng magagandang resulta sa mga kasanayan sa DevOps. Kung oo, kung gayon ito ay nagkakahalaga ng pagpunta at pagiging aktibo at kapaki-pakinabang, at kung makumpleto mo ang aming kurso, ang huli ay garantisadong.

Mahalagang tandaan na ang mga practitioner ng Devops ay nakakakuha lamang ng tunay na halaga kapag may karanasan sa development/administrasyon/pagsubok. Pagkatapos lamang ang kaalaman ay hindi magiging abstract, ngunit pagyamanin ang espesyalista (sa bawat kahulugan). Samakatuwid, ang ideya ng "pag-aaral ng DevOps mula sa simula" ay halos kapareho ng pag-aaral na "gumamit ng mga lente mula sa simula" kung hindi ka pa nakakahawak ng camera sa iyong mga kamay o nagdirekta ng isang shoot. Upang matulungan kang magpasya kung ang kurso ay tama para sa iyo, gumawa kami ng pagsusulit sa pasukan na susuriin ang iyong sapat na antas ng kaalaman.

Sa tingin ko isa sa mga trick kurso β€” na sa kurso ng pagsasanay ang bawat mag-aaral ay nagpapasiya para sa kanyang sarili kung aling direksyon ang nais niyang paunlarin. Madalas nating nakikita ang mga transition kapag ang isang developer ay naging isang inhinyero ng imprastraktura, at napagtanto ng isang administrator na interesado siya sa pagsusulat ng code - pagkatapos ay pinag-aralan pa niya ang wika at dinadagdagan ito ng mga nakuhang kasanayan sa DevOps. Samakatuwid, lalo naming tinatanggap ang mga nakakaramdam na ang kanilang karera ay natigil sa isang sangang-daan. Magsisimula ang kurso sa Mayo 28, ngunit maaari kang sumali 2 linggo pagkatapos ng simula ng mga klase. Maaari mong tingnan ang programa at kunin ang pagsusulit ΠΏΠΎ ссылкС. Magkita-kita tayo sa OTUS!

Pinagmulan: www.habr.com

Magdagdag ng komento