Hagaha Bilowga: Abuuritaanka Dhuumaha DevOps

Haddii aad ku cusub tahay DevOps, ka fiirso hagahan shanta tallaabo ah si aad u abuurto dhuumahaaga ugu horreeya.

Hagaha Bilowga: Abuuritaanka Dhuumaha DevOps

DevOps waxay noqotay xalka caadiga ah ee lagu hagaajinayo hababka horumarinta software ee gaabis ah, kala go'a ama jabay. Dhibaatadu waxay tahay haddii aad ku cusub tahay DevOps oo aadan garanayn meel aad ka bilowdo, waxaa laga yaabaa inaad weydo fahamka farsamooyinkan. Maqaalkani wuxuu ka hadli doonaa qeexida dhuumaha DevOps wuxuuna sidoo kale bixin doonaa tilmaamo shan tallaabo ah oo mid lagu abuurayo. In kasta oo casharradani aanay ahayn mid dhammaystiran, haddana waa inay ku siiso aasaas aad ku bilowdo safarkaaga oo aad mustaqbalka balaadhiso aqoontaada. Balse aan taariikhda ka bilowno.

Socdaalkayga DevOps

Waxaan horay uga soo shaqeeyay kooxda Citi Group Cloud si ay u horumariyaan kaabayaasha-as-a-adeegga (IaaS) arji shabakad si ay u maareeyaan kaabayaasha daruuraha ee Citi, laakiin waxaan had iyo jeer xiiseynayay sida loo sameeyo habka horumarinta mid hufan oo u keeno isbeddel dhaqameed wanaagsan kooxda horumarinta. Jawaabta waxaan ka helay buug uu ku taliyay Greg Lavender, CTO of Cloud Architecture and Infrastructure ee Citi. Buuga waxaa la odhan jiray The Phoenix Project (Mashruuca Phoenix), oo waxay sharraxaysaa mabaadi'da DevOps, laakiin waxay u akhridaa sidii sheeko cusub.

Jadwalka ku yaal dhabarka buuggu wuxuu muujinayaa inta jeer ee shirkadaha kala duwan ay dejiyaan nidaamkooda jawiga sii daynta:

Amazon: 23 maalintii
Google: 5 maalintii
Netflix: 500 maalintii
Facebook: hal mar maalintii
Twitter: 3 jeer todobaadkii
Shirkadda caadiga ah: Hal mar 9-kii biloodba

Sidee Amazon, Google iyo Netflix soo noqnoqoshada xitaa suurtogal u yihiin? Tani waa sababta oo ah shirkadahani waxay qiyaaseen sida loo abuuro dhuumo DevOps ku dhow oo qumman.

Waan ka fogeyn tan ilaa aan ka hirgelinay DevOps Citi. Waagaas, kooxdaydu waxay lahayd bey'ado kala duwan, laakiin ku-diridda server-ka horumarintu waxay ahayd mid gacanta ku jirta. Dhammaan horumariyeyaashu waxay marin u heleen hal server oo horumarineed oo ku salaysan IBM WebSphere Application Server Edition. Dhibaatadu waxay ahayd in server-ku uu xirmi doono mar kasta oo isticmaaleyaal badan ay isku dayaan in ay isku mar geeyaan, sidaas darteed horumariyayaashu waxay ku qasbanaadeen in ay la xiriiraan ujeedadooda midba midka kale, taas oo ah xanuun aad u daran. Intaa waxaa dheer, waxaa jiray arrimo ku saabsan daboolida koodhka imtixaanka heerka hooseeya, hababka hawlgelinta gacanta ee dhibka badan, iyo awood la'aanta in la raad raaco geynta koodka ee la xidhiidha hawl gaar ah ama sheeko isticmaale.

Waxaan gartay in wax loo baahan yahay in la qabto, waxaana helay saaxiib ay isku maan-gal yihiin. Waxaan go'aansanay inaan iska kaashano dhisidda dhuumaha bilowga ah ee DevOps - wuxuu dejiyay mashiinka farsamada ee Tomcat iyo server-ka codsiga inta aan ka shaqeeyay Jenkins, isku-dhafka Atlassian Jira iyo BitBucket, oo aan ka shaqeeyay caymiska koodhka imtixaanka. Mashruucan dhinacani wuxuu ahaa mid aad u guulaystay: waxaanu ku dhawaaday in aanu si otomaatig ah u samaynay habab badan, waxaanu ku gaadhnay ku dhawaad ​​100% wakhtiga ku haboon server-kayaga horumarinta, waxaanu bixinay daba-galka iyo hagaajinta daboolida koodka, waxaanu ku darnay awooda lagu xidho laamaha Git arrimaha Jira ama hawlgelinta. Inta badan aaladaha aan u isticmaalnay dhisidda dhuumaha DevOps waxay ahaayeen il furan.

Hadda waxaan fahamsanahay sida fudud ee dhuumahayada DevOps: maanaan isticmaalin kordhinta sida faylasha Jenkins ama macquulka ah. Si kastaba ha ahaatee, dhuuntan fudud ayaa si fiican u shaqeysay, laga yaabee inay sabab u tahay mabda'a Pareto (sidoo kale loo yaqaan xeerka 80/20).

Hordhac Kooban oo ku saabsan DevOps iyo Dhuumaha CI/CD

Haddii aad waydiiso dhowr qof, "Waa maxay DevOps?", waxay u badan tahay inaad heli doonto jawaabo kala duwan. DevOps, sida Agile, waxa ay u xuubsiibtay in ay ku faafo qaybo badan oo kala duwan, laakiin dadka intiisa badan ayaa ku heshiin doona dhawr waxyaalood: DevOps waa hab-dhaqanka horumarinta software ama wareegga nolosha horumarinta software (SDLC) kaas oo mabda'iisa udub dhexaad u yahay beddelka dhaqanka ay ku jiraan horumarinta iyo kuwa aan- horumariyayaashu waxay ka jiraan deegaan ay:

Hawlgalladii hore ee gacanta lagu sameeyey ayaa si toos ah loo sameeyey;
Qof kastaa wuxuu sameeyaa waxa ugu fiican;
Tirada fulinta ee muddo cayiman ayaa kordheysa; Wax soo saarka ayaa kordha;
Dabacsanaanta horumarka oo kordhay.

In kasta oo haysashada aaladaha softiweerka saxda ah aysan ahayn waxa kaliya ee aad u baahan tahay si aad u abuurto jawi DevOps, aaladaha qaar ayaa muhiim ah. Qalabka muhiimka ah waa is-dhexgalka joogtada ah iyo hawlgelinta joogtada ah (CI/CD). Dhuumahan, deegaanadu waxay leeyihiin heerar kala duwan (tusaale, DEV, INT, TST, QA, UAT, STG, PROD), hawlo badan ayaa si toos ah u shaqeeya, horumariyayaashuna waxay qori karaan kood tayo sare leh, waxay gaari karaan karti horumarineed, iyo heerar sare oo geyn ah.

Maqaalkani wuxuu qeexayaa habka shan-talaabo ee loo abuurayo dhuumaha DevOps sida midka lagu muujiyay jaantuska soo socda iyadoo la adeegsanayo qalab il furan.

Tallaabada 1: Hababka CI/CD

Waxa ugu horreeya ee aad u baahan tahay waa qalabka CI/CD. Jenkins, oo ah qalab il furan oo ku salaysan Java oo shati ku haysta shatiga MIT, waa aaladda faafisay DevOps oo noqotay heerka dhabta ah.

Haddaba waa maxay Jenkins? Ka fakar sida nooc ka mid ah kontoroolka fogaanta caalamiga ah ee sixirka kaasoo la hadli kara oo habayn kara adeegyo iyo qalabyo kala duwan. Kaligiis, aaladda CI/CD sida Jenkins waa wax aan faa'iido lahayn, laakiin waxay noqotaa mid aad u xoog badan marka ay ku xirto qalab iyo adeegyo kala duwan.

Jenkins waa mid ka mid ah ilo badan oo furan CI/CD qalabyada aad isticmaali karto si aad u dhisto dhuumahaaga DevOps.

Jenkins: Creative Commons iyo MIT
Travis CI: MIT
CruiseControl:BSD
Buildbot: GPL
Apache Gump: Apache 2.0
Cabe: GNU

Waa kuwan habka DevOps u eg ee qalabka CI/CD:

Hagaha Bilowga: Abuuritaanka Dhuumaha DevOps

Waxaad haysataa qalab CI/CD ah oo ku shaqeeya localhost, laakiin wax badan oo aad hadda qaban karto ma jiraan. Aan u gudubno marxaladda xigta ee safarka DevOps.

Tallaabada 2: Maamul Nidaamyada Xakamaynta Isha

Habka ugu fiican (iyo laga yaabee ugu fudud) ee lagu xaqiijin karo in qalabkaaga CI/CD uu samayn karo sixirkiisa waa in lagu dhex daro aaladda koodhka isha (SCM). Maxaad ugu baahan tahay ilaalinta isha? Aynu nidhaahno waxaad samaynaysaa codsi. Mar kasta oo aad samaysato arji, waxaad tahay programming, dhib malaha inaad isticmaasho Java, Python, C++, Go, Ruby, JavaScript, ama mid ka mid ah zillions of programming languages. Koodhka aad qorto waxa loo yaqaan koodka isha. Bilawga, gaar ahaan marka aad kaligaa shaqaynayso, way fiican tahay inaad wax walba ku riddo hagaha deegaanka. Laakin marka uu mashruucu sii weynaado oo aad dadka kale ku casuunto inay iska kaashadaan, waxaad u baahan tahay hab aad uga hortagto isku dhacyada adigoo si wax ku ool ah u wadaagaya wax ka bedelka. Waxa kale oo aad u baahan tahay hab aad ku soo celiso nuqulkii hore, sababtoo ah abuurista nuqul ka mid ah iyo ku dhejinta / dhejinta iyaga ayaa noqonaysa mid duug ah. Adiga (iyo asxaabtaada) waxaad u baahan tihiin wax ka fiican.

Tani waa meesha kontoroolka koodka isha uu noqdo ku dhawaad ​​lama huraan. Qalabkani waxa uu ku kaydiyaa koodkaaga meelo kayd ah, waxa uu la socdaa noocyada, waxa aanu isku dubaridaa shaqada ka qaybgalayaasha mashruuca.

In kasta oo ay jiraan aalado badan oo kantaroolka isha, Git waa heerka, waana sax. Waxaan aad ugu talinayaa in la isticmaalo Git, in kasta oo ay jiraan xulashooyin ilo kale oo furan haddii aad doorbidayso.

Git: GPLv2 iyo LGPL v2.1
Burburinta: Apache 2.0
Nidaamka Noocyada Is-wada-jirka ah (CVS): GNU
Vesta: LGPL
Mercurial: GNU GPL v2+

Tani waa sida dhuumaha DevOps ay u eg yihiin marka lagu daro kontaroolada koodhka isha.

Hagaha Bilowga: Abuuritaanka Dhuumaha DevOps

Aaladda CI/CD waxay toos u habayn kartaa hababka dib u eegista, helitaanka koodhka isha, iyo iskaashiga xubnaha dhexdooda. Ma xuma? Laakiin sidee ugu rogi kartaa codsi shaqo si balaayiin qof ay u isticmaalaan oo ay u qadariyaan?

Tallaabada 3: Samee Qalabka Automation-ka Dhis

Wayn! Waxaad dib u eegi kartaa koodka oo aad isbeddel ku samayn kartaa xakamaynta isha, oo waxaad ku martiqaadi kartaa asxaabtaada inay ka wada shaqeeyaan horumarka. Laakiin weli ma aadan abuurin codsi Si loo sameeyo arji mareegaha, waa in la soo ururiyaa oo la baakadeeyaa qaab dufcad la diri karo ama loo maamulaa sidii fayl la fulin karo. (Ogsoonow in luqadda barnaamijyada la turjumay sida JavaScript ama PHP uma baahna in la ururiyo).

Isticmaal qalab dhisme iswada. Wax dhib ah maleh qalabka dhisa ee aad go'aansato inaad isticmaasho, dhamaantood waxay leeyihiin hadaf isku mid ah: ku dhis koodhka isha qaab la doonayo oo otomaatig u samee hawsha nadiifinta, ururinta, tijaabinta, iyo geynta deegaan gaar ah. Aaladaha dhismuhu way kala duwanaan doonaan iyadoo ku xidhan luuqadaada barnaamij-samaynta, laakiin halkan waxa ah ikhtiyaaro il furan oo caan ah.

Title
Ruqsad
Luuqada barnaamijka

Maven
Apache 2.0
Java

Ant
Apache 2.0
Java

Gogol
Apache 2.0
Java

Bazel
Apache 2.0
Java

samee
GNU
N / A

Canaanta
MIT
JavaScript

Galka
MIT
JavaScript

Wax dhise
Apache
Ruby

Qaad
MIT
Ruby

AAP
GNU
Python

Iskoolada
MIT
Python

BitBake
GPLv2
Python

Cake
MIT
C#

ASDF
Expat (MIT)
LISP

Cabal
BSD
Haskell

Wayn! Waxaad ku dhejin kartaa faylalka qaabeynta qalabka iswada ee dhismaha nidaamka xakamaynta ishaada oo u oggolow qalabkaaga CI/CD inuu wax walba isku daro.

Hagaha Bilowga: Abuuritaanka Dhuumaha DevOps

Wax walba waa hagaagsan yihiin, ma aha? Laakin xageed geyn kartaa codsigaga?

Tallaabada 4: Adeegaha Codsiga Mareegta

Hadda, waxaad haysataa fayl baakadaysan kaas oo noqon kara mid la fulin karo ama la rakibi karo. Codsi kasta si uu runtii faa'iido u yeesho, waa inuu bixiyaa nooc ka mid ah adeeg ama interface, laakiin waxaad u baahan tahay weel si aad u martigeliso codsigaaga.

Adeegaha codsiga mareegtu waa weel caynkaas ah. Seerfarku wuxuu bixiyaa jawi kaas oo macquulka xirmada la geynayo lagu qeexi karo. Seerfarku waxa kale oo uu bixiyaa is-dhexgal waxana uu bixiyaa adeegyada shabakadda isaga oo u soo bandhigaya godadyada dibadda. Waxaad u baahan tahay server HTTP ah, iyo sidoo kale jawiga qaar (sida mashiinka farsamada) si aad ugu rakibto. Hadda, aan ka soo qaadno inaad wax badan ka baran doonto arrintan (inkasta oo aan hoos ku dabooli doono weelasha).

Waxaa jira dhowr adeegayaal codsi shabakadeed oo furan.

Title
Ruqsad
Luuqada barnaamijka

Tomcat
Apache 2.0
Java

Jetty
Apache 2.0
Java

WildFly
GNU Dadweynaha Ka Yar
Java

GlassFish
CDDL & GNU Dad yar
Java

Django
3-Qodobka BSD
Python

tornado
Apache 2.0
Python

gunicorn
MIT
Python

Python
MIT
Python

Jidadka
MIT
Ruby

Node.js
MIT
javascript

Dhuumahaaga DevOps ayaa ku dhow in la isticmaalo. Shaqo wanaagsan!

Hagaha Bilowga: Abuuritaanka Dhuumaha DevOps

Inta aad halkaas ku joojin karto oo aad adigu iskaa u maarayn karto is dhexgalka, tayada koodku waa shay muhiim u ah horumariyaha abka inuu ka werwero.

Talaabada 5: Daboolista Koodhka Tijaabada

Hirgelinta imtixaanada waxay noqon kartaa shuruud kale oo dhib badan, laakiin horumariyayaashu waa inay qabtaan wax kasta oo kutaanno ah arjiga goor hore oo ay hagaajiyaan tayada koodka si loo hubiyo in isticmaalayaasha ugu dambeeya ay ku qanacsan yihiin. Nasiib wanaag, waxaa jira qalabyo badan oo furan oo lagu tijaabiyo koodkaaga iyo samaynta talooyinka kor loogu qaadayo tayada. Waxa xitaa ka sii wanaagsan in inta badan aaladaha CI/CD ay ku xidhi karaan qalabkan oo ay si otomaatig ah u habeeyaan hawsha.

Tijaabada xeerku waxa ay ka kooban tahay laba qaybood: Qaab-samaynta kood tijaabinta kaa caawinaysa qorista iyo socodsiinta imtixaanada, iyo agabka soo jeedinta ee kaa caawinaya hagaajinta tayada koodkaaga.

Nidaamyada baaritaanka code

Title
Ruqsad
Luuqada barnaamijka

JUnit
Qaadashada Sharciga Dadweynaha
Java

EasyMock
Apache
Java

Mockito
MIT
Java

PowerMock
Apache 2.0
Java

Pytest
MIT
Python

Mala-awaal
Mozilla
Python

Sunta
MIT
Python

Nidaamyada talooyinka ee hagaajinta koodka

Title
Ruqsad
Luuqada barnaamijka

Cobertura
GNU
Java

CodeCover
Eclipse Public (EPL)
Java

Daboolista.py
Apache 2.0
Python

Emma
Shatiga Guud ee Guud
Java

JaCo
Qaadashada Sharciga Dadweynaha
Java

Mala-awaal
Mozilla
Python

Sunta
MIT
Python

Jasmine
MIT
JavaScript

Karma
MIT
JavaScript

Mocha
MIT
JavaScript

waxaa jira
MIT
JavaScript

Ogsoonow in inta badan aaladaha iyo qaab-dhismeedka aan kor ku soo sheegnay ay u qoran yihiin Java, Python iyo JavaScript, maadaama C++ iyo C # ay yihiin luqado barnaamijeed la iska leeyahay (inkasta oo GCC uu yahay il furan).

Hadda oo aad hirgelisay aaladaha daboolida tijaabada, dhuumahaaga DevOps waa inay u ekaadaan jaantuska lagu muujiyey bilowga casharkan.

Talaabooyinka Dheeraadka ah

Konteenarada

Sida aan sheegay, waxaad ku martigelin kartaa server-kaaga mashiinka farsamada ama server-ka, laakiin weelku waa xal caan ah.

Waa maxay weelasha? Sharaxaad gaaban ayaa ah in mishiinka farsamada gacanta uu u baahan yahay qadar aad u badan oo ah xusuusta nidaamka hawlgalka, oo ka badan cabbirka codsiga, halka weelku u baahan yahay oo kaliya dhawr maktabado iyo qaabayn si uu u socodsiiyo codsiga. Sida iska cad, weli waxaa jira isticmaalka muhiimka ah ee mashiinka farsamada, laakiin weelku waa xal khafiif ah oo loogu talagalay martigelinta codsiga, oo uu ku jiro server-ka codsiga.

Iyadoo ay jiraan doorashooyin kale oo weel, kuwa ugu caansan waa Docker iyo Kubernetes.

Xakamaynta: Apache 2.0
Kubernetes: Apache 2.0

Qalabka iswada ee dhexdhexaadka ah

Dhuumahayaga DevOps waxa ay ugu horayn diirada saaraan si wada jir ah oo loo dhiso loona diro codsiyada, laakiin waxa jira waxyaabo kale oo badan oo aad ku samayn karto qalabka DevOps. Mid ka mid ah waa isticmaalka Kaabayaasha sida Qalabka Code (IaC), kuwaas oo sidoo kale loo yaqaan qalabka automation-ka dhexe. Aaladahani waxa ay caawiyaan rakibidda, maaraynta, iyo hawlaha kale ee qalabka dhexe. Marka, tusaale ahaan, aaladda otomaatiga ah waxay soo saari kartaa codsiyada sida server-ka codsiga shabakadda, keydka xogta, iyo aaladda la socodka oo leh habayn sax ah oo u diri kara server-ka codsiga.

Waa kuwan qaar ka mid ah aaladaha otomaatiga ah ee isha furan:

Waxaa macquul ah: GNU Public
SaltStack: Apache 2.0
Kuug: Apache 2.0
Puppet: Apache ama GPL

Hagaha Bilowga: Abuuritaanka Dhuumaha DevOps

Soo hel tafaasiil ku saabsan sida aad uga heli lahayd xirfad la raadinayo meel eber ah ama Heer Sare xagga xirfadaha iyo mushaharka adoo ka qaadanaya koorsooyinka khadka tooska ah ee Factory SkillFactory:

koorsooyin badan

Faa'iido leh

Source: www.habr.com

Add a comment