Por komencanta sistemadministranto: kiel krei ordon el kaoso

Por komencanta sistemadministranto: kiel krei ordon el kaoso

Mi estas sistemadministranto de FirstVDS, kaj jen la teksto de la unua enkonduka prelego de mia mallonga kurso pri helpado de komencaj kolegoj. Specialistoj, kiuj lastatempe komencis okupiĝi pri sistema administrado, alfrontas kelkajn samajn problemojn. Por proponi solvojn, mi entreprenis verki ĉi tiun serion da prelegoj. Iuj aferoj en ĝi estas specifa por gastigado de teknika subteno, sed ĝenerale, ili povas esti utilaj, se ne por ĉiuj, tiam por multaj. Do mi adaptis la prelegtekston por dividi ĉi tie.

Ne gravas, kiel nomiĝas via pozicio - gravas, ke vi fakte okupiĝas pri administrado. Tial ni komencu per tio, kion sistema administranto devus fari. Ĝia ĉefa tasko estas ordigi aferojn, konservi ordon kaj prepari por estontaj pliiĝoj en ordo. Sen sistema administranto, la servilo fariĝas malordo. Protokoloj ne estas skribitaj, aŭ la malĝustaj aferoj estas skribitaj en ili, rimedoj ne estas distribuitaj optimume, la disko estas plenigita per ĉiaj rubaĵoj kaj la sistemo komencas malrapide morti pro tiom da kaoso. Trankvile! Sistemadministrantoj en via persono komencas solvi problemojn kaj forigi la ĥaoson!

Kolonoj de Sistemadministrado

Tamen, antaŭ ol vi komencas solvi problemojn, indas konatiĝi kun la kvar ĉefaj kolonoj de administrado:

  1. Dokumentado
  2. Ŝablono
  3. Optimumigo
  4. Aŭtomatigo

Ĉi tio estas la bazaĵoj. Se vi ne konstruas vian laborfluon laŭ ĉi tiuj principoj, ĝi estos neefika, neproduktema kaj ĝenerale malmulte similecos al reala administrado. Ni rigardu ĉiun aparte.

Dokumentado

Dokumentado ne signifas legi dokumentadon (kvankam oni ne povas malhavi ĝin), sed ankaŭ konservi ĝin.

Kiel konservi dokumentadon:

  • Ĉu vi renkontis novan problemon, kiun vi neniam antaŭe vidis? Skribu la ĉefajn simptomojn, metodojn de diagnozo kaj principojn de elimino.
  • Ĉu vi elpensis novan, elegantan solvon al komuna problemo? Skribu ĝin por ke vi ne devu reinventi ĝin post monato.
  • Ĉu ili helpis vin eltrovi demandon, kiun vi ne komprenis? Skribu la ĉefajn punktojn kaj konceptojn, desegnu diagramon por vi mem.

La ĉefa ideo: vi ne tute fidi vian propran memoron kiam vi regas kaj aplikas novajn aferojn.

En kia formato vi faros tion dependas de vi: ĝi povus esti sistemo kun notoj, persona blogo, tekstdosiero, fizika notbloko. La ĉefa afero estas, ke viaj rekordoj plenumas la jenajn postulojn:

  1. Ne estu tro longa. Emfazu la ĉefajn ideojn, metodojn kaj ilojn. Se kompreni problemon postulas plonĝi en la malaltnivelan mekanikon de memor-atribuo en Linukso, ne reverku la artikolon de kiu vi lernis ĝin - donu ligilon al ĝi.
  2. La enskriboj devus esti klaraj al vi. Se la linio race cond.lockup ne permesas al vi tuj kompreni tion, kion vi priskribis per ĉi tiu linio - klarigu. Bona dokumentado ne bezonas duonhoron por kompreni.
  3. Serĉo estas tre bona funkcio. Se vi skribas blogajn afiŝojn, aldonu etikedojn; se en fizika kajero, algluu malgrandajn afiŝojn kun priskriboj. Estas malmulte da signifo en dokumentado se vi pasigas tiom da tempo serĉante respondon en ĝi, kiom vi elspezus solvante la demandon de nulo.

Por komencanta sistemadministranto: kiel krei ordon el kaoso

Jen kia dokumentado povas aspekti: de primitivaj notoj en notbloko (bildo supre), ĝis plenrajta pluruza sciobazo kun etikedoj, serĉo kaj ĉiuj eblaj oportunoj (malsupre).

Por komencanta sistemadministranto: kiel krei ordon el kaoso

Ne nur vi ne devos serĉi la samajn respondojn dufoje, sed dokumentado estos granda helpo por lerni novajn temojn (notoj!), plibonigos vian araneo-senton (la kapablo diagnozi kompleksan problemon per unu supraĵa rigardo), kaj aldonos organizon al viaj agoj. Se la dokumentaro estas havebla al viaj kolegoj, ĝi permesos al ili eltrovi kion kaj kiel vi amasigis tie kiam vi ne estas tie.

Ŝablono

Ŝablono estas la kreado kaj uzo de ŝablonoj. Por solvi plej tipajn problemojn, indas krei specifan agadŝablonon. Normigita sekvenco de paŝoj devus esti uzata por diagnozi la plej multajn problemojn. Kiam vi riparis/instalis/optimumigis ion, la agado de ĉi tiu io devus esti kontrolita uzante normigitajn kontrollistojn.

Ŝablono estas la plej bona maniero organizi vian laborfluon. Uzante normajn procedurojn por solvi la plej oftajn problemojn, vi ricevas multajn bonegajn aferojn. Ekzemple, uzi kontrollistojn permesos al vi diagnozi ĉiujn funkciojn, kiuj estas gravaj por via laboro kaj forĵeti la diagnozon de negrava funkcieco. Kaj normigitaj proceduroj minimumigos nenecesan ĵeton kaj reduktos la probablecon de eraro.

La unua grava punkto estas, ke proceduroj kaj kontrollistoj ankaŭ devas esti dokumentitaj. Se vi nur fidas je memoro, vi povas maltrafi iun vere gravan kontrolon aŭ operacion kaj ruinigi ĉion. La dua grava punkto estas, ke ĉiuj ŝablonaj praktikoj povas kaj devas esti modifitaj se la situacio postulas tion. Ne ekzistas idealaj kaj absolute universalaj ŝablonoj. Se estas problemo, sed ŝablonkontrolo ne malkaŝis ĝin, tio ne signifas, ke ne ekzistas problemo. Tamen, antaŭ ol vi komencas testi iujn neverŝajnajn hipotezajn problemojn, ĉiam indas unue fari rapidan ŝablonteston.

Optimumigo

Optimumigo parolas por si mem. La laborprocezo devas esti optimumigita kiel eble plej multe laŭ tempo kaj laborkostoj. Estas sennombraj ebloj: lerni klavarajn ŝparvojojn, mallongigojn, regulajn esprimojn, disponeblajn ilojn. Serĉu pli praktikajn uzojn de ĉi tiuj iloj. Se vi vokas komandon 100 fojojn tage, asignu ĝin al klavaro ŝparvojo. Se vi bezonas regule konektiĝi al la samaj serviloj, skribu kaŝnomon en unu vorto, kiu konektos vin tie:

Por komencanta sistemadministranto: kiel krei ordon el kaoso

Familiariĝu kun la malsamaj ebloj disponeblaj por iloj - eble ekzistas pli oportuna terminala kliento, DE, tondujo-administranto, retumilo, retpoŝta kliento, operaciumo. Eltrovu kiajn ilojn uzas viaj kolegoj kaj amikoj - eble ili elektas ilin ial. Post kiam vi havas la ilojn, lernu kiel uzi ilin: lernu la ŝlosilojn, mallongigojn, konsiletojn kaj lertaĵojn.

Optimume uzu normajn ilojn - coreutils, vim, regulaj esprimoj, bash. Por la lastaj tri estas grandega nombro da mirindaj manlibroj kaj dokumentaro. Kun ilia helpo, vi povas rapide iri de la stato de "Mi sentas min kiel simio, kiu krevas nuksojn per tekokomputilo" al "Mi estas simio, kiu uzas tekkomputilon por mendi al mi nukskvilon."

Aŭtomatigo

Aŭtomatigo transdonos malfacilajn operaciojn de niaj lacaj manoj al la senlacaj manoj de aŭtomatigo. Se iu norma proceduro estas farita en kvin komandoj de la sama tipo, kial ne envolvi ĉiujn ĉi tiujn komandojn en unu dosieron kaj voki unu komandon kiu elŝutas kaj ekzekutas ĉi tiun dosieron?

Aŭtomatigo mem 80% skribas kaj optimumigas viajn proprajn ilojn (kaj alia 20% provas igi ilin funkcii kiel ili devus). Ĝi povus esti nur progresinta unu-linio aŭ grandega ĉiopova ilo kun interreta interfaco kaj API. La ĉefa kriterio ĉi tie estas, ke krei ilon ne bezonas pli da tempo kaj penado ol la kvanto da tempo kaj peno, ke la ilo savos vin. Se vi pasigas kvin horojn skribante skripton, kiun vi neniam bezonos denove, por tasko, kiu prenus vin unu aŭ du horojn por solvi sen la skripto, ĉi tio estas tre malbona laborflua optimumigo. Vi povas pasigi kvin horojn kreante ilon nur se la nombro, speco de taskoj kaj tempo permesas ĝin, kio ne ofte okazas.

Aŭtomatigo ne nepre signifas verki plenrajtajn skriptojn. Ekzemple, por krei amason da objektoj de la sama tipo el listo, vi bezonas nur lertan unu-linion, kiu aŭtomate faros tion, kion vi farus mane, ŝanĝante inter fenestroj, kun amasoj da kopi-gluo.

Efektive, se vi konstruas la administran procezon sur ĉi tiuj kvar kolonoj, vi povas rapide pliigi vian efikecon, produktivecon kaj kvalifikojn. Tamen, ĉi tiu listo devas esti kompletigita per unu plia ero, sen kiu labori en IT estas preskaŭ neeble - memedukado.

Sistemadministranto memedukado

Por esti eĉ iom kompetenta en ĉi tiu areo, vi devas konstante studi kaj lerni novajn aferojn. Se vi ne havas la plej etan deziron alfronti la nekonatan kaj eltrovi ĝin, vi blokiĝos tre rapide. Ĉiaj novaj solvoj, teknologioj kaj metodoj konstante aperas en IT, kaj se vi ne studas ilin almenaŭ supraĵe, vi estas sur la vojo al fiasko. Multaj areoj de informa teknologio staras sur tre kompleksa kaj volumena bazo. Ekzemple, retfunkciado. Retoj kaj Interreto estas ĉie, vi renkontas ilin ĉiutage, sed post kiam vi enfosas la teknologion malantaŭ ili, vi malkovros grandegan kaj tre kompleksan disciplinon, kies studo neniam estas promenado en la parko.

Mi ne enmetis ĉi tiun eron en la liston ĉar ĝi estas ŝlosilo por IT ĝenerale, kaj ne nur por sistema administrado. Nature, vi ne povos lerni absolute ĉion tuj—vi simple fizike ne havas sufiĉe da tempo. Tial, kiam vi edukas vin, vi devus memori la necesajn nivelojn de abstraktado.

Vi ne devas tuj lerni kiel la interna memoradministrado de ĉiu individua utileco funkcias, kaj kiel ĝi interagas kun Linukso memoradministrado, sed estas bone scii kio RAM estas skeme kaj kial ĝi estas bezonata. Vi ne bezonas scii kiel TCP kaj UDP-kapoj estas strukture malsamaj, sed estus bona ideo kompreni la bazajn diferencojn en kiel la protokoloj funkcias. Vi ne bezonas lerni kio signala mildigo estas en optiko, sed estus bone scii kial realaj perdoj ĉiam estas hereditaj trans nodoj. Estas nenio malbona scii kiel certaj elementoj funkcias je certa nivelo de abstraktado kaj ne nepre kompreni absolute ĉiujn nivelojn kiam tute ne ekzistas abstraktado (vi simple freneziĝos).

Tamen, en via kampo, pensi je la nivelo de abstraktado "nu, ĉi tio estas afero, kiu permesas vin montri retejojn" ne estas tre bona. La sekvaj prelegoj estos dediĉitaj al superrigardo de la ĉefaj areoj, kiujn sistema administranto devas trakti kiam laboras ĉe pli malaltaj niveloj de abstraktado. Mi provos limigi la kvanton de scio reviziita al minimuma nivelo de abstraktado.

10 Ordonoj de Sistemadministrado

Do, ni lernis la kvar ĉefajn kolonojn kaj fundamenton. Ĉu ni povas komenci solvi problemojn? Ankoraŭ ne. Antaŭ fari tion, estas konsilinde konatiĝi kun la tiel nomataj "plej bonaj praktikoj" kaj reguloj de bonkonduto. Sen ili, vi verŝajne faros pli da malbono ol bono. Do, ni komencu:

  1. Iuj el miaj kolegoj opinias, ke la unua regulo estas "ne damaĝi". Sed mi emas malkonsenti. Kiam vi provas ne damaĝi, vi povas nenion fari - tro da agoj estas eble detruaj. Mi pensas, ke la plej grava regulo estas - "faru sekurkopion". Eĉ se vi faras iom da damaĝo, vi ĉiam povas retroiri kaj ĉio ne estos tiel malbona.

    Vi ĉiam devas sekurkopii kiam tempo kaj loko permesas ĝin. Vi devas sekurkopii kion vi ŝanĝos kaj kion vi riskas perdi pro potenciale detrua ago. Estas konsilinde kontroli la sekurkopion por integreco kaj la ĉeesto de ĉiuj necesaj datumoj. La sekurkopio ne devas esti forigita tuj post kiam vi kontrolis ĉion, krom se vi bezonas liberigi diskon. Se la loko postulas ĝin, sekurigu ĝin al via persona servilo kaj forigu ĝin post semajno.

  2. La dua plej grava regulo (kiun mi mem ofte rompas) estas "ne kaŝu". Se vi faris sekurkopion, skribu kie, por ke viaj kolegoj ne devu serĉi ĝin. Se vi faris kelkajn neevidentajn aŭ kompleksajn agojn, skribu ĝin: vi iros hejmen, kaj la problemo eble ripetiĝos aŭ aperos por iu alia, kaj via solvo estos trovita per ŝlosilvortoj. Eĉ se vi faras ion, kion vi bone scias, viaj kolegoj eble ne.
  3. La tria regulo ne bezonas esti klarigita: "Neniam faru ion, kies sekvojn vi ne scias, imagas aŭ komprenas". Ne kopiu komandojn de la Interreto se vi ne scias kion ili faras, voku homon kaj analizu ilin unue. Ne uzu pretajn solvojn se vi ne povas kompreni kion ili faras. Tenu la ekzekuton de malklarigita kodo al absoluta minimumo. Se vi ne havas tempon por eltrovi ĝin, tiam vi faras ion malbonan kaj vi devus legi la sekvan punkton.
  4. "Testo". Novaj skriptoj, iloj, unu-linioj kaj komandoj devus esti provitaj en kontrolita medio, ne sur la klienta maŝino, se ekzistas eĉ minimuma potencialo por detruaj agoj. Eĉ se vi subtenis ĉion (kaj vi faris), malfunkcio ne estas la plej bonega afero. Kreu apartan servilon/virtuala/chroot por ĉi tio kaj provu tie. Ĉu io estas rompita? Tiam vi povas lanĉi ĝin sur "batalo".

    Por komencanta sistemadministranto: kiel krei ordon el kaoso

  5. "Kontrolo". Minimumu ĉiujn operaciojn, kiujn vi ne regas. Unu paka dependeckurbo povas treni malsupren duonon de la sistemo, kaj la flago -y agordita por yum remove donas al vi la ŝancon praktiki viajn sistemajn reakirajn kapablojn de nulo. Se la ago ne havas nekontrolitajn alternativojn, la sekva punkto estas preta sekurkopio.
  6. "Kontrolu". Kontrolu la konsekvencojn de viaj agoj kaj ĉu vi devas reveni al sekurkopio. Kontrolu ĉu la problemo vere estis solvita. Kontrolu ĉu la eraro estas reproduktita kaj sub kiaj kondiĉoj. Kontrolu, kion vi povas rompi per viaj agoj. Ne necesas fidi nian laboron, sed neniam kontroli.
  7. "Komuniki". Se vi ne povas solvi la problemon, demandu viajn kolegojn ĉu ili renkontis ĉi tion. Se vi volas apliki polemikan decidon, eksciu la opinion de viaj kolegoj. Eble ili proponos pli bonan solvon. Se vi ne fidas pri viaj agoj, diskutu ilin kun viaj kolegoj. Eĉ se ĉi tio estas via kompetenteco, freŝa rigardo al la situacio povas klarigi multon. Ne hontu pri via propra nescio. Pli bone estas demandi stultan demandon, aspekti kiel malsaĝulo kaj ricevi respondon, ol ne demandi la demandon, ne ricevi respondon kaj fini esti malsaĝulo.
  8. "Ne rifuzu helpon senracie". Ĉi tiu punkto estas la inverso de la antaŭa. Se oni demandas al vi stultan demandon, klarigu kaj klarigu. Ili petas la neeblan - klarigu, ke ĝi estas neebla kaj kial, proponu alternativojn. Se vi ne havas tempon (vi vere ne havas la tempon, ne la deziron) - diru, ke vi havas urĝan demandon, multe da laboro, sed vi ordigos ĝin poste. Se kolegoj ne havas urĝajn taskojn, proponu kontakti ilin kaj delegi la demandon.
  9. "Donu komentojn". Ĉu iu el viaj kolegoj komencis uzi novan teknikon aŭ novan skripton, kaj ĉu vi renkontas negativajn sekvojn de ĉi tiu decido? Raportu ĝin. Eble la problemo povas esti solvita en tri linioj de kodo aŭ kvin minutoj de rafinado de la tekniko. Ĉu vi trovis cimon en via programaro? Raportu cimon. Se ĝi estas reproduktebla aŭ ne bezonas esti reproduktita, ĝi plej verŝajne estos riparita. Esprimu viajn dezirojn, sugestojn kaj konstruan kritikon, kaj alportu demandojn por diskuto se ili ŝajnas trafaj.
  10. "Petu reagojn". Ni ĉiuj estas neperfektaj, same kiel niaj decidoj, kaj la plej bona maniero testi la ĝustecon de via decido estas alporti ĝin por diskuto. Se vi optimumigis ion por kliento, petu ilin kontroli la laboron; eble la botelkolo en la sistemo ne estas kie vi serĉis. Vi skribis helpan skripton - montru ĝin al viaj kolegoj, eble ili trovos manieron plibonigi ĝin.

Se vi konstante aplikas ĉi tiujn praktikojn en via laboro, la plej multaj el la problemoj ĉesos esti problemoj: vi ne nur reduktos la nombron de viaj propraj eraroj kaj eraroj al minimumo, sed vi ankaŭ havos la ŝancon korekti erarojn (en la formo de sekurkopioj kaj kolegoj, kiuj konsilos vin fari sekurkopiojn). Plue — nur teknikaj detaloj, en kiuj, kiel ni scias, kuŝas la diablo.

La ĉefaj iloj kun kiuj vi devos labori pli ol 50% de la tempo estas grep kaj vim. Kio povus esti pli simpla? Tekstoserĉo kaj tekstoredaktado. Tamen, kaj grep kaj vim estas potencaj pluriloj, kiuj permesas vin serĉi kaj redakti tekston efike. Se iu Vindoza notbloko permesas vin simple skribi/forviŝi linion, tiam en vim vi povas fari preskaŭ ĉion per teksto. Se vi ne kredas min, voku la komandon vimtutor de la terminalo kaj komencu lerni. Koncerne grep, ĝia ĉefa forto estas en regulaj esprimoj. Jes, la ilo mem permesas vin agordi serĉkondiĉojn kaj eligi datumojn sufiĉe flekseble, sed sen RegExp ĉi tio ne havas multe da senco. Kaj vi bezonas scii regulajn esprimojn! Almenaŭ sur baza nivelo. Komence, mi konsilus vin rigardi ĉi tion видео, ĝi kovras la bazojn de regulaj esprimoj kaj ilian uzon lige kun grep. Ho jes, kiam vi kombinas ilin kun vim, vi ricevas la ULTIMATE POWER-kapablon fari aferojn kun teksto, kiun vi devas etikedi ilin per pli ol 18 ikonoj.

El la ceteraj 50%, 40% venas de la ilaro de coreutils. Por coreutils vi povas rigardi la liston ĉe Vikipedio, kaj la manlibro por la tuta listo estas en la retejo GNU. Kio ne estas kovrita en ĉi tiu aro estas en la utilecoj POSIX. Vi ne devas parkere lerni ĉiujn ŝlosilojn, sed estas utile almenaŭ scii proksimume, kion la bazaj iloj povas fari. Vi ne devas reinventi la radon el lambastonoj. Mi iel bezonis anstataŭigi linirompojn per spacoj en la eligo de iu utileco, kaj mia malsana cerbo naskis konstruon kiel sed ':a;N;$!ba;s/n/ /g', venis kolego kaj forpelis min de la konzolo per balailo, kaj poste solvis la problemon skribante tr 'n' ' '.

Por komencanta sistemadministranto: kiel krei ordon el kaoso

Mi konsilus al vi memori, kion faras ĉiu individua ilo kaj la ŝlosilojn de la plej ofte uzataj komandoj; por ĉio alia estas homo. Bonvolu voki homon se vi havas dubojn. Kaj nepre legu la homon mem - ĝi enhavas gravajn informojn pri tio, kion vi trovos.

Konante ĉi tiujn ilojn, vi povos efike solvi gravan parton de la problemoj, kiujn vi renkontos praktike. En la sekvaj prelegoj, ni rigardos kiam uzi ĉi tiujn ilojn kaj la kadrojn por la subestaj servoj kaj aplikoj al kiuj ili aplikas.

FirstVDS-administranto de la sistemo Kirill Cvetkov estis kun vi.

fonto: www.habr.com

Aldoni komenton