De ce ar trebui administratorii de sistem să devină ingineri DevOps

De ce ar trebui administratorii de sistem să devină ingineri DevOps

Pentru învățare, nu există un moment mai bun decât astăzi.


Este anul 2019, iar tema DevOps este mai relevantă ca niciodată. Se spune că zilele administratorilor de sistem sunt numărate, așa cum a trecut epoca mainframe-urilor. Dar este asta adevărat?
Așa cum se întâmplă adesea în IT, situația s-a schimbat. A apărut metodologia DevOps, dar aceasta nu poate exista fără o persoană cu abilități de administrator de sistem, adică fără Ops.

Înainte ca abordarea DevOps să capete forma sa modernă, mă consideram parte din categoria Ops. Știu foarte bine ce simte un administrator de sistem când își dă seama câte multe nu știe și cât de puțin timp are să învețe.

De ce ar trebui administratorii de sistem să devină ingineri DevOps

Dar este totul atât de alarmant? Aș spune că nu ar trebui să percepem lipsa de cunoștințe ca pe o problemă serioasă. Este mai mult o provocare profesională.

Produsele de tip web-scale se bazează pe Linux sau pe alte software-uri cu cod sursă deschis, iar pe piață există din ce în ce mai puțini specialiști capabili să le întrețină. Cererea a depășit deja numărul de profesioniști din acest domeniu. Administratorul de sistem nu își va putea continua munca fără să își îmbunătățească nivelul de calificare. Trebuie să aibă abilități de automatizare pentru a gestiona un număr mare de servere/noduri și să înțeleagă bine principiile lor de funcționare pentru a rezolva problemele apărute.

Înainte de a deveni membru al echipei DevOps, va trebui să parcurgeți un drum destul de lung, dar interesant, învățând tehnologii noi și diverse instrumente necesare pentru a întreține sistemul conform standardelor DevOps.

Deci, cum poate un administrator de sistem să treacă de la abordarea obișnuită la noua concepție DevOps? Totul este ca de obicei: mai întâi trebuie să vă schimbați mentalitatea. Nu este deloc ușor să renunți la abordarea pe care ai urmat-o în ultimii zece sau douăzeci de ani și să începi să faci lucrurile diferit, dar este necesar.

În primul rând, este important să înțelegem că DevOps nu este o funcție specifică într-o companie, ci un set de practici definite. Aceste practici implică distribuirea sistemelor izolate, reducerea impactului erorilor și bug-urilor, actualizarea frecventă și la timp a software-ului, o colaborare eficientă între dezvoltatori (Dev) și administratori (Ops), precum și testarea constantă nu doar a codului, ci și a întregii structuri în cadrul procesului integrării și livrării continue (CI/CD).

Pe lângă schimbarea mentalității, trebuie să învățăm să susținem infrastructura și să asigurăm funcționarea ei stabilă, fiabilitatea și accesibilitatea pentru integrarea și livrarea continuă a aplicațiilor, serviciilor și software-ului.

Ceea ce s-ar putea să îți lipsească ca specialist Ops este abilități de programare. În prezent, scrierea de scripturi (scripts), pe care administratorii de sistem le folosesc pentru instalarea automată a patch-urilor pe server, gestionarea fișierelor și conturilor, pentru depanare și documentare, este considerată deja învechită. În cazuri relativ simple, scripturile sunt încă folosite, dar conceptul DevOps implică rezolvarea sarcinilor la scară largă, fie că este vorba despre implementare, testare, lucru cu pachetele sau desfășurare.

Astfel, dacă dorești să înveți automatizarea, trebuie să stăpânești măcar puțin programarea, chiar dacă nu ești dezvoltator, deoarece în acest stadiu al dezvoltării tale automatia infrastructurii în DevOps necesită această abilitate.

Ce să faci? Pentru a rămâne un specialist căutat, trebuie să dobândești abilități actuale - să înveți măcar un limbaj de programare, de exemplu Python. Persoanei care se ocupă profesional de administrare i se poate părea dificil, deoarece este obișnuit să creadă că doar dezvoltatorii programează. Nu trebuie neapărat să devii expert, totuși, cunoașterea unui limbaj de programare (poate fi Python, Bash sau chiar Powershell), fără îndoială, va fi un avantaj.

Pentru a învăța să programezi, ai nevoie de ceva timp. Fii atent și răbdător — acest lucru te va ajuta să menții o bună înțelegere a situației atunci când comunici cu dezvoltatorii din echipa DevOps și cu clienții. O jumătate de oră pe zi, o oră sau mai mult — studiul unui limbaj de programare ar trebui să devină principalul tău obiectiv.

Administratorii de sistem și specialiștii DevOps rezolvă probleme similare, însă există și o diferență semnificativă. Se consideră că un administrator de sistem nu poate face tot ceea ce poate face un inginer DevOps. Se spune că administratorul este mai concentrat pe configurarea, întreținerea și asigurarea funcționării sistemelor server, pe când inginerul DevOps se ocupă de tot acest lucru și încă puțin.

Dar cât de adevărat este acest lucru?

Administrator de sistem: singur în câmp este războinic

În ciuda distinților deosebiri și asemănări menționate în acest articol, consider că între administrarea sistemelor și DevOps nu există o diferență semnificativă. Administratorii de sistem au realizat întotdeauna aceleași funcții ca și specialiștii DevOps, doar că înainte nimeni nu le numea DevOps. Cred că nu are sens să căutăm cu tot dinadinsul diferențe, mai ales dacă acestea nu sunt legate de o anumită sarcină. Nu trebuie să uităm nici de faptul că, spre deosebire de administratorul de sistem, DevOps nu este un post, ci o conceptie.

Trebuie să menționăm încă un lucru important, fără de care discuția despre administrare și DevOps va fi incompletă. Administrarea sistemelor, în sensul său obișnuit, presupune ca specialistul să aibă un set specific de abilități și să fie orientat spre întreținerea diverselor tipuri de infrastructură. Nu în sensul că acesta este un angajat universal, ci în acela că există o serie de sarcini îndeplinite de toți administratorii.

De exemplu, aceștia trebuie, din când în când, să joace rolul unui fel de muncitor tehnic, adică să facă literalmente totul. Și dacă un astfel de administrator este singurul din întreaga organizație, el va efectua într-adevăr toată munca tehnică. Aceasta poate fi orice: de la întreținerea imprimantelor și copiatoarelor până la îndeplinirea sarcinilor legate de rețea, cum ar fi configurarea și gestionarea routerelor și switch-urilor sau configurarea firewall-ului.

El va răspunde, de asemenea, pentru actualizarea hardware-ului, verificarea și analiza jurnalelor, auditul de securitate, instalarea patch-urilor pe server, depanarea, analiza cauzelor principale și automatizarea — de obicei, prin scripturi PowerShell, Python sau Bash. Un exemplu de utilizare scripturi este gestionarea conturilor de utilizator și a grupurilor. Crearea conturilor de utilizator și atribuirea permisiunilor este o sarcină extrem de obositoare, deoarece utilizatorii apar și dispar aproape în fiecare zi. Automatizarea prin scripturi permite economisirea timpului pentru a se ocupa de sarcini infrastructurale mai importante, cum ar fi actualizarea switch-urilor și serverelor și realizarea altor proiecte care afectează rentabilitatea companiei în care admininstratorul lucrează (deși se consideră că departamentul IT nu aduce venituri direct).

Sarcina administratorului de sistem este de a nu pierde timpul și de a economisi bani companiei în orice mod posibil. Uneori, administratorii de sistem lucrează ca membri ai unei echipe mari care reunește, de exemplu, administratorii de Linux, Windows, baze de date, stocare și altele. Programul de lucru poate varia. De exemplu, o tură dintr-o zonă orară la sfârșitul zilei predă treburile turei următoare dintr-o altă zonă orară, pentru ca procesele să nu se oprească (follow-the-sun); sau angajații au o zi obișnuită de lucru de la 9 la 5; sau este vorba de muncă într-un centru de date care funcționează 24/7.

Administratorii de sistem au învățat în timp să gândească strategic și să îmbine sarcinile importante cu cele de rutină. Echipele și departamentele în care lucrează de obicei resimt lipsa de resurse, dar toți încearcă să execute sarcinile zilnice în întregime.

DevOps: dezvoltare și întreținere comune

DevOps este o filozofie de proces pentru dezvoltare și întreținere. Această abordare în lumea IT a devenit cu adevărat inovatoare.

Sub egida DevOps se află, pe de o parte, echipa de dezvoltatori de software, iar pe de alta, echipa de specialiști în operare. Adesea, la ei se alătură specialiști în managementul de produs, teste și design de interfață utilizator. Unind eforturile, aceste specialiști optimizează operațiunile de lucru pentru a lansa rapid aplicații noi și a actualiza codul, având ca scop întreținerea și îmbunătățirea eficienței organizației.

La baza DevOps se află controlul dezvoltării și funcționării software-ului pe parcursul întregului său ciclu de viață. Specialiștii în operare trebuie să sprijine dezvoltatorii, iar sarcina dezvoltatorilor este să înțeleagă nu doar API-urile utilizate în sisteme. Ei trebuie să înțeleagă ceea ce se află „sub capotă” (adică cum funcționează hardware-ul și sistemele de operare), pentru a face față mai bine erorilor, a rezolva problemele și a colabora cu specialiștii în operare.

Administratorii de sistem pot face tranziția către echipa DevOps dacă doresc să învețe cele mai noi tehnologii și sunt deschiși la idei și soluții inovatoare. Așa cum am menționat, nu este necesar să devină programatori compleți, însă stăpânirea limbajelor de programare, precum Ruby, Python sau Go, îi va ajuta să devină membri foarte valoroși ai echipei. Deși administratorii de sistem, în mod tradițional, îndeplinesc toate sarcinile pe cont propriu și sunt adesea percepuți ca fiind solitari, în DevOps ei vor experimenta exact opusul, când toți participanții interacționează unii cu alții.

Tema automatizării devine din ce în ce mai relevantă. Atât administratorii de sistem, cât și specialiștii DevOps sunt interesați de scalarea operațională, reducerea numărului de erori și de identificarea și remedierea rapidă a problemelor existente. Astfel, automatizarea este un concept unde cele două domenii converg. Administratorii de sistem sunt responsabili pentru servicii cloud precum AWS, Azure și Google Cloud Platform. Ei trebuie să înțeleagă principiile integrării și livrării continue și cum să utilizeze în activitatea lor instrumente de tipul Jenkins.

În plus, administratorii de sistem trebuie să aplice instrumente de configurare și management precum Ansible, necesare pentru desfășurarea paralelă a zece sau douăzeci de servere.

Conceptul principal este infrastructura ca cod. Software în toate. Practic, pentru ca profesia de administrator de sistem să rămână relevantă, este necesar să schimbi doar puțin accentul. Administratorii de sistem se ocupă cu întreținerea și trebuie să fie capabili să interacționeze eficient cu dezvoltatorii și invers. Așa cum se spune, o minte este bună, dar două sunt mai bune.

Și ultima detaliere în acest mecanism este Git. Lucrul cu Git este una dintre responsabilitățile tradiționale zilnice ale administratorului de sistem. Această sistemă de gestionare a versiunilor este folosită pe scară largă de dezvoltatori, specialiști DevOps, echipe Agile și mulți alții. Dacă munca ta este legată de ciclul de viață al software-ului, atunci cu siguranță vei lucra cu Git.

Git are multe posibilități. Cel mai probabil, nu vei învăța niciodată toate comenzile Git, dar cu siguranță vei înțelege de ce acest instrument este considerat principalul în comunicarea și colaborarea asupra software-ului. Cunoașterea temeinică a Git este extrem de importantă dacă lucrezi într-o echipă DevOps.

Dacă ești administrator de sistem, trebuie să înveți mai bine Git, să înțelegi cum se construiește gestionarea versiunilor și să memorezi comenzile frecvente: git status, git commit -m, git add, git pull, git push, git rebase, git branch, git diff și altele. Există multe cursuri online și cărți care te vor ajuta să înveți acest subiect de la zero și să devii un profesionist cu abilități specifice. Există, de asemenea, minunata schemă de comenzi Git, așa că nu trebuie să le memorezi pe toate, dar cu cât folosești mai mult Git, cu atât va fi mai ușor pentru tine.

Concluzie

În cele din urmă, tu decizi dacă vrei să devii specialist DevOps sau să rămâi administrator de sistem. Așa cum vezi, pentru a face tranziția este necesar să te educi, dar cu cât începi mai devreme, cu atât mai bine. Alege un limbaj de programare și învață în paralel instrumente precum Git (controlul versiunilor), Jenkins (CI/CD, integrare continuă) și Ansible (configurare și automatizare). Indiferent de opțiunea pe care o alegi, nu uita că trebuie să continui să înveți și să-ți îmbunătățești abilitățile.

Sursa: habr.com

Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS 🔥 Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS | ProHoster