Slörm DevOps: Gitist SREni kÔik peatustega

4-6. septembril toimub Peterburi Selecteli konverentsisaalis kolme pÀeva pikkune Slerm DevOps.

Slörm DevOps: Gitist SREni kÔik peatustega

Oleme koostanud programmi, lÀhtudes mÔttest, et DevOpsi teoreetilised tööd, nagu ka tööriistade juhendid, on kÔikidele kergesti kÀtkistatavad. Huvi pakuvad vaid kogemus ja praktika: selgitus, kuidas asju Ôigesti ja valesti teha, ja jutt sellest, kuidas meie tegutseme.

Igas ettevĂ”ttes, igal administraatoril vĂ”i arendajal on oma DevOpsi tase. Ühed kasutavad Git'i valesti, teised rakendavad SRE-d. Kursus on korraldatud nii, et igaĂŒks leiaks midagi asjakohast, mida saab kohe rakendada.

Alustame Git'iga, seejÀrel vaatame rakenduse arendust, koodi ja infrastruktuuri koostoimet, ehitame CI/CD, kirjeldame infrastruktuuri koodina (IaC), testime valminud lahendust, seadistame monitooringu, kogume ja uurime logisid ning jÔuame lÔpuks SRE-sse: muudame usaldusvÀÀrsuse mÔÔdetavaks ja hallatavaks loos.

Git

Praegu ei kasuta Git'i ainult see, kes ostis eilses esimeses sĂŒlearvutis. See on triviaalne ja laialdaselt levinud tööriist, kuid sageli kohtame selle vale kasutamise juhtumeid: alustades kohesest push’ist masterisse ja lĂ”petades failide kopeerimise Git'ist serverisse Ctrl-C, Ctrl-V abil.

Kutsume teid ĂŒles uurima, kuidas mitte teha, kuidas teha ja kuidas seda teevad Southbridge.
Teeme praktikat: Git'i alused, meeskonnatöö.

Teema nr 1: Git'i tööalused

  • PĂ”hikĂ€sud git init, commit, add, diff, log, status, pull, push
  • Git flow, harud ja sildid, merge'i strateegiad
  • Töö mitmete remote repo'dega

Teema nr 2: Meeskonnatöö Git'iga

  • GitHub flow
  • Fork, remote, pull request
  • Konfliktid, vĂ€ljaanded, veelkord Gitflow ja teised voogud meeskondade kontekstis

Materjal on organiseeritud nii, et administraatorid ja arendajad saaksid kÔik praktiseerimised ÀÀrmiselt kiiresti tööle rakendada.

DevOpsi vaatenurgast tagab Ôige töö Git'iga arenduse ja haldamise protsesside korrastamise ja automatiseerimise, vÀlistades mitmeid korduvaid probleeme ning suurendades töö efektiivsust.

DevOps arendaja

Vaata DevOps'i arendaja silmade kaudu: kÀivitame kohaliku keskkonna, kirjutame rakenduse, seadistame selle jÀlgimise ja logimise, testime seda kohapeal, korraldame muutuja/dekreetide salvestamise ja teenuste leidmise, vaatame jÀlgimist (opentracing).

Teema nr 3: Rakenduse töötamise vaade arenduselt

  • Kohaliku keskkonna seadistamine: praktilised soovitused
  • Kirjutame mikroteenuse Pythonis (sh testid)
  • Docker-compose rakendamine arenduses

Teema nr 4: Koodi ja infrastruktuuri vaheline kooste

  • Tava konfiguratsioonide korraldamise praktika

LÔpptulemusena nÀevad arendajad, kuidas kood peaks logisid saatma, kuidas seda testida ja kuidas seda hiljem siluda. Administratorid mÔistavad arendajate vajadusi: millised vead koodis esinevad, kuidas korraldada arendajatele testimist, kuidas ise projekti testida.

Selles etapis lahendatakse DevOps'i peamine ĂŒlesanne: luuakse mĂ”istmine ja koostöö arendajate ja administreerijate vahel. See on oluline samm ĂŒlesannete edastamise asemel vastutustundliku koostöö suunas.

Tulemusena kasvab töö kiirus ja kvaliteet.

CI/CD

Kaasaegne automatiseerimine hĂ”lmab CI/CD-d. Alustame kĂ€sitsi automatiseerimise ĂŒlevaatamisest: make-failid, git-hookid, skriptid. RÀÀgime, millal need tööriistad on veel asjakohased ja millal neid ei tasu kasutada.

SeejÀrel vaatame parimaid praktikaid kaasaegse CI osas GitLabi nÀitel.

Teema nr 5: CI/CD automatiseerimise sissejuhatus

  • Sissejuhatus automatiseerimisse
  • Tööriistad (bash, make, gradle)
  • Git-hookide kasutamine protsesside automatiseerimiseks
  • Tööstuslikud konveeriloodud liinid ja nende rakendamine IT-s
  • NĂ€ide "ĂŒldise" vooliku ĂŒlesehitusest
  • Kaasaegne tarkvara CI/CD jaoks: Drone CI, BitBucket Pipelines, Travis jne.

Teema nr 6: CI/CD: Töö GitLabiga

  • GitLab CI — ĂŒldine
  • GitLab Runner, nende tĂŒĂŒbid ja rakendamine
  • GitLab CI, seadistuse eripĂ€rad, parimad praktikad
  • GitLab CI etapid
  • GitLab CI muutujad
  • Kogumine, testimine, juurutamine
  • TĂ€itmise kontroll ja piirangud: only, when
  • Töötamine artefaktidega
  • Mallid .gitlab-ci.yml-s, toimingute ĂŒmberkasutamine erinevates vooliku osades
  • Include — sektsioonid
  • Keskne haldus gitlab-ci.yml (ĂŒks fail ja automaatsed pushid teistesse hoidlatestesse)

Administraatorite ja arendajate koostöö tÔuseb uuele tasemele: administraator kirjutab CI-malli ja arendajad muudavad seda, ehitades oma CI sÔltumatult administraatorist.

Arendajate sĂ”ltuvus administraatoritest vĂ€heneb, kĂ€sitööde hulk kahaneb ja kaob probleem „ainus inimene, kes teab, kuidas malli kasutada“. VĂ€ljaandmised toimuvad usaldusvÀÀrselt ja kiiresti.

IaC

Teemaga Infrastructure as Code rÀÀgib Terraformi nÀitel Selecteli pilveadministraator Aleksei Stepanenko. Ta nÀitab, kuidas kiiresti ja automatiseeritult servereid kÀivitada ja skaleerida, kuidas automaatselt pilte pakkida ning kuidas kasutada konfiguratsioonimalle, et kohe saada seadistatud masinaid.

Inimene, kes on teinud tuhandeid IaC-lahendusi, rÀÀgib, kuidas teha Ôigesti ja kuidas mitte.

Selecteli lahendus, mis vajab minimaalseid kohandusi, sobib Google'i ja Amazoni pilvedele.

EttevÔtte Southbridge töötaja Nikolai Mesropyan nÀitab Ansible'i nÀitel, kuidas töötavat rakendust ilma katkestusteta kÀivitada ja selle töökindlust kontrollida.

Kui hallata infrastruktuuri kĂ€sitsi (seade serverid, installida raamatukogud ja paketid vastavalt vajadusele), peate keskkonna koopia ĂŒlesseadmise katsetamisel meeles pidama ja taastama kĂ”ik oma teod. See ĂŒlesanne vĂ”tab kergesti 3-5 pĂ€eva. Infrastruktuuri kĂ€sitsemine koodina tagab, et teil on olemas ajakohane keskkonna kirjeldus, mida saab minutitega juurutada.

Nikolai rÀÀgib, kuidas kirjutada mÀngureegleid, millised vead vÔivad esineda, miks mÔnikord mÀngureeglid töötavad aeglaselt vÔi mitte nii, nagu oodatud. See on aastaid kestnud kogemus IaC kasutamisest Southbridge'is.

Teema nr 7: Infrastruktuur kui Kood

  • IaC: lĂ€henemine infrastruktuurile kui koodile
  • Pilveteenuse pakkujad infrastruktuuri tarnijatena
  • SĂŒsteemide initsialiseerimise tööriistad, pildikogumine (packer)
  • IaC Terraformi nĂ€itel
  • Konfiguratsioonide haldamine, koostöö, rakenduste automatiseerimine
  • Ansible'i mĂ€nguliste loomise praktika
  • Idempotentsus, deklaratiivsuse pĂ”himĂ”tted
  • IaC Ansible'i nĂ€itel
  • Andmebaas kui Kood / PostgreSQL tĂ”rketaluvus

Infrastruktuur omandab deklaratiivsuse ja idempotentsuse.
Administrator Ă”pib keerulise infrastruktuuri haldamise: kiiresti luua uusi keskkondi, sĂ€ilitada kĂ”igi keskkondade ĂŒhtsus, nĂ€ha muudatuste ajalugu, mis on kriitilise tĂ€htsusega, kui projekti kallal töötab mitu meeskonda.
Arendaja saab Ôppida infrastruktuuri, ise luua keskkondi.

Boonuse osa — PostgreSQL andmebaasi tĂ”rke taastamise klastrite loomine ja seadistamine. Anname valmis juhendi, mida kasutame Southbridge'is, ja te seadistate klastrit Ă”ppekeskkonnas, et saaksite seda lahendust enda ettevĂ”ttes rakendada.

Infrastruktuuri testimine ja jÀlgimine

Automatiseerimine vĂ”imaldab koheselt vead levitada tuhandetele serveritele. Iga muudatuse korral on vajalik testimine. Teiselt poolt vĂ”tab kĂ€sitsi testimine nii palju aega, et see tĂŒhistab automatiseerimise eelised.

Kutsume teid praktiliselt ĂŒles kirjutama rollide testimist. Tulemuseks on, et saate kirjutada teste oma ettevĂ”tte jaoks. Pole enam vaja meeles pidada tehtud seadistusi, vaid kirjeldada neid testides ja automaatselt kontrollida, et kĂ”ik varasemad lahendused ja kiirteed on endiselt kohas.

SeejÀrel Ôpime automaatselt lisama kÔik uued serverid monitooringusse. Keskendume eraldi infrastruktuuri ja rakenduste jÀlgimisele. Tutvustame halbu ja hÀid praktikaid.

Teema nr 8: Infrastruktuuri testimine

  • Testimine ja pidev integratsioon Molecule'i ja Gitlab CI abil
  • Vagranti rakendamine

Teema nr 9: Infrastruktuuri jÀlgimine Prometheusega

  • Miks on vajalik monitooring
  • Monitooringu tĂŒĂŒbid
  • MonitooringusĂŒsteemi teadet
  • Kuidas ĂŒles ehitada terve jĂ€lgimissĂŒsteem
  • Inimesele loetavad teated, kĂ”igile
  • Health Check: millele tĂ€helepanu pöörata
  • Automatiseerimine monitooringu andmete pĂ”hjal

Vale monitooring tĂ€hendab, et monitooringut pole. Äril ei ole tĂ€htis, et veebipoe avaleht on saadaval, kui maksevorm annab tĂ”rke.

Monitooringu seadistamisel ja probleemide lahendamisel osalevad arendajad ja administraatorid vĂ”rdselt. Traditsiooniliselt langevad monitooringu ĂŒlesanded administraatorite Ă”lule. Meie kursus nĂ€itab arendajatele, millist rolli nad mĂ€ngivad tĂ”husa monitooringu loomisel. Administraatorid saavad parimaid praktikaid Southbridge'ist. Tulemuseks on, et veebisaidi vĂ”i rakenduse rikete ja puhajate pĂ”hjustatud kahjumite arv vĂ€heneb kiiresti.

Jaotise boonus: automatiseerimine monitooringu pÔhjal. NÀiteks annab monitooring teada, et veebisaidile on tekkinud koormus, ja veebiserverite skaleerimine algatakse automaatselt.

Logimine

PĂ”hiline viga logidega töötamisel on see, et administraatorid ja arendajad vaatavad neid otse serverites. Kui teil on rohkem kui ĂŒks server, vĂ”tab see kaua aega. See on ebaturvaline: arendaja siseneb serverisse, kus ta ei peaks olema.

DevOps nĂ”uab logide tsentraliseeritud kogumist, töötlemist ja analĂŒĂŒsi.

Teema nr 10: Rakenduste logimine ELK-iga

  • Peamised rakendused ja funktsioonid elastics (otsing, sĂ€ilitamine, skaleerimise omadused, seadistamise paindlikkus)
  • Kibana ĂŒlevaade (peamised funktsioonid, pĂ€ringukeel, armatuurlaudade haldamine, graafikute loomine)
  • Elastici pĂ”hjal toodete ĂŒlevaade ja nende rakendamine
  • Kogume mÔÔdikuid APM-is (rakenduste jĂ€lgimine)
  • Lisaks: Uue toote ĂŒlevaade — SIEM

Selle lĂ€henemisviisi rakendamine muudab logid lihtsaks ja arusaadavaks tööriistaks rakenduse ja infrastruktuuri analĂŒĂŒsimiseks, seadistamiseks ja hÀÀlestamiseks.

SRE

Ja me jÔuame teema juurde, millele Southbridge alles vaatab ning mille tÔttu soovivad teised esinejad jÀÀda viimasele pÀevadele Slërmile. Meil on hea meel, et seda teemat on nÔustunud lugema Ivan Kruglov Booking.com-ist.

Projekt elab reaalses maailmas, kus usaldusvÀÀrsus ei ole kunagi absoluutne ja iga otsus maksab raha.

Mis on SLA keerulise projekti kontekstis? Ütleme, kuidas hinnata, et veebisait on juurdepÀÀsetav, kuid pildid laaditakse viivitusega. Millised on SLA nĂ€itajad, kust neid vĂ”tta, kuidas neid mÔÔta?

Kuidas seadistada SLA? Kuidas neid pidada?

Teema nr 11: SRE
SLA, SLO, Error Budget ja muud hirmutavad terminid SRE maailmas
SRE: SLI ja SLO jÀlgimise praktika
SRE: Error Budgeti rakendamise praktika
SRE: Katkestuste ja operatiivkoormuse haldamine (apigateway, teenuse mesh, ringikaitsjad)
Ärimees tahab SRE-d. Isegi kĂ”ige lihtsamas vormis: kas vĂ”tta varu server vĂ”i taastada varukoopiast? Üks andmebaas vĂ”i klaster? Kas rakendada DDoS kaitset ennetavalt vĂ”i ainult rĂŒnnaku ajal?

Direktor ei ole rahul sellega, et «veebisait töötab», kui tema helistab klient ja teatab, et tellimisvorm ei avane.

SeetÔttu on DevOps inseneri jaoks oluline vÀhemalt pinnapealselt mÔista SRE-d, et adekvaatselt rÀÀkida Àri vajadustest.

KokkuvÔte

Aja jooksul DevOps'i slÔrmaar administraatorid ja arendajad Ôpivad:
— Ă”igesti töötama Gitiga;
— korraldama lokaalset arendust;
— seadistama (administraatorid) ja kasutama (arendajad) CI/CD-d;
— töötama infrastruktuuriga kui koodi.
— testida infrastruktuuri;
— jĂ€lgida infrastruktuuri ja rakendust;
— seadistada logimine;
— mĂ”ista ja ideaalis — kasutada SRE-d.

Hoolikatele lugejatele — sooduskoodiga habrapost 15% allahindlus.

KÔigis punktides valmistame ette praktikat ja tööriistu. Nii et iga osaleja, kes SlÞrmist naaseb, saab viia oma ettevÔtte DevOpsi jÀrgmisel tasemele.

Äri jaoks tĂ€hendab see haldamise ja arendamise kulude vĂ€henemist, katkestuste vĂ€henemist, usaldusvÀÀrsuse kasvu, kiiremat funktsioonide tarnimist ja vigade kĂ”rvaldamist.

Allikas: habr.com

Osta usaldusvÀÀrne veebihosting DDoS kaitsega, VPS VDS serverid đŸ”„ Osta usaldusvÀÀrne veebihosting DDoS kaitsega, VPS VDS serverid | ProHoster