Pre začínajúceho správcu systému: ako vytvoriť poriadok z chaosu

Pre začínajúceho správcu systému: ako vytvoriť poriadok z chaosu

Som správca systému FirstVDS a toto je text prvej úvodnej prednášky z môjho krátkeho kurzu o pomoci začínajúcim kolegom. Špecialisti, ktorí sa nedávno začali zaoberať správou systému, čelia množstvu rovnakých problémov. Aby som ponúkol riešenia, zaviazal som sa napísať túto sériu prednášok. Niektoré veci v ňom sú špecifické pre hosťovanie technickej podpory, ale vo všeobecnosti môžu byť užitočné, ak nie pre každého, tak pre mnohých. Takže som prispôsobil text prednášky, aby som ho tu zdieľal.

Nezáleží na tom, ako sa volá vaša pozícia – dôležité je, že v skutočnosti ste zapojený do administratívy. Začnime preto tým, čo by mal správca systému robiť. Jeho hlavnou úlohou je dať veci do poriadku, udržiavať poriadok a pripraviť sa na budúce nárasty poriadku. Bez správcu systému sa server stáva neporiadkom. Logy sa nepíšu, alebo sa v nich píšu nesprávne veci, zdroje nie sú rozmiestnené optimálne, disk je zaplnený všelijakými odpadkami a systém začína pomaly umierať od toľkého chaosu. Pokojne! Správcovia systému vo vašej osobe začínajú riešiť problémy a odstraňovať neporiadok!

Piliere správy systému

Avšak skôr, ako začnete riešiť problémy, stojí za to oboznámiť sa so štyrmi hlavnými piliermi administratívy:

  1. Dokumentácia
  2. Šablónovanie
  3. Optimalizácia
  4. automatizácia

Toto je základ. Ak svoj pracovný postup nepostavíte na týchto princípoch, bude neefektívny, neproduktívny a vo všeobecnosti sa len málo podobá skutočnej administratíve. Pozrime sa na každý zvlášť.

Záznamy

Záznamy neznamená čítanie dokumentácie (aj keď sa bez nej nezaobídete), ale aj jej udržiavanie.

Ako uchovávať dokumentáciu:

  • Narazili ste na nový problém, ktorý ste ešte nevideli? Napíšte hlavné príznaky, metódy diagnostiky a zásady eliminácie.
  • Prišli ste na nové, elegantné riešenie bežného problému? Zapíšte si to, aby ste to o mesiac nemuseli znovu vymýšľať.
  • Pomohli vám zistiť otázku, ktorej ste nerozumeli? Zapíšte si hlavné body a koncepty, nakreslite si schému.

Hlavná myšlienka: pri osvojovaní a uplatňovaní nových vecí by ste nemali úplne dôverovať vlastnej pamäti.

V akom formáte to urobíte, je len na vás: môže to byť systém s poznámkami, osobný blog, textový súbor, fyzický poznámkový blok. Hlavná vec je, že vaše záznamy spĺňajú nasledujúce požiadavky:

  1. Nebuď príliš dlhý. Zdôraznite hlavné myšlienky, metódy a nástroje. Ak pochopenie problému vyžaduje ponorenie sa do nízkoúrovňovej mechaniky prideľovania pamäte v Linuxe, neprepisujte článok, z ktorého ste sa to naučili – uveďte naň odkaz.
  2. Záznamy by vám mali byť jasné. Ak je linka race cond.lockup neumožňuje okamžite pochopiť, čo ste opísali týmto riadkom - vysvetlite. Pochopenie dobrej dokumentácie nezaberie ani pol hodiny.
  3. Vyhľadávanie je veľmi dobrá funkcia. Ak píšete blogové príspevky, pridajte značky; ak vo fyzickom zošite, nalepte malé post-it s popisom. Dokumentácia nemá zmysel, ak v nej strávite hľadaním odpovede toľko času, koľko by ste strávili riešením otázky od začiatku.

Pre začínajúceho správcu systému: ako vytvoriť poriadok z chaosu

Aj takto môže vyzerať dokumentácia: od primitívnych poznámok v poznámkovom bloku (obrázok vyššie), až po plnohodnotnú viacužívateľskú vedomostnú bázu s tagmi, vyhľadávaním a všetkými možnými vymoženosťami (nižšie).

Pre začínajúceho správcu systému: ako vytvoriť poriadok z chaosu

Nielen, že nebudete musieť hľadať rovnaké odpovede dvakrát, ale dokumentovanie bude skvelou pomôckou pri učení sa nových tém (poznámky!), zlepší váš zmysel pre pavúky (schopnosť diagnostikovať zložitý problém jedným povrchným pohľadom), a pridá organizáciu do vašich akcií. Ak je dokumentácia dostupná pre vašich kolegov, umožní im zistiť, čo a ako ste tam nahromadili, keď tam nie ste.

Šablónovanie

Šablónovanie je vytváranie a používanie šablón. Na vyriešenie väčšiny typických problémov sa oplatí vytvoriť špecifickú šablónu akcie. Na diagnostiku väčšiny problémov by sa mala použiť štandardizovaná postupnosť krokov. Keď ste niečo opravili/nainštalovali/optimalizovali, výkon tohto niečoho by ste mali skontrolovať pomocou štandardizovaných kontrolných zoznamov.

Šablóna je najlepší spôsob, ako organizovať pracovný postup. Použitím štandardných postupov na riešenie najbežnejších problémov získate množstvo skvelých vecí. Napríklad používanie kontrolných zoznamov vám umožní diagnostikovať všetky funkcie dôležité pre vašu prácu a zahodiť diagnostiku nedôležitej funkcionality. A štandardizované postupy minimalizujú zbytočné hádzanie a znižujú pravdepodobnosť chyby.

Prvým dôležitým bodom je, že postupy a kontrolné zoznamy musia byť tiež zdokumentované. Ak sa spoliehate len na pamäť, môžete zmeškať naozaj dôležitú kontrolu alebo operáciu a všetko pokaziť. Druhým dôležitým bodom je, že všetky praktiky šablón môžu a mali by byť upravené, ak si to situácia vyžaduje. Ideálne a absolútne univerzálne šablóny neexistujú. Ak sa vyskytne problém, ale kontrola šablóny ho neodhalila, neznamená to, že problém nie je. Avšak predtým, ako začnete testovať niektoré nepravdepodobné hypotetické problémy, vždy sa oplatí najskôr urobiť rýchly test šablóny.

Optimalizácia

Optimalizácia hovorí sám za seba. Pracovný proces je potrebné čo najviac optimalizovať z hľadiska času a nákladov na prácu. Existuje nespočetné množstvo možností: naučiť sa klávesové skratky, skratky, regulárne výrazy, dostupné nástroje. Hľadajte praktickejšie využitie týchto nástrojov. Ak voláte príkaz 100-krát za deň, priraďte ho ku klávesovej skratke. Ak sa potrebujete pravidelne pripájať k tým istým serverom, napíšte alias v jednom slove, ktorý vás tam spojí:

Pre začínajúceho správcu systému: ako vytvoriť poriadok z chaosu

Oboznámte sa s rôznymi možnosťami, ktoré sú k dispozícii pre nástroje – možno existuje pohodlnejší terminálový klient, DE, správca schránky, prehliadač, e-mailový klient, operačný systém. Zistite, aké nástroje používajú vaši kolegovia a priatelia – možno si ich vyberajú z nejakého dôvodu. Keď budete mať nástroje, naučte sa ich používať: naučte sa klávesy, skratky, tipy a triky.

Optimálne využívajte štandardné nástroje – coreutils, vim, regulárne výrazy, bash. Pre posledné tri existuje obrovské množstvo nádherných manuálov a dokumentácie. S ich pomocou môžete rýchlo prejsť zo stavu „Cítim sa ako opica, ktorá láme orechy s notebookom“ do „Som opica, ktorá si pomocou notebooku objednáva lúskačku orechov“.

automatizácia

automatizácia prenesie náročné operácie z našich unavených rúk do neúnavných rúk automatizácie. Ak sa nejaký štandardný postup vykonáva v piatich príkazoch rovnakého typu, tak prečo nezabaliť všetky tieto príkazy do jedného súboru a nezavolať jeden príkaz, ktorý tento súbor stiahne a vykoná?

Samotná automatizácia je z 80 % písaním a optimalizáciou vašich vlastných nástrojov (a ďalších 20 % sa snaží, aby fungovali tak, ako majú). Môže to byť len pokročilý one-liner alebo obrovský všemocný nástroj s webovým rozhraním a API. Hlavným kritériom je, že vytvorenie nástroja by nemalo zabrať viac času a úsilia, ako je množstvo času a úsilia, ktoré vám nástroj ušetrí. Ak strávite päť hodín písaním skriptu, ktorý už nikdy nebudete potrebovať, pri úlohe, ktorej vyriešenie by vám bez skriptu trvalo hodinu alebo dve, ide o veľmi slabú optimalizáciu pracovného postupu. Päť hodín pri vytváraní nástroja môžete stráviť len vtedy, ak to počet, typ úloh a čas dovoľujú, čo sa často nestáva.

Automatizácia nemusí nutne znamenať písanie plnohodnotných skriptov. Napríklad, ak chcete zo zoznamu vytvoriť hromadu objektov rovnakého typu, všetko, čo potrebujete, je šikovný jednoduchý riadok, ktorý automaticky urobí to, čo by ste robili ručne, prepínaním medzi oknami, s hromadou kopírovania a vkladania.

V skutočnosti, ak postavíte administratívny proces na týchto štyroch pilieroch, môžete rýchlo zvýšiť svoju efektivitu, produktivitu a kvalifikáciu. Tento zoznam je však potrebné doplniť ešte o jednu položku, bez ktorej je práca v IT takmer nemožná – sebavzdelávanie.

Samovzdelávanie správcu systému

Aby ste boli v tejto oblasti čo i len trochu kompetentní, musíte neustále študovať a učiť sa nové veci. Ak nemáte ani najmenšiu chuť postaviť sa neznámu tvárou v tvár a prísť na to, veľmi rýchlo sa zaseknete. V IT sa neustále objavujú všelijaké nové riešenia, technológie a metódy a ak si ich aspoň povrchne nepreštudujete, ste na ceste k neúspechu. Mnohé oblasti informačných technológií stoja na veľmi komplexnom a objemnom základe. Napríklad prevádzka siete. Siete a internet sú všade, stretávate sa s nimi každý deň, no keď sa prehrabete v technológii za nimi, objavíte obrovskú a veľmi komplexnú disciplínu, ktorej štúdium nikdy nie je prechádzkou ružovým sadom.

Túto položku som do zoznamu nezaradil, pretože je kľúčová pre IT všeobecne, nielen pre správu systému. Prirodzene, nebudete sa môcť hneď naučiť úplne všetko – jednoducho nemáte fyzicky dosť času. Preto by ste pri vzdelávaní mali pamätať na potrebné úrovne abstrakcie.

Nemusíte sa hneď učiť, ako funguje správa vnútornej pamäte každého jednotlivého nástroja a ako spolupracuje so správou pamäte Linuxu, ale je dobré vedieť, čo je to RAM schematicky a prečo je to potrebné. Nemusíte vedieť, ako sa štrukturálne líšia hlavičky TCP a UDP, ale bolo by dobré pochopiť základné rozdiely v tom, ako protokoly fungujú. Netreba sa učiť, čo je útlm signálu v optike, ale bolo by fajn vedieť, prečo sa skutočné straty vždy dedia cez uzly. Nie je nič zlé na tom, keď viete, ako fungujú určité prvky na určitej úrovni abstrakcie a nemusíte nutne rozumieť úplne všetkým úrovniam, keď tam žiadna abstrakcia nie je (proste sa z toho zbláznite).

Vo vašom odbore však myslenie na úrovni abstrakcie „dobre, toto je vec, ktorá vám umožňuje zobrazovať webové stránky“ nie je príliš dobré. Nasledujúce prednášky budú venované prehľadu hlavných oblastí, ktorými sa musí správca systému zaoberať pri práci na nižších úrovniach abstrakcie. Pokúsim sa obmedziť množstvo recenzovaných vedomostí na minimálnu úroveň abstrakcie.

10 príkazov na správu systému

Takže sme sa naučili štyri hlavné piliere a základy. Môžeme začať riešiť problémy? Ešte nie. Predtým, ako to urobíte, je vhodné oboznámiť sa s takzvanými „osvedčenými postupmi“ a pravidlami slušného správania. Bez nich pravdepodobne narobíte viac škody ako úžitku. Takže začnime:

  1. Niektorí z mojich kolegov sa domnievajú, že prvým pravidlom je „neškodiť“. Ale prikláňam sa k nesúhlasu. Keď sa snažíte neublížiť, nemôžete nič urobiť - príliš veľa akcií je potenciálne deštruktívnych. Myslím, že najdôležitejšie pravidlo je - "vytvoriť zálohu". Aj keď spôsobíte nejaké škody, vždy sa môžete vrátiť späť a všetko nebude také zlé.

    Vždy by ste mali zálohovať, keď to čas a miesto dovolia. Musíte zálohovať to, čo zmeníte a o čo riskujete stratu v dôsledku potenciálne deštruktívnej akcie. Odporúča sa skontrolovať integritu zálohy a prítomnosť všetkých potrebných údajov. Záloha by sa nemala vymazávať hneď po tom, čo všetko skontrolujete, pokiaľ nepotrebujete uvoľniť miesto na disku. Ak to umiestnenie vyžaduje, zálohujte ho na svoj osobný server a po týždni ho odstráňte.

  2. Druhé najdôležitejšie pravidlo (ktoré sám často porušujem) je "neskrývaj sa". Ak ste si urobili zálohu, napíšte kde, aby ju kolegovia nemuseli hľadať. Ak ste vykonali nejaké nejasné alebo zložité kroky, zapíšte si to: pôjdete domov a problém sa môže zopakovať alebo sa môže vyskytnúť u niekoho iného a vaše riešenie sa nájde pomocou kľúčových slov. Aj keď robíte niečo, čo dobre poznáte, vaši kolegovia nemusia.
  3. Tretie pravidlo nie je potrebné vysvetľovať: „Nikdy nerob niečo, o čom nevieš, nevieš si predstaviť alebo čomu nerozumieš“. Nekopírujte príkazy z internetu, ak neviete, čo robia, najskôr zavolajte človeka a analyzujte ich. Nepoužívajte hotové riešenia, ak nerozumiete, čo robia. Spúšťanie zahmleného kódu obmedzte na absolútne minimum. Ak nemáte čas na to prísť, niečo robíte zle a mali by ste si prečítať nasledujúci bod.
  4. "test". Nové skripty, nástroje, jednoduché riadky a príkazy by sa mali testovať v kontrolovanom prostredí, nie na klientskom počítači, ak existuje čo i len minimálny potenciál pre deštruktívne akcie. Aj keď ste si všetko zálohovali (a urobili ste), prestoje nie sú práve najlepšie. Vytvorte na to samostatný server/virtuálny/chroot a otestujte ho tam. Je niečo zlomené? Potom ho môžete spustiť na „boj“.

    Pre začínajúceho správcu systému: ako vytvoriť poriadok z chaosu

  5. "ovládanie". Minimalizujte všetky operácie, ktoré neovládate. Jedna krivka závislosti balíka môže stiahnuť polovicu systému a príznak -y nastavený pre yum remove vám dáva príležitosť precvičiť si schopnosti obnovy systému od začiatku. Ak akcia nemá žiadne nekontrolované alternatívy, ďalším bodom je hotová záloha.
  6. "skontrolovať". Skontrolujte dôsledky svojich činov a či sa potrebujete vrátiť späť k zálohe. Skontrolujte, či sa problém skutočne vyriešil. Skontrolujte, či sa chyba reprodukuje a za akých podmienok. Skontrolujte, čo môžete svojimi činmi porušiť. Je zbytočné dôverovať našej práci, ale nikdy nie kontrolovať.
  7. "komunikovať". Ak nemôžete vyriešiť problém, opýtajte sa svojich kolegov, či sa s tým stretli. Ak chcete uplatniť kontroverzné rozhodnutie, zistite si názor svojich kolegov. Možno ponúknu lepšie riešenie. Ak si nie ste istý svojimi činmi, prediskutujte ich so svojimi kolegami. Aj keď je to vaša odborná oblasť, nový pohľad na situáciu môže veľa objasniť. Nehanbite sa za vlastnú nevedomosť. Je lepšie položiť hlúpu otázku, vyzerať ako hlupák a dostať odpoveď, ako nepoložiť otázku, nedostať odpoveď a skončiť ako hlupák.
  8. „Neodmietajte pomoc bezdôvodne“. Tento bod je opakom predchádzajúceho. Ak dostanete hlúpu otázku, objasnite a vysvetlite. Žiadajú nemožné – vysvetlite, že je to nemožné a prečo, ponúknite alternatívy. Ak nemáte čas (naozaj nemáte čas, nie túžbu) - povedzte, že máte naliehavú otázku, veľa práce, ale neskôr to vyriešite. Ak kolegovia nemajú naliehavé úlohy, ponúknite im kontakt a delegujte otázku.
  9. "Dať spätnú väzbu". Začal niekto z vašich kolegov používať novú techniku ​​alebo nový scenár a stretávate sa s negatívnymi dôsledkami tohto rozhodnutia? Nahláste to. Možno sa problém dá vyriešiť v troch riadkoch kódu alebo piatich minútach zdokonaľovania techniky. Narazili ste na chybu vo svojom softvéri? Nahlásiť chybu. Ak je reprodukovateľný alebo nie je potrebné ho reprodukovať, s najväčšou pravdepodobnosťou bude opravený. Vyjadrite svoje želania, návrhy a konštruktívnu kritiku a ak sa zdajú relevantné, predložte otázky na diskusiu.
  10. "Požiadať o spätnú väzbu". Všetci sme nedokonalí, rovnako ako naše rozhodnutia, a najlepší spôsob, ako otestovať správnosť svojho rozhodnutia, je predložiť ho na diskusiu. Ak ste niečo optimalizovali pre klienta, požiadajte ho, aby monitoroval prácu; možno úzke miesto v systéme nie je tam, kde ste hľadali. Napísali ste pomocný skript – ukážte ho svojim kolegom, možno nájdu spôsob, ako ho vylepšiť.

Ak budete tieto praktiky vo svojej práci neustále uplatňovať, väčšina problémov prestane byť problémami: nielenže znížite počet vlastných chýb a záloh na minimum, ale budete mať aj možnosť chyby opraviť (v tzv. formou záloh a kolegov, ktorí vám poradia zálohovať). Ďalej - iba technické detaily, v ktorých, ako vieme, sa skrýva diabol.

Hlavné nástroje, s ktorými budete musieť pracovať viac ako 50% času, sú grep a vim. Čo môže byť jednoduchšie? Textové vyhľadávanie a úprava textu. grep aj vim sú však výkonné multi-nástroje, ktoré vám umožňujú efektívne vyhľadávať a upravovať text. Ak vám niektorý poznámkový blok Windows umožňuje jednoducho napísať/vymazať riadok, tak vo vime môžete s textom robiť takmer čokoľvek. Ak mi neveríte, zavolajte príkaz vimtutor z terminálu a začnite sa učiť. Pokiaľ ide o grep, jeho hlavná sila je v regulárnych výrazoch. Áno, samotný nástroj vám umožňuje pomerne flexibilne nastaviť podmienky vyhľadávania a výstupné údaje, ale bez RegExp to nedáva veľký zmysel. A musíte poznať regulárne výrazy! Aspoň na základnej úrovni. Na začiatok by som vám odporučil pozrieť sa na toto video, pokrýva základy regulárnych výrazov a ich použitie v spojení s grep. Ach áno, keď ich skombinujete s vim, získate ULTIMATE POWER schopnosť robiť veci s textom, ktoré musíte označiť 18+ ikonami.

Zo zostávajúcich 50 % pochádza 40 % zo sady nástrojov coreutils. Pre coreutils si môžete pozrieť zoznam na wikipediaa návod na celý zoznam je na webovej stránke GNU. Čo nie je zahrnuté v tejto súprave, je v inžinierskych sieťach POSIX. Nemusíte sa učiť všetky klávesy naspamäť, ale je užitočné aspoň zhruba vedieť, čo základné nástroje dokážu. Nemusíte znovu vynájsť koleso z barlí. Nejako som potreboval nahradiť zalomenie riadkov medzerami vo výstupe z nejakej utility a môj chorý mozog splodil konštrukciu ako sed ':a;N;$!ba;s/n/ /g', prišiel kolega a odháňal ma metlou od konzoly a potom problém vyriešil písaním tr 'n' ' '.

Pre začínajúceho správcu systému: ako vytvoriť poriadok z chaosu

Odporúčam vám, aby ste si zapamätali, čo robí každý jednotlivý nástroj a kľúče k najčastejšie používaným príkazom, na všetko ostatné je človek. Neváhajte a zavolajte mužovi, ak máte nejaké pochybnosti. A určite si prečítajte aj samotného muža – obsahuje dôležité informácie o tom, čo nájdete.

Poznaním týchto nástrojov budete vedieť efektívne riešiť značnú časť problémov, s ktorými sa v praxi stretnete. V nasledujúcich prednáškach sa pozrieme na to, kedy použiť tieto nástroje a rámce pre základné služby a aplikácie, na ktoré sa vzťahujú.

Bol s vami správca systému FirstVDS Kirill Tsvetkov.

Zdroj: hab.com

Pridať komentár