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

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

Nu există moment mai bun pentru a învăța în viață decât astăzi.


Este 2019, iar DevOps este mai relevant ca niciodată. Ei spun că zilele administratorilor de sistem s-au terminat, la fel ca epoca mainframe-urilor. Dar este chiar așa?
Așa cum se întâmplă adesea în IT, situația s-a schimbat. Metodologia DevOps a apărut, dar 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-am clasificat ca un Ops. Și știu foarte bine ce experimentează un administrator de sistem când își dă seama cât de multe nu poate face încă și cât de puțin timp are pentru a le învăța.

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

Dar este chiar atât de înfricoșător? Aș spune că lipsa de cunoștințe nu ar trebui percepută ca un fel de mare problemă. Este mai mult o provocare profesională.

Produsele la scară web se bazează pe Linux sau pe alt software open source și sunt din ce în ce mai puțini oameni pe piață capabili să le întrețină. Cererea a depășit deja numărul de profesioniști în acest domeniu. Un administrator de sistem nu va mai putea pur și simplu să continue să lucreze fără a-și îmbunătăți nivelul de calificare. El trebuie să aibă abilități de automatizare pentru a gestiona mai multe servere/noduri și să aibă o bună înțelegere a modului în care funcționează pentru a rezolva problemele care apar.

Înainte de a deveni membru al echipei DevOps, trebuie să treci printr-o călătorie destul de lungă, dar interesantă, învățând noi tehnologii și diverse instrumente necesare pentru a menține sistemul conform standardelor DevOps.

Deci, cum poate un administrator de sistem să treacă de la abordarea obișnuită a muncii la noul concept de DevOps? Totul este ca de obicei: mai întâi trebuie să-ți schimbi gândirea. Nu este 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 altfel, dar este necesar.

În primul rând, este important să înțelegem că DevOps nu este o poziție specifică într-o companie, ci un set de practici specifice. Aceste practici presupun distribuirea sistemelor izolate, reducerea daunelor cauzate de erori și erori, actualizări frecvente și în timp util de software, interacțiune bine stabilită între dezvoltatori (Dev) și administratori (Ops), precum și testarea constantă nu numai a codului, ci și de asemenea întreaga structură din cadrul procesului integrare și livrare continuă (CI/CD).

Odată cu schimbarea modului de gândire, trebuie să învățați cum să mențineți infrastructura și să asigurați funcționarea stabilă, fiabilitatea și disponibilitatea acesteia pentru integrarea și livrarea continuă a aplicațiilor, serviciilor și software-ului.

Ceea ce vă poate lipsi ca profesionist în operațiuni este abilitățile de programare. Acum, scrierea de scripturi (scripturi), pe care administratorii de sistem le folosesc pentru a instala automat patch-uri pe un server, pentru a gestiona fișiere și conturi, a depana problemele și a compila documentația, este deja considerată învechită. Scripting-ul încă se aplică în cazuri relativ simple, dar DevOps se referă la rezolvarea problemelor la scară largă, fie că este vorba de implementare, testare, build-uri sau implementări.

Astfel, dacă vrei să înveți automatizarea, trebuie să stăpânești măcar puțină programare, chiar dacă nu ești dezvoltator, pentru că în această etapă a dezvoltării tale automatizarea infrastructurii în DevOps necesită această abilitate.

Ce să fac? Pentru a rămâne la cerere ca specialist, trebuie să dobândești abilități relevante - stăpânești cel puțin un limbaj de programare, de exemplu Python. Acest lucru poate părea dificil pentru o persoană care este implicată profesional în administrație, deoarece este obișnuit să creadă că doar dezvoltatorii programează. Nu este necesar să devii un expert, ci cunoașterea unuia dintre limbajele de programare (ar putea fi Python, Bash sau chiar PowerShell), va fi cu siguranță un avantaj.

Învățarea programării necesită ceva timp. A fi atent și răbdător vă va ajuta să rămâneți la curent cu lucrurile atunci când comunicați cu membrii echipei DevOps și clienții. O jumătate de oră pe zi, o oră sau mai mult, învățarea unui limbaj de programare ar trebui să fie scopul tău principal.

Administratorii de sistem și specialiștii DevOps rezolvă probleme similare, cu toate acestea, există diferențe semnificative. Se crede că un administrator de sistem nu poate face tot ce poate un inginer DevOps. Ei spun că administratorul de sistem este mai concentrat pe configurarea, întreținerea și asigurarea performanței sistemelor server, dar inginerul DevOps trage tot acest cărucior și un alt cărucior mic.

Dar cât de adevărată este această afirmație?

Administrator de sistem: un războinic pe teren

În ciuda diferențelor și asemănărilor observate în acest articol, încă cred că nu există nicio diferență semnificativă între administrarea sistemelor și DevOps. Administratorii de sistem au îndeplinit întotdeauna aceleași funcții ca și specialiștii DevOps, doar că nimeni nu l-a mai numit DevOps. Cred că nu are rost să cauți în mod special diferențele, mai ales dacă nu are legătură cu nicio sarcină. Nu uitați că, spre deosebire de un administrator de sistem, DevOps nu este o poziție, ci un concept.

Mai trebuie remarcat un lucru important, fără de care o conversație atât despre administrare, cât și despre DevOps va fi incompletă. Administrarea sistemului în sensul obișnuit presupune că un specialist are un set specific de competențe și este concentrat pe deservirea diferitelor tipuri de infrastructuri. Nu în sensul că acesta este un angajat universal, ci în sensul că există o serie de sarcini îndeplinite de toți administratorii.

De exemplu, din când în când trebuie să acționeze ca un fel de tehnic, adică să facă literalmente totul. Și dacă există un singur astfel de administrator pentru întreaga organizație, atunci el va efectua în general toate lucrările tehnice. Aceasta ar putea 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 comutatoarelor sau configurarea unui firewall.

El va fi, de asemenea, responsabil pentru actualizările hardware, inspecția și analiza jurnalelor, auditurile de securitate, corecția serverului, depanarea, analiza cauzei principale și automatizarea - de obicei prin scripturi PowerShell, Python sau Bash. Un exemplu de utilizare scenarii este gestionarea conturilor de utilizator și de grup. Crearea conturilor de utilizator și atribuirea de permisiuni este o sarcină extrem de obositoare, deoarece utilizatorii apar și dispar aproape în fiecare zi. Automatizarea prin scripturi eliberează timp pentru sarcini de infrastructură mai importante, precum upgrade-ul de switch-uri și servere și alte proiecte care afectează profitabilitatea companiei în care lucrează administratorul (chiar dacă este general acceptat că departamentul IT nu generează direct venituri).

Sarcina administratorului de sistem este să nu piardă timpul și să economisească banii companiei în orice mod posibil. Uneori, administratorii de sistem lucrează ca membri ai unei echipe mari, unind, de exemplu, administratorii Linux, Windows, baze de date, stocare și așa mai departe. Programele de lucru variază și ele. De exemplu, o schimbare într-un fus orar la sfârșitul zilei transferă cazurile la următoarea tură dintr-un alt fus orar, astfel încât procesele să nu se oprească (follow-the-sun); sau angajații au o zi normală de lucru între orele 9:5 și XNUMX:XNUMX; sau funcționează într-un centru de date XNUMX/XNUMX.

De-a lungul timpului, administratorii de sistem au învățat să gândească strategic și să combine chestiunile importante cu sarcinile de rutină. Echipele și departamentele în care lucrează sunt de obicei lipsite de resurse, dar, în același timp, toată lumea încearcă să îndeplinească sarcinile zilnice în cea mai mare măsură.

DevOps: dezvoltare și întreținere ca una singură

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

Sub umbrela DevOps, există o echipă de dezvoltare software pe de o parte și o echipă de întreținere pe de altă parte. Lor li se alătură adesea specialiști în managementul produselor, testeri și designeri de interfețe cu utilizatorul. Împreună, acești experți eficientizează operațiunile pentru a lansa rapid noi aplicații și actualizări de cod pentru a sprijini și îmbunătăți eficiența întregii companii.

DevOps se bazează pe controlul asupra dezvoltării și funcționării software-ului de-a lungul întregului său ciclu de viață. Oamenii de întreținere trebuie să sprijine dezvoltatorii, iar dezvoltatorii au sarcina de a înțelege mai mult decât doar API-urile utilizate în sisteme. Ei trebuie să înțeleagă ce se află sub capotă (adică cum funcționează hardware-ul și sistemele de operare) pentru a putea gestiona mai bine erorile, rezolva problemele și interacționa cu tehnicienii de service.

Administratorii de sistem se pot muta într-o echipă DevOps dacă doresc să învețe cele mai noi tehnologii și sunt deschiși la idei și soluții inovatoare. După cum am spus mai devreme, nu trebuie să devină programatori cu drepturi depline, dar stăpânirea unui limbaj de programare precum Ruby, Python sau Go îi va ajuta să devină membri foarte utili ai echipei. Deși, în mod tradițional, administratorii de sistem fac toată munca ei înșiși și sunt adesea percepuți ca singuri, în DevOps au o experiență complet opusă, în care toți cei din proces interacționează între ei.

Tema automatizării devine din ce în ce mai relevantă. Atât administratorii de sistem, cât și specialiștii DevOps sunt interesați să crească rapid, să reducă erorile și să găsească și să remedieze rapid erorile existente. Astfel, automatizarea este un concept în care două zone converg. Administratorii de sistem sunt responsabili pentru serviciile cloud precum AWS, Azure și Google Cloud Platform. Ei trebuie să înțeleagă principiile integrării și livrării continue și cum să folosească instrumente precum Jenkins.

În plus, administratorii de sistem trebuie să utilizeze instrumente de configurare și management precum ansiblu, necesar pentru implementarea paralelă a zece sau douăzeci de servere.

Conceptul principal este infrastructura ca cod. Software-ul este totul. De fapt, pentru ca profesia de administrator de sistem să nu-și piardă din relevanță, trebuie doar să schimbi puțin accentul. Administratorii de sistem sunt în domeniul serviciilor și trebuie să fie capabili să comunice eficient cu dezvoltatorii și invers. După cum se spune, un cap este bun, dar doi sunt mai buni.

Și ultimul detaliu din acest mecanism este merge. Lucrul cu Git este una dintre responsabilitățile zilnice tradiționale ale unui administrator de sistem. Acest sistem de control al versiunilor este utilizat 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 o mulțime de caracteristici. Probabil că nu veți învăța niciodată toate comenzile Git, dar veți înțelege exact de ce este un element de bază în comunicarea și colaborarea software. O cunoaștere aprofundată a Git este foarte importantă dacă lucrați într-o echipă DevOps.

Dacă sunteți administrator de sistem, atunci trebuie să studiați mai bine Git, să înțelegeți cum este construit controlul versiunilor și să vă amintiți comenzile comune: stare git, git commit -m, git add, git pull, git push, git rebase, git branch, git diff si altii. Există multe cursuri și cărți online care te pot ajuta să înveți acest subiect de la zero și să devii un profesionist cu abilități specifice. Există și minunate cheat sheets cu comenzi Git, deci nu trebuie să le înghesui pe toate, dar cu cât folosești mai mult Git, cu atât va fi mai ușor.

Concluzie

În cele din urmă, decideți dacă trebuie să deveniți un specialist DevOps sau dacă este mai bine să rămâneți administrator de sistem. După cum puteți vedea, există o curbă de învățare pentru a face tranziția, dar cu cât începeți mai devreme, cu atât mai bine. Alegeți un limbaj de programare și învățați simultan instrumente precum merge (controlul versiunii), Jenkins (CI/CD, integrare continuă) și ansiblu (configurare și automatizare). Indiferent de opțiunea pe care o alegeți, nu uitați că trebuie să vă învățați și să vă îmbunătățiți constant abilitățile.

Sursa: www.habr.com

Adauga un comentariu