Kial Sistemadministrantoj Devus Fariĝi DevOps-Inĝenieroj

Kial Sistemadministrantoj Devus Fariĝi DevOps-Inĝenieroj

Ne estas pli bona tempo por lerni en la vivo ol hodiaŭ.


Estas 2019, kaj DevOps estas pli grava ol iam ajn. Ili diras, ke la tagoj de sistemaj administrantoj finiĝis, same kiel la epoko de la ĉefkomputilo. Sed ĉu ĉi tio vere estas tiel?
Kiel ofte okazas en IT, la situacio ŝanĝiĝis. La DevOps-metodaro aperis, sed ĝi ne povas ekzisti sen persono kun sistemo-administranto-kapabloj, tio estas, sen Ops.

Antaŭ ol la aliro DevOps alprenis sian modernan formon, mi klasifikis min kiel Ops. Kaj mi tre bone scias, kion spertas sistema administranto, kiam li rimarkas kiom multe li ankoraŭ ne povas fari kaj kiom malmulte da tempo li havas por lerni ĝin.

Kial Sistemadministrantoj Devus Fariĝi DevOps-Inĝenieroj

Sed ĉu ĝi vere estas tiel timiga? Mi dirus, ke manko de scio ne devus esti perceptita kiel ia granda problemo. Ĝi estas pli profesia defio.

Retskalaj produktoj baziĝas sur Linukso aŭ alia malfermkoda programaro, kaj estas ĉiam malpli da homoj sur la merkato kapablaj konservi ilin. Postulo jam superis la nombron da profesiuloj en ĉi tiu kampo. Sistemadministranto ne plu povos simple daŭrigi labori sen plibonigi sian lertnivelon. Li devas havi aŭtomatigajn kapablojn por administri plurajn servilojn/nodojn kaj bone kompreni kiel ili funkcias por solvi problemojn kiuj aperas.

Antaŭ ol vi fariĝas membro de la teamo DevOps, vi devas trairi sufiĉe longan sed interesan vojaĝon, lernante novajn teknologiojn kaj diversajn ilojn necesajn por konservi la sistemon laŭ DevOps-normoj.

Do, kiel sistema administranto povas moviĝi de la kutima aliro al laboro al la nova koncepto de DevOps? Ĉio estas kiel kutime: unue vi devas ŝanĝi vian pensadon. Ne estas facile rezigni la aliron, kiun vi sekvis dum la lastaj dek aŭ dudek jaroj kaj komenci fari aferojn alimaniere, sed ĝi estas necesa.

Antaŭ ĉio, gravas kompreni, ke DevOps ne estas specifa pozicio en kompanio, sed aro de specifaj praktikoj. Ĉi tiuj praktikoj implicas la distribuadon de izolitaj sistemoj, reduktante la damaĝon de eraroj kaj eraroj, oftajn kaj ĝustatempajn programajn ĝisdatigojn, bone establitan interagon inter programistoj (Dev) kaj administrantoj (Ops), same kiel konstantan testadon de ne nur la kodo, sed ankaŭ la tuta strukturo ene de la procezo kontinua integriĝo kaj livero (CI/KD).

Kune kun ŝanĝi la pensmanieron, vi devas lerni kiel konservi la infrastrukturon kaj certigi ĝian stabilan funkciadon, fidindecon kaj haveblecon por kontinua integriĝo kaj livero de aplikoj, servoj kaj programaro.

Kion vi eble mankas kiel Ops-profesiulo estas programaj kapabloj. Nun skribi skriptojn (skriptoj), kiujn sistemadministrantoj uzas por aŭtomate instali flikojn sur servilo, administri dosierojn kaj kontojn, solvi problemojn kaj kompili dokumentadon, estas jam konsiderata malnoviĝinta. Skripto ankoraŭ validas en relative simplaj kazoj, sed DevOps temas pri solvado de grandskalaj problemoj, ĉu efektivigo, testado, konstruoj aŭ deplojoj.

Tiel, se vi volas lerni aŭtomatigon, vi devas regi almenaŭ iom da programado, eĉ se vi ne estas programisto, ĉar en ĉi tiu etapo de via evoluo. aŭtomatigo de infrastrukturo en DevOps postulas ĉi tiun kapablon.

Kion fari? Por resti postulata kiel specialisto, vi devas akiri koncernajn kapablojn - majstri almenaŭ unu programlingvon, ekzemple Python. Ĉi tio povas ŝajni malfacila al homo, kiu profesie okupiĝas pri administrado, ĉar li kutimas pensi, ke nur programistoj programas. Ne necesas fariĝi spertulo, sed scio pri unu el la programlingvoj (ĝi povus esti Python, Bash aŭ eĉ PowerShell), certe estos avantaĝo.

Lerni programi prenas iom da tempo. Esti atenta kaj pacienca helpos vin resti atenta pri aferoj kiam vi komunikas kun DevOps-teamanoj kaj klientoj. Duonhoron tage, unu horon aŭ pli, lerni programlingvon devus esti via ĉefa celo.

Sistemadministrantoj kaj DevOps-specialistoj solvas similajn problemojn, tamen estas gravaj diferencoj. Oni kredas, ke sistemadministranto ne povas fari ĉion, kion povas inĝeniero de DevOps. Ili diras, ke la administranto de la sistemo pli koncentriĝas pri agordo, konservado kaj certigado de la agado de servilaj sistemoj, sed la inĝeniero DevOps tiras ĉi tiun tutan ĉaron kaj alian malgrandan ĉaron.

Sed kiom vera estas ĉi tiu aserto?

Sistemadministranto: unu militisto sur la kampo

Malgraŭ la diferencoj kaj similecoj notitaj en ĉi tiu artikolo, mi ankoraŭ kredas, ke ne ekzistas grava diferenco inter administrado de sistemoj kaj DevOps. Sistemadministrantoj ĉiam plenumis la samajn funkciojn kiel DevOps-specialistoj, estas nur ke neniu antaŭe nomis ĝin DevOps. Mi kredas, ke ne utilas specife serĉi diferencojn, precipe se ĝi ne rilatas al iu ajn tasko. Ne forgesu, ke, male al sistema administranto, DevOps ne estas pozicio, sed koncepto.

Unu pli grava afero devas esti notita, sen kiu konversacio pri kaj administrado kaj DevOps estos nekompleta. Sistemadministrado en la kutima signifo antaŭsupozas, ke specialisto havas specifan aron da kapabloj kaj koncentriĝas pri servado de diversaj specoj de infrastrukturoj. Ne en la senco, ke ĉi tiu estas universala dungito, sed en la senco, ke ekzistas kelkaj taskoj plenumitaj de ĉiuj administrantoj.

Ekzemple, de tempo al tempo ili devas agi kiel ia teknika manisto, tio estas, fari laŭvorte ĉion. Kaj se ekzistas nur unu tia administranto por la tuta organizo, tiam li ĝenerale plenumos la tutan teknikan laboron. Ĉi tio povus esti io ajn de prizorgado de presiloj kaj kopiiloj ĝis plenumado de retaj taskoj kiel agordo kaj administrado de enkursigiloj kaj ŝaltiloj aŭ agordo de fajroŝirmilo.

Li ankaŭ respondecos pri aparataj ĝisdatigoj, protokolo-inspektado kaj analizo, sekurecaj revizioj, servila flikado, problemo-solvado, analizo de radika kaŭzo kaj aŭtomatigo—tipe per PowerShell, Python aŭ Bash-skriptoj. Unu ekzemplo de uzo scenaroj estas la administrado de uzant- kaj grupkontoj. Krei uzantkontojn kaj atribui permesojn estas ege teda tasko ĉar uzantoj aperas kaj malaperas preskaŭ ĉiutage. Aŭtomatigo per skriptoj liberigas tempon por pli gravaj infrastrukturaj taskoj, kiel ĝisdatigo de ŝaltiloj kaj serviloj kaj aliaj projektoj, kiuj influas la profitecon de la firmao, kie la administranto laboras (kvankam estas ĝenerale akceptite, ke la IT-sekcio ne rekte generas enspezon).

La tasko de la sistemadministranto estas ne malŝpari tempon kaj ŝpari monon de la kompanio iel ajn. Iafoje sistemadministrantoj laboras kiel membroj de granda teamo, kunigante ekzemple administrantojn de Linukso, Vindozo, datumbazoj, stokado ktp. Laborhoraroj ankaŭ varias. Ekzemple, ŝanĝo en unu horzono ĉe la fino de la tago transdonas kazojn al la sekva ŝanĝo en alia horzono tiel ke procezoj ne ĉesas (sekvu la sunon); aŭ dungitoj havas normalan labortagon de 9 a.m. ĝis 5 p.m.; aŭ ĝi funkcias en XNUMX/XNUMX datumcentro.

Kun la tempo, sistemadministrantoj lernis pensi strategie kaj kombini gravajn aferojn kun rutinaj taskoj. La teamoj kaj fakoj, en kiuj ili laboras, kutime mankas rimedojn, sed samtempe ĉiuj klopodas plenumi ĉiutagajn taskojn en la plej plena grado.

DevOps: disvolviĝo kaj bontenado kiel unu

DevOps estas speco de filozofio por la procezoj de disvolviĝo kaj bontenado. Ĉi tiu aliro en la IT-mondo fariĝis vere noviga.

Sub la ombrelo de DevOps, estas programaro evoluiga teamo unuflanke kaj prizorga teamo aliflanke. Ili ofte estas akompanitaj de produktadministradspecialistoj, testistoj kaj uzantinterfacaj dizajnistoj. Kune, ĉi tiuj spertuloj plifaciligas operaciojn por rapide lanĉi novajn aplikaĵojn kaj kodajn ĝisdatigojn por subteni kaj plibonigi la efikecon de la tuta kompanio.

DevOps baziĝas sur kontrolo de la disvolviĝo kaj funkciado de programaro dum ĝia tuta vivociklo. Prizorgaj homoj devas subteni programistojn, kaj programistoj estas taskigitaj kompreni pli ol nur la API-ojn uzatajn en sistemoj. Ili devas kompreni kio estas sub la kapuĉo (tio estas, kiel aparataro kaj operaciumoj funkcias) por ke ili povu pli bone trakti cimojn, solvi problemojn kaj interagi kun servaj teknikistoj.

Sistemadministrantoj povas translokiĝi al teamo DevOps se ili volas lerni la plej novajn teknologiojn kaj estas malfermitaj al novigaj ideoj kaj solvoj. Kiel mi diris antaŭe, ili ne devas fariĝi plenrajtaj programistoj, sed regi programlingvon kiel Ruby, Python aŭ Go helpos ilin fariĝi tre utilaj membroj de la teamo. Kvankam sistemadministrantoj tradicie faras la tutan laboron mem kaj ofte estas perceptitaj kiel solecaj, en DevOps ili havas tute kontraŭan sperton, kie ĉiuj en la procezo interagas unu kun la alia.

La temo de aŭtomatigo fariĝas ĉiam pli grava. Kaj sistemadministrantoj kaj DevOps-specialistoj interesiĝas pri rapide grimpi, redukti erarojn kaj rapide trovi kaj ripari ekzistantajn erarojn. Tiel, aŭtomatigo estas koncepto kie du areoj konverĝas. Sistemadministrantoj respondecas pri nubaj servoj kiel AWS, Azure kaj Google Cloud Platform. Ili devas kompreni la principojn de kontinua integriĝo kaj livero kaj kiel uzi ilojn kiel Jenkins.

Krome, sistemadministrantoj devas uzi agordajn kaj administrajn ilojn kiel ekzemple Respondema, necesa por paralela deplojo de dek aŭ dudek serviloj.

La ĉefa koncepto estas infrastrukturo kiel kodo. Programaro estas ĉio. Fakte, por ke la profesio de sistemadministranto ne perdu gravecon, vi nur bezonas iomete ŝanĝi la emfazon. Sistemadministrantoj estas en la servokomerco kaj devas povi efike komuniki kun programistoj, kaj inverse. Kiel oni diras, unu kapo estas bona, sed du estas pli bonaj.

Kaj la lasta detalo en ĉi tiu mekanismo estas Git. Labori kun Git estas unu el la tradiciaj ĉiutagaj respondecoj de sistemadministranto. Ĉi tiu versio-kontrolsistemo estas vaste uzata de programistoj, DevOps-specialistoj, Agile-teamoj kaj multaj aliaj. Se via laboro rilatas al la programara vivociklo, tiam vi certe laboros kun Git.

Git havas multajn funkciojn. Vi verŝajne neniam lernos ĉiujn Git-komandojn, sed vi komprenos ĝuste kial ĝi estas bazvaro en programara komunikado kaj kunlaboro. Plena scio pri Git estas tre grava se vi laboras en teamo DevOps.

Se vi estas administranto de la sistemo, tiam vi devas pli bone studi Git, kompreni kiel estas konstruita versio de kontrolo kaj memori la komunajn komandojn: git status, git commit -m, git add, git pull, git push, git rebase, git branĉo, git diff kaj aliaj. Estas multaj interretaj kursoj kaj libroj, kiuj povas helpi vin lerni ĉi tiun temon de nulo kaj fariĝi profesiulo kun specifaj kapabloj. Estas ankaŭ mirindaj trompfolioj kun Git-komandoj, do vi ne devas plenigi ilin ĉiujn, sed ju pli vi uzas Git, des pli facile estos.

konkludo

Finfine, vi decidas ĉu vi devas fariĝi specialisto pri DevOps aŭ ĉu estas pli bone resti sistema administranto. Kiel vi povas vidi, estas lerna kurbo por fari la transiron, sed ju pli frue vi komencas, des pli bone. Elektu programlingvon kaj samtempe lernu ilojn kiel ekz Git (versiokontrolo), Jenkins (CI/KD, kontinua integriĝo) kaj Respondema (agordo kaj aŭtomatigo). Kian ajn elekton vi elektas, ne forgesu, ke vi devas konstante lerni kaj plibonigi viajn kapablojn.

fonto: www.habr.com

Aldoni komenton