Pana September 4-6 muSt. Petersburg, muhoro yemusangano yeSelectel, mazuva matatu .

Isu takavaka chirongwa ichi zvichienderana nepfungwa yekuti theoretical inoshanda paDevOps, senge manyorerwo ezvishandiso, inogona kuverengwa nemunhu wese ari ega. Chiitiko chete uye kudzidzira kunonakidza: tsananguro yekuti ungazviita sei uye nei usingaite, uye nyaya yekuti tinozviita sei.
Kambani yega yega, maneja wega wega kana mugadziri ane yavo nhanho yeDevOps. Vamwe vanhu vanoshandisa Git zvisizvo, vamwe vanoshandisa SRE. Kosi yacho yakarongwa kuti munhu wese awane chinhu chakakodzera chinogona kuitwa pano uye izvozvi.
Isu tinotanga neGit, tobva tatarisa kusimudzira kwekushandisa, kudyidzana pakati pekodhi uye zvivakwa, kuvaka CI/CD, tsanangura zvivakwa sekodhi (IaC), edza mhinduro inoguma, gadzira kutarisa, kuunganidza uye kudzidza matanda, uye pakupedzisira tinouya. kuSRE: kushandura kuvimbika kuita nyaya inoyerwa uye inogoneka.
Git
Zvino ivo chete vanhu vasingashandise Git ndevaya vakatenga laptop yavo yekutanga nezuro. Ichi chishandiso chidiki uye chinowanikwa kwose kwose, uye zvakadaro isu tinowanzoona kushandiswa kwayo zvisizvo: kubva pakumanikidza kusundira kuna tenzi, kukopa mafaera kubva kuGit kuenda kuseva kuburikidza neCtrl-C, Ctrl-V.
Isu tinokuudza zvausingafanire kuita, maitiro aunofanirwa kuzviita, sezvavanoita muSouthbridge.
Tiri kuita kudzidzira: izvo zvekutanga zveGita, kushanda pamwe chete.
Nyaya #1: Git Basics
- Yekutanga mirairo git init, zvipira, wedzera, diff, log, chimiro, dhonza, kusunda
- Git kuyerera, matavi uye ma tag, batanidza mazano
- Kushanda neakawanda kure repo
Nyaya #2: Kushandirapamwe neGit
- GitHub inoyerera
- Fork, kure, dhonza chikumbiro
- Kupokana, kuburitswa, zvakare nezve Gitflow uye kumwe kuyerera zvine chekuita nezvikwata
Zvinyorwa zvakarongwa kuitira kuti vatungamiri nevagadziri vagone kuita maitiro ose mubasa ravo.
Kubva pakuona kweDevOps, basa rakakodzera neGit streamlines uye rinogadzira otomatiki budiriro uye manejimendi maitiro, inobvisa akati wandei ematambudziko anodzokororwa, uye inowedzera goho.
DevOps mugadziri
Isu tinotarisa kuDevOps kuburikidza nemeso emugadziri: isu tinotangisa nharaunda yemuno, nyora application, kumisikidza yekutarisa uye kutema matanda, kuyedza munharaunda, kuronga kuchengetwa kwezvakasiyana / zvakavanzika uye kuwanikwa kwesevhisi, tarisa kuvhura.
Nyaya #3: Kushanda nechishandiso kubva padanho rekusimudzira
- Kugadzira nharaunda yenzvimbo: mazano anoshanda
- Kunyora microservice muPython (kusanganisira bvunzo)
- Kushandisa docker-compose mukusimudzira
Nyaya #4: Kudyidzana pakati pekodhi uye zvivakwa
- Dzidzira kushanda nema configs
Nekuda kweizvozvo, vanogadzira vanozoona kuti kodhi inofanira kutumira sei matanda, maitiro ekuiyedza, uye kuti ichagadziriswa sei mune ramangwana. Vatungamiri vachanzwisisa zvinodikanwa zvevagadziri: ndeapi zvikanganiso zviripo mukodhi, maitiro ekuronga kuyedzwa kwevagadziri, maitiro ekuyedza purojekiti ivo pachavo.
Panguva ino, basa guru reDevOps rinogadziriswa: kunzwisisana uye kushanda pamwe chete pakati peDevs neOps zvakavakwa. Iri idanho rakakosha rekusimuka kubva mukugovanisa basa kuenda kukushandira pamwe zvine hungwaru.
Somugumisiro, kukurumidza uye kunaka kwebasa kunowedzera.
CI / CD
Otomatiki yemazuva ano inosanganisira CI/CD. Tichatanga nekutarisa manyorero otomatiki: makefiles, githooks, zvinyorwa. Ngatitarisei kuti maturusi aya achiri kushanda riini uye paasingafanirwe kushandiswa.
Zvadaro ngatitarisei maitiro akanakisa eCI yemazuva ano uchishandisa Gitlab semuenzaniso.
Nyaya #5: CI/CD sumo kune otomatiki
- Nhanganyaya kune Automation
- Zvishandiso (bash, make, gradle)
- Kushandisa git-hook kuita otomatiki maitiro
- Mitsetse yekusangana kwefekitari uye mashandisiro avo muIT
- Muenzaniso wekuvaka "general" pipeline
- Mazuva ano software yeCI/CD: Drone CI, BitBucket Pipelines, Travis, nezvimwe.
Nyaya #6: CI/CD: Kushanda neGitlab
- Gitlab CI - mukuru
- Gitlab Runner, marudzi avo uye mashandisirwo
- Gitlab CI, maitiro ekugadzirisa, maitiro akanaka
- Gitlab CI Matanho
- Gitlab CI Variables
- Vaka, edza, shandisa
- Kuita kutonga uye zvirambidzo: chete, riini
- Kushanda neartifacts
- Templates inside .gitlab-ci.yml, reusing actions in different parts of the pipeline
- Batanidza - zvikamu
- Centralized manejimendi yegitlab-ci.yml (rimwe faira uye otomatiki kusundira kune mamwe matura)
Kudyidzana pakati pevatariri nevagadziri kunosvika padanho idzva: maneja anonyora template yeCI, uye vanogadzira vanoigadzirisa, vachivaka CI yavo pasina maneja.
Kutsamira kwevagadziri kune vatariri kunoderedzwa, huwandu hwebasa remaoko hunoderedzwa, uye dambudziko re "munhu chete anoziva kushanda nekuita faira" inonyangarika. Kuburitswa kunoitika zvakavimbika uye nekukurumidza.
IaC
Musoro weInfrastructure seCode, uchishandisa Terraform semuenzaniso, ichakurukurwa naSelectel cloud administrator Alexey Stepanenko. Iye anokuratidza maitiro ekukurumidza uye otomatiki kutumira uye kuyera maseva, maitiro ekurongedza otomatiki mifananidzo, uye mashandisiro ekugadzirisa matemplate kuti uwane akagadziridzwa michina ipapo.
Munhu akaita zviuru zveIaC mhinduro anokuudza maitiro ekuzviita nemazvo uye zvekusaita.
Iyo Selectel gore mhinduro yakakodzera kuGoogle neAmazon makore ane zvishoma zvigadziriso.
Mushandi weSouthbridge Nikolai Mesropyan, achishandisa Ansible semuenzaniso, acharatidza nzira yekuendesa kushanda kwekushanda pasina nguva yekudzika uye kutarisa kushanda kwayo.
Kana iwe ukagadzirisa zvivakwa nemaoko (seta maseva, isa maraibhurari uye mapakeji sezvinodiwa), paunoyedza kusimudza kopi yezvakatipoteredza, uchafanirwa kurangarira uye kubereka zviito zvako zvese. Iri basa rinotora nyore 3-5 mazuva. Kushanda nezvivakwa sekodhi kunovimbisa kuti iwe une-yezvino rondedzero yenzvimbo yako inogona kuiswa mumaminitsi.
Nikolay achakuudza manyorerwo emabhuku ekutamba, ndezvipi zvikanganiso zvinoitika, uye nei dzimwe nguva mabhuku ekutamba achishanda zvishoma nezvishoma kana kwete sezvaitarisirwa. Ichi chiitiko kubva kumakore mazhinji ekushandisa IaC kuSouthbridge.
Nyaya #7: Zvivakwa seKodhesi
- IaC: Kusvika Infrastructure seCode
- Cloud vanopa sevapeji vezvivakwa
- Maturusi ekutanga sisitimu, chivakwa chemufananidzo (packer)
- IaC kushandisa Terraform semuenzaniso
- Kugadzirisa kuchengetedza, kubatirana, application otomatiki
- Dzidzira kugadzira Ansible playbooks
- Idempotency, declarativeness
- IaC kushandisa Ansible semuenzaniso
- Database seCode / PostgreSQL kukanganisa kushivirira
Izvo zvivakwa zvinova zvinozivisa uye zvisingabatsiri.
Mutungamiri anodzidza kubata zvivakwa zvakaomarara: kurumidza kugadzira nharaunda nyowani, chengetedza kubatana kwese nharaunda, ona nhoroondo yekuchinja, iyo yakakosha kana zvikwata zvakawanda zviri kushanda purojekiti.
Mugadziri anogona kudzidza zvivakwa uye akazvimiririra kuvandudza nharaunda yake.
Chikamu bhonasi: kugadzira uye kugadzirisa failover cluster yePostgreSQL dhatabhesi. Tichapa bhuku rekutamba rakagadzirirwa ratinoshandisa kuSouthbridge, iwe unozotumira sumbu pane imwe nzvimbo yekudzidzira uye unogona kushandisa mhinduro iyi mukambani yako.
Infrastructure test and monitoring
Automation inobvumidza iwe kuburitsa chikanganiso kune chiuru maseva kamwechete. Shanduko yese inoda kuyedzwa. Kune rimwe divi, kuyedzwa kwemaoko kunotora nguva yakawanda zvekuti zvinoramba mabhenefiti eautomation.
Tichakuratidza mukuita manyorerwo ebvunzo dzebasa. Nekuda kweizvozvo, iwe unozogona kunyora bvunzo dzekambani yako. Iwe hauchada kurangarira marongero awakaita; iwe unoatsanangura mubvunzo uye wobva watarisa otomatiki kuti zvese zvakapfuura mhinduro uye madondoro aripo.
Ipapo isu tichadzidza maitiro ekuwedzera otomatiki ese maseva matsva pakutarisa. Ngatitarisei kune zvivakwa uye yekutarisa application zvakasiyana. Ticharatidza maitiro akaipa uye akanaka.
Nyaya #8: Kuyedzwa kwezvivakwa
- Kuedza uye kuenderera mberi kubatanidzwa neMolecule uye Gitlab CI
- Kushandisa Vagrant
Nyaya #9: Infrastructure monitoring nePrometheus
- Nei kuongorora kuchidiwa?
- Mhando dzekutarisa
- Zviziviso muhurongwa hwekutarisa
- Maitiro Ekuvaka Hutano Hwekutarisa System
- Zviziviso zvinoverengwa nevanhu, zvemunhu wese
- Hutano Kuongorora: chii chaunofanira kutarisisa
- Automation yakavakirwa pakuongorora data
Monitoring isingashande nemazvo hakuna kutarisisa. Mabhizinesi haana hanya kuti peji huru yechitoro chepamhepo inowanikwa kana fomu rekubhadhara richipa kukanganisa.
Vagadziri uye maneja vanotora chikamu zvakaenzana mukugadzirisa matambudziko ekutarisa uye kugadzirisa matambudziko. Uyezve, sechinyakare, mabasa ekutarisa anowira kune vatariri. Kosi yedu icharatidza vanogadzira basa ravanoita mukugadzira kutarisa kunoshanda. Vatungamiri vachagamuchira Southbridge zvakanakisisa maitiro. Nekuda kweizvozvo, huwandu hwekurasikirwa kunokonzerwa nekutadza uye kuderera kwewebhusaiti kana application kuchakurumidza kuderera.
Chikamu bhonasi: otomatiki yakavakirwa pakutarisa. Semuenzaniso, yekutarisa inoshuma kuti mutoro wasvika pane saiti, uye webhu server kuyera kunotanga otomatiki.
Kutema miti
Chikanganiso chikuru pakushanda nematanda ndechekuti vatariri nevagadziri vanovatarisa zvakananga pamaseva. Kana iwe uine anopfuura sevha imwe, izvi zvinotora nguva yakareba. Izvi hazvina kuchengetedzeka: mugadziri anopinda museva kwaasingafanirwe kunge ari.
DevOps inoda centralized kuunganidza, kugadzirisa uye analytics yematanda.
Nyaya #10: Kudhinda application neELK
- Basic application uye kugona kwe elastic (kutsvaga, kuchengetedza, kuyera maficha, kugadzirisa kuchinjika)
- Mhedziso ye kibana (maficha makuru, mutauro wemubvunzo, manejimendi dhibhodhi, kugadzira chati)
- Ongororo yeelastic-based zvigadzirwa uye mashandisiro avo
- Kuunganidza mametrics muAPM (kutevedzera kutsvaga)
- Kuwedzera: New Product Ongororo - SIEM
Kuunzwa kweiyi nzira kuchaita kuti matanda ave chishandiso chiri nyore uye chinonzwisisika chekuongorora, kugadzirisa uye kugadzirisa mashandisiro uye zvivakwa.
SRE
Uye isu tinosvika kumusoro wekuti Southbridge iri kungoisa ziso rayo uye kune izvo vamwe vatauri vanoda kugara kwezuva rekupedzisira reSlurm. Isu tinofara kuti Ivan Kruglov anobva kuBooking.com akabvuma kuiverenga.
Iyo purojekiti inogara munyika chaiyo, uko kuvimbika hakuna kumbobvira kwakazara uye sarudzo dzese dzinodhura mari.
Chii chinonzi SLA chine chekuita neprojekti yakaoma? Ngatitii maitiro ekuongorora kuti saiti inowanikwa, asi mifananidzo inoremerwa nekunonoka. Ndeapi maSLA metrics, kwekuenda nawo, maitiro ekuatora?
Nzira yekuseta SLA? Nzira yekudzivisa nayo?
Nyaya #11: SRE
Tsanangudzo yeSLA, SLO, Kukanganisa Budget uye mamwe mazwi anotyisa kubva munyika yeSRE
SRE: SLI uye SLO Monitoring Maitiro
SRE: Dzidzira kushandisa Kukanganisa Budget
SRE: Kuvhiringidza uye kushanda mutoro manejimendi (apigateway, sevhisi mesh, dunhu rinotyora)
Mabhizinesi anoda SRE. Zvirinani padanho rakareruka: nditore sevha yekuchengetedza kana kuisimudza kubva kune backup? Single database kana cluster? Iwe unofanirwa kuisa DDoS dziviriro proactively kana chete panguva yekurwiswa?
Mutungamiriri haagutsikane nenyaya yekuti "saiti iri kushanda" kana mutengi akamufonera uye anoshuma kuti fomu reodha harisi kuvhurwa.
Naizvozvo, zvakakosha kuti injinjiniya yeDevOps anyatsonzwisisa SRE kuitira kuti ataure zvakakwana nebhizinesi nezvezvarinoda.
Mugumisiro
Panguva vatungamiri nevagadziri vachadzidza:
- shanda nemazvo neGit;
- kuronga budiriro yenzvimbo;
- gadzirisa (vatungamiri) uye shandisa (vagadziri) CI / CD;
- shanda nezvivakwa sekunge nekodhi;
- kuyedza zvivakwa;
- tarisa zvivakwa uye mashandisirwo;
- kugadzirisa matanda;
- nzwisisa, uye zvakanaka, shandisa SRE.
Kune vaverengi vanoteerera, shandisa iyo habrapost yekusimudzira kodhi yegumi neshanu muzana.
Tiri kugadzirira kudzidzira uye maturusi emapoinzi ese. Kuitira kuti mumwe nemumwe anotora chikamu, pakudzoka kubva kuSlurm, azokwanisa kutora kambani yavo kune inotevera nhanho yeDevOps.
Kune bhizinesi, izvi zvinoreva kutungamira kwakachipa uye kusimudzira, kuderedzwa nguva, kuwedzera kuvimbika, nekukurumidza kuburitsa kwezvinhu uye kubviswa kwebugs.
Source: www.habr.com
