Isikhokelo sabaQalayo: Ukudala uMbhobho we-DevOps

Ukuba umtsha kwi-DevOps, jonga esi sikhokelo samanyathelo amahlanu ukwenza umbhobho wakho wokuqala.

Isikhokelo sabaQalayo: Ukudala uMbhobho we-DevOps

I-DevOps ibe sisisombululo esiqhelekileyo sokulungisa iinkqubo ezicothayo, ezidityanisiweyo okanye ezaphukileyo zophuhliso lwesoftware. Ingxaki kukuba ukuba umtsha kwi-DevOps kwaye awazi ukuba ungaqala ngaphi, unokungaqondi ezi ndlela. Eli nqaku liza kuxubusha inkcazo yombhobho we-DevOps kwaye iya kunika imiyalelo yamanyathelo amahlanu okudala enye. Ngelixa esi sifundo singaphelelanga, kufuneka sikunike isiseko sokuqala uhambo lwakho kwaye wandise ulwazi lwakho kwikamva. Kodwa masiqale ngembali.

Uhambo lwam lwe-DevOps

Ngaphambili ndasebenza kwiqela lelifu leCiti Group ekuphuhliseni i-Infrastructure-as-a-Service (IaaS) isicelo sewebhu sokulawula isiseko selifu seCiti, kodwa ndandisoloko ndinomdla kwindlela yokwenza inkqubo yophuhliso isebenze ngakumbi kwaye izise utshintsho oluhle kwinkcubeko iqela lophuhliso. Ndifumene impendulo kwincwadi ecetyiswa nguGreg Lavender, i-CTO ye-Cloud Architecture kunye ne-Infrastructure eCiti. Le ncwadi yayibizwa ngokuba yiProjekthi yasePhoenix (Iprojekthi yePhoenix), kwaye ichaza imigaqo ye-DevOps, kodwa ifundeka njengenoveli.

Itheyibhile engasemva kwincwadi ibonisa ukuba kukangaphi na iinkampani ezahlukeneyo zisebenzisa iinkqubo zazo kwindawo yokukhupha:

Amazon: 23 ngosuku
UGoogle: 5 ngosuku
Netflix: 500 ngosuku
Facebook: Kanye ngosuku
Twitter: 3 amaxesha ngeveki
Inkampani eqhelekileyo: Kanye rhoqo kwiinyanga ezili-9

Kwenzeka njani ukuba iAmazon, iGoogle kunye neNetflix iifrikhwensi ziyenzeka? Oku kungenxa yokuba ezi nkampani zifumene indlela yokwenza umbhobho ophantse ugqibelele weDevOps.

Besikude le nto de siphumeze iDevOps eCiti. Emva koko, iqela lam lineendawo ezahlukeneyo, kodwa ukuthunyelwa kumncedisi wophuhliso kwakubhalwe ngesandla. Bonke abaphuhlisi babenokufikelela kumncedisi omnye wophuhliso olusekelwe kwi-IBM WebSphere Application Server Community Edition. Ingxaki yayikukuba umncedisi uya kuvala nanini na abasebenzisi abaninzi bezama ukuhambisa ngaxeshanye, ngoko ke abaphuhlisi kwakufuneka banxibelelane ngeenjongo zabo, nto leyo eyayibuhlungu kakhulu. Ukongezelela, kwakukho imiba kunye nekhowudi yovavanyo oluphantsi lwekhowudi yovavanyo, iinkqubo ezinzima zokuthunyelwa kwezandla, kunye nokungakwazi ukulandelela ukuthunyelwa kwekhowudi ehambelana nomsebenzi othile okanye ibali lomsebenzisi.

Ndabona ukuba kukho into ekufuneka yenziwe ndaza ndafumana umntu endisebenza naye onengqondo efanayo. Sagqiba ekubeni sisebenzisane ekwakheni umbhobho wokuqala we-DevOps - wamisa umatshini we-Tomcat obonakalayo kunye neseva yesicelo ngelixa ndisebenza kwi-Jenkins, edibeneyo i-Atlassian Jira kunye ne-BitBucket, kwaye yasebenza kwi-code coverage. Le projekthi yecala ibe yimpumelelo kakhulu: siphantse sazenza ngokuzenzekelayo iinkqubo ezininzi, safumana phantse i-100% ixesha lokuphumla kumncedisi wethu wophuhliso, ukubonelela ngokulandela umkhondo kunye nokuphuculwa kovavanyo lwekhowudi, kwaye songeze ukukwazi ukudibanisa amasebe eGit kwimiba yeJira okanye ukuthunyelwa. Uninzi lwezixhobo esazisebenzisileyo ukwakha umbhobho wethu we-DevOps zaziyimithombo evulekileyo.

Ngoku ndiyaqonda ukuba kulula kangakanani umbhobho wethu we-DevOps: asizange sisebenzise izandiso ezifana neefayile zeJenkins okanye i-Ansible. Nangona kunjalo, lo mbhobho ulula usebenze kakuhle, mhlawumbi ngenxa yomgaqo wePareto (owaziwa ngokuba ngumthetho we-80/20).

Isingeniso esifutshane kwi-DevOps kunye ne-CI / CD Pipeline

Ukuba ubuza abantu abaninzi, "Yintoni i-DevOps?", Uya kufumana iimpendulo ezininzi ezahlukeneyo. I-DevOps, efana ne-Agile, iye yavela ukuze ifikelele kwiinkalo ezininzi ezahlukeneyo, kodwa abantu abaninzi baya kuvumelana kwizinto ezimbalwa: I-DevOps sisenzo sophuhliso lwesoftware okanye umjikelo wobomi bophuhliso lwesoftware (SDLC) esisiseko sayo sitshintsha inkcubeko apho abaphuhlisi kunye nabangengabo- abaphuhlisi bakhona kwindawo apho:

Imisebenzi ebisenziwa ngaphambili ngesandla iye yazenzekela;
Wonke umntu wenza eyona nto ayenzayo;
Inani lokuphunyezwa kwexesha elithile liyenyuka; Ukonyuka komsebenzi;
Ukunyuka kokuguquguquka kophuhliso.

Ngelixa ukuba nezixhobo ezichanekileyo zesoftware ayikuphela kwento oyifunayo ukuyila indawo yeDevOps, ezinye izixhobo zibalulekile. Isixhobo esibalulekileyo kukudibanisa okuqhubekayo kunye nokuthunyelwa okuqhubekayo (CI / CD). Kulo mbhobho, iindawo ezingqongileyo zinezigaba ezahlukeneyo (umzekelo, i-DEV, i-INT, i-TST, i-QA, i-UAT, i-STG, i-PROD), imisebenzi emininzi izenzekelayo, kwaye abaphuhlisi banokubhala ikhowudi yezinga eliphezulu, ukufezekisa ubuchule bokuphuhlisa, kunye namazinga aphezulu okuthunyelwa.

Eli nqaku lichaza indlela yamanyathelo amahlanu ekudaleni umbhobho we-DevOps njengalowo uboniswe kumzobo olandelayo usebenzisa izixhobo zomthombo ovulekileyo.

Inyathelo 1: Iindlela ze-CI/CD

Into yokuqala oyifunayo sisixhobo se-CI/CD. I-Jenkins, isixhobo esivulelekileyo esisekelwe kwiJava kunye nelayisenisi phantsi kwelayisenisi ye-MIT, sisixhobo esazisa i-DevOps kwaye ibe ngumgangatho we-de facto.

Ke yintoni iJenkins? Yicinge njengohlobo oluthile lolawulo olukude olunomlingo olunokuthetha kunye nokulungelelanisa iinkonzo ezahlukeneyo kunye nezixhobo. Ngokwayo, i-CI / CD isixhobo esifana neJenkins ayinamsebenzi, kodwa iba namandla ngakumbi njengoko idibanisa nezixhobo ezahlukeneyo kunye neenkonzo.

UJenkins sesinye sezixhobo ezininzi ezivulekileyo zeCI/CD onokuzisebenzisa ukwakha umbhobho wakho weDevOps.

Jenkins: Creative Commons kunye neMIT
Travis CI: MIT
CruiseControl:BSD
Buildbot: GPL
I-Apache Gump: Apache 2.0
Cabie: GNU

Nantsi indlela iinkqubo zeDevOps ezijongeka ngayo ngeCI/CD isixhobo:

Isikhokelo sabaQalayo: Ukudala uMbhobho we-DevOps

Unesixhobo se-CI/CD esisebenza kwi-localhost yakho, kodwa akukho nto ingako onokuyenza okwangoku. Masiqhubele phambili kwinqanaba elilandelayo lohambo lwe-DevOps.

Inyathelo lesi-2: Lawula iiNkqubo zoLawulo lweMthombo

Eyona ndlela ilungileyo (kwaye mhlawumbi ilula) yokuqinisekisa ukuba isixhobo sakho seCI/CD sinokwenza umlingo wayo kukudibanisa nesixhobo solawulo lwekhowudi yomthombo (SCM). Kutheni ufuna ulawulo lomthombo? Masithi uphuhlisa isicelo. Nanini na xa usenza usetyenziso, uyacwangcisa, kwaye akukhathaliseki nokuba usebenzisa iJava, iPython, iC++, iGo, iRuby, iJavaScript, okanye naziphi na iizillion zeelwimi zokuprograma. Ikhowudi oyibhalayo ibizwa ngokuba yikhowudi yemvelaphi. Ekuqaleni, ngakumbi xa usebenza wedwa, mhlawumbi kulungile ukubeka yonke into kulawulo lwendawo. Kodwa njengoko iprojekthi isiba nkulu kwaye umeme abanye abantu ukuba basebenzisane, udinga indlela yokuthintela iingxabano ngelixa usabelana ngokufanelekileyo ngohlengahlengiso. Ukwafuna indlela yokubuyisela iinguqulelo zangaphambili, kuba ukwenza ii-backups kunye nokukopa / ukuncamathisela kuzo kuya kuphelelwa lixesha. Wena (kunye nabalingane bakho) nidinga into engcono.

Apha kulapho ulawulo lwekhowudi yemvelaphi luphantse lube yimfuneko. Esi sixhobo sigcina ikhowudi yakho kwiindawo zokugcina, sigcina umkhondo weenguqulelo, kwaye silungelelanisa umsebenzi wabathathi-nxaxheba beprojekthi.

Ngelixa zininzi izixhobo zokulawula umthombo phaya, iGit isemgangathweni, kwaye kufanelekile. Ndincoma kakhulu ukusebenzisa i-Git, nangona kukho ezinye iinketho zomthombo ovulekileyo ukuba uyakhetha.

IGit: GPLv2 kunye ne-LGPL v2.1
Ukuguqulwa: Apache 2.0
INkqubo yeeNguqulelo eziSebenzayo (CVS): GNU
IVesta: LGPL
I-Mercurial: GNU GPL v2+

Yile ndlela umbhobho we-DevOps ukhangeleka ngayo kunye nokongezwa kwekhowudi yokulawula ikhowudi yomthombo.

Isikhokelo sabaQalayo: Ukudala uMbhobho we-DevOps

Isixhobo se-CI / CD sinokwenza ngokuzenzekelayo iinkqubo zokuphonononga, ukufumana ikhowudi yomthombo, kunye nentsebenziswano phakathi kwamalungu. Akukubanga? Kodwa uyijika njani ibe sisicelo esisebenzayo ukuze iibhiliyoni zabantu zisebenzise kwaye ziyixabise?

Inyathelo 3: Yenza iSixhobo soKwakha esizisebenzelayo

Kakhulu! Ungayijonga kwakhona ikhowudi kwaye wenze utshintsho kulawulo lomthombo, kwaye umeme abahlobo bakho ukuba basebenzisane kuphuhliso. Kodwa awukenzi sicelo okwangoku. Ukwenza isicelo sewebhu, kufuneka siqulunqwe kwaye sipakishwe kwifomathi yebhetshi enokusetyenziswa okanye iqhutywe njengefayile ephunyezwayo. (Qaphela ukuba ulwimi lwenkqubo olutolikiweyo olufana neJavaScript okanye i-PHP akufuneki luqulunqwe).

Sebenzisa isixhobo sokwakha esizenzekelayo. Kungakhathaliseki ukuba sesiphi isixhobo esizenzekelayo osithatha isigqibo sokusisebenzisa, bonke banenjongo efanayo: ukwakha ikhowudi yomthombo kwifomathi efunekayo kwaye wenze ngokuzenzekelayo umsebenzi wokucoca, ukuqokelela, ukuvavanya, kunye nokuthunyelwa kwindawo ethile. Ukwakha izixhobo ziya kwahluka ngokuxhomekeke kulwimi lwakho lokuprograma, kodwa nantsi ezinye iinketho eziqhelekileyo zomthombo ovulekileyo.

Isihloko
Ilayisensi
Ulwimi lokucwangcisa

Maven
I-Apache 2.0
Java

Intsimbi
I-Apache 2.0
Java

Mncinci
I-Apache 2.0
Java

bazel
I-Apache 2.0
Java

enza
GNU
N / A

Ukukrokra
mit
JavaScript

gulp
mit
JavaScript

Umakhi
Apache
ilitye elinqabileyo elibomvu

Qhekeza
mit
ilitye elinqabileyo elibomvu

AAP
GNU
Python

I-SCons
mit
Python

BitBake
GPLv2
Python

Cake
mit
C#

I-ASDF
Expat (MIT)
LISP

Cabal
BSD
Haskell

Kakhulu! Ungabeka ifayile yoqwalaselo lwesixhobo esizenzekelayo kwisixokelelwano sakho somthombo kwaye uvumele isixhobo sakho seCI/CD sibeke yonke into kunye.

Isikhokelo sabaQalayo: Ukudala uMbhobho we-DevOps

Yonke into ilungile, akunjalo? Kodwa ungasifaka phi isicelo sakho?

Inyathelo 4: Iseva yeSicelo seWebhu

Okwangoku, unefayile epakishweyo enokuthi iphunyezwe okanye ifakwe. Ukuze nasiphi na isicelo sibe luncedo ngokwenene, kufuneka sinikeze uhlobo oluthile lwenkonzo okanye ujongano, kodwa udinga isikhongozeli sokusingatha isicelo sakho.

Umncedisi wesicelo sewebhu sisikhongozeli esinjalo. Umncedisi ubonelela ngemeko-bume apho ingqiqo yempahla esetyenziswayo ingachazwa. Umncedisi ukwabonelela ngojongano kwaye unikezela ngeenkonzo zewebhu ngokuveza iisokethi kwihlabathi langaphandle. Udinga umncedisi we-HTTP, kunye nendawo ethile (njengomatshini wenyani) ukuyifaka. Okwangoku, masicinge ukuba uya kufunda ngakumbi malunga noku (nangona ndiza kugubungela izikhongozeli ezingezantsi).

Kukho iiseva ezininzi ezivulelekileyo zesicelo sewebhu.

Isihloko
Ilayisensi
Ulwimi lokucwangcisa

Tomcat
I-Apache 2.0
Java

Jetty
I-Apache 2.0
Java

IWildFly
GNU Ngaphantsi Uluntu
Java

Iglasi yeGlasi
CDDL & GNU Ngaphantsi Uluntu
Java

Django
3-Igatya BSD
Python

Inkqantosi
I-Apache 2.0
Python

IGunicorn
mit
Python

Python
mit
Python

Imizila
mit
ilitye elinqabileyo elibomvu

Node.js
mit
Javascript

Umbhobho wakho weDevOps sele ulungele ukusetyenziswa. Umsebenzi omhle!

Isikhokelo sabaQalayo: Ukudala uMbhobho we-DevOps

Ngelixa unokuma apho kwaye uphathe ukudibanisa ngokwakho, umgangatho wekhowudi yinto ebalulekileyo kumphuhlisi we-app ukuba akhathazeke ngayo.

Inyathelo 5: IKhowudi yoVavanyo lweKhowudi

Ukuphumeza iimvavanyo kunokuba yenye imfuneko enzima, kodwa abaphuhlisi kufuneka babambe naziphi na iibhugi kwisicelo kwangoko kwaye baphucule umgangatho wekhowudi ukuqinisekisa ukuba abasebenzisi bokugqibela banelisekile. Ngethamsanqa, zininzi izixhobo ezivulelekileyo zokuvavanya ikhowudi yakho kunye nokwenza iingcebiso zokuphucula umgangatho wayo. Yintoni eyona nto ingcono kukuba izixhobo ezininzi zeCI/CD zinokuqhagamshela kwezi zixhobo kwaye zizenzele inkqubo.

Uvavanyo lwekhowudi lunamacandelo amabini: izicwangciso zokuvavanya ikhowudi ezikunceda ukuba ubhale kwaye uqhube iimvavanyo, kunye nezixhobo zokucebisa ezikunceda ukuphucula umgangatho wekhowudi yakho.

Iinkqubo zokuvavanya ikhowudi

Isihloko
Ilayisensi
Ulwimi lokucwangcisa

JUnit
I-Eclipse yoLuntu yeMvume
Java

EasyMock
Apache
Java

isiqhulo
mit
Java

PowerMock
I-Apache 2.0
Java

Pytest
mit
Python

Hypothesis
Mozilla
Python

Ityhefu
mit
Python

Iinkqubo zeengcebiso zokuphucula ikhowudi

Isihloko
Ilayisensi
Ulwimi lokucwangcisa

Umlinganiselo
GNU
Java

CodeCover
I-Eclipse Public (EPL)
Java

I-coverage.py
I-Apache 2.0
Python

Emma
Ilayisensi yoLuntu eqhelekileyo
Java

JaCoCo
I-Eclipse yoLuntu yeMvume
Java

Hypothesis
Mozilla
Python

Ityhefu
mit
Python

Jasmine
mit
JavaScript

Karma
mit
JavaScript

Mocha
mit
JavaScript

Isimbo somzimba
mit
JavaScript

Qaphela ukuba uninzi lwezixhobo kunye nezakhelo ezikhankanywe ngasentla zibhalelwe iJava, iPython kunye neJavaScript, kuba iC ++ kunye neC # ziilwimi zobunikazi benkqubo (nangona iGCC ingumthombo ovulekileyo).

Ngoku ekubeni uphumeze izixhobo zokugubungela uvavanyo, umbhobho wakho we-DevOps kufuneka ujonge ngokufana nomzobo oboniswe ekuqaleni kwesi sifundo.

Amanyathelo ongezelelweyo

Izikhongozeli

Njengoko benditshilo, ungabamba iseva yakho kumatshini wenyani okanye iseva, kodwa iziqulathi zisisombululo esidumileyo.

Ziziphi izitya? Ingcaciso emfutshane kukuba umatshini wenyani ufuna isixa esikhulu sememori yenkqubo yokusebenza, egqithisa ubungakanani besicelo, ngelixa isikhongozeli sidinga kuphela amathala eencwadi ambalwa kunye noqwalaselo ukuqhuba isicelo. Ngokucacileyo, kusekho usetyenziso olubalulekileyo kumatshini obonakalayo, kodwa isitya sisisombululo esilula sokusingatha isicelo, kubandakanya neseva yesicelo.

Ngelixa kukho ezinye iinketho zesikhongozeli, ezona zidumileyo yiDocker kunye neKubernetes.

I-Docker: Apache 2.0
Kubernetes: Apache 2.0

Izixhobo ezizisebenzelayo eziphakathi

Umbhobho wethu we-DevOps ugxile ikakhulu ekudalweni kwesicelo esisebenzisanayo kunye nokuthunyelwa, kodwa kukho ezinye izinto ezininzi ezinokwenziwa ngezixhobo ze-DevOps. Enye yazo kukusetyenziswa kweZibonelelo njengezixhobo zeKhowudi (IaC), ezaziwa ngokuba zizixhobo ezizisebenzelayo eziphakathi. Ezi zixhobo zinceda ukufakela, ulawulo, kunye neminye imisebenzi ye-middleware. Ngoko ke, umzekelo, isixhobo esizenzekelayo sinokukhupha izicelo ezifana neseva yesicelo sewebhu, i-database, kunye nesixhobo sokubeka iliso kunye nokucwangciswa okuchanekileyo kwaye uhambise kwi-server yesicelo.

Nazi ezinye izixhobo ezizenzekelayo zomthombo ophakathi we-middleware:

Ukufaneleka: GNU Public
ISaltStack: Apache 2.0
Umpheki: Apache 2.0
Ipopi: Apache okanye GPL

Isikhokelo sabaQalayo: Ukudala uMbhobho we-DevOps

Fumana iinkcukacha malunga nendlela yokufumana umsebenzi ofunwayo ukusuka ekuqaleni okanye kwiNqanaba eliphezulu ngokwezakhono kunye nomvuzo ngokuthatha iikhosi ezihlawulwayo ze-intanethi kwi-SkillFactory:

iikhosi ezininzi

Iluncedo

umthombo: www.habr.com

Yongeza izimvo