Pentru un administrator de sistem începător: cum să creați ordine din haos

Pentru un administrator de sistem începător: cum să creați ordine din haos

Sunt administrator de sistem FirstVDS, iar acesta este textul primei prelegeri introductive din cursul meu scurt despre ajutarea colegilor începători. Specialiștii care au început recent să se angajeze în administrarea sistemului se confruntă cu o serie de probleme similare. Pentru a oferi soluții, m-am angajat să scriu această serie de prelegeri. Unele lucruri din el sunt specifice găzduirii suportului tehnic, dar, în general, pot fi utile, dacă nu pentru toată lumea, atunci pentru mulți. Așa că am adaptat textul prelegerii pentru a-l împărtăși aici.

Nu contează cum se numește poziția ta - ceea ce contează este că, de fapt, ești implicat în administrație. Prin urmare, să începem cu ce ar trebui să facă un administrator de sistem. Sarcina sa principală este să pună lucrurile în ordine, să mențină ordinea și să se pregătească pentru creșterile viitoare în ordine. Fără un administrator de sistem, serverul devine o mizerie. Jurnalele nu sunt scrise, sau sunt scrise lucruri greșite în ele, resursele nu sunt distribuite optim, discul este umplut cu tot felul de gunoi și sistemul începe să moară încet din cauza atâta haos. Calm! Administratorii de sistem din persoana ta încep să rezolve problemele și să elimine mizeria!

Pilonii administrării sistemului

Cu toate acestea, înainte de a începe să rezolvați problemele, merită să vă familiarizați cu cei patru piloni principali ai administrației:

  1. Documentație
  2. Modelare
  3. Optimizare
  4. Automatizare

Acestea sunt elementele de bază. Dacă nu vă construiți fluxul de lucru pe aceste principii, acesta va fi ineficient, neproductiv și, în general, va semăna puțin cu administrația reală. Să ne uităm la fiecare separat.

Documentație

Documentație nu înseamnă citirea documentației (deși nu te poți lipsi de ea), ci și întreținerea acesteia.

Cum se păstrează documentația:

  • Te-ai confruntat cu o nouă problemă pe care nu ai mai văzut-o până acum? Notați principalele simptome, metode de diagnostic și principii de eliminare.
  • Ați venit cu o soluție nouă și elegantă la o problemă comună? Notează-l ca să nu fii nevoit să-l reinventezi peste o lună.
  • Te-au ajutat să-ți dai seama de o întrebare pe care nu ai înțeles-o? Notează punctele și conceptele principale, desenează o diagramă pentru tine.

Ideea principală: nu ar trebui să ai încredere completă în propria ta memorie atunci când stăpânești și aplici lucruri noi.

În ce format veți face acest lucru depinde de dvs.: ar putea fi un sistem cu note, un blog personal, un fișier text, un notepad fizic. Principalul lucru este că înregistrările dvs. îndeplinesc următoarele cerințe:

  1. Nu fi prea lung. Evidențiați ideile, metodele și instrumentele principale. Dacă înțelegerea unei probleme necesită scufundarea în mecanismele de nivel scăzut ale alocării memoriei în Linux, nu rescrieți articolul din care ați învățat-o - furnizați un link către acesta.
  2. Intrările ar trebui să fie clare pentru dvs. Dacă linia race cond.lockup nu vă permite să înțelegeți imediat ce ați descris cu această linie - explicați. O documentare bună nu durează o jumătate de oră pentru a înțelege.
  3. Căutarea este o caracteristică foarte bună. Dacă scrieți postări pe blog, adăugați etichete; dacă într-un caiet fizic, lipiți mici post-it-uri cu descrieri. Nu are niciun rost în documentare dacă petreci atât de mult timp căutând un răspuns în ea cât ai petrece rezolvând întrebarea de la zero.

Pentru un administrator de sistem începător: cum să creați ordine din haos

Așa poate arăta documentația: de la notele primitive într-un bloc de note (imaginea de mai sus), la o bază de cunoștințe cu drepturi depline pentru mai mulți utilizatori, cu etichete, căutare și toate facilitățile posibile (mai jos).

Pentru un administrator de sistem începător: cum să creați ordine din haos

Nu numai că nu va trebui să cauți aceleași răspunsuri de două ori, dar documentarea va fi de mare ajutor în învățarea de noi subiecte (note!), îți va îmbunătăți simțul de păianjen (abilitatea de a diagnostica o problemă complexă cu o singură privire superficială), și va adăuga organizare acțiunilor dvs. Dacă documentația este disponibilă pentru colegii tăi, le va permite să-și dea seama ce și cum te-ai adunat acolo când nu ești acolo.

Modelare

Modelare este crearea și utilizarea șabloanelor. Pentru a rezolva cele mai obișnuite probleme, merită să creați un șablon de acțiune specific. O secvență standardizată de pași ar trebui utilizată pentru a diagnostica majoritatea problemelor. Când ați reparat/instalat/optimizat ceva, performanța acestui ceva ar trebui verificată folosind liste de verificare standardizate.

Modelarea este cea mai bună modalitate de a vă organiza fluxul de lucru. Folosind proceduri standard pentru a rezolva cele mai comune probleme, obțineți o mulțime de lucruri interesante. De exemplu, utilizarea listelor de verificare vă va permite să diagnosticați toate funcțiile care sunt importante pentru munca dvs. și să eliminați diagnosticul de funcționalitate neimportantă. Și procedurile standardizate vor minimiza aruncările inutile și vor reduce probabilitatea de eroare.

Primul punct important este că procedurile și listele de verificare trebuie, de asemenea, să fie documentate. Dacă te bazezi doar pe memorie, poți să ratezi o verificare sau o operație cu adevărat importantă și să strici totul. Al doilea punct important este că toate practicile șablon pot și ar trebui modificate dacă situația o cere. Nu există șabloane ideale și absolut universale. Dacă există o problemă, dar o verificare a șablonului nu a dezvăluit-o, aceasta nu înseamnă că nu există nicio problemă. Cu toate acestea, înainte de a începe să testați unele probleme ipotetice puțin probabile, merită întotdeauna să faceți mai întâi un test rapid de șablon.

Optimizare

Optimizare vorbeste de la sine. Procesul de lucru trebuie optimizat cât mai mult posibil din punct de vedere al timpului și al costurilor cu forța de muncă. Există nenumărate opțiuni: învață comenzi rapide de la tastatură, abrevieri, expresii regulate, instrumente disponibile. Căutați utilizări mai practice ale acestor instrumente. Dacă apelați o comandă de 100 de ori pe zi, atribuiți-o unei comenzi rapide de la tastatură. Dacă trebuie să vă conectați în mod regulat la aceleași servere, scrieți un alias într-un cuvânt care vă va conecta acolo:

Pentru un administrator de sistem începător: cum să creați ordine din haos

Familiarizați-vă cu diferitele opțiuni disponibile pentru instrumente - poate că există un client terminal mai convenabil, DE, manager clipboard, browser, client de e-mail, sistem de operare. Aflați ce instrumente folosesc colegii și prietenii dvs. - poate le aleg cu un motiv. Odată ce ai instrumentele, învață cum să le folosești: învață cheile, abrevierile, sfaturile și trucurile.

Utilizați în mod optim instrumentele standard - coreutils, vim, expresii regulate, bash. Pentru ultimele trei există un număr mare de manuale și documentație minunate. Cu ajutorul lor, puteți trece rapid de la starea „Mă simt ca o maimuță care sparge nuci cu un laptop” la „Sunt o maimuță care folosește un laptop pentru a-mi comanda un spart de nuci”.

Automatizare

Automatizare va transfera operațiunile dificile din mâinile noastre obosite în mâinile neobosite ale automatizării. Dacă o procedură standard este efectuată în cinci comenzi de același tip, atunci de ce să nu includeți toate aceste comenzi într-un singur fișier și să apelați o comandă care descarcă și execută acest fișier?

Automatizarea în sine înseamnă 80% scrierea și optimizarea propriilor instrumente (și încă 20% încearcă să le facă să funcționeze așa cum ar trebui). Ar putea fi doar un instrument avansat cu o singură linie sau un instrument uriaș omnipotent cu o interfață web și API. Criteriul principal aici este că crearea unui instrument nu ar trebui să ia mai mult timp și efort decât cantitatea de timp și efort pe care instrumentul vă va economisi. Dacă petreceți cinci ore scriind un script de care nu veți mai avea nevoie niciodată, pentru o sarcină care v-ar fi luat o oră sau două pentru a o rezolva fără script, aceasta este o optimizare foarte slabă a fluxului de lucru. Puteți petrece cinci ore creând un instrument numai dacă numărul, tipul de sarcini și timpul vă permit, ceea ce nu este adesea cazul.

Automatizarea nu înseamnă neapărat scrierea de scripturi cu drepturi depline. De exemplu, pentru a crea o grămadă de obiecte de același tip dintr-o listă, tot ce ai nevoie este un one-liner inteligent care va face automat ceea ce ai face cu mâna, comutând între ferestre, cu grămezi de copy-paste.

De fapt, dacă construiți procesul de administrare pe acești patru piloni, vă puteți crește rapid eficiența, productivitatea și calificările. Cu toate acestea, această listă trebuie completată cu încă un articol, fără de care lucrul în IT este aproape imposibil - autoeducația.

Auto-educare administrator de sistem

Pentru a fi chiar și puțin competent în acest domeniu, trebuie să studiezi și să înveți constant lucruri noi. Dacă nu ai nici cea mai mică dorință de a înfrunta necunoscutul și de a-l da seama, vei rămâne blocat foarte repede. Tot felul de soluții, tehnologii și metode noi apar constant în IT, iar dacă nu le studiezi măcar superficial, ești pe drumul eșecului. Multe domenii ale tehnologiei informației se află pe o bază foarte complexă și voluminoasă. De exemplu, operarea în rețea. Rețelele și internetul sunt peste tot, le întâlnești în fiecare zi, dar odată ce ai săpat în tehnologia din spatele lor, vei descoperi o disciplină uriașă și foarte complexă, al cărei studiu nu este niciodată o plimbare în parc.

Nu am inclus acest articol în listă deoarece este cheie pentru IT în general, și nu doar pentru administrarea sistemului. Desigur, nu veți putea învăța absolut totul imediat - pur și simplu nu aveți suficient timp fizic. Prin urmare, atunci când vă educați, ar trebui să vă amintiți nivelurile necesare de abstractizare.

Nu trebuie să înveți imediat cum funcționează gestionarea memoriei interne a fiecărui utilitar individual și cum interacționează cu gestionarea memoriei Linux, dar este bine să știi ce RAM este schematic și de ce este necesară. Nu trebuie să știți cât de diferită structural anteturile TCP și UDP, dar ar fi o idee bună să înțelegeți diferențele de bază în modul în care funcționează protocoalele. Nu trebuie să aflați ce este atenuarea semnalului în optică, dar ar fi bine să știți de ce pierderile reale sunt întotdeauna moștenite între noduri. Nu este nimic în neregulă să știi cum funcționează anumite elemente la un anumit nivel de abstractizare și să nu înțelegi neapărat absolut toate nivelurile când nu există nicio abstracție (doar o să înnebunești).

Cu toate acestea, în domeniul dvs., gândirea la nivel de abstractizare „ei bine, acesta este un lucru care vă permite să afișați site-uri web” nu este foarte bine. Următoarele prelegeri vor fi dedicate unei imagini de ansamblu asupra principalelor domenii cu care trebuie să se ocupe un administrator de sistem atunci când lucrează la niveluri inferioare de abstractizare. Voi încerca să limitez cantitatea de cunoștințe revizuite la un nivel minim de abstractizare.

10 porunci ale administrării sistemului

Deci, am învățat cei patru piloni principali și fundația. Putem începe să rezolvăm problemele? Nu încă. Înainte de a face acest lucru, este recomandabil să vă familiarizați cu așa-numitele „bune practici” și regulile bunelor maniere. Fără ele, este posibil să faci mai mult rău decât bine. Deci, să începem:

  1. Unii dintre colegii mei cred că prima regulă este „nu face rău”. Dar sunt înclin să nu fiu de acord. Când încerci să nu faci rău, nu poți face nimic - prea multe acțiuni sunt potențial distructive. Cred că cea mai importantă regulă este... „faceți o copie de rezervă”. Chiar dacă faci ceva daune, poți oricând să te retragi și totul nu va fi atât de rău.

    Ar trebui să faceți întotdeauna backup atunci când timpul și locul vă permit. Trebuie să faceți backup pentru ceea ce veți schimba și ceea ce riscați să pierdeți din cauza unei acțiuni potențial distructive. Este recomandabil să verificați integritatea copiei de rezervă și prezența tuturor datelor necesare. Backup-ul nu trebuie ștears imediat după ce ați verificat totul, cu excepția cazului în care trebuie să eliberați spațiu pe disc. Dacă locația o cere, faceți o copie de rezervă pe serverul dvs. personal și ștergeți-o după o săptămână.

  2. A doua cea mai importantă regulă (pe care eu însumi o încalc adesea) este "nu te ascunde". Dacă ai făcut o copie de rezervă, scrie unde, pentru ca colegii tăi să nu fie nevoiți să-l caute. Dacă ai făcut niște acțiuni neevidente sau complexe, notează-le: vei pleca acasă, iar problema se poate repeta sau poate apărea pentru altcineva, iar soluția ta va fi găsită folosind cuvinte cheie. Chiar dacă faci ceva ce știi bine, colegii tăi s-ar putea să nu.
  3. A treia regulă nu trebuie explicată: „Nu face niciodată ceva ale cărui consecințe nu le cunoașteți, nu vă imaginați sau nu le înțelegeți”. Nu copiați comenzi de pe Internet dacă nu știți ce fac, sunați la om și analizați-le mai întâi. Nu folosi soluții gata făcute dacă nu poți înțelege ce fac. Păstrați execuția codului ofuscat la un minim absolut. Dacă nu ai timp să-ți dai seama, atunci faci ceva greșit și ar trebui să citești următorul punct.
  4. "Test". Noile scripturi, instrumente, linii unice și comenzi ar trebui testate într-un mediu controlat, nu pe computerul client, dacă există chiar și un potențial minim pentru acțiuni distructive. Chiar dacă ai făcut o copie de rezervă a totul (și ai făcut-o), timpul de nefuncționare nu este cel mai tare lucru. Creați un server/virtual/chroot separat pentru aceasta și testați acolo. Este ceva spart? Apoi îl puteți lansa pe „combat”.

    Pentru un administrator de sistem începător: cum să creați ordine din haos

  5. "Control". Minimizați toate operațiunile pe care nu le controlați. O curbă de dependență de pachet poate trage în jos jumătate din sistem, iar steag-ul -y setat pentru yum remove vă oferă posibilitatea de a vă exersa abilitățile de recuperare a sistemului de la zero. Dacă acțiunea nu are alternative necontrolate, următorul punct este o copie de rezervă gata făcută.
  6. "Verifica". Verificați consecințele acțiunilor dvs. și dacă trebuie să reveniți la o copie de rezervă. Verificați dacă problema a fost într-adevăr rezolvată. Verificați dacă eroarea este reprodusă și în ce condiții. Verificați ce puteți rupe cu acțiunile dvs. Este inutil să avem încredere în munca noastră, dar niciodată să verificăm.
  7. "Comunica". Dacă nu puteți rezolva problema, întrebați-vă colegii dacă s-au confruntat cu acest lucru. Dacă vrei să aplici o decizie controversată, află părerea colegilor tăi. Poate că vor oferi o soluție mai bună. Dacă nu ai încredere în acțiunile tale, discută-le cu colegii tăi. Chiar dacă acesta este domeniul tău de expertiză, o nouă privire asupra situației poate clarifica multe. Nu-ți fie rușine de propria ta ignoranță. Este mai bine să pui o întrebare stupidă, să arăți ca un prost și să obții un răspuns, decât să nu pui întrebarea, să nu primești un răspuns și să ajungi să fii prost.
  8. „Nu refuzați ajutorul nerezonabil”. Acest punct este inversul celui precedent. Dacă vi se pune o întrebare stupidă, clarificați și explicați. Ei cer imposibilul - explicați că este imposibil și de ce, oferiți alternative. Dacă nu aveți timp (chiar nu aveți timp, nu dorința) - spuneți că aveți o întrebare urgentă, multă muncă, dar o veți rezolva mai târziu. Dacă colegii nu au sarcini urgente, oferiți-i să îi contactați și să delegeți întrebarea.
  9. „Oferă feedback”. A început unul dintre colegii tăi să folosească o nouă tehnică sau un nou scenariu și te confrunți cu consecințe negative ale acestei decizii? Raportează-l. Poate că problema poate fi rezolvată în trei linii de cod sau cinci minute de rafinare a tehnicii. Ați întâlnit o eroare în software-ul dvs.? Raporteaza o eroare. Dacă este reproductibilă sau nu trebuie reprodusă, cel mai probabil va fi remediată. Exprimați-vă dorințele, sugestiile și criticile constructive și aduceți întrebări pentru discuție dacă vi se par relevante.
  10. „Cereți feedback”. Cu toții suntem imperfecți, la fel ca și deciziile noastre, iar cea mai bună modalitate de a testa corectitudinea deciziei tale este să o aduci în discuție. Dacă ați optimizat ceva pentru un client, cereți-i să monitorizeze activitatea; poate blocajul din sistem nu este locul în care căutați. Ai scris un script de ajutor - arată-l colegilor tăi, poate că vor găsi o modalitate de a-l îmbunătăți.

Dacă aplicați în mod constant aceste practici în munca dvs., majoritatea problemelor vor înceta să mai fie probleme: nu numai că veți reduce la minimum numărul propriilor greșeli și greșeli, dar veți avea și posibilitatea de a corecta greșelile (în formă de copii de rezervă și colegi care vă vor sfătui să faceți backup). Mai departe - doar detalii tehnice, în care, după cum știm, zace diavolul.

Principalele instrumente cu care va trebui să lucrați în mai mult de 50% din timp sunt grep și vim. Ce poate fi mai simplu? Căutare text și editare text. Cu toate acestea, atât grep, cât și vim sunt instrumente multiple puternice care vă permit să căutați și să editați text în mod eficient. Dacă un bloc de note Windows vă permite să scrieți/ștergeți pur și simplu o linie, atunci în vim puteți face aproape orice cu text. Dacă nu mă credeți, apelați comanda vimtutor din terminal și începeți să învățați. În ceea ce privește grep, principala sa putere este în expresiile regulate. Da, instrumentul în sine vă permite să setați condiții de căutare și date de ieșire destul de flexibil, dar fără RegExp acest lucru nu are prea mult sens. Și trebuie să cunoașteți expresiile regulate! Cel puțin la nivel de bază. Pentru început, te-aș sfătui să te uiți la asta video, acoperă elementele de bază ale expresiilor regulate și utilizarea lor împreună cu grep. Da, când le combinați cu vim, obțineți capacitatea ULTIMATE POWER de a face astfel de lucruri cu text, încât trebuie să le etichetați cu peste 18 pictograme.

Din restul de 50%, 40% provin din setul de instrumente coreutils. Pentru coreutils vă puteți uita la lista la wikipedia, iar manualul pentru întreaga listă este pe site GNU. Ceea ce nu este acoperit în acest set este în utilități POSIX. Nu trebuie să înveți toate cheile pe de rost, dar este util să știi cel puțin ce pot face instrumentele de bază. Nu trebuie să reinventezi roata din cârje. Aveam cumva nevoie să înlocuiesc întreruperile de linie cu spații în ieșirea de la o utilitate, iar creierul meu bolnav a dat naștere unei construcții precum sed ':a;N;$!ba;s/n/ /g', a venit un coleg și m-a alungat de la consolă cu o mătură, apoi a rezolvat problema scriind tr 'n' ' '.

Pentru un administrator de sistem începător: cum să creați ordine din haos

Vă sfătuiesc să vă amintiți ce face fiecare unealtă individuală și cheile pentru comenzile cele mai frecvent utilizate; pentru orice altceva există om. Simțiți-vă liber să sunați la om dacă aveți îndoieli. Și asigurați-vă că îl citiți pe bărbatul însuși - conține informații importante despre ceea ce veți găsi.

Cunoscând aceste instrumente, vei putea rezolva eficient o parte semnificativă a problemelor pe care le vei întâlni în practică. În următoarele prelegeri, vom analiza când să folosim aceste instrumente și cadrele pentru serviciile și aplicațiile care stau la baza cărora se aplică.

Administratorul de sistem FirstVDS Kirill Tsvetkov a fost cu tine.

Sursa: www.habr.com

Adauga un comentariu