Alakaʻi Dummies: Ke kūkulu ʻana i nā kaulahao DevOps me nā mea hana Open Source

Alakaʻi Dummies: Ke kūkulu ʻana i nā kaulahao DevOps me nā mea hana Open Source
Ke kūkulu nei i kāu kaulahao DevOps mua i ʻelima mau ʻanuʻu no ka poʻe hoʻomaka.

Ua lilo ʻo DevOps i panacea no ka lohi, ʻokiʻoki a me nā kaʻina hana hoʻomohala pilikia. Akā pono ʻoe i ka ʻike liʻiliʻi ma DevOps. E uhi ia i nā manaʻo e like me ke kaulahao DevOps a pehea e hana ai i hoʻokahi i ʻelima mau ʻanuʻu. ʻAʻole kēia he alakaʻi piha, akā he "iʻa" hiki ke hoʻonui ʻia. E hoʻomaka kākou me ka mōʻaukala.

ʻO kaʻu hoʻolauna iā DevOps

Ua hana au me nā ao ma Citi Group a hoʻomohala i kahi polokalamu pūnaewele IaaS e hoʻokele i ka ʻōnaehana kapuaʻi o Citi, akā makemake mau wau i ka hoʻomaikaʻi ʻana i ke kaulahao hoʻomohala a hoʻomaikaʻi i ka moʻomeheu i waena o nā mea hoʻomohala. ʻO Greg Lavender, kā mākou CTO no Cloud Architecture and Infrastructure, ua ʻōlelo mai iaʻu i kēia puke. Papahana "Phoenix". Ua wehewehe nani ia i nā loina DevOps a heluhelu e like me ka moʻolelo.

Hōʻike ka papa ma ke kua i ka pinepine o nā hui e hoʻopuka i nā mana hou:

Alakaʻi Dummies: Ke kūkulu ʻana i nā kaulahao DevOps me nā mea hana Open Source

Pehea e hoʻokele ai ʻo Amazon, Google a me Netflix i ka ʻōwili nui? A he mea maʻalahi: ua noʻonoʻo lākou pehea e hana ai i kahi kaulahao DevOps kokoke loa.

He ʻokoʻa loa nā mea iā mākou ma Citi a hiki i ko mākou hoʻololi ʻana iā DevOps. A laila, loaʻa i kaʻu hui nā ʻano ʻokoʻa like ʻole, akā hana mākou i ka lawe lima ʻana i ke kikowaena hoʻomohala. Loaʻa i nā mea hoʻomohala āpau i hoʻokahi wale nō kikowaena hoʻomohala e pili ana i ka IBM WebSphere Application Server Community Edition. Me ka hoʻāʻo like ʻana e hoʻopakele, "hāʻule" ke kikowaena, a i kēlā me kēia manawa mākou e "ʻeha" e kūkākūkā i waena o mākou iho. Ua lawa ʻole mākou i ka uhi code me nā hoʻāʻo, kahi kaʻina hana hoʻopuka lima manawa, a ʻaʻohe ala e nānā i ka lawe ʻana i ke code me ke kōkua o kekahi hana a i ʻole nā ​​​​mea kūʻai aku.

Ua maopopo he mea pono e hana koke ia, a ua loaʻa iaʻu kahi hoa hana like. Ua hoʻoholo mākou e hana i ke kaulahao DevOps mua - ua hoʻonohonoho ʻo ia i kahi mīkini virtual a me kahi kikowaena noi Tomcat, a mālama wau iā Jenkins, hoʻohui pū me Atlassian Jira a me BitBucket, a me ka uhi code me nā hoʻokolohua. Ua holomua ka papahana: ua hoʻopau piha mākou i ke kaulahao hoʻomohala, loaʻa i kahi kokoke i 100% uptime ma ke kikowaena hoʻomohala, hiki ke nānā a hoʻomaikaʻi i ka uhi code me nā hoʻokolohua, a hiki ke hoʻopaʻa ʻia kahi lālā Git i kahi hāʻawi a me ka hoʻopuka Jira. A kokoke i nā mea hana a mākou i hoʻohana ai e kūkulu i ke kaulahao DevOps he kumu wehe.

ʻOiaʻiʻo, ua maʻalahi ke kaulahao, no ka mea ʻaʻole mākou i hoʻopili i nā hoʻonohonoho holomua me ka hoʻohana ʻana iā Jenkins a i ʻole Ansible. Akā ua lanakila mākou. He hopena paha kēia o ke kumu Pareto (ʻo ke kānāwai 80/20).

He wehewehe pōkole o ka DevOps a me CI/CD Chain

Loaʻa nā wehewehe like ʻole o DevOps. ʻO DevOps, e like me Agile, loaʻa nā ʻano aʻo like ʻole. Akā ʻo ka hapa nui e ʻae i kēia wehewehe: ʻO DevOps kahi ala, a i ʻole ka pōʻai ola, o ka hoʻomohala ʻana i ka polokalamu, ʻo ke kumu nui o ka hana ʻana i kahi moʻomeheu kahi o nā mea hoʻomohala a me nā limahana ʻē aʻe e "ma ka lōʻihi o ka nalu hoʻokahi", ʻo ka hana lima. hana nā mea a pau i ka mea maikaʻi loa, piʻi ka pinepine o ka hoʻopuka ʻana, piʻi ka huahana o ka hana, piʻi ka maʻalahi.

ʻOiai ʻaʻole lawa nā mea hana e hana ai i kahi kaiapuni DevOps, pono lākou. ʻO ka mea nui o kēia mau mea ʻo ka hoʻohui mau ʻana a me ka hāʻawi mau ʻana (CI/CD). Aia nā pae like ʻole i ke kaulahao no kēlā me kēia kaiapuni (e like me DEV (hoʻomohala), INT (hoʻohui), TST (hoʻāʻo), QA (hōʻoia maikaʻi), UAT (hoʻāʻo ʻana i ka mea hoʻohana), STG (hoʻomākaukau), PROD (hoʻohana)) , hana ʻakomi ʻia nā hana lima, hiki i nā mea hoʻomohala ke hana i ka code maikaʻi, hāʻawi iā ia, a hiki ke kūkulu hou.

Hōʻike kēia memo pehea e hana ai i kahi kaulahao DevOps i ʻelima mau ʻanuʻu, e like me ka mea i hōʻike ʻia ma ke kiʻi ma lalo nei, me ka hoʻohana ʻana i nā mea hana open source.

Alakaʻi Dummies: Ke kūkulu ʻana i nā kaulahao DevOps me nā mea hana Open Source

E iho kākou i ka ʻoihana.

KaʻAnuʻu 1: CI/CD Platform

ʻO ka mea mua, pono ʻoe i kahi mea hana CI / CD. ʻO Jenkins kahi MIT-laikini, open-source CI/CD mea hana i kākau ʻia ma Java i hoʻolaha i ka neʻe ʻana o DevOps a ua lilo ia i kumu de facto no CICD.

He aha ʻo Jenkins? E noʻonoʻo ʻoe he papa mana hoʻokalakupua no nā lawelawe like ʻole a me nā mea hana. Ma kāna pono'ī, he mea ponoʻole kahi mea hana CI / CD e like me Jenkins, akā me nā mea hana likeʻole a me nā lawelawe, lilo ia i mea mana loa.

Ma waho aʻe o Jenkins, he nui nā mea hana open source, koho i kekahi.

Alakaʻi Dummies: Ke kūkulu ʻana i nā kaulahao DevOps me nā mea hana Open Source

Eia ke ʻano o kahi kaʻina hana DevOps me kahi mea hana CI/CD

Alakaʻi Dummies: Ke kūkulu ʻana i nā kaulahao DevOps me nā mea hana Open Source

Loaʻa iā ʻoe kahi mea hana CI/CD ma localhost, akā ʻaʻole nui ka hana. E neʻe kākou i ka ʻanuʻu aʻe.

KaʻAnuʻu Hana 2: Versioning

ʻO ke ala maikaʻi loa (a ʻoi aku ka maʻalahi) e hoʻāʻo ai i ke kilokilo o kahi mea hana CI/CD ʻo ka hoʻohui ʻana me kahi mea hoʻokele mana kumu (SCM). No ke aha ʻoe e makemake ai i ka mana mana? E ʻōlelo mākou ke hana nei ʻoe i kahi noi. Kākau ʻoe ma Java, Python, C++, Go, Ruby, JavaScript, a i ʻole kekahi ʻōlelo ʻē aʻe he kaʻa a me kahi kaʻa liʻiliʻi. Ua kapa ʻia kāu mea e kākau ai i ke code kumu. I ka wā mua, ʻoi aku inā ʻoe e hana hoʻokahi, hiki iā ʻoe ke mālama i nā mea āpau i kahi papa kuhikuhi kūloko. Akā i ka ulu ʻana o ka pāhana a hui hou aku ka poʻe, pono ʻoe i kahi ala e kaʻana like i nā hoʻololi code akā pale i nā paio ke hoʻohui i nā loli. A pono ʻoe e hoʻihoʻi hou i nā mana o mua me ka ʻole o ka hoʻohana ʻana i nā backup a me ka hoʻohana ʻana i ke ʻano kope-paste no nā faila code.

A ma ʻaneʻi me ka ʻole o SCM ma nā wahi āpau. Mālama ka SCM i nā code i loko o nā waihona, mālama i nā mana o ia mea, a hoʻonohonoho i waena o nā mea hoʻomohala.

Nui nā mea hana SCM, akā ua lilo ʻo Git i ka maʻamau de facto. Manaʻo wau iā ʻoe e hoʻohana, akā aia nā koho ʻē aʻe.

Alakaʻi Dummies: Ke kūkulu ʻana i nā kaulahao DevOps me nā mea hana Open Source

Eia ke ʻano o ka pipeline DevOps ma hope o ka hoʻohui ʻana i ka SCM.

Alakaʻi Dummies: Ke kūkulu ʻana i nā kaulahao DevOps me nā mea hana Open Source

Hiki i ka mea paahana CI/CD ke hoʻokaʻawale i ka hoʻouka ʻana a me ka hoʻoiho ʻana a me ka hui pū. ʻaʻole maikaʻi ʻole? Akā i kēia manawa pehea e hana ai i kahi noi hana mai kēia, i aloha ʻia e nā piliona o nā mea hoʻohana?

KaʻAnuʻu Hana 3: E kūkulu i ka mea hana 'autome

Ke hele nei nā mea a pau e like me ka mea e pono ai. Hiki iā ʻoe ke hoʻouka i ke code a hoʻololi i ka mana kumu, a kono i nā hoaaloha e hana pū me ʻoe. Akā, ʻaʻohe āu polokalamu i kēia manawa. No ka lilo ʻana i palapala noi pūnaewele, pono e hōʻuluʻulu ʻia a hoʻopaʻa ʻia no ka hāʻawi ʻana a i ʻole holo ma ke ʻano he mea hoʻokō. (ʻAʻole pono e hōʻuluʻulu ʻia kahi ʻōlelo papahana unuhi e like me JavaScript a i ʻole PHP.)

E hoʻohana i kahi mea hana hana automation. ʻO kēlā me kēia hāmeʻa āu e koho ai, e hōʻuluʻulu ʻo ia i ke code ma ke ʻano kūpono a hoʻomaʻemaʻe hoʻomaʻemaʻe, hoʻohui, hoʻāʻo, a me ka lawe ʻana. ʻOkoʻa nā mea hana hana ma ka ʻōlelo, akā hoʻohana mau ʻia nā koho kumu wehe.

Alakaʻi Dummies: Ke kūkulu ʻana i nā kaulahao DevOps me nā mea hana Open Source

Pono loa! I kēia manawa, e hoʻokomo i nā faila hoʻonohonoho hoʻonohonoho hana automation i loko o ka mana kumu i kūkulu ʻia e ka mea paahana CI/CD.

Alakaʻi Dummies: Ke kūkulu ʻana i nā kaulahao DevOps me nā mea hana Open Source

Manaʻo maikaʻi. Akā ma hea kahi e holo ai kēia mau mea i kēia manawa?

KaʻAnuʻu Hana 4: Web Application Server

No laila, loaʻa iā ʻoe kahi faila i hoʻopaʻa ʻia e hiki ke hoʻokō a ʻōwili ʻia paha. No ka hoʻohana pono ʻana o kahi noi, pono ke loaʻa i kekahi ʻano lawelawe a i ʻole interface, akā pono ʻoe e kau iā ia ma kahi āpau.

Hiki ke hoʻokipa ʻia kahi palapala noi pūnaewele ma kahi kikowaena noi pūnaewele. Hāʻawi ke kikowaena noi i kahi kaiapuni kahi e hiki ai iā ʻoe ke hoʻokō i ka loiloi i hoʻopaʻa ʻia, hāʻawi i nā pilina, a hōʻike i nā lawelawe pūnaewele ma luna o kahi kumu. Pono ʻoe i kahi kikowaena HTTP a me kekahi mau kaiapuni ʻē aʻe (he mīkini virtual, no ka laʻana) e hoʻokomo i ka kikowaena noi. I kēia manawa, e hoʻohālike mākou e pili ana ʻoe i kēia mau mea a pau i kou hele ʻana (ʻoiai e kamaʻilio wau e pili ana i nā ipu ma lalo).

Aia kekahi mau kikowaena noi pūnaewele wehe.

Alakaʻi Dummies: Ke kūkulu ʻana i nā kaulahao DevOps me nā mea hana Open Source

Loaʻa iā mākou kahi kaulahao DevOps kokoke e hana. Nui ka hana!

Alakaʻi Dummies: Ke kūkulu ʻana i nā kaulahao DevOps me nā mea hana Open Source

Ma ke kumu, hiki iā ʻoe ke hoʻōki ma ʻaneʻi, a laila hiki iā ʻoe ke mālama iā ʻoe iho, akā pono ke kamaʻilio e pili ana i ka maikaʻi o ke code.

KaʻAnuʻu Hana 5: hoʻāʻo uhi

Nui ka manawa a me ka hoʻoikaika ʻana i ka hoʻāʻo ʻana, akā ʻoi aku ka maikaʻi o ka ʻimi koke ʻana i nā pōpoki a hoʻomaikaʻi i ke code e ʻoluʻolu i nā mea hoʻohana hope. No kēia kumu, nui nā mea hana wehe e hoʻāʻo wale i ke code, akā e aʻo pū i ka pehea e hoʻomaikaʻi ai. Hiki i ka hapa nui o nā mea hana CI/CD ke hoʻopili i kēia mau mea hana a hoʻokaʻawale i ke kaʻina hana.

Ua māhele ʻia ka hoʻāʻo ʻana i ʻelua ʻāpana: nā papa hana hoʻāʻo no ke kākau ʻana a me ka hoʻokō ʻana i nā hoʻokolohua, a me nā mea hana me nā ʻōlelo aʻoaʻo e hoʻomaikaʻi ai i ka maikaʻi code.

Nā Papahana hoʻāʻo

Alakaʻi Dummies: Ke kūkulu ʻana i nā kaulahao DevOps me nā mea hana Open Source

Nā mea hana me nā ʻōlelo aʻoaʻo maikaʻi

Alakaʻi Dummies: Ke kūkulu ʻana i nā kaulahao DevOps me nā mea hana Open Source

Ua kākau ʻia ka hapa nui o kēia mau mea hana a me nā frameworks no Java, Python, a me JavaScript no ka mea he kuleana ʻo C++ a me C# (ʻoiai ʻo GCC he kumu wehe).

Ua noi mākou i nā mea hana hoʻāʻo hoʻāʻo, a i kēia manawa e like ke ʻano o ka pipeline DevOps e like me ke kiʻi ma ka hoʻomaka ʻana o ke aʻo.

Nā ʻanuʻu hou

Nā pahu pahu

E like me kaʻu i ʻōlelo ai ma mua, hiki ke hoʻokipa ʻia kahi kikowaena noi ma kahi mīkini virtual a i ʻole kahi kikowaena, akā ʻoi aku ka kaulana o nā ipu.

He aha nā ipu? I ka pōkole, i loko o kahi mīkini virtual, ʻoi aku ka nui o ka ʻōnaehana hana ma mua o ka noi, a ua lawa ka pahu me kekahi mau hale waihona puke a me ka hoʻonohonoho. I kekahi mau hihia, pono ʻole nā ​​mīkini virtual, akā hiki i ka ipu ke hoʻokomo i ka noi me ke kikowaena me ka uku ʻole.

No nā ipu, lawe pinepine ʻia ʻo Docker a me Kubernetes, ʻoiai aia nā koho ʻē aʻe.

Alakaʻi Dummies: Ke kūkulu ʻana i nā kaulahao DevOps me nā mea hana Open Source

E heluhelu i nā ʻatikala e pili ana iā Docker a me Kubernetes ma opensource.com:

ʻO nā mea hana ʻenehana Middleware

Hoʻokumu ʻia kā mākou kaulahao DevOps i ke kūkulu ʻana a me ka hāʻawi ʻana i kahi noi, akā aia kekahi mau mea hoihoi e hiki iā ʻoe ke hana me nā mea hana DevOps. No ka laʻana, e hoʻohana i nā mea hana Infrastructure as Code (IaC), i ʻike pū ʻia me nā mea hana automation middleware. Kōkua kēia mau mea hana i ka hoʻonohonoho ʻana, hoʻokele, a me nā hana ʻē aʻe no middleware. No ka laʻana, hiki i kahi mea hana automation ke lawe i nā noi (pūnaewele noi pūnaewele, ʻikepili, nā mea hana nānā) me nā hoʻonohonoho kūpono a hoʻokuʻu iā lākou i ka kikowaena noi.

Eia kekahi mau koho no ka wehe ʻana i nā mea hana automation middleware:

Alakaʻi Dummies: Ke kūkulu ʻana i nā kaulahao DevOps me nā mea hana Open Source

Nā kikoʻī ma nā ʻatikala opensource.com:

A i kēia manawa?

ʻO kēia wale nō ka piko o ka hau hau. Hiki i ke kaulahao DevOps ke hana hou aku. E hoʻomaka me kahi mea hana CI/CD a ʻike i nā mea ʻē aʻe āu e hiki ai ke hoʻomaʻamaʻa i mea e maʻalahi ai kāu hana. Mai poina e pili ana nā mea hana kamaʻilio wehe no ka launa pū ʻana.

Eia kekahi mau ʻatikala DevOps maikaʻi loa no ka poʻe hoʻomaka:

Hiki iā ʻoe ke hoʻohui pū i nā DevOps me nā mea hana agile wehe:

Source: www.habr.com

Pākuʻi i ka manaʻo hoʻopuka