Za administratora sustava početnika: kako stvoriti red iz kaosa

Za administratora sustava početnika: kako stvoriti red iz kaosa

Ja sam FirstVDS sistem administrator, a ovo je tekst prvog uvodnog predavanja iz mog kratkog tečaja pomoći kolegama početnicima. Stručnjaci koji su se nedavno počeli baviti administracijom sustava suočavaju se s nizom istih problema. Kako bih ponudio rješenja, odlučio sam se napisati ovu seriju predavanja. Neke stvari u njemu su specifične za tehničku podršku hostinga, ali općenito, mogu biti korisne, ako ne svima, onda mnogima. Stoga sam prilagodio tekst predavanja da ga podijelim ovdje.

Nije važno kako se vaša pozicija zove - bitno je da ste zapravo uključeni u administraciju. Stoga, počnimo s onim što bi trebao učiniti administrator sustava. Njegov glavni zadatak je dovesti stvari u red, održavati red i pripremiti se za buduća povećanja reda. Bez administratora sustava, poslužitelj postaje nered. Dnevnici se ne pišu, ili se u njih upisuju krive stvari, resursi nisu optimalno raspoređeni, disk se puni svakakvim smećem i sustav počinje polako umirati od tolikog kaosa. Mirno! Administratori sustava u vašoj osobi počinju rješavati probleme i uklanjati nered!

Stupovi administracije sustava

Međutim, prije nego počnete rješavati probleme, vrijedi se upoznati s četiri glavna stupa administracije:

  1. Dokumentacija
  2. Šabloniranje
  3. Optimizacija
  4. Automatizacija

Ovo je osnova. Ako svoj tijek rada ne izgradite na ovim načelima, on će biti neučinkovit, neproduktivan i općenito će imati malo sličnosti sa stvarnom administracijom. Pogledajmo svaki posebno.

Документация

Документация ne znači čitati dokumentaciju (iako se bez toga ne može), već je i održavati.

Kako čuvati dokumentaciju:

  • Jeste li naišli na novi problem koji nikada prije niste vidjeli? Zapišite glavne simptome, metode dijagnoze i principe uklanjanja.
  • Jeste li smislili novo, elegantno rješenje za uobičajeni problem? Zapišite ga kako ga ne biste morali ponovno izmišljati za mjesec dana.
  • Jesu li vam pomogli da shvatite pitanje koje niste razumjeli? Zapišite glavne točke i koncepte, nacrtajte dijagram za sebe.

Glavna ideja: ne biste trebali potpuno vjerovati vlastitom pamćenju kada svladavate i primjenjujete nove stvari.

U kojem ćete formatu to učiniti ovisi o vama: to može biti sustav s bilješkama, osobni blog, tekstualna datoteka, fizička bilježnica. Glavno je da vaši zapisi ispunjavaju sljedeće zahtjeve:

  1. Nemoj biti predugo. Istaknite glavne ideje, metode i alate. Ako razumijevanje problema zahtijeva poniranje u mehaniku dodjele memorije niske razine u Linuxu, nemojte prepisivati ​​članak iz kojeg ste to naučili - dajte poveznicu na njega.
  2. Unosi bi vam trebali biti jasni. Ako linija race cond.lockup ne dopušta vam da odmah shvatite što ste opisali ovim retkom – objasnite. Za razumijevanje dobre dokumentacije nije potrebno pola sata.
  3. Pretraživanje je vrlo dobra značajka. Ako pišete postove na blogu, dodajte oznake; ako je u fizičkoj bilježnici, zalijepite male samoljepilice s opisima. Dokumentacija nema puno smisla ako u njoj tražite odgovor koliko biste potrošili rješavajući pitanje od nule.

Za administratora sustava početnika: kako stvoriti red iz kaosa

Ovako može izgledati dokumentacija: od primitivnih bilješki u bilježnici (slika gore), do potpune višekorisničke baze znanja s oznakama, pretraživanjem i svim mogućim pogodnostima (ispod).

Za administratora sustava početnika: kako stvoriti red iz kaosa

Ne samo da nećete morati dvaput tražiti iste odgovore, već će vam dokumentiranje biti od velike pomoći u učenju novih tema (bilješke!), poboljšat će vaš osjećaj za pauk (sposobnost dijagnosticiranja složenog problema jednim površnim pogledom), i dodati će organizaciju vašim radnjama. Ako je dokumentacija dostupna vašim kolegama, omogućit će im da dokuče što ste i kako tamo gomilali kada vas nema.

Šabloniranje

Šabloniranje je izrada i korištenje šablona. Da biste riješili većinu uobičajenih problema, vrijedi izraditi određeni akcijski predložak. Za dijagnosticiranje većine problema trebao bi se koristiti standardizirani niz koraka. Kada ste nešto popravili/instalirali/optimizirali, izvedbu toga treba provjeriti pomoću standardiziranih popisa za provjeru.

Izrada predložaka najbolji je način za organiziranje tijeka rada. Koristeći standardne postupke za rješavanje najčešćih problema, dobivate puno cool stvari. Na primjer, korištenje kontrolnih popisa omogućit će vam dijagnosticiranje svih funkcija koje su važne za vaš rad i odbacivanje dijagnoze nevažnih funkcija. A standardizirani postupci smanjit će nepotrebno bacanje i vjerojatnost pogreške.

Prva važna točka je da procedure i popisi također moraju biti dokumentirani. Ako se oslanjate samo na pamćenje, možete propustiti neku stvarno važnu provjeru ili radnju i sve pokvariti. Druga važna točka je da se sve prakse predložaka mogu i trebaju mijenjati ako situacija to zahtijeva. Ne postoje idealni i apsolutno univerzalni šabloni. Ako postoji problem, ali ga provjera predloška nije otkrila, to ne znači da problema nema. Međutim, prije nego počnete testirati neke malo vjerojatne hipotetske probleme, uvijek je vrijedno napraviti brzi test predloška.

Optimizacija

Optimizacija govori sama za sebe. Radni proces potrebno je što više optimizirati u pogledu vremena i troškova rada. Postoji bezbroj opcija: naučite tipkovničke prečace, kratice, regularne izraze, dostupne alate. Potražite praktičniju upotrebu ovih alata. Ako pozivate naredbu 100 puta dnevno, dodijelite je tipkovničkom prečacu. Ako se trebate redovito povezivati ​​na iste poslužitelje, jednom riječju napišite alias koji će vas tamo povezati:

Za administratora sustava početnika: kako stvoriti red iz kaosa

Upoznajte se s različitim dostupnim opcijama za alate - možda postoji praktičniji terminalski klijent, DE, upravitelj međuspremnika, preglednik, klijent e-pošte, operativni sustav. Saznajte koje alate koriste vaši kolege i prijatelji – možda ih biraju s razlogom. Kada imate alate, naučite ih koristiti: naučite ključeve, kratice, savjete i trikove.

Optimalno koristite standardne alate - coreutils, vim, regular expressions, bash. Za posljednja tri postoji ogroman broj prekrasnih priručnika i dokumentacije. Uz njihovu pomoć, možete brzo prijeći iz stanja "Osjećam se kao majmun koji drobi orahe uz pomoć laptopa" u "Ja sam majmun koji koristi laptop da bi sebi naručio kreker za orahe".

Automatizacija

Automatizacija prenijet će teške operacije iz naših umornih ruku u neumorne ruke automatizacije. Ako se neka standardna procedura izvodi u pet naredbi istog tipa, zašto onda ne omotati sve te naredbe u jednu datoteku i pozvati jednu naredbu koja preuzima i izvršava ovu datoteku?

Sama automatizacija je 80% pisanja i optimiziranja vlastitih alata (i još 20% pokušaja da ih natjerate da rade kako treba). To može biti samo napredni jednoliner ili ogroman svemoćni alat s web sučeljem i API-jem. Glavni kriterij ovdje je da stvaranje alata ne bi trebalo uzeti više vremena i truda od količine vremena i truda koje će vam alat uštedjeti. Ako provedete pet sati pišući skriptu koja vam više nikada neće trebati, za zadatak za koji bi vam trebalo sat ili dva da ga riješite bez skripte, ovo je vrlo loša optimizacija tijeka rada. Možete potrošiti pet sati na izradu alata samo ako vam to broj, vrsta zadataka i vrijeme dopuštaju, što nije čest slučaj.

Automatizacija ne znači nužno pisanje potpunih skripti. Na primjer, da biste stvorili hrpu objekata iste vrste s popisa, sve što vam treba je pametan jednoliner koji će automatski raditi ono što biste radili ručno, prebacivanje između prozora, s hrpom copy-paste.

Zapravo, ako administrativni proces izgradite na ova četiri stupa, možete brzo povećati svoju učinkovitost, produktivnost i kvalifikacije. No, ovaj popis treba nadopuniti još jednom stavkom bez koje je rad u IT-u gotovo nemoguć - samoobrazovanjem.

Samoobrazovanje administratora sustava

Da biste bili barem malo kompetentni u ovom području, morate stalno učiti i učiti nove stvari. Ako nemate ni najmanju želju suočiti se s nepoznatim i shvatiti to, vrlo brzo ćete zapeti. U IT-u se neprestano pojavljuju svakakva nova rješenja, tehnologije i metode, a ako ih barem površno ne proučite, na putu ste neuspjeha. Mnoga područja informacijske tehnologije stoje na vrlo složenoj i opsežnoj osnovi. Na primjer, mrežni rad. Mreže i internet su posvuda, s njima se susrećete svaki dan, ali jednom kad proniknete u tehnologiju koja stoji iza njih, otkrit ćete ogromnu i vrlo složenu disciplinu čije proučavanje nikad nije šetnja po parku.

Ovu stavku nisam uvrstio u popis jer je ključna za IT općenito, a ne samo za administraciju sustava. Naravno, nećete moći odmah naučiti apsolutno sve - jednostavno fizički nemate dovoljno vremena. Stoga, kada se obrazujete, trebali biste zapamtiti potrebne razine apstrakcije.

Ne morate odmah naučiti kako funkcionira unutarnje upravljanje memorijom svakog pojedinog uslužnog programa i kako je u interakciji s Linux upravljanjem memorijom, ali dobro je znati što je RAM shematski i zašto je potreban. Ne morate znati kako se TCP i UDP zaglavlja strukturno razlikuju, ali bilo bi dobro razumjeti osnovne razlike u načinu rada protokola. Ne morate naučiti što je slabljenje signala u optici, ali bilo bi lijepo znati zašto se pravi gubici uvijek nasljeđuju među čvorovima. Nema ničeg lošeg u tome da znate kako određeni elementi funkcioniraju na određenoj razini apstrakcije, a da ne morate nužno razumjeti apsolutno sve razine kada apstrakcije uopće nema (samo ćete poludjeti).

Međutim, u vašem području razmišljanje na razini apstrakcije "pa, ovo je stvar koja vam omogućuje prikazivanje web stranica" nije baš dobro. Sljedeća predavanja bit će posvećena pregledu glavnih područja s kojima se administrator sustava mora baviti kada radi na nižim razinama apstrakcije. Pokušat ću ograničiti količinu pregledanog znanja na minimalnu razinu apstrakcije.

10 zapovijedi administracije sustava

Dakle, naučili smo četiri glavna stupa i temelje. Možemo li početi rješavati probleme? Ne još. Prije nego što to učinite, preporučljivo je upoznati se s takozvanim "najboljim praksama" i pravilima lijepog ponašanja. Bez njih ćete vjerojatno napraviti više štete nego koristi. Dakle, počnimo:

  1. Neki od mojih kolega vjeruju da je prvo pravilo "ne naškoditi". Ali sklon sam ne složiti se. Kada pokušavate ne naštetiti, ne možete učiniti ništa - previše radnji je potencijalno destruktivno. Mislim da je najvažnije pravilo - "napravi sigurnosnu kopiju". Čak i ako napravite neku štetu, uvijek se možete vratiti i sve neće biti tako loše.

    Uvijek biste trebali napraviti sigurnosnu kopiju kada to vrijeme i mjesto dopuštaju. Morate napraviti sigurnosnu kopiju onoga što ćete promijeniti i što riskirate izgubiti zbog potencijalno destruktivne akcije. Preporučljivo je provjeriti cjelovitost sigurnosne kopije i prisutnost svih potrebnih podataka. Sigurnosna kopija se ne smije brisati odmah nakon što ste sve provjerili, osim ako ne morate osloboditi prostor na disku. Ako lokacija to zahtijeva, napravite sigurnosnu kopiju na svom osobnom poslužitelju i izbrišite je nakon tjedan dana.

  2. Drugo najvažnije pravilo (koje i sam često kršim) je "nemoj se skrivati". Ako ste napravili backup, napišite gdje, da ga kolege ne moraju tražiti. Ako ste poduzeli neke neočite ili složene radnje, zapišite to: otići ćete kući, a problem se može ponoviti ili pojaviti za nekog drugog, a vaše rješenje će se pronaći pomoću ključnih riječi. Čak i ako radite nešto što dobro znate, vaši kolege možda neće.
  3. Treće pravilo ne treba posebno objašnjavati: “Nikada ne činite nešto čije posljedice ne znate, ne zamišljate ili ne razumijete”. Ne kopirajte naredbe s interneta ako ne znate što rade, nazovite čovjeka i prvo ih analizirajte. Nemojte koristiti gotova rješenja ako ne možete razumjeti čemu služe. Izvršenje maskiranog koda svedite na apsolutni minimum. Ako nemate vremena to shvatiti, onda radite nešto krivo i trebali biste pročitati sljedeću točku.
  4. "Test". Nove skripte, alate, one-linere i naredbe treba testirati u kontroliranom okruženju, a ne na klijentskom stroju, ako postoji čak i minimalan potencijal za destruktivne radnje. Čak i ako ste napravili sigurnosnu kopiju svega (a jeste), prekid rada nije najbolja stvar. Napravite zaseban poslužitelj/virtualni/chroot za ovo i testirajte tamo. Je li nešto pokvareno? Zatim ga možete pokrenuti na "borbu".

    Za administratora sustava početnika: kako stvoriti red iz kaosa

  5. "Kontrolirati". Minimizirajte sve operacije koje ne kontrolirate. Jedna krivulja ovisnosti o paketu može povući prema dolje pola sustava, a zastavica -y postavljena za yum remove daje vam priliku vježbati svoje vještine oporavka sustava od nule. Ako radnja nema nekontrolirane alternative, sljedeća točka je gotova sigurnosna kopija.
  6. "Ček". Provjerite posljedice svojih radnji i trebate li se vratiti na sigurnosnu kopiju. Provjerite je li problem doista riješen. Provjerite ponavlja li se greška i pod kojim uvjetima. Provjerite što svojim postupcima možete pokvariti. Nepotrebno je vjerovati našem radu, ali nikako provjeravati.
  7. "Komunicirati". Ako ne možete riješiti problem, pitajte svoje kolege jesu li se susreli s ovim. Ako želite primijeniti kontroverznu odluku, saznajte mišljenje svojih kolega. Možda će oni ponuditi bolje rješenje. Ako niste sigurni u svoje postupke, raspravite ih s kolegama. Čak i ako je ovo vaše područje stručnosti, novi pogled na situaciju može razjasniti mnogo toga. Nemojte se sramiti vlastitog neznanja. Bolje je postaviti glupo pitanje, izgledati kao budala i dobiti odgovor, nego ne postaviti pitanje, ne dobiti odgovor i na kraju ispasti budala.
  8. “Nemojte bezrazložno odbijati pomoć”. Ova točka je obrnuta od prethodne. Ako vam se postavi glupo pitanje, pojasnite i objasnite. Traže nemoguće – objasnite da je nemoguće i zašto, ponudite alternative. Ako nemate vremena (stvarno nemate vremena, a ne želje) - recite da imate hitno pitanje, puno posla, ali to ćete riješiti kasnije. Ako kolege nemaju hitnih zadataka, ponudite im se javiti i delegirati pitanje.
  9. "Dati povratnu informaciju". Je li netko od vaših kolega počeo koristiti novu tehniku ​​ili novu skriptu i susrećete li se s negativnim posljedicama te odluke? Prijavi to. Možda se problem može riješiti u tri retka koda ili pet minuta usavršavanja tehnike. Jeste li naišli na grešku u svom softveru? Prijavi grešku. Ako se može reproducirati ili se ne treba reproducirati, najvjerojatnije će biti popravljeno. Izrazite svoje želje, prijedloge i konstruktivne kritike te iznesite pitanja za raspravu ako se čine relevantnima.
  10. "Traži povratne informacije". Svi smo mi nesavršeni, kao i naše odluke, a najbolji način da provjerite ispravnost svoje odluke je da je iznesete na raspravu. Ako ste nešto optimizirali za klijenta, zamolite ga da prati rad, možda usko grlo u sustavu nije tamo gdje ste tražili. Napisali ste skriptu za pomoć - pokažite je svojim kolegama, možda će pronaći način da je poboljšaju.

Budete li stalno primjenjivali ove prakse u svom radu, većina problema će prestati biti problemi: ne samo da ćete smanjiti broj vlastitih pogrešaka i krivotvorenja na minimum, nego ćete također imati priliku ispravljati pogreške (u oblik backupa i kolege koji će vas savjetovati za backup). Dalje - samo tehnički detalji, u kojima, kao što znamo, leži vrag.

Glavni alati s kojima ćete morati raditi više od 50% vremena su grep i vim. Što može biti jednostavnije? Pretraživanje teksta i uređivanje teksta. Međutim, i grep i vim moćni su multi-alati koji vam omogućuju učinkovito pretraživanje i uređivanje teksta. Ako vam neki Windows notepad omogućuje jednostavno pisanje/brisanje retka, onda u vimu možete učiniti gotovo sve s tekstom. Ako mi ne vjerujete, pozovite naredbu vimtutor s terminala i počnite učiti. Što se tiče grepa, njegova glavna snaga je u regularnim izrazima. Da, sam alat vam omogućuje prilično fleksibilno postavljanje uvjeta pretraživanja i izlaznih podataka, ali bez RegExpa to nema previše smisla. I morate znati regularne izraze! Barem na osnovnoj razini. Za početak, savjetovao bih vam da pogledate ovo video, pokriva osnove regularnih izraza i njihovu upotrebu u kombinaciji s grep. O da, kada ih kombinirate s vimom, dobivate VRHUNSKU SNAGU da radite stvari s tekstom koji morate označiti ikonama 18+.

Od preostalih 50%, 40% dolazi iz alata coreutils. Za coreutilse možete pogledati popis na Wikipedia, a priručnik za cijeli popis nalazi se na web stranici GNU. Ono što nije obuhvaćeno ovim skupom su pomoćni programi POSIX. Ne morate naučiti sve tipke napamet, ali je korisno barem otprilike znati što osnovni alati mogu. Ne morate iznova izmišljati kotač iz štaka. Nekako sam trebao zamijeniti prijelome reda razmacima u izlazu iz nekog uslužnog programa, a moj je bolesni mozak iznjedrio konstrukciju poput sed ':a;N;$!ba;s/n/ /g', naišao je kolega i metlom me otjerao od konzole, a onda riješio problem napisavši tr 'n' ' '.

Za administratora sustava početnika: kako stvoriti red iz kaosa

Savjetovao bih vam da zapamtite što radi svaki pojedini alat i tipke za najčešće korištene naredbe, za sve ostalo tu je čovjek. Slobodno nazovi čovjeka ako imaš bilo kakvih nedoumica. I svakako pročitajte samog čovjeka - sadrži važne informacije o tome što ćete pronaći.

Poznavajući ove alate, moći ćete učinkovito riješiti značajan dio problema s kojima ćete se susresti u praksi. U sljedećim predavanjima pogledat ćemo kada koristiti ove alate i okvire za temeljne usluge i aplikacije na koje se primjenjuju.

Prvi administrator VDS sustava Kirill Tsvetkov bio je s vama.

Izvor: www.habr.com

Dodajte komentar