Nuo to laiko, kai prieš 14 metų baigiau informatiką, dažnai susitinku su buvusiais kursiokais, dirbančiais įvairiose organizacijose su IT infrastruktūros priežiūra. Iš pradžių dažnas pasigirdavo, kad turi 10 serverių, pavardindavo, kokios sistemos „sukasi“. Bėgo metai, skaičiai augo – 20, 30, 60. Kai prižiūrima infrastruktūra viršijo 100 mašinų su skirtingomis operacinėmis sistemomis, fiziniais serveriais, virtualiomis mašinomis ir debesijų kompiuterijos paslaugomis, pokalbiai pradėjo strigti. Kaip ir IT infrastruktūra, kurioje palaikyti tvarką vis sunkiau, kaip ir pačių adminų gyvenimas, kuriame atsirado per daug visokios geležies ir soft’o.

Kas atsitinka, kai tą pačią užduotį turime atlikti 100 kartų? Teisingai – geriausiu atveju ji nusibosta, blogiausiu – pradedame daryti klaidas ir kartojame jas daug kartų. O kas atsitinka, kai 50 identiškų užduočių turime atlikti po 100 kartų per dieną, ne darbo valandomis? Suprantame, kad pokalbio su draugais apie technologijas vakare nebus.

Ką daryti?

Tai nustatė ne britų mokslininkai, bet vis dėlto – sutariama, kad vienas sistemų administratorius gali tvarkingai prižiūrėti iki 100 infrastruktūros vienetų, jei žino jų operacinės sistemos atnaujinimų statusus ir programų inventorių. Jei IT infrastruktūra didesnė, dalis gerai veikiančių sistemos komponentų lieka užmirštos, ir vėliau gali tapti IT infrastruktūros saugumo spragomis.

Atrodytų, išeitis galėtų būti komandinių scriptų parašymas. Jie kažkiek padeda – tiek, kiek pėstininkai padeda šachmatų lentoje. Efektyvesniam jų valdymui iš tikrųjų reikėtų visos automatizavimo sistemos. Taigi – ką daryti? Kaip atsikovoti laiko ir užtikrinti užduočių atlikimo kokybę prižiūrinti tikrai stambų IT ūkį?

Mano pasiūlymas – atvirojo kodo automatizavimo priemonės, padedančios palaikyti tvarką net turint iki 1000 įrenginių. Naudojant šiuos įrankius, visas pasikartojančias administratoriaus užduotis galima sudėti į struktūrą ir aprašyti automatizuoto konfigūravimo įrankyje vykdomu kodu. Tam reikia tik minimalių programavimo žinių, o susitvarkyti galime taip, kad VISAS standartines užduotis atviro kodo įrankiai padarytų už mus. Juk tokia ir yra automatizuoto valdymo įrankio esmė – valdyti kuo didesnę IT infrastruktūros dalį centralizuotu būdu.

Kokias užduotis konkrečiai galima automatizuoti?

Šiaip jau – visas arba beveik visas. Konfigūracijos valdymo įrankyje aprašius inventorių galime selektyviai atlikti įvairius veiksmus, pavyzdžiui, sustabdyti konkrečią paslaugą (servisą) visoje IT infrastruktūroje, pakeisti versiją, atsiųsti naujas instrukcijas ir vėl paleisti paslaugą.

Galime atnaujinti įrenginius grupėmis – sudaryti testinės ar produkcinės aplinkos sąrašą. Įrankį integravę į savitarnos svetainę, galime vienos varnelės paspaudimu sudiegti aplikaciją ar pakelti virtualios mašinos kloną.

Galime susimažinti sau darbo po darbo, nes ne darbo metu kiekvieną savaitę galime vykdyti planines užduotis: tikrinti ir parsiųsti numatytus atnaujinimus, sudiegti ir išsiųsti ataskaitą el. paštu ir t.t. Apskritai, kad ir kokias užduotis valdytume su automatizacijos įrankiais, visais atvejais pasieksime laiko ir resursų taupymo.

Nuo ko pradėti automatizaciją?

Trumpa teorinė įžanga. Pagal apibrėžimą, IT infrastruktūros valdymo automatizavimas yra turimos IT infrastruktūros susisteminimas aprašant ją kodu. Kadangi įmonės IT infrastruktūrą sudaro skirtingų sistemų tipai – lokalūs ir debesijos serveriai, duomenų saugyklos, virtualizacijos platformos ir virtualios mašinos, tinklo įranga, darbo vietos inventorius ir t.t. – paėmę sistemos tipą, operacinę sistemą, paskirtį, lokaciją, kritiškumo grupę, visą IT infrastruktūrą galime struktūrizuoti į valdymo vienetus ir juos aprašyti. Tai ir vadinama infrastruktūra kaip kodas (angl. infrastructure as code).

Praktiškai tai reiškia štai tokią veiksmų seką: pagal poreikius ir IT infrastruktūrą, pasirenkame automatizavimo įrankį, įvertiname, kiek užims užduoties užrašymas kodu ir kiek laiko sutaupys automatizavimas.

Jei neturime automatizavimo įrankio, jį išsirenkame, sudiegiame, užduoties valdymo kalba užrašome procedūrą ir ištestuojame su minimaliais resursais. Jei rezultatas tenkina, integruojame automatizuotą valdymo įrankį į visą IT infrastruktūrą ir pereiname į užduoties vykdymo dalį – iš centrinio serverio paleidžiame užduoties vykdymą.

Nuo šios akimirkos konfigūravimas, diegimas ir valdymas bus padarytas užduoties kodo eilutėmis, kurias įvykdęs, įrankis gražins informaciją apie rezultatą. Kai kursime naują automatizavimo užduotį arba tobulinsime esamą, vėl eisime per visus kūrimo dalies žingsnius.

Kurį automatizavimo įrankį pasirinkti?

Didžiąją dalį automatizuotos konfigūracijos vykdymo rinkos dalį dalijasi keturi atvirojo kodo įrankiai, dar vadinami „Didžiuoju ketvertu“. Tai – „Puppet“, „Chef“, „Ansible“ ir „Saltstack“. Jų palyginimą, ypatumus, privalumus ir trūkumus pateikiau savo prezentacijoje, kurią galite atsisiųsti čia. O kol kas, užbėgdamas įvykiams už akių, sakau – vieno atsakymo, kuris iš šių įrankių geriausias JUMS, nėra. Kiekvienas atvirojo kodo įrankis turi savo nišą, nes ir infrastruktūros, ir jų valdymo metodikos gali būti labai skirtingos.

Gera žinia pabaigai – visas „Didysis ketvirtas“ turi aktyvius bendruomenės forumus internete, todėl į savo klausimus greitai sulauksite atsakymų. O svarbiausia – daug standartinių užduočių, kurias greičiausiai norėtumėte turėti ir savo IT infrastruktūroje, jau yra aprašytos ir gali būti lengvai sužvejotos atvirojo kodo bendruomenės erdvėje.

Na, o po visko, pagaliau padirbėję ne po darbo ir sėkmingai nustatę, kokias užduotis turės atlikti automatizavimo įrankis, kol jūsų nėra, galėsite mėgautis laisvu vakaru.

Roges ruošk vasarą

Jeigu galvojate, kad straipsnis kol kas ne jums, nes administravimo kaštai kol kas maži, tai kaip tik ir jums. Jeigu dabar kaštai dar nedideli, nereiškia, kad taip bus visą laiką. Todėl siūlau nieko nelaukiant išbandyti bent vieną ar kelis mano aptartus konfigūravimo valdymo įrankius.

Įrankio integravimui skirtas laikas šiandien gali sutaupyti naujų mašinų diegimo kaštus rytoj. Be to, automatizuoto konfigūravimo valdymo įrankiai leis savo kasdienybėje pritaikyti gerąsias praktikas, kurias atvirojo kodo kūrėjai sėkmingai išbandė ne vienoje infrastruktūroje.


AUTORIUS

Pranas Blonskis – „Blue Bridge“ sistemų administratorius, turintis daugiau nei 10 metų darbo patirtį valstybiniame ir verslo sektoriuose, IT infrastruktūros priežiūra rūpinosi ir finansinėse institucijose. Specializacija – „Linux“ sistemų priežiūra, atvirojo kodo programinės įrangos ir virtualizacijos sprendimai. 

Reikia pagalbos? Galime padėti išsirinkti Jums tinkamiausią automatizacijos įrankį, jį sukonfigūruoti bei prižiūrėti. 

Susisiekime: Mindaugas.Maraulas@bluebridge.lt

Mindaugas Maraulas – „Blue Bridge“ IT paslaugų valdymo skyriaus vadovas