Ինչու՞ համակարգի ադմինիստրատորները պետք է դառնան DevOps-ի ինժեներներ

Ինչու՞ համակարգի ադմինիստրատորները պետք է դառնան DevOps-ի ինժեներներ

Կյանքում սովորելու ավելի լավ ժամանակ չկա, քան այսօր:


2019 թվականն է, և DevOps-ն ավելի ակտուալ է, քան երբևէ: Ասում են՝ համակարգային ադմինիստրատորների ժամանակներն անցել են, ճիշտ այնպես, ինչպես mainframe-ի դարաշրջանը։ Բայց արդյո՞ք սա իսկապես այդպես է:
Ինչպես հաճախ է պատահում ՏՏ ոլորտում, իրավիճակը փոխվել է։ DevOps մեթոդաբանությունը ի հայտ է եկել, բայց այն չի կարող գոյություն ունենալ առանց համակարգի ադմինիստրատորի հմտություններ ունեցող անձի, այսինքն՝ առանց Ops-ի։

Մինչ DevOps մոտեցումը կստանար իր ժամանակակից ձևը, ես ինձ դասակարգեցի որպես Ops: Եվ ես շատ լավ գիտեմ, թե ինչ է զգում համակարգի ադմինիստրատորը, երբ գիտակցում է, թե որքան շատ բան չի կարող անել դեռ և որքան քիչ ժամանակ ունի դա սովորելու համար:

Ինչու՞ համակարգի ադմինիստրատորները պետք է դառնան DevOps-ի ինժեներներ

Բայց արդյո՞ք դա իսկապես այդքան վախկոտ է: Ես կասեի, որ գիտելիքի պակասը չպետք է ընկալվի որպես ինչ-որ մեծ խնդիր։ Դա ավելի շատ մասնագիտական ​​մարտահրավեր է:

Վեբ մասշտաբի արտադրանքները հիմնված են Linux-ի կամ բաց կոդով այլ ծրագրերի վրա, և շուկայում ավելի ու ավելի քիչ մարդիկ կան, որոնք կարող են դրանք պահպանել: Պահանջարկն արդեն գերազանցել է այս ոլորտի մասնագետների թիվը։ Համակարգի ադմինիստրատորն այլևս չի կարողանա պարզապես շարունակել աշխատել առանց իր հմտությունների մակարդակը բարելավելու: Նա պետք է ունենա ավտոմատացման հմտություններ՝ կառավարելու բազմաթիվ սերվերներ/հանգույցներ և լավ պատկերացում ունենա, թե ինչպես են նրանք աշխատում՝ լուծելու ծագած խնդիրները:

Նախքան DevOps թիմի անդամ դառնալը, դուք պետք է անցնեք բավականին երկար, բայց հետաքրքիր ճանապարհ՝ սովորելով նոր տեխնոլոգիաներ և տարբեր գործիքներ, որոնք անհրաժեշտ են համակարգը DevOps-ի չափանիշներին համապատասխան պահպանելու համար։

Այսպիսով, ինչպե՞ս կարող է համակարգի ադմինիստրատորը աշխատանքի սովորական մոտեցումից անցնել DevOps-ի նոր հայեցակարգին: Ամեն ինչ սովորականի պես է՝ նախ պետք է փոխել մտածողությունը։ Հեշտ չէ հրաժարվել այն մոտեցումից, որին հետևել եք վերջին տասը կամ քսան տարիների ընթացքում և սկսել այլ կերպ անել, բայց դա անհրաժեշտ է:

Նախևառաջ, կարևոր է հասկանալ, որ DevOps-ը ոչ թե կոնկրետ պաշտոն է ընկերությունում, այլ կոնկրետ պրակտիկաների մի շարք: Այս գործելակերպը ենթադրում է մեկուսացված համակարգերի բաշխում, վրիպակների և սխալների վնասների նվազեցում, ծրագրաշարի հաճախակի և ժամանակին թարմացումներ, մշակողների (Dev) և ադմինիստրատորների (Ops) լավ հաստատված փոխազդեցություն, ինչպես նաև ոչ միայն կոդի, այլև մշտական ​​փորձարկում: նաև ողջ կառույցը գործընթացում շարունակական ինտեգրում և առաքում (CI/CD).

Մտածողության ձևը փոխելու հետ մեկտեղ դուք պետք է սովորեք, թե ինչպես պահպանել ենթակառուցվածքը և ապահովել դրա կայուն շահագործումը, հուսալիությունը և հասանելիությունը հավելվածների, ծառայությունների և ծրագրերի շարունակական ինտեգրման և առաքման համար:

Այն, ինչ ձեզ կարող է պակասել որպես Ops-ի մասնագետ, ծրագրավորման հմտություններն են: Այժմ սկրիպտներ (սկրիպտներ) գրելը, որոնք համակարգի ադմինիստրատորներն օգտագործում են սերվերի վրա ավտոմատ տեղադրման, ֆայլերի և հաշիվների կառավարման, խնդիրների վերացման և փաստաթղթերը կազմելու համար, արդեն համարվում է հնացած: Սկրիպտավորումը դեռևս կիրառվում է համեմատաբար պարզ դեպքերում, բայց DevOps-ը վերաբերում է լայնածավալ խնդիրների լուծմանը, լինի դա իրականացում, փորձարկում, կառուցում կամ տեղակայում:

Այսպիսով, եթե ցանկանում եք սովորել ավտոմատացում, դուք պետք է տիրապետեք գոնե մի փոքր ծրագրավորմանը, նույնիսկ եթե դուք մշակող չեք, քանի որ ձեր զարգացման այս փուլում. ենթակառուցվածքի ավտոմատացում DevOps-ում այս հմտությունը պահանջում է:

Ինչ անել? Որպես մասնագետ պահանջված մնալու համար անհրաժեշտ է ձեռք բերել համապատասխան հմտություններ՝ տիրապետել ծրագրավորման առնվազն մեկ լեզվի, օրինակ՝ Python-ին: Դա կարող է դժվար թվալ այն մարդուն, ով մասնագիտորեն զբաղվում է ադմինիստրացիայով, քանի որ նա սովոր է մտածել, որ միայն մշակողները ծրագրում են: Փորձագետ դառնալը պարտադիր չէ, այլ ծրագրավորման լեզուներից մեկի իմացություն (դա կարող է լինել Python, Bash կամ նույնիսկ Powershell), անպայման առավելություն կլինի։

Ծրագրավորել սովորելը որոշ ժամանակ է պահանջում: Ուշադիր և համբերատար լինելը կօգնի ձեզ լավ տեղյակ մնալ DevOps թիմի անդամների և հաճախորդների հետ շփվելիս: Օրական կես ժամ, մեկ ժամ կամ ավելի, ծրագրավորման լեզու սովորելը պետք է լինի ձեր հիմնական նպատակը:

Համակարգի ադմինիստրատորները և DevOps-ի մասնագետները լուծում են նմանատիպ խնդիրներ, սակայն կան էական տարբերություններ։ Ենթադրվում է, որ համակարգի ադմինիստրատորը չի կարող անել այն ամենը, ինչ կարող է DevOps-ի ինժեները: Նրանք ասում են, որ համակարգի ադմինիստրատորն ավելի շատ կենտրոնացած է սերվերային համակարգերի կազմաձևման, պահպանման և աշխատանքի վրա, բայց DevOps-ի ինժեները քաշում է այս ամբողջ սայլը և ևս մեկ փոքր սայլ:

Բայց որքանո՞վ է ճիշտ այս պնդումը:

Համակարգի ադմինիստրատոր՝ դաշտում մեկ մարտիկ

Չնայած այս հոդվածում նշված տարբերություններին և նմանություններին, ես դեռ կարծում եմ, որ համակարգերի կառավարման և DevOps-ի միջև էական տարբերություն չկա: Համակարգի ադմինիստրատորները միշտ կատարել են նույն գործառույթները, ինչ DevOps-ի մասնագետները, պարզապես նախկինում ոչ ոք այն չի անվանել DevOps: Կարծում եմ, որ իմաստ չունի հատուկ տարբերություններ փնտրել, հատկապես, եթե դա կապված չէ որևէ առաջադրանքի հետ: Մի մոռացեք, որ, ի տարբերություն համակարգի ադմինիստրատորի, DevOps-ը պաշտոն չէ, այլ հասկացություն։

Պետք է նշել ևս մեկ կարևոր բան, առանց որի թե՛ ադմինիստրացիայի, թե՛ DevOps-ի մասին խոսակցությունը թերի կլինի։ Համակարգի կառավարումը սովորական իմաստով ենթադրում է, որ մասնագետն ունի որոշակի հմտություններ և կենտրոնացած է տարբեր տեսակի ենթակառուցվածքների սպասարկման վրա: Ոչ այն առումով, որ սա ունիվերսալ աշխատող է, այլ այն առումով, որ կան մի շարք առաջադրանքներ, որոնք կատարում են բոլոր ադմինները։

Օրինակ, ժամանակ առ ժամանակ նրանք պետք է հանդես գան որպես մի տեսակ տեխնիկական վարպետ, այսինքն՝ անեն բառացիորեն ամեն ինչ։ Եվ եթե ամբողջ կազմակերպության համար կա միայն մեկ այդպիսի ադմինիստրատոր, ապա նա ընդհանրապես կկատարի բոլոր տեխնիկական աշխատանքները։ Սա կարող է լինել ամեն ինչ՝ տպիչների և պատճենահանողների սպասարկումից մինչև ցանցին առնչվող առաջադրանքներ կատարելը, ինչպիսիք են երթուղիչների և անջատիչների կարգավորումն ու կառավարումը կամ firewall-ի կազմաձևումը:

Նա նաև պատասխանատու կլինի ապարատային արդիականացման, գրանցամատյանների ստուգման և վերլուծության, անվտանգության աուդիտների, սերվերի կարկատման, անսարքությունների վերացման, արմատական ​​պատճառների վերլուծության և ավտոմատացման համար՝ սովորաբար PowerShell, Python կամ Bash սկրիպտների միջոցով: Օգտագործման մեկ օրինակ սցենարներ օգտատերերի և խմբային հաշիվների կառավարումն է։ Օգտագործողների հաշիվների ստեղծումը և թույլտվությունների նշանակումը չափազանց հոգնեցուցիչ խնդիր է, քանի որ օգտվողները հայտնվում և անհետանում են գրեթե ամեն օր: Սկրիպտների միջոցով ավտոմատացումը ժամանակ է ազատում ավելի կարևոր ենթակառուցվածքային առաջադրանքների համար, ինչպիսիք են անջատիչների և սերվերների արդիականացումը և այլ նախագծերը, որոնք ազդում են ընկերության շահութաբերության վրա, որտեղ աշխատում է ադմինիստրատորը (չնայած, որ ընդհանուր առմամբ ընդունված է, որ ՏՏ բաժինն ուղղակիորեն եկամուտ չի ստեղծում):

Համակարգի ադմինիստրատորի խնդիրն է ժամանակ չվատնել և ամեն կերպ խնայել ընկերության գումարները։ Երբեմն համակարգի ադմինիստրատորները աշխատում են որպես մեծ թիմի անդամներ՝ միավորելով, օրինակ, Linux-ի, Windows-ի, տվյալների բազաների, պահեստավորման և այլնի ադմինիստրատորներին։ Աշխատանքային գրաֆիկները նույնպես տարբեր են: Օրինակ՝ օրվա վերջում մեկ ժամային գոտում տեղաշարժը դեպքերը տեղափոխում է մյուս ժամային գոտու հաջորդ հերթափոխին, որպեսզի գործընթացները չդադարեն (հետևել արևին); կամ աշխատողներն ունեն սովորական աշխատանքային օր առավոտյան ժամը 9-ից մինչև երեկոյան 5-ը; կամ այն ​​աշխատում է XNUMX/XNUMX տվյալների կենտրոնում:

Ժամանակի ընթացքում համակարգի ադմինիստրատորները սովորել են ռազմավարական մտածել և համատեղել կարևոր խնդիրները սովորական առաջադրանքների հետ: Թիմերը և ստորաբաժանումները, որտեղ նրանք աշխատում են, սովորաբար ռեսուրսների պակաս ունեն, բայց միևնույն ժամանակ բոլորը փորձում են կատարել առօրյա առաջադրանքները առավելագույն չափով:

DevOps. զարգացում և սպասարկում որպես մեկ

DevOps մի տեսակ փիլիսոփայություն է զարգացման և պահպանման գործընթացների համար: Այս մոտեցումը ՏՏ աշխարհում դարձել է իսկապես նորարար:

DevOps-ի հովանու ներքո մի կողմից կա ծրագրային ապահովման մշակման թիմ, մյուս կողմից՝ սպասարկման թիմ: Նրանց հաճախ են միանում արտադրանքի կառավարման մասնագետները, փորձարկողները և օգտատիրոջ միջերեսի դիզայներները: Միասին այս փորձագետները պարզեցնում են գործառնությունները՝ արագորեն տարածելու նոր հավելվածներ և կոդերի թարմացումներ՝ աջակցելու և բարելավելու ամբողջ ընկերության արդյունավետությունը:

DevOps-ը հիմնված է ծրագրաշարի մշակման և շահագործման նկատմամբ վերահսկողության վրա՝ իր ողջ կյանքի ցիկլի ընթացքում: Տեխնիկական սպասարկման աշխատողները պետք է աջակցեն ծրագրավորողներին, և մշակողներին հանձնարարված է հասկանալ ավելին, քան պարզապես համակարգերում օգտագործվող API-ները: Նրանք պետք է հասկանան, թե ինչ կա գլխարկի տակ (այսինքն՝ ինչպես են աշխատում ապարատային և օպերացիոն համակարգերը), որպեսզի կարողանան ավելի լավ կարգավորել սխալները, լուծել խնդիրները և շփվել սպասարկող տեխնիկների հետ:

Համակարգի ադմինիստրատորները կարող են տեղափոխվել DevOps թիմ, եթե ցանկանում են սովորել նորագույն տեխնոլոգիաները և բաց են նորարար գաղափարների և լուծումների համար: Ինչպես նախկինում ասացի, պարտադիր չէ, որ նրանք դառնան լիարժեք ծրագրավորողներ, բայց Ruby-ի, Python-ի կամ Go-ի նման ծրագրավորման լեզվի տիրապետումը կօգնի նրանց դառնալ թիմի շատ օգտակար անդամներ: Թեև համակարգի ադմինիստրատորներն ավանդաբար կատարում են ամբողջ աշխատանքն իրենք և հաճախ ընկալվում են որպես միայնակ, DevOps-ում նրանք ունեն բոլորովին հակառակ փորձը, երբ գործընթացում բոլորը շփվում են միմյանց հետ:

Ավտոմատացման թեման գնալով ավելի արդիական է դառնում։ Ե՛վ համակարգի ադմինիստրատորները, և՛ DevOps-ի մասնագետները շահագրգռված են արագ ընդլայնել, նվազեցնել սխալները և արագ գտնել և ուղղել առկա սխալները: Այսպիսով, ավտոմատացումը մի հայեցակարգ է, որտեղ երկու ոլորտներ համընկնում են: Համակարգի ադմինիստրատորները պատասխանատու են ամպային ծառայությունների համար, ինչպիսիք են AWS-ը, Azure-ը և Google Cloud Platform-ը: Նրանք պետք է հասկանան շարունակական ինտեգրման և առաքման սկզբունքները և ինչպես օգտագործել այնպիսի գործիքներ, ինչպիսիք են Jenkins.

Բացի այդ, համակարգի ադմինիստրատորները պետք է օգտագործեն կազմաձևման և կառավարման գործիքներ, ինչպիսիք են Հղիություն, անհրաժեշտ է տասը կամ քսան սերվերների զուգահեռ տեղակայման համար։

Հիմնական հայեցակարգն է ենթակառուցվածքը որպես ծածկագիր. Ծրագրային ապահովումն ամեն ինչ է: Իրականում, որպեսզի համակարգային ադմինիստրատորի մասնագիտությունը չկորցնի արդիականությունը, պարզապես պետք է մի փոքր փոխել շեշտադրումները։ Համակարգի ադմինիստրատորները զբաղվում են ծառայությունների ոլորտում և պետք է կարողանան արդյունավետ շփվել ծրագրավորողների հետ և հակառակը: Ինչպես ասում են՝ մի գլուխը լավ է, բայց երկուսը՝ ավելի լավ։

Եվ այս մեխանիզմում վերջին դետալն է գնալ. Git-ի հետ աշխատելը համակարգի ադմինիստրատորի ավանդական ամենօրյա պարտականություններից է: Այս տարբերակի կառավարման համակարգը լայնորեն օգտագործվում է մշակողների, DevOps-ի մասնագետների, Agile թիմերի և շատ ուրիշների կողմից: Եթե ​​ձեր աշխատանքը կապված է ծրագրային ապահովման կյանքի ցիկլի հետ, ապա դուք անպայման կաշխատեք Git-ի հետ։

Git-ն ունի բազմաթիվ առանձնահատկություններ: Դուք, ամենայն հավանականությամբ, երբեք չեք սովորի Git-ի բոլոր հրամանները, բայց հստակ կհասկանաք, թե ինչու է այն հիմնական ծրագրային հաղորդակցության և համագործակցության մեջ: Git-ի մանրակրկիտ իմացությունը շատ կարևոր է, եթե դուք աշխատում եք DevOps թիմում:

Եթե ​​դուք համակարգի ադմինիստրատոր եք, ապա դուք պետք է ավելի լավ ուսումնասիրեք Git-ը, հասկանաք, թե ինչպես է կառուցված տարբերակի կառավարումը և հիշեք ընդհանուր հրամանները. git կարգավիճակ, git commit -m, git add, git pull, git push, git rebase, git branch, git diff եւ ուրիշներ. Կան բազմաթիվ առցանց դասընթացներ և գրքեր, որոնք կարող են օգնել ձեզ սովորել այս թեման զրոյից և դառնալ հատուկ հմտություններ ունեցող մասնագետ: Կան նաև հիանալի խաբեության թերթիկներ Git հրամաններով, այնպես որ դուք ստիպված չեք լինի դրանք բոլորը խցկել, բայց որքան շատ օգտագործեք Git-ը, այնքան ավելի հեշտ կլինի:

Ամփոփում

Ի վերջո, դուք որոշում եք՝ արդյոք պետք է դառնալ DevOps-ի մասնագետ, թե՞ ավելի լավ է մնալ համակարգի ադմինիստրատոր: Ինչպես տեսնում եք, կա ուսուցման կոր՝ անցում կատարելու համար, բայց որքան շուտ սկսեք, այնքան լավ: Ընտրեք ծրագրավորման լեզու և միաժամանակ սովորեք այնպիսի գործիքներ, ինչպիսիք են գնալ (տարբերակի վերահսկում), Jenkins (CI/CD, շարունակական ինտեգրում) և Հղիություն (կոնֆիգուրացիա և ավտոմատացում): Ինչ տարբերակ էլ որ ընտրեք, մի մոռացեք, որ պետք է անընդհատ սովորել և կատարելագործել ձեր հմտությունները:

Source: www.habr.com

Добавить комментарий