Itọsọna Dummies: Ṣiṣe awọn ẹwọn DevOps pẹlu Awọn irinṣẹ Orisun Orisun

Itọsọna Dummies: Ṣiṣe awọn ẹwọn DevOps pẹlu Awọn irinṣẹ Orisun Orisun
Ṣiṣẹda pq DevOps akọkọ rẹ ni awọn igbesẹ marun fun awọn olubere.

DevOps ti di panacea fun awọn ilana idagbasoke ti o lọra pupọ, pipin, ati bibẹẹkọ iṣoro. Ṣugbọn o nilo imọ kekere ti DevOps. Yoo bo awọn imọran bii ẹwọn DevOps ati bii o ṣe le ṣẹda ọkan ninu awọn igbesẹ marun. Eyi kii ṣe itọsọna pipe, ṣugbọn “ẹja” nikan ti o le faagun. Jẹ ká bẹrẹ pẹlu itan.

Ifihan mi si DevOps

Mo ṣiṣẹ lẹẹkan ni awọsanma ni Ẹgbẹ Citi ati idagbasoke ohun elo oju opo wẹẹbu IaaS kan lati ṣakoso awọn amayederun awọsanma Citi, ṣugbọn Mo nifẹ nigbagbogbo si bi a ṣe le ṣe itọsẹ pq idagbasoke ati ilọsiwaju aṣa laarin awọn idagbasoke. Greg Lafenda, CTO wa fun Cloud Architecture ati Infrastructure, ṣeduro iwe naa fun mi Ise agbese "Phoenix". O ṣe alaye awọn ipilẹ DevOps ni pipe ati ka bi aramada.

Iwe tabili tabili ṣe afihan bii igbagbogbo awọn ile-iṣẹ ṣe jade awọn ẹya tuntun:

Itọsọna Dummies: Ṣiṣe awọn ẹwọn DevOps pẹlu Awọn irinṣẹ Orisun Orisun

Bawo ni Amazon, Google ati Netflix ṣe ṣakoso lati yi ọpọlọpọ jade? O rọrun: wọn pinnu bi o ṣe le ṣẹda ẹwọn DevOps pipe ti o fẹrẹẹ.

Awọn nkan ko ri bẹ ni Citi titi ti a fi yipada si DevOps. Ni akoko yẹn, ẹgbẹ mi ni awọn agbegbe oriṣiriṣi, ṣugbọn a fi jiṣẹ si olupin idagbasoke pẹlu ọwọ. Gbogbo awọn olupilẹṣẹ ni iraye si olupin idagbasoke kan ṣoṣo ti o da lori IBM WebSphere Application Server Community Edition. Nigba ti a ba gbiyanju lati firanṣẹ ni akoko kanna, olupin naa ṣubu, ati pe a ni lati duna "irora" pẹlu ara wa ni akoko kọọkan. A tun ni agbegbe idanwo ti ko pe ti koodu naa, ilana ifijiṣẹ afọwọṣe alaapọn, ati pe ko si ọna lati tọpa ifijiṣẹ koodu pẹlu iranlọwọ lori iṣẹ ṣiṣe tabi ibeere alabara.

Ó ṣe kedere pé ohun kan ní kánjúkánjú láti ṣe, mo sì rí alábàákẹ́gbẹ́ tó ní irú èrò kan náà. A pinnu lati ṣẹda pq DevOps akọkọ papọ - o ṣeto ẹrọ foju kan ati olupin ohun elo Tomcat kan, ati pe Mo ṣe abojuto Jenkins, iṣọpọ pẹlu Atlassian Jira ati BitBucket, ati aabo koodu pẹlu awọn idanwo. Ise agbese na jẹ aṣeyọri: a ṣe adaṣe ni kikun pq idagbasoke, ṣaṣeyọri fere 100% uptime lori olupin idagbasoke, le ṣe atẹle ati ilọsiwaju agbegbe koodu idanwo, ati pe ẹka Git le ni asopọ si ifijiṣẹ Jira ati ọran. Ati pe o fẹrẹ jẹ gbogbo awọn irinṣẹ ti a lo lati kọ ẹwọn DevOps jẹ orisun ṣiṣi.

Ni otitọ, pq naa jẹ irọrun, nitori a ko paapaa lo awọn atunto ilọsiwaju nipa lilo Jenkins tabi Ansible. Ṣugbọn a ṣaṣeyọri. Boya eyi jẹ abajade ti opo naa Pareto (aka ofin 80/20).

Apejuwe kukuru ti DevOps ati pq CI/CD

DevOps ni awọn itumọ oriṣiriṣi. DevOps, bii Agile, pẹlu awọn ilana-iṣe oriṣiriṣi. Ṣugbọn pupọ julọ yoo gba pẹlu asọye atẹle: DevOps jẹ ọna kan, tabi igbesi aye igbesi aye, ti idagbasoke sọfitiwia, ipilẹ akọkọ eyiti o jẹ ṣiṣẹda aṣa kan nibiti awọn olupilẹṣẹ ati awọn oṣiṣẹ miiran wa “lori iwọn gigun kanna,” iṣẹ afọwọṣe jẹ adaṣe adaṣe. , Gbogbo eniyan n ṣe ohun ti wọn ṣe julọ, Awọn igbohunsafẹfẹ ti awọn ifijiṣẹ npọ si, awọn ilọsiwaju iṣẹ-ṣiṣe, ati awọn iyipada ti o pọju.

Lakoko ti awọn irinṣẹ nikan ko to lati ṣẹda agbegbe DevOps, iwọ ko le ṣe laisi wọn. Pataki julọ ninu iwọnyi jẹ isọpọ igbagbogbo ati ifijiṣẹ ti nlọ lọwọ (CI/CD). Awọn ipele oriṣiriṣi wa ninu pq fun agbegbe kọọkan (fun apẹẹrẹ, DEV (idagbasoke), INT (iṣọpọ), TST (idanwo), QA (Iṣakoso didara), UAT (idanwo gbigba olumulo), STG (igbaradi), PROD (lilo). )), Awọn iṣẹ-ṣiṣe afọwọṣe jẹ adaṣe, awọn olupilẹṣẹ le gbe koodu didara jade, fi jiṣẹ, ati pe o le tun kọ ni irọrun.

Akọsilẹ yii ṣe apejuwe bi o ṣe le ṣẹda ẹwọn DevOps ni awọn igbesẹ marun, bi a ṣe han ninu aworan ni isalẹ, lilo awọn irinṣẹ orisun ṣiṣi.

Itọsọna Dummies: Ṣiṣe awọn ẹwọn DevOps pẹlu Awọn irinṣẹ Orisun Orisun

Jẹ ki a sọkalẹ lọ si iṣowo.

Igbesẹ 1: Platform CI/CD

Ni akọkọ, o nilo ohun elo CI / CD kan. Jenkins jẹ ohun elo CI/CD ṣiṣi ti a kọ ni Java pẹlu iwe-aṣẹ MIT kan ti o bẹrẹ olokiki ti iṣipopada DevOps ati pe o ti di boṣewa de facto fun CICD.

Kí ni Jenkins túmọ sí? Fojuinu pe o ni igbimọ iṣakoso idan fun ọpọlọpọ awọn iṣẹ ati awọn irinṣẹ. Lori ara rẹ, ohun elo CI / CD bi Jenkins ko wulo, ṣugbọn pẹlu awọn irinṣẹ ati awọn iṣẹ oriṣiriṣi o di alagbara.

Ọpọlọpọ awọn irinṣẹ orisun ṣiṣi miiran wa lẹgbẹẹ Jenkins, yan eyikeyi ọkan.

Itọsọna Dummies: Ṣiṣe awọn ẹwọn DevOps pẹlu Awọn irinṣẹ Orisun Orisun

Eyi ni ohun ti ilana DevOps dabi pẹlu ohun elo CI/CD kan

Itọsọna Dummies: Ṣiṣe awọn ẹwọn DevOps pẹlu Awọn irinṣẹ Orisun Orisun

O ni ohun elo CI/CD ni localhost, ṣugbọn ko si pupọ lati ṣe sibẹsibẹ. Jẹ ki a lọ si igbesẹ ti n tẹle.

Igbesẹ 2: Iṣakoso Ẹya

Ọna ti o dara julọ (ati boya o rọrun julọ) lati ṣe idanwo idan ti ohun elo CI/CD ni lati ṣepọ pẹlu ohun elo iṣakoso orisun (SCM). Kini idi ti o nilo iṣakoso ẹya? Jẹ ká sọ pé o ti wa ni ṣiṣe ohun elo. O kọ ọ ni Java, Python, C++, Go, Ruby, JavaScript tabi ede eyikeyi miiran, eyiti o wa ni gbigbe ati kẹkẹ kekere kan. Ohun ti o kọ ni a npe ni koodu orisun. Ni akọkọ, paapaa ti o ba n ṣiṣẹ nikan, o le fẹ lati fi ohun gbogbo pamọ si itọsọna agbegbe kan. Ṣugbọn bi iṣẹ akanṣe kan ti n dagba ati pe eniyan diẹ sii darapọ mọ, o nilo ọna lati pin awọn iyipada koodu ṣugbọn yago fun awọn ikọlupọ. O tun nilo lati mu pada bakan awọn ẹya ti tẹlẹ laisi lilo awọn afẹyinti ati lilo ọna daakọ-lẹẹmọ fun awọn faili koodu.

Ati pe nibi o ko le lọ laisi SCM. SCM tọju koodu ni awọn ibi ipamọ, ṣakoso awọn ẹya rẹ, ati ipoidojuko laarin awọn olupolowo.

Ọpọlọpọ awọn irinṣẹ SCM lo wa, ṣugbọn Git ti tọsi di boṣewa de facto. Mo ṣeduro lilo eyi, ṣugbọn awọn aṣayan miiran wa.

Itọsọna Dummies: Ṣiṣe awọn ẹwọn DevOps pẹlu Awọn irinṣẹ Orisun Orisun

Eyi ni ohun ti opo gigun ti epo DevOps dabi lẹhin fifi SCM kun.

Itọsọna Dummies: Ṣiṣe awọn ẹwọn DevOps pẹlu Awọn irinṣẹ Orisun Orisun

Ọpa CI/CD le ṣe adaṣe awọn ikojọpọ koodu orisun ati igbasilẹ ati ifowosowopo ẹgbẹ. Ko buru? Ṣugbọn bawo ni a ṣe le yi eyi pada si ohun elo iṣẹ ti o nifẹ nipasẹ awọn ọkẹ àìmọye awọn olumulo?

Igbesẹ 3: Kọ Irinṣẹ Automation

Ohun gbogbo n lọ bi o ti yẹ. O le gbe koodu gbejade ati ṣe awọn ayipada si iṣakoso ẹya, ati pe awọn ọrẹ lati ṣiṣẹ pẹlu rẹ. Ṣugbọn o ko ni app sibẹsibẹ. Fun o le jẹ ohun elo wẹẹbu kan, o gbọdọ ṣajọ ati ṣajọ fun ifijiṣẹ tabi ṣiṣẹ bi faili ṣiṣe. (Ede siseto ti a tumọ, gẹgẹbi JavaScript tabi PHP, ko nilo lati ṣe akopọ.)

Lo a Kọ adaṣiṣẹ irinṣẹ. Eyikeyi ọpa ti o yan, yoo gba koodu naa ni ọna kika ti o nilo ati adaṣe ṣiṣe-fọọmu, akopọ, idanwo ati ifijiṣẹ. Awọn irinṣẹ kikọ yatọ si da lori ede naa, ṣugbọn awọn aṣayan orisun ṣiṣi wọnyi ni a lo nigbagbogbo.

Itọsọna Dummies: Ṣiṣe awọn ẹwọn DevOps pẹlu Awọn irinṣẹ Orisun Orisun

Pipe! Bayi jẹ ki a fi awọn faili atunto irinṣẹ adaṣe adaṣe sinu eto iṣakoso ẹya ki ohun elo CI/CD kọ wọn.

Itọsọna Dummies: Ṣiṣe awọn ẹwọn DevOps pẹlu Awọn irinṣẹ Orisun Orisun

O kan lara ti o dara. Ṣugbọn nibo ni o yẹ ki a yi gbogbo eyi jade ni bayi?

Igbesẹ 4: Olupin Ohun elo Ayelujara

Nitorinaa, o ni faili ti o ṣajọpọ ti o le ṣiṣẹ tabi yiyi jade. Fun ohun elo kan lati wulo nitootọ, o gbọdọ ni iru iṣẹ kan tabi wiwo, ṣugbọn o nilo lati fi gbogbo rẹ si ibikan.

Ohun elo wẹẹbu naa le gbalejo lori olupin ohun elo wẹẹbu kan. Olupin ohun elo n pese agbegbe kan nibiti o le ṣe ilana ọgbọn eto lati inu package, ṣe wiwo, ati ṣafihan awọn iṣẹ wẹẹbu nipasẹ iho kan. O nilo olupin HTTP ati ọpọlọpọ awọn agbegbe miiran (ẹrọ foju, fun apẹẹrẹ) lati fi sori ẹrọ olupin ohun elo. Ni bayi, jẹ ki a dibọn pe o ro eyi bi o ṣe n lọ (botilẹjẹpe Emi yoo sọrọ nipa awọn apoti ni isalẹ).

Orisirisi awọn olupin ohun elo wẹẹbu ṣiṣi wa.

Itọsọna Dummies: Ṣiṣe awọn ẹwọn DevOps pẹlu Awọn irinṣẹ Orisun Orisun

A ti ni tẹlẹ ẹwọn DevOps ti n ṣiṣẹ. Ise nla!

Itọsọna Dummies: Ṣiṣe awọn ẹwọn DevOps pẹlu Awọn irinṣẹ Orisun Orisun

Ni opo, o le da duro nibi, o le mu awọn iyokù funrararẹ, ṣugbọn o tun tọ lati sọrọ nipa didara koodu naa.

Igbesẹ 5: Ideri Idanwo

Idanwo gba akoko pupọ ati igbiyanju, ṣugbọn o dara lati wa awọn aṣiṣe lẹsẹkẹsẹ ki o mu koodu naa dara lati wu awọn olumulo ipari. Fun idi eyi, ọpọlọpọ awọn irinṣẹ ṣiṣi wa ti kii yoo ṣe idanwo koodu nikan, ṣugbọn tun ni imọran bi o ṣe le mu sii. Pupọ julọ awọn irinṣẹ CI/CD le sopọ si awọn irinṣẹ wọnyi ati ṣe adaṣe ilana naa.

Idanwo ti pin si awọn ẹya meji: awọn ilana idanwo fun kikọ ati ṣiṣe awọn idanwo, ati awọn irinṣẹ pẹlu awọn imọran fun imudarasi didara koodu.

Awọn ilana idanwo

Itọsọna Dummies: Ṣiṣe awọn ẹwọn DevOps pẹlu Awọn irinṣẹ Orisun Orisun

Awọn irinṣẹ pẹlu awọn imọran didara

Itọsọna Dummies: Ṣiṣe awọn ẹwọn DevOps pẹlu Awọn irinṣẹ Orisun Orisun

Pupọ julọ awọn irinṣẹ ati awọn ilana ni a kọ fun Java, Python ati JavaScript nitori C ++ ati C # jẹ ohun-ini (botilẹjẹpe GCC jẹ orisun ṣiṣi).

A ti lo awọn irinṣẹ agbegbe idanwo, ati nisisiyi opo gigun ti epo DevOps yẹ ki o dabi aworan ni ibẹrẹ itọsọna naa.

Afikun Igbesẹ

Apoti

Gẹgẹbi Mo ti sọ, olupin ohun elo le gbalejo lori ẹrọ foju tabi olupin, ṣugbọn awọn apoti jẹ olokiki diẹ sii.

Kini awọn apoti? Ni kukuru, ninu ẹrọ foju kan, ẹrọ ṣiṣe nigbagbogbo gba aaye diẹ sii ju ohun elo lọ, ati pe eiyan nigbagbogbo nilo awọn ile-ikawe diẹ ati iṣeto ni nikan. Ni awọn igba miiran, awọn ẹrọ foju ko ṣe pataki, ṣugbọn apoti gba ohun elo naa pẹlu olupin laisi idiyele afikun.

Fun awọn apoti, Docker ati Kubernetes nigbagbogbo lo, botilẹjẹpe awọn aṣayan miiran wa.

Itọsọna Dummies: Ṣiṣe awọn ẹwọn DevOps pẹlu Awọn irinṣẹ Orisun Orisun

Ka awọn nkan nipa Docker ati Kubernetes lori opensource.com:

Middleware Automation Tools

Ẹwọn DevOps wa ni idojukọ lori kikọ ifowosowopo ati jiṣẹ ohun elo kan, ṣugbọn awọn ohun tutu miiran wa ti o le ṣe pẹlu awọn irinṣẹ DevOps. Fun apẹẹrẹ, lo Awọn ohun elo amayederun bi koodu (IaC), ti a tun pe ni awọn irinṣẹ adaṣe agbedemeji. Awọn irinṣẹ wọnyi ṣe iranlọwọ adaṣe adaṣe, iṣakoso, ati awọn iṣẹ-ṣiṣe miiran fun agbedemeji. Fun apẹẹrẹ, ohun elo adaṣe le mu awọn ohun elo (olupin ohun elo wẹẹbu, data data, awọn irinṣẹ ibojuwo) pẹlu awọn atunto to pe ki o yi wọn jade si olupin ohun elo.

Eyi ni diẹ ninu awọn aṣayan irinṣẹ adaṣiṣẹ agbedemeji orisun ṣiṣi:

Itọsọna Dummies: Ṣiṣe awọn ẹwọn DevOps pẹlu Awọn irinṣẹ Orisun Orisun

Awọn alaye ni awọn nkan lori opensource.com:

Bayi kini?

Eleyi jẹ o kan awọn sample ti tente. Ẹwọn DevOps le ṣe pupọ diẹ sii. Bẹrẹ pẹlu ohun elo CI/CD ki o wo kini ohun miiran ti o le ṣe adaṣe lati jẹ ki iṣẹ rẹ rọrun. Maṣe gbagbe nipa awọn irinṣẹ ibaraẹnisọrọ ṣiṣi fun munadoko ifowosowopo.

Eyi ni diẹ ninu awọn nkan ti o dara diẹ sii nipa DevOps fun awọn olubere:

O tun le ṣepọ DevOps pẹlu awọn irinṣẹ ṣiṣi fun agile:

orisun: www.habr.com

Fi ọrọìwòye kun