Paano maging isang DevOps engineer sa loob ng anim na buwan o mas mabilis pa. Bahagi 1. Panimula

ЦСлСвая аудитория

Ikaw ba ay isang developer na naghahanap upang i-pivot ang iyong karera patungo sa isang mas advanced na modelo ng DevOps? Ikaw ba ay isang klasikong Ops engineer at gustong makakuha ng ideya kung ano ang ibig sabihin ng DevOps? O hindi ka ba at, pagkatapos gumugol ng ilang oras sa pagtatrabaho sa IT, gusto mong magpalit ng mga karera at walang ideya kung saan magsisimula?
Kung oo, pagkatapos ay basahin upang malaman kung paano ka magiging isang mid-level na DevOps engineer sa loob ng anim na buwan! Sa wakas, kung nasangkot ka sa DevOps sa loob ng maraming taon, marami ka pa ring makukuha mula sa serye ng artikulong ito upang malaman kung nasaan ang industriya ng integration at automation sa kasalukuyan at kung saan ito patungo.

Paano maging isang DevOps engineer sa loob ng anim na buwan o mas mabilis pa. Bahagi 1. Panimula

Ano pa rin ito?

Una, ano ang DevOps? Maaari kang mag-Google ng mga kahulugan at maglakad sa lahat ng verbiage, ngunit alam mong karamihan sa mga kahulugan ay isang paghalu-halo lamang ng mga salita na nakabalot sa isang streamline na anyo. Samakatuwid, bibigyan kita ng buod ng lahat ng mga kahulugang ito: Ang DevOps ay isang paraan ng paghahatid ng software kung saan ang sakit ng ulo at responsibilidad ay ibinabahagi sa lahat ng kasangkot. Iyon lang.

Okay, ngunit ano ang ibig sabihin ng pagdadaglat na ito? Nangangahulugan ito na ayon sa kaugalian, ang mga Developer (ang mga taong gumagawa ng software) ay naudyukan na gawin ang kanilang trabaho sa pamamagitan ng mga insentibo na makabuluhang naiiba sa mga Operations (ang mga taong namamahala sa software). Halimbawa, bilang isang developer, gusto kong lumikha ng maraming bagong feature sa lalong madaling panahon. Pagkatapos ng lahat, ito ang aking trabaho at ito ang hinihiling ng mga kliyente! Gayunpaman, kung ako ay isang Ops na tao, kailangan ko ng kaunting mga bagong tampok hangga't maaari, dahil ang bawat bagong tampok ay isang pagbabago, at anumang pagbabago ay puno ng mga problema. Bilang resulta ng maling pagkakahanay na ito ng mga insentibo, ipinanganak ang DevOps.

Sinusubukan ng DevOps na pagsamahin ang pag-unlad at mga operasyon (pagsasama at automation) sa isang grupo. Ang ideya ay ang isang grupo ay magbabahagi na ngayon ng parehong sakit at responsibilidad (at malamang na mga gantimpala) ng pagbuo, pag-deploy, at pagbuo ng kita mula sa software na nakaharap sa customer.

Sasabihin sa iyo ng mga purista na walang ganoong bagay bilang isang "DevOps engineer." "Ang DevOps ay isang kultura, hindi isang tungkulin," sasabihin nila sa iyo. Siyempre, mula sa isang teknikal na pananaw ay tama sila, ngunit, tulad ng kadalasan, ang termino ay nawala sa kamay Higit pa sa orihinal nitong kahulugan, ang isang DevOps engineer ay isang katulad ng isang "system engineer 2.0." Sa madaling salita, siya ay isang taong nakakaunawa sa ikot ng buhay ng pag-develop ng software at lumilikha ng mga tool at proseso sa pagbuo ng software. upang malutas ang mga klasikong problema sa pagpapatakbo.

Paano maging isang DevOps engineer sa loob ng anim na buwan o mas mabilis pa. Bahagi 1. Panimula

Sa huli, nangangahulugan ang DevOps ng paglikha ng mga digital na pipeline na kumukuha ng code mula sa laptop ng isang developer at ginagawa itong kita mula sa paggamit ng huling produkto, iyon ang tungkol sa lahat. Tandaan na ang pagpili ng isang karera sa DevOps ay medyo mataas na binabayaran ng mga pampinansyal na gantimpala, na halos bawat kumpanya ay "gumagawa ng DevOps" o nag-aangkin na isa. Saan man matatagpuan ang mga kumpanyang ito, ang pangkalahatang mga pagkakataon sa trabaho bilang DevOps ay medyo mataas at nag-aalok ng "masaya" at makabuluhang trabaho para sa maraming taon na darating.

Gayunpaman, mag-ingat sa mga kumpanyang kumukuha ng "DevOps team" o "DevOps department". Sa mahigpit na pagsasalita, ang mga ganoong bagay ay hindi dapat umiral, dahil sa huli ang DevOps ay isa pa ring kultura at paraan ng paghahatid ng software, hindi paglalagay ng mga tauhan ng bagong team o paggawa ng departamento na may isang magarbong pangalan.

Disclaimer

Ngayon, itabi muna natin sandali ang baso ng Kool-Aid at isipin ang sumusunod. Narinig mo na ba ang lumang kasabihan na "walang junior DevOps engineers?" Kung hindi, alamin na isa itong sikat na tropa sa Reddit at StackOverflow. Ngunit ano ang ibig sabihin nito?

Sa madaling salita, ang pariralang ito ay nangangahulugan na nangangailangan ng maraming taon ng karanasan kasama ng isang matatag na pag-unawa sa mga tool upang sa huli ay maging isang tunay na epektibong Senior DevOps practitioner. At, sa kasamaang-palad, walang shortcut sa pagkamit ng layunin. Kaya hindi ito isang pagtatangka na laro ang system - Sa palagay ko ay hindi talaga posible na magpanggap na isang senior DevOps engineer na may ilang buwang karanasan sa industriya. Ang pagkamit ng isang matibay na pag-unawa sa mabilis na pagbabago ng mga tool at pamamaraan ay nangangailangan ng mga taon ng karanasan, at walang nakakakuha sa paligid nito. Gayunpaman, mayroong halos pare-pareho (fashionable, kung gagawin mo) na menu ng mga tool at konsepto na ginagamit ng karamihan sa mga kumpanya, at iyon ang pag-uusapan natin.

Muli, iba ang mga tool sa mga kasanayan, kaya habang pinag-aaralan mo ang mga tool, siguraduhing hindi mo napapabayaan ang iyong mga kasanayan (surveying, networking, nakasulat na komunikasyon, pag-troubleshoot, atbp.). Pinakamahalaga, huwag kalimutan kung ano ang gusto naming mahanap - isang paraan upang lumikha ng ganap na automated na digital pipeline na kumukuha ng mga ideya at ginagawang mga piraso ng code na kumikita. Ito ang nag-iisang pinakamahalagang konklusyon mula sa buong artikulong ito!

Sapat na ang satsat, kailan ako magsisimula?

Nasa ibaba ang roadmap ng DevOps Fundamental Knowledge. Ang pagkakaroon ng mastered lahat ng bagay na itinatanghal doon, maaari mong ligtas at matapat na matatawag ang iyong sarili na isang DevOps engineer! O isang cloud engineer kung hindi mo gusto ang pangalang "DevOps".

Paano maging isang DevOps engineer sa loob ng anim na buwan o mas mabilis pa. Bahagi 1. Panimula

Kinakatawan ng mapa na ito ang aking (at marahil karamihan sa mga taong nagtatrabaho sa espasyong ito) na ideya kung ano ang dapat malaman ng isang karampatang inhinyero ng DevOps. Gayunpaman, ito ay isang opinyon lamang, at siyempre may mga hindi sumasang-ayon dito. Ito ay mabuti! Hindi kami nagsusumikap para sa pagiging perpekto dito, kami ay nagsusumikap para sa isang matibay na pundasyon kung saan maaari naming talagang bumuo.

Dapat kang dumaan sa landas na ito nang paunti-unti, patong-patong. Magsimula tayo (at magpatuloy!) sa mga pangunahing kaalaman sa pamamagitan ng unang pag-aaral tungkol sa mga elemento sa asulβ€”Linux, Python, at AWS. Pagkatapos, kung pinahihintulutan ng oras o job market demand, gawin ang purple na bagay - Golang at Google Cloud.

Sa totoo lang, ang pangunahing tuktok na layer ay isang bagay na kailangan mong pag-aralan magpakailanman. Ang OS Linux ay napakakumplikado at tumatagal ng mga taon upang makabisado. Ang Python ay nangangailangan ng patuloy na pagsasanay upang manatiling kasalukuyan. Ang AWS ay mabilis na umuusbong kaya ang alam mo ngayon ay magiging bahagi lamang ng iyong pangkalahatang portfolio ng kaalaman sa isang taon mula ngayon. Kapag natutunan mo ang mga pangunahing kaalaman, magpatuloy sa aktwal na hanay ng kasanayan. Pakitandaan na may kabuuang 6 na asul na column (Configuration, Version, Packaging, Deployment, Launch, Monitoring), isa bawat buwan ng pag-aaral.

Paano maging isang DevOps engineer sa loob ng anim na buwan o mas mabilis pa. Bahagi 1. Panimula

Siyempre, napansin mo ang kawalan ng isang mahalagang yugto sa aming anim na buwang pipeline - pagsubok. Sinadya kong hindi ito isinama sa roadmap dahil hindi madali ang pagsulat ng module, integration at acceptance tests at nakasanayan na itong pasanin ng mga developer. At ang paglaktaw sa yugto ng "pagsubok" ay ipinaliwanag sa pamamagitan ng katotohanan na ang layunin ng roadmap na ito ay upang makabisado ang mga pangunahing kasanayan at tool sa lalong madaling panahon. Ang kakulangan sa karanasan sa pagsubok, ayon sa may-akda, ay isang maliit na hadlang lamang sa tamang paggamit ng DevOps.

Gayundin, tandaan na hindi kami natututo ng isang grupo ng hindi nauugnay na teknikal na babble dito, ngunit sa halip ay isang pag-unawa sa mga tool na nagsasama-sama upang lumikha ng isang malinaw na kuwento. Ang kwentong ito ay tungkol sa end-to-end process automationβ€”isang digital assembly line na gumagalaw nang kaunti tulad ng isang assembly line. Hindi mo nais na matuto ng isang grupo ng mga tool at patuloy na huminto! Mabilis na nagbabago ang mga tool ng DevOps, ngunit mas madalas na nagbabago ang mga konsepto. Samakatuwid, dapat mong sikaping gumamit ng mga tool bilang mga proxy sa pagtuturo para sa mas mataas na antas ng mga konsepto.

Okay, maghukay tayo ng kaunti pa!

Pangunahing kaalaman

Sa ibaba ng tuktok na hakbang na nagsasabing Foundation, makikita mo ang mga kasanayang dapat paghusayin ng bawat engineer ng DevOps. Ang mga kasanayang ito ay kumpiyansa sa paghawak sa tatlong haligi ng industriya, na: ang operating system, ang programming language at ang pampublikong ulap. Ang mga bagay na ito ay hindi isang bagay na mabilis mong matututunan at magpapatuloy. Ang mga kasanayang ito ay kailangang patuloy na pagbutihin at paghusayin upang maging nangunguna sa industriya at may kaugnayan sa propesyonal na kapaligiran sa paligid mo. Isa-isahin natin sila.

Linux ay kung saan gumagana ang lahat. Maaari ka bang maging isang kamangha-manghang DevOps practitioner habang nananatiling ganap sa loob ng Microsoft ecosystem? Siguradong kaya mo! Walang batas na nagdidikta na Linux lang ang gagamitin mo. Gayunpaman, tandaan na sa kabila ng katotohanan na ang lahat ng mga bagay sa Linux ay maaaring gawin sa Windows, ito ay nangyayari doon nang mas masakit at may mas kaunting pag-andar. Sa puntong ito, ligtas na ipagpalagay na nang hindi alam ang Linux, imposibleng maging isang tunay na propesyonal sa DevOps, kaya ang Linux ay isang bagay na dapat mong pag-aralan at matutunan.

Sa totoo lang, ang pinakamahusay na paraan upang gawin ito ay ang simpleng pag-install ng Linux (Fedora o Ubuntu) sa bahay at gamitin ito hangga't maaari. Siyempre, maraming bagay ang masisira mo, maiipit ka sa mga proseso ng trabaho, kailangan mong ayusin ang lahat, ngunit matututo ka ng Linux!

Paano maging isang DevOps engineer sa loob ng anim na buwan o mas mabilis pa. Bahagi 1. Panimula

Sa pamamagitan ng paraan, ang mga variant ng RedHat ay mas karaniwan sa North America, kaya makatuwirang magsimula sa Fedora o CentOS. Kung iniisip mo kung dapat kang bumili ng KDE o Gnome edition, piliin ang KDE. Ito ang ginagamit mismo ni Linus Torvalds.

Python ang nangingibabaw na back-end na wika sa mga araw na ito. Madali itong magsimula at malawakang ginagamit. Ang Python ay napaka-pangkaraniwan sa larangan ng artificial intelligence at machine learning, kaya kung sakaling gusto mong lumipat sa isa pang mainit na larangan, ganap kang magiging handa.

Paano maging isang DevOps engineer sa loob ng anim na buwan o mas mabilis pa. Bahagi 1. Panimula

Amazon Web Services: Muli, imposibleng maging isang batikang propesyonal sa DevOps nang walang matibay na pag-unawa sa kung paano gumagana ang pampublikong ulap. At kung gusto mong matuto nang higit pa tungkol dito, tingnan ang Amazon Web Services. Ito ay isang nangungunang manlalaro sa larangang ito ng mga serbisyo at nag-aalok ng pinakamayamang hanay ng mga tool sa pagtatrabaho.

Posible bang magsimula sa Google Cloud o Azure sa halip? Syempre kaya mo! Ngunit ang pag-alala sa huling krisis sa pananalapi, dapat tandaan na ang AWS ay ang pinakaligtas na opsyon, hindi bababa sa 2018, dahil pinapayagan ka nitong magrehistro ng isang account nang libre at magsimulang tuklasin ang mga posibilidad ng mga serbisyo sa cloud. Bilang karagdagan, ang AWS console ay nagbibigay sa user ng simple at malinaw na menu na mapagpipilian. Ang magandang balita ay hindi mo kailangang malaman ang lahat ng teknolohiya ng Amazon para magawa ito.

Paano maging isang DevOps engineer sa loob ng anim na buwan o mas mabilis pa. Bahagi 1. Panimula

Magsimula sa mga sumusunod: VPC, EC2, IAM, S3, CloudWatch, ELB (Elastic Load Balancing sa ilalim ng EC2 umbrella) at Security Group. Ang mga bagay na ito ay sapat na upang makapagsimula ka, at ang bawat modernong, cloud-based na enterprise ay lubos na aktibong gumagamit ng mga tool na ito. Ang sariling site ng pagsasanay ng AWS ay isang magandang lugar upang makapagsimula.

Inirerekomenda ko na gumugol ka ng 20-30 minuto araw-araw sa pag-aaral at pagsasanay gamit ang wikang Python, Linux operating system, at AWS cloud service bilang karagdagan sa iba pang mga bagay na kailangan mong matutunan. Sa pangkalahatan, naniniwala ako na ang paggugol ng isang oras sa isang araw, limang beses sa isang linggo ay sapat na upang maunawaan ang industriya ng DevOps sa loob ng 6 na buwan o mas maikli. Mayroong kabuuang 6 na pangunahing bahagi, ang bawat isa ay tumutugma sa isang buwan ng pagsasanay. Iyon lang ang kailangan mo para makakuha ng pangunahing kaalaman.
Sa mga susunod na artikulo, titingnan natin ang susunod na antas ng pagiging kumplikado: kung paano ganap na i-automate ang pagsasaayos, pag-bersyon, packaging, pag-deploy, pagpapatakbo at pagsubaybay ng software.

Itutuloy sa lalong madaling panahon...

Ilang ad πŸ™‚

Salamat sa pananatili sa amin. Gusto mo ba ang aming mga artikulo? Gustong makakita ng mas kawili-wiling nilalaman? Suportahan kami sa pamamagitan ng pag-order o pagrekomenda sa mga kaibigan, cloud VPS para sa mga developer mula sa $4.99, isang natatanging analogue ng mga entry-level na server, na inimbento namin para sa iyo: Ang buong katotohanan tungkol sa VPS (KVM) E5-2697 v3 (6 Cores) 10GB DDR4 480GB SSD 1Gbps mula sa $19 o kung paano magbahagi ng server? (magagamit sa RAID1 at RAID10, hanggang 24 na core at hanggang 40GB DDR4).

Dell R730xd 2x na mas mura sa Equinix Tier IV data center sa Amsterdam? Dito lang 2 x Intel TetraDeca-Core Xeon 2x E5-2697v3 2.6GHz 14C 64GB DDR4 4x960GB SSD 1Gbps 100 TV mula $199 sa Netherlands! Dell R420 - 2x E5-2430 2.2Ghz 6C 128GB DDR3 2x960GB SSD 1Gbps 100TB - mula $99! Basahin ang tungkol sa Paano bumuo ng infrastructure corp. klase sa paggamit ng mga server ng Dell R730xd E5-2650 v4 na nagkakahalaga ng 9000 euro para sa isang sentimos?

Pinagmulan: www.habr.com

Magdagdag ng komento