Head reedet! SÔbrad, tÀna jÀtkame oma postituste seeriat kursusest , kuna uue grupi tunnid algavad juba jÀrgmisel nÀdalal. Nii et alustame!

JĂ€lgimine on lihtne. See on tuntud fakt. KĂ€ivitage Nagios, kĂ€itage NRPE eemaloleval sĂŒsteemil, seadistage Nagios NRPE TCP pordile 5666 ja teil on jĂ€lgimine.
See on nii lihtne, et see pole huvitav. NĂŒĂŒd on teil pĂ”himetriigid, nagu protsessori aeg, diskiallikas ja mĂ€lu, mis tulevad vaikimisi Nagiosesse ja NRPEsse. Kuid tegelikult ei ole see «jĂ€lgimine» niivĂ”rd. See on vaid algus.
(Tavaliselt installitakse PNP4Nagios, RRDtool ja Thruk, seadistatakse teavitused Slackis ja minnakse otse nagiosexchange'i, aga jÀtame selle praegu kÔrvale).
Hea jĂ€lgimine on tegelikult ĂŒsna keeruline, peate tĂ”eliselt teadma rakenduse siseelundeid, mida te jĂ€lgite.
Kas jÀlgimine on keeruline?
Iga server, olgu see Linux vĂ”i Windows, teenib kindlat eesmĂ€rki. Apache, Samba, Tomcat, failisĂŒsteem, LDAP â kĂ”ik need teenused on ĂŒhes vĂ”i mitmes aspektis ainulaadsed. Igal neist on oma funktsioon ja omadused. Serveri koormuse all saadud mÔÔdikute ja KPI-de (vĂ”tmemÔÔdikud) hankimiseks on erinevaid vĂ”imalusi.

Foto autor jÀrgnevaga
(sooviks, et mu juhtpaneelid oleksid vĂ€rvitud neooni siniseks â unistavalt ohates â⊠hmmâŠ)
Iga teenuseid pakkuv tarkvara peab omama mehhanismi mÔÔdikute kogumiseks. Apachil on moodul mod-status, mis kuvab serveri oleku lehte. Nginx-il on stub_status. Tomcatil on JMX vĂ”i spetsiaalsed veebirakendused, mis nĂ€itavad vĂ”tmemÔÔdikuid. MySQL-is on kĂ€sk âshow global statusâ jne.
Miks siis arendajad ei integreeri selliseid mehhanisme rakendustesse, mida nad loovad?
Kas seda teevad ainult arendajad?
MĂ”istetav ĂŒkskĂ”iksuse tase mÔÔdikute integreerimise osas ei piirdu ainult arendajatega. Olen töötanud ettevĂ”tetes, kus arendati rakendusi Tomcatiga, kuid ei jagatud mingeid oma mÔÔdikuid ega teenuse aktiivsuse logisid, vĂ€lja arvatud Tomcati ĂŒldised vealogid. MĂ”ned arendajad genereerivad hulgaliselt logisid, mis ei tĂ€henda sĂŒsteemiadministraatori jaoks midagi, kes peab nende lugemisega tegelema kell 3:15 hommikul.

Foto autor jÀrgnevaga
SĂŒsteeminsenerid, kes lubavad sellistel toodetel versioonile minna, peaksid samuti kandma teatud vastutust olukorra eest. VĂ€ga vĂ€hestel sĂŒsteeminseneridel on aega ja nad ei pĂŒĂŒa midagi olulist logidest vĂ€lja vĂ”tta, ilma et neil oleks konteksti nende mÔÔdikute jaoks vĂ”i vĂ”imalust neid tĂ”lgendada rakenduse tegevuse valguses. MĂ”ned ei saa aru, millist kasu nad sellest saavad, vĂ€lja arvatud teavet nagu 'midagi on praegu (vĂ”i peagi) valesti'.
MĂ”tlemise muutmine seoses mÔÔdikute vajalikusega peaks toimuma mitte ainult arendajate seas, vaid ka sĂŒsteeminseneride seas.
Iga sĂŒsteemiinsener, kellele on vajalik mitte ainult reageerida kriitilistele sĂŒndmustele, vaid ka tagada nende puudumine, seisab tavaliselt silmitses mÔÔdikute puudumisega.
Kuid sĂŒsteemiinsenerid ei sĂŒvene tavaliselt koodisse, teenides raha oma ettevĂ”tte jaoks. Neil on vaja juhtivaid arendajaid, kes mĂ”istavad sĂŒsteemiinseneri vastutuse tĂ€htsust probleemide avastamisel, jĂ”udluse probleemide teadlikkuse tĂ”stmisel ja muus.
See devops asi
Devops mentaliteet kirjeldab arendajate (dev) ja ekspluateerimise (ops) mĂ”tlemise sĂŒnergiat. Iga ettevĂ”tte kohta, kes vĂ€idab, et nad âteevad devopsiâ, peab olema:
- ĂŒtlema, et nad tĂ”enĂ€oliselt ei tee (viide filmi âPrintsess-Immerâ memele â âMa ei arva, et see tĂ€hendab seda, mida sa arvad, et see tĂ€hendab!â)
- soodustama pideva toote tÀiustamise hoiakut.
Te ei saa toodet tÀiustada ja teada, et see oli tÀiustatud, kui sa ei tea, kuidas see praegu töötab. Sa ei suuda aru saada, kuidas toode töötab, kui sa ei mÔista, kuidas töötavad selle komponentid, teenused, millest see sÔltub, ja selle peamised valupunktid ja kitsaskohad.
Kui sa ei jĂ€lgi vĂ”imalikke kitsaskohti, ei saa sa kasutada âViit miksâ tehnikat postmortemâi kirjutamisel. Sa ei suuda kĂ”ike ĂŒhel ekraanil kokku koguda, et nĂ€ha, kuidas toode töötab vĂ”i teada saada, kuidas see nĂ€eb vĂ€lja ânormaalsena ja Ă”nnelikultâ.
Liiguta vasakule, VASAKULE, MA ĂTLESIN, AAAAAAAAâ
Minu jaoks on DevOpsi ĂŒks peamisi pĂ”himĂ”tteid âLiigutamine vasakuleâ (shift left). Liigutamine vasakule selle konteksti tĂ€henduses tĂ€hendab vĂ”imaluse nihutamist (mitte vastutuse, vaid ainult vĂ”imaluse) teha seda, mille pĂ€rast hoolivad tavaliselt sĂŒsteemiinsenerid, nĂ€iteks luua jĂ”udluse mÔÔdikuid, kasutada logisid tĂ”husamalt jne, vasakule tarkvara kohaletoimetamise elutsĂŒkli (Software Delivery Life Cycle) jooksul.

Foto autor jÀrgnevaga
Tarkvaraarendajatel peab olema vĂ”imalus kasutada ja mĂ”ista neid jĂ€lgimisvahendeid, mida ettevĂ”te kasutab, et jĂ€lgida kĂ”iki seda tĂŒĂŒpi tegevusi, metrikate, logimise, jĂ€lgimisliideste ja, mis kĂ”ige tĂ€htsam, vaadata, kuidas nende toode tootmises töötab. Te ei saa sundida arendajaid panustama aega ja ressursse jĂ€lgimisele, kui nad ei nĂ€e meetrikasid ja ei saa mĂ”jutada, kuidas need vĂ€lja nĂ€evad, kuidas toote omanik esitab need CTO-le jĂ€rgmise koosoleku ajal jne.
LĂŒhidalt
- Viige hobune vee ÀÀrele. NÀidake arendajatele, kui palju probleeme nad saaksid vÀltida, aidake neil vÀlja tuua Ôiged KPI-d ja mÔÔdikud oma rakenduste jaoks, et vÀhendada toote omaniku kriitikat, kellele tehniline direktor (CTO) karjub. Viige nad valgusesse, Ôrnalt ja rahulikult. Kui see ei Ônnestu, siis mahi neid, Àhvardage ja veenke kas neid vÔi toote omanikku, et need mÔÔdikud rakendustest nii kiiresti kui vÔimalik kÀtte saada ja joonistage siis diagrammid. See osutub keeruliseks, kuna see ei ole prioriteediks ja toote teekaardil on palju ootavaid projekte, mis toovad tulu. SeetÔttu vajate majanduslikku Ôigustust, et pÔhjendada aega ja ressursse, mis kulutatakse jÀlgimise integreerimisele tootesse.
- Aita sĂŒsteemiinseneritel hĂ€sti magada. NĂ€idake neile, et 'vĂ€ljalaskmise kontrollnimekirja' kasutamine iga vĂ€ljastatava toote jaoks on positiivne. Samuti aitab see, et kĂ”ik tootmises olevad rakendused on katsetatud mÔÔdikute abil, tagada rahulik uni öösel, vĂ”imaldades arendajatel nĂ€ha, mis ja kus ei tööta. Siiski on vale viis iga arendaja, tootjavastutaja ja tehnilise juhataja Ă€rritamiseks ja hĂ€irimiseks pidevalt rattad kinni panna ja vastu seista. Selline kĂ€itumine mĂ”jutab toote vĂ€ljaandmise kuupĂ€eva, kui oodata taas viimase minutini, seega tehke uuesti vasakule nihke ja lisage need kĂŒsimused vĂ”imalikult kiiresti projekti plaani. Kui vajalik, varjake end toote kohtumistel. Kandke vale vuntsi ja fetr, see ei petta kunagi. Tehke oma probleemidest teadlik, nĂ€idake selgeid eeliseid ja evangeliseerige.
- Veenduge, et nii arendajad (dev) kui ka tootmine (ops) mĂ”istavad, mida tĂ€hendab ja millised on tagajĂ€rjed toote mÔÔdikute sisenemisel "punasesse tsooni". Ărge jĂ€tke tootmist ainukeseks toote töökindluse valvamiseks, veenduge, et arendajad osalevad selles samuti (#productsquads).
- Logid on suurepĂ€rased, kuid mÔÔdikud samuti. Ăhendage need ja Ă€rge laske oma logidel muutuda prĂŒgilaks tohutul tulel, mis on tĂ€is kasulikke. Selgitage ja nĂ€idake arendajatele, miks keegi peale nende ei suuda nende logisid lugeda, nĂ€idake neile, milline see on, kui vaadata kasutut logi kell 3:15 hommikul.

Foto autor jÀrgnevaga
Sellega on kĂ”ik. Uus materjal ilmub jĂ€rgmisel nĂ€dalal. Kui soovite kursuse kohta rohkem teada, ootame teid , mis toimub juba esmaspĂ€eval. Ja nĂŒĂŒd ootame traditsiooniliselt teie kommentaare.
Allikas: habr.com
