Canllaw dymis: Adeiladu Cadwyni DevOps gydag Offer Ffynhonnell Agored

Canllaw dymis: Adeiladu Cadwyni DevOps gydag Offer Ffynhonnell Agored
Adeiladu eich cadwyn DevOps gyntaf mewn pum cam i ddechreuwyr.

Mae DevOps wedi dod yn ateb i bob problem ar gyfer prosesau datblygu rhy araf, datgysylltiedig a phroblemaidd fel arall. Ond mae angen ychydig iawn o wybodaeth arnoch chi yn DevOps. Bydd yn ymdrin â chysyniadau fel cadwyn DevOps a sut i greu un o bob pum cam. Nid yw hwn yn ganllaw cyflawn, ond dim ond "pysgodyn" y gellir ei ehangu. Gadewch i ni ddechrau gyda hanes.

Fy nghyflwyniad i DevOps

Roeddwn i'n arfer gweithio gyda chymylau yn Citi Group a datblygu cymhwysiad gwe IaaS i reoli seilwaith cwmwl Citi, ond rydw i bob amser wedi bod â diddordeb mewn sut i wneud y gorau o'r gadwyn ddatblygu a gwella'r diwylliant ymhlith datblygwyr. Argymhellodd Greg Lavender, ein CTO ar gyfer Pensaernïaeth ac Isadeiledd Cwmwl, y llyfr hwn i mi. Prosiect "Phoenix". Mae'n esbonio egwyddorion DevOps yn hyfryd ac yn darllen fel nofel.

Mae'r tabl ar y cefn yn dangos pa mor aml y mae cwmnïau'n cyflwyno fersiynau newydd:

Canllaw dymis: Adeiladu Cadwyni DevOps gydag Offer Ffynhonnell Agored

Sut mae Amazon, Google a Netflix yn llwyddo i gyflwyno cymaint? Ac mae'n syml: fe wnaethant ddarganfod sut i greu cadwyn DevOps bron yn berffaith.

Roedd pethau'n wahanol iawn i ni yn Citi nes i ni newid i DevOps. Yna roedd gan fy nhîm amgylcheddau gwahanol, ond fe wnaethon ni'r danfoniad i'r gweinydd datblygu â llaw. Dim ond un gweinydd datblygu oedd gan bob datblygwr yn seiliedig ar IBM WebSphere Application Server Community Edition. Gydag ymgais ar yr un pryd i ddanfon, “syrthiodd y gweinydd”, a phob tro roedd yn rhaid i ni “drafod yn boenus” ymhlith ein hunain. Hefyd, ni chawsom ddigon o sylw cod gyda phrofion, proses ddosbarthu â llaw a oedd yn cymryd llawer o amser, a dim ffordd o olrhain y broses o gyflwyno cod gyda chymorth rhyw dasg neu ofyniad cleient.

Roedd yn amlwg bod angen gwneud rhywbeth ar frys, a des o hyd i gydweithiwr o’r un anian. Fe wnaethom benderfynu creu'r gadwyn DevOps gyntaf gyda'n gilydd - sefydlodd beiriant rhithwir a gweinydd cais Tomcat, a chymerais ofal o Jenkins, integreiddio ag Atlassian Jira a BitBucket, yn ogystal â sylw cod gyda phrofion. Roedd y prosiect yn llwyddiannus: gwnaethom awtomeiddio'r gadwyn ddatblygu yn llawn, cyflawni bron i 100% uptime ar y gweinydd datblygu, roeddem yn gallu monitro a gwella cwmpas cod gyda phrofion, a gallai cangen Git fod yn gysylltiedig â chyflwyniad a mater Jira. Ac roedd bron pob un o'r offer a ddefnyddiwyd gennym i adeiladu'r gadwyn DevOps yn ffynhonnell agored.

Mewn gwirionedd, symleiddiwyd y gadwyn, oherwydd ni wnaethom hyd yn oed gymhwyso ffurfweddiadau uwch gan ddefnyddio Jenkins neu Ansible. Ond llwyddasom. Efallai mai canlyniad yr egwyddor yw hyn Pareto (aka rheol 80/20).

Disgrifiad Byr o'r DevOps a'r Gadwyn CI/CD

Mae gan DevOps ddiffiniadau gwahanol. Mae DevOps, fel Agile, yn cynnwys gwahanol ddisgyblaethau. Ond bydd y mwyafrif yn cytuno â'r diffiniad canlynol: Mae DevOps yn ddull, neu gylch bywyd, o ddatblygu meddalwedd, a'i brif egwyddor yw creu diwylliant lle mae datblygwyr a gweithwyr eraill “ar yr un donfedd”, mae llafur llaw yn awtomataidd, mae pawb yn gwneud yr hyn y maent yn ei wneud orau, mae amlder danfoniadau yn cynyddu, mae cynhyrchiant gwaith yn cynyddu, mae hyblygrwydd yn cynyddu.

Er nad yw offer yn unig yn ddigon i greu amgylchedd DevOps, maent yn anhepgor. Y pwysicaf o'r rhain yw integreiddio parhaus a darpariaeth barhaus (CI/CD). Mae gwahanol gamau yn y gadwyn ar gyfer pob amgylchedd (e.e. DEV (datblygu), INT (integreiddio), TST (profi), QA (sicrhau ansawdd), UAT (profion derbyn defnyddwyr), STG (paratoi), PROD (defnydd)) , mae tasgau llaw yn awtomataidd, gall datblygwyr gynhyrchu cod ansawdd, ei gyflwyno, a gallant ailadeiladu'n hawdd.

Mae'r nodyn hwn yn disgrifio sut i greu cadwyn DevOps mewn pum cam, fel y dangosir yn y llun isod, gan ddefnyddio offer ffynhonnell agored.

Canllaw dymis: Adeiladu Cadwyni DevOps gydag Offer Ffynhonnell Agored

Gadewch i ni fynd i lawr i fusnes.

Cam 1: Llwyfan CI/CD

Yn gyntaf oll, mae angen teclyn CI/CD arnoch chi. Mae Jenkins yn offeryn CI/CD ffynhonnell agored trwyddedig gan MIT a ysgrifennwyd yn Java a boblogeiddiodd y mudiad DevOps ac sydd wedi dod yn safon de facto ar gyfer CICD.

Beth yw Jenkins? Dychmygwch fod gennych chi banel rheoli hudol ar gyfer amrywiaeth o wasanaethau ac offer. Ar ei ben ei hun, mae teclyn CI/CD fel Jenkins yn ddiwerth, ond gyda gwahanol offer a gwasanaethau, mae'n dod yn holl-bwerus.

Yn ogystal â Jenkins, mae yna lawer o offer ffynhonnell agored eraill, dewiswch unrhyw un.

Canllaw dymis: Adeiladu Cadwyni DevOps gydag Offer Ffynhonnell Agored

Dyma sut olwg sydd ar broses DevOps gydag offeryn CI/CD

Canllaw dymis: Adeiladu Cadwyni DevOps gydag Offer Ffynhonnell Agored

Mae gennych offeryn CI/CD yn localhost, ond nid oes llawer i'w wneud eto. Gadewch i ni symud ymlaen i'r cam nesaf.

Cam 2: Rheoli Fersiwn

Y ffordd orau (a hawsaf o bosibl) o brofi hud offeryn CI/CD yw ei integreiddio ag offeryn rheoli ffynhonnell (SCM). Pam mae angen rheolaeth fersiwn arnoch chi? Gadewch i ni ddweud eich bod yn gwneud cais. Rydych chi'n ei ysgrifennu yn Java, Python, C++, Go, Ruby, JavaScript, neu unrhyw iaith arall sy'n wagen a chert bach. Gelwir yr hyn a ysgrifennwch yn god ffynhonnell. Ar y dechrau, yn enwedig os ydych chi'n gweithio ar eich pen eich hun, gallwch arbed popeth i gyfeiriadur lleol. Ond wrth i'r prosiect dyfu a mwy o bobl ymuno, mae angen ffordd arnoch i rannu newidiadau cod ond osgoi gwrthdaro wrth gyfuno newidiadau. Ac mae angen i chi hefyd rywsut adfer fersiynau blaenorol heb ddefnyddio copïau wrth gefn a defnyddio'r dull copi-gludo ar gyfer ffeiliau cod.

Ac yma heb SCM yn unrhyw le. Mae'r SCM yn storio cod mewn ystorfeydd, yn rheoli fersiynau ohono, ac yn ei gydlynu ymhlith datblygwyr.

Mae yna lawer o offer SCM, ond mae Git wedi dod yn safon de facto yn haeddiannol. Rwy'n eich cynghori i'w ddefnyddio, ond mae yna opsiynau eraill.

Canllaw dymis: Adeiladu Cadwyni DevOps gydag Offer Ffynhonnell Agored

Dyma sut olwg sydd ar biblinell DevOps ar ôl ychwanegu'r SCM.

Canllaw dymis: Adeiladu Cadwyni DevOps gydag Offer Ffynhonnell Agored

Gall yr offeryn CI/CD awtomeiddio uwchlwytho a lawrlwytho cod ffynhonnell a chydweithio tîm. Ddim yn ddrwg? Ond nawr sut i wneud cymhwysiad gweithredol o hwn, y mae biliynau o ddefnyddwyr yn ei garu?

Cam 3: Adeiladu Offeryn Automation

Mae popeth yn mynd fel y dylai. Gallwch uwchlwytho cod ac ymrwymo newidiadau i reolaeth ffynhonnell, a gwahodd ffrindiau i weithio gyda chi. Ond nid oes gennych app eto. Er mwyn i hwn fod yn gymhwysiad gwe, rhaid ei lunio a'i becynnu i'w ddosbarthu neu ei redeg fel gweithredadwy. (Nid oes angen llunio iaith raglennu wedi'i dehongli fel JavaScript neu PHP.)

Defnyddiwch offeryn awtomeiddio adeiladu. Pa bynnag offeryn a ddewiswch, bydd yn cydosod y cod yn y fformat cywir ac yn awtomeiddio glanhau, casglu, profi a danfon. Mae offer adeiladu yn amrywio yn ôl iaith, ond mae'r opsiynau ffynhonnell agored canlynol yn cael eu defnyddio'n gyffredin.

Canllaw dymis: Adeiladu Cadwyni DevOps gydag Offer Ffynhonnell Agored

Perffaith! Nawr, gadewch i ni fewnosod y ffeiliau cyfluniad offeryn awtomeiddio adeiladu i reolaeth ffynhonnell fel bod yr offeryn CI / CD yn eu hadeiladu.

Canllaw dymis: Adeiladu Cadwyni DevOps gydag Offer Ffynhonnell Agored

Mae'n teimlo'n dda. Ond ble mae hyn i gyd i'w gyflwyno nawr?

Cam 4: Gweinydd Cais Gwe

Felly, mae gennych ffeil wedi'i becynnu y gellir ei gweithredu neu ei chyflwyno. Er mwyn i gais fod yn ddefnyddiol iawn, rhaid iddo gael rhyw fath o wasanaeth neu ryngwyneb, ond mae angen i chi ei roi i gyd yn rhywle.

Gellir cynnal rhaglen we ar weinydd rhaglenni gwe. Mae gweinydd y cymhwysiad yn darparu amgylchedd lle gallwch chi weithredu rhesymeg wedi'i becynnu, rhyngwynebau rendrad, a datgelu gwasanaethau gwe dros soced. Mae angen gweinydd HTTP arnoch ac ychydig o amgylcheddau eraill (peiriant rhithwir, er enghraifft) i osod gweinydd y cais. Am y tro, gadewch i ni esgus eich bod chi'n delio â hyn i gyd wrth i chi fynd (er y byddaf yn siarad am gynwysyddion isod).

Mae yna nifer o weinyddion cymwysiadau gwe agored.

Canllaw dymis: Adeiladu Cadwyni DevOps gydag Offer Ffynhonnell Agored

Mae gennym ni gadwyn DevOps sydd bron yn gweithio. Swydd ardderchog!

Canllaw dymis: Adeiladu Cadwyni DevOps gydag Offer Ffynhonnell Agored

Mewn egwyddor, gallwch chi stopio yma, yna gallwch chi ei drin eich hun, ond mae'n werth siarad am ansawdd y cod.

Cam 5: Prawf cwmpas

Mae profi yn cymryd llawer o amser ac ymdrech, ond mae'n well dod o hyd i fygiau ar unwaith a gwella'r cod i blesio defnyddwyr terfynol. At y diben hwn, mae yna lawer o offer agored a fydd nid yn unig yn profi'r cod, ond hefyd yn cynghori ar sut i'w wella. Gall y rhan fwyaf o offer CI/CD blygio i mewn i'r offer hyn ac awtomeiddio'r broses.

Rhennir y profion yn ddwy ran: fframweithiau profi ar gyfer ysgrifennu a gweithredu profion, ac offer gydag awgrymiadau i wella ansawdd cod.

Fframweithiau Profi

Canllaw dymis: Adeiladu Cadwyni DevOps gydag Offer Ffynhonnell Agored

Offer gydag awgrymiadau o ansawdd

Canllaw dymis: Adeiladu Cadwyni DevOps gydag Offer Ffynhonnell Agored

Mae'r rhan fwyaf o'r offer a'r fframweithiau hyn wedi'u hysgrifennu ar gyfer Java, Python, a JavaScript oherwydd bod C ++ a C # yn berchnogol (er bod GCC yn ffynhonnell agored).

Rydym wedi cymhwyso'r offer sylw prawf, a nawr dylai piblinell DevOps edrych fel y llun ar ddechrau'r tiwtorial.

Camau ychwanegol

Cynhwyswyr

Fel y dywedais o'r blaen, gellir cynnal gweinydd cais mewn peiriant rhithwir neu weinydd, ond mae cynwysyddion yn fwy poblogaidd.

Beth yw cynwysyddion? Yn fyr, mewn peiriant rhithwir, mae'r system weithredu yn aml yn cymryd mwy o le na'r cais, ac mae cynhwysydd fel arfer yn ddigon gydag ychydig o lyfrgelloedd a chyfluniad. Mewn rhai achosion, mae peiriannau rhithwir yn anhepgor, ond gall y cynhwysydd ddarparu ar gyfer y cais ynghyd â'r gweinydd heb unrhyw gost ychwanegol.

Ar gyfer cynwysyddion, mae Docker a Kubernetes yn cael eu cymryd fel arfer, er bod opsiynau eraill.

Canllaw dymis: Adeiladu Cadwyni DevOps gydag Offer Ffynhonnell Agored

Darllenwch erthyglau am Docker a Kubernetes yn opensource.com:

Offer awtomeiddio Middleware

Mae ein cadwyn DevOps yn canolbwyntio ar adeiladu a chyflwyno cais ar y cyd, ond mae yna bethau diddorol eraill y gallwch chi eu gwneud gydag offer DevOps. Er enghraifft, defnyddiwch offer Seilwaith fel Cod (IaC), a elwir hefyd yn offer awtomeiddio canolwedd. Mae'r offer hyn yn helpu i awtomeiddio gosod, rheoli a thasgau eraill ar gyfer nwyddau canol. Er enghraifft, gall offeryn awtomeiddio gymryd cymwysiadau (gweinydd cymhwysiad gwe, cronfa ddata, offer monitro) gyda'r ffurfweddiadau cywir a'u gwthio i weinydd y rhaglen.

Dyma rai opsiynau ar gyfer offer awtomeiddio canolwedd agored:

Canllaw dymis: Adeiladu Cadwyni DevOps gydag Offer Ffynhonnell Agored

Manylion yn yr erthyglau opensource.com:

A nawr beth?

Dim ond blaen y mynydd iâ yw hyn. Gall cadwyn DevOps wneud llawer mwy. Dechreuwch gydag offeryn CI/CD a gweld beth arall y gallwch chi ei awtomeiddio i wneud eich swydd yn haws. Peidiwch ag anghofio am offer cyfathrebu agored ar gyfer cydweithio effeithiol.

Dyma rai mwy o erthyglau DevOps da i ddechreuwyr:

Gallwch hefyd integreiddio DevOps ag offer ystwyth agored:

Ffynhonnell: hab.com

Ychwanegu sylw