Ukuba umtsha kwi-DevOps, jonga esi sikhokelo samanyathelo amahlanu ukwenza umbhobho wakho wokuqala.
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 (
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:
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.
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.
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!
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
Fumana iinkcukacha malunga nendlela yokufumana umsebenzi ofunwayo ukusuka ekuqaleni okanye kwiNqanaba eliphezulu ngokwezakhono kunye nomvuzo ngokuthatha iikhosi ezihlawulwayo ze-intanethi kwi-SkillFactory:
Ikhosi ye-DevOps (iinyanga ezisi-12)
iikhosi ezininzi
Ikhosi yokuFunda ngoomatshini (iiveki ezi-12)Ukufundisa umsebenzi weNzululwazi yeDatha ukusuka ekuqaleni (iinyanga ezisi-12)Umsebenzi womhlalutyi kulo naliphi na inqanaba lokuqala (iinyanga ezisi-9)IPython yeKhosi yoPhuhliso lweWebhu (iinyanga ezisi-9)
Iluncedo
Iikhosi ze-Ivy League ezingama-450 zasimahla Iintsingiselo kwiNzululwazi yeDatha ka-2020 Inzululwazi yeDatha ifile. Phila ixesha elide iSayensi yezoShishino ISayensi yeDatha kwiSteroids: Intshayelelo kwiSigqibo soBukrelekrele Eyona projekthi iphumeleleyo kunye neyona ihlazo yeNzululwazi yeDatha: iCambridge Analytica
umthombo: www.habr.com