Целевая аудитория
Դուք ծրագրավորող եք, որը ցանկանում է ձեր կարիերան ուղղել դեպի ավելի առաջադեմ DevOps մոդելը: Դուք դասական Ops ինժեներ եք և կցանկանայիք պատկերացում կազմել, թե ինչ է նշանակում DevOps: Թե՞ դուք ոչ մեկը, և ՏՏ ոլորտում որոշ ժամանակ աշխատելուց հետո ցանկանում եք փոխել կարիերան և գաղափար չունե՞ք, թե որտեղից սկսել:
Եթե այո, ապա կարդացեք՝ պարզելու համար, թե ինչպես կարող եք վեց ամսում դառնալ միջին մակարդակի DevOps-ի ինժեներ: Վերջապես, եթե երկար տարիներ ներգրավված եք եղել DevOps-ում, դուք դեռ շատ բան կստանաք այս հոդվածների շարքից՝ իմանալու համար, թե ուր է ներկայումս գտնվում ինտեգրման և ավտոմատացման ոլորտը և ուր է այն գնում:
Ի՞նչ է այս ամենը:
Նախ, ինչ է DevOps-ը: Դուք կարող եք գուգլել սահմանումներ և շրջել բոլոր խոսակցությունների միջով, բայց իմացեք, որ սահմանումների մեծ մասը պարզապես բառերի խառնաշփոթ է, որոնք փաթաթված են պարզ ձևով: Հետևաբար, ես ձեզ կտամ այս բոլոր սահմանումների ամփոփագիրը. DevOps-ը ծրագրային ապահովման մատուցման մեթոդ է, որտեղ գլխացավն ու պատասխանատվությունը կիսվում են բոլոր ներգրավվածների միջև: Այսքանը:
Լավ, բայց ի՞նչ է նշանակում այս հապավումը։ Դա նշանակում է, որ ավանդաբար, Մշակողները (մարդիկ, ովքեր ստեղծում են ծրագրակազմ) իրենց աշխատանքն անելու դրդապատճառներով, որոնք էականորեն տարբերվում են Operations-ից (մարդիկ, ովքեր կառավարում են ծրագրաշարը): Օրինակ, որպես ծրագրավորող, ես ցանկանում եմ հնարավորինս արագ ստեղծել հնարավորինս շատ նոր հնարավորություններ: Ի վերջո, սա իմ աշխատանքն է, և սա այն է, ինչ պահանջում են հաճախորդները: Այնուամենայնիվ, եթե ես Ops-ի մարդ եմ, ապա ինձ հնարավորինս քիչ նոր հնարավորություններ են պետք, քանի որ յուրաքանչյուր նոր առանձնահատկություն փոփոխություն է, և ցանկացած փոփոխություն հղի է խնդիրներով: Խթանների այս սխալ դասավորության արդյունքում ծնվեց DevOps-ը:
DevOps-ը փորձում է համատեղել զարգացումն ու գործառնությունները (ինտեգրում և ավտոմատացում) մեկ խմբի մեջ: Գաղափարն այն է, որ մի խումբ այժմ կիսում է և՛ ցավը, և՛ պատասխանատվությունը (և հավանական պարգևները)՝ հաճախորդների առջև ծառացած ծրագրաշարից կառուցելու, տեղակայելու և եկամուտ ստանալու համար:
Մաքրասերները ձեզ կասեն, որ չկա «DevOps ինժեներ»: «DevOps-ը մշակույթ է, ոչ թե դեր», նրանք ձեզ կասեն: Իհարկե, տեխնիկական տեսանկյունից նրանք իրավացի են, բայց, ինչպես որ կա. Հաճախ տերմինը դուրս է եկել ձեռքից Իր սկզբնական իմաստից դուրս, DevOps-ի ինժեները նման է «համակարգերի ինժեներ 2.0»-ի: Այլ կերպ ասած, նա հասկանում է ծրագրաշարի մշակման կյանքի ցիկլը և ստեղծում է ծրագրային ապահովման մշակման գործիքներ և գործընթացներ: լուծել դասական գործառնական խնդիրները:
DevOps-ը, ի վերջո, նշանակում է թվային խողովակաշարերի ստեղծում, որոնք կոդ են վերցնում մշակողի նոութբուքից և այն վերածում վերջնական արտադրանքի օգտագործումից ստացվող եկամուտի, ահա թե ինչի մասին է խոսքը: Նկատի ունեցեք, որ DevOps-ի կարիերայի ընտրությունը բավականին բարձր է փոխհատուցվում ֆինանսական պարգևներով, ընդ որում գրեթե յուրաքանչյուր ընկերություն կա՛մ «զբաղվում է DevOps»-ով, կա՛մ պնդում է, որ այդպիսին է: Անկախ նրանից, թե որտեղ են գտնվում այս ընկերությունները, ընդհանուր աշխատատեղերի հնարավորությունները, որպես DevOps, բավականին բարձր են և առաջարկում են «զվարճալի» և բովանդակալից աշխատանք երկար տարիներ:
Այնուամենայնիվ, զգուշացեք ընկերություններից, որոնք վարձում են «DevOps թիմ» կամ «DevOps բաժին»: Խստորեն ասած, նման բաներ չպետք է գոյություն ունենան, քանի որ, ի վերջո, DevOps-ը դեռևս մշակույթ է և ծրագրային ապահովման մատուցման միջոց, այլ ոչ թե նոր թիմ համալրելը կամ բաժին ստեղծելը: շքեղ անուն.
Disclaimer
Հիմա մի պահ մի կողմ դնենք Kool-Aid-ի բաժակը և մտածենք հետևյալի մասին. Լսե՞լ եք հին ասացվածքը «չկան DevOps կրտսեր ինժեներներ»: Եթե ոչ, ապա իմացեք, որ սա հայտնի տրոփ է Reddit-ում և StackOverflow-ում: Բայց ի՞նչ է դա նշանակում։
Պարզ ասած, այս արտահայտությունը նշանակում է, որ անհրաժեշտ է երկար տարիների փորձ՝ զուգորդված գործիքների լավ ըմբռնմամբ, որպեսզի ի վերջո դառնաք իսկապես արդյունավետ DevOps-ի ավագ մասնագետ: Եվ, ցավոք, նպատակին հասնելու դյուրանցում չկա։ Այսպիսով, սա համակարգը խաղալու փորձ չէ. ես չեմ կարծում, որ իրականում հնարավոր է ձևացնել որպես DevOps-ի ավագ ինժեներ՝ ոլորտում մի քանի ամսվա փորձով: Արագ փոփոխվող գործիքների և մեթոդոլոգիաների ամբողջական ըմբռնման հասնելու համար անհրաժեշտ է տարիների փորձ, և դա շրջանցելու հնարավորություն չկա: Այնուամենայնիվ, կա գրեթե հետևողական (նորաձև, եթե կուզեք) մենյու գործիքների և հասկացությունների, որոնք օգտագործում են ընկերությունների մեծ մասը, և հենց դրա մասին կխոսենք:
Կրկին, գործիքները տարբերվում են հմտություններից, այնպես որ, մինչ դուք սովորում եք գործիքները, համոզվեք, որ չեք անտեսում ձեր հմտությունները (հարցում, ցանցային կապ, գրավոր հաղորդակցություն, խնդիրների վերացում և այլն): Ամենակարևորը, մի կորցրեք այն, ինչ մենք ուզում ենք գտնել՝ լիովին ավտոմատացված թվային խողովակաշար ստեղծելու միջոց, որն ընդունում է գաղափարները և դրանք վերածում է եկամուտ ստեղծող կոդերի: Սա միակ ամենակարևոր եզրակացությունն է այս ամբողջ հոդվածից:
Բավական է շաղակրատել, երբ կարող եմ սկսել:
Ստորև ներկայացված է DevOps հիմնարար գիտելիքի ճանապարհային քարտեզը: Տիրապետելով այն ամենին, ինչ պատկերված է այնտեղ, դուք կարող եք ապահով և ազնվորեն ձեզ անվանել DevOps ինժեներ: Կամ ամպի ինժեներ, եթե ձեզ դուր չի գալիս «DevOps» անունը:
Այս քարտեզը ներկայացնում է իմ (և հավանաբար այս տարածքում աշխատող մարդկանց մեծամասնության) գաղափարն այն մասին, թե ինչ պետք է իմանա DevOps-ի իրավասու ինժեները: Սակայն սա միայն կարծիք է, և, իհարկե, կլինեն դրա հետ չհամաձայնողներ։ Սա լավ է: Մենք այստեղ չենք ձգտում կատարելության, մենք ձգտում ենք ամուր հիմքի, որի վրա կարող ենք իրականում կառուցել:
Այս ճանապարհով դուք պետք է անցնեք աստիճանաբար, շերտ առ շերտ։ Սկսենք (և շարունակենք) հիմունքներից՝ նախ սովորելով կապույտ գույնի տարրերի մասին՝ Linux, Python և AWS: Այնուհետև, եթե ժամանակը կամ աշխատաշուկայի պահանջարկը թույլ են տալիս, արեք մանուշակագույն գործերը՝ Golang և Google Cloud:
Անկեղծ ասած, հիմնական վերին շերտը մի բան է, որը դուք ստիպված կլինեք հավերժ ուսումնասիրել: OS Linux-ը շատ բարդ է և տարիներ է պահանջում տիրապետելու համար: Python-ը մշտական պրակտիկա է պահանջում ընթացիկ մնալու համար: AWS-ն այնքան արագ է զարգանում, որ այն, ինչ դուք գիտեք այսօր, մեկ տարի հետո միայն կլինի ձեր ընդհանուր գիտելիքների պորտֆելի մի մասը: Երբ դուք սովորեք հիմունքները, անցեք իրական հմտությունների հավաքածուին: Խնդրում ենք նկատի ունենալ, որ կան ընդհանուր առմամբ 6 կապույտ սյունակներ (Կազմաձևում, տարբերակ, փաթեթավորում, տեղակայում, գործարկում, մոնիտորինգ), մեկ ամսական ուսումնասիրության համար:
Դուք, իհարկե, նկատեցիք մեր վեցամսյա խողովակաշարի կարևոր փուլի բացակայությունը՝ թեստավորում։ Ես միտումնավոր չեմ ներառել այն ճանապարհային քարտեզում, քանի որ մոդուլ գրելը, ինտեգրման և ընդունման թեստերը հեշտ չէ և ավանդաբար ընկնում է մշակողների ուսերին: Իսկ «թեստավորման» փուլը բաց թողնելը բացատրվում է նրանով, որ այս ճանապարհային քարտեզի նպատակն է հնարավորինս արագ տիրապետել հիմնական հմտություններին և գործիքներին: Փորձարկման փորձի բացակայությունը, ըստ հեղինակի, միայն չնչին խոչընդոտ է DevOps-ի ճիշտ օգտագործման համար:
Նաև, հիշեք, որ մենք այստեղ չենք սովորում մի ամբողջ փունջ անկապ տեխնիկական բամբասանք, այլ ավելի շուտ հասկանում ենք այն գործիքները, որոնք միավորվում են հստակ պատմություն ստեղծելու համար: Այս պատմությունը ավարտից մինչև վերջ գործընթացների ավտոմատացման մասին է՝ թվային հավաքման գիծ, որը տեղաշարժվում է հավաքման գծի պես: Դուք չեք ցանկանում սովորել մի շարք գործիքներ և շարունակել կանգ առնել: DevOps-ի գործիքներն արագ են փոխվում, բայց հասկացությունները շատ ավելի հազվադեպ են փոխվում: Հետևաբար, դուք պետք է ձգտեք օգտագործել գործիքները որպես ուսուցման վստահվածներ ավելի բարձր մակարդակի հասկացությունների համար:
Լավ, եկեք մի քիչ ավելի խորանանք:
Հիմնարար գիտելիքներ
Հիմնադրամի վերին քայլի տակ կարող եք տեսնել այն հմտությունները, որոնք պետք է տիրապետեն DevOps-ի յուրաքանչյուր ինժեներ: Այս հմտությունները վստահորեն վարվում են արդյունաբերության երեք հիմնասյուների հետ, որոնք են՝ օպերացիոն համակարգը, ծրագրավորման լեզուն և հանրային ամպը: Այս բաները մի բան չեն, որ դուք կարող եք արագ սովորել և առաջ գնալ: Այս հմտությունները պետք է մշտապես կատարելագործվեն և յուրացվեն, որպեսզի լինեք ոլորտի առաջատար դիրքերում և համապատասխանեն ձեզ շրջապատող մասնագիտական միջավայրին: Անցնենք դրանց միջով մեկ առ մեկ։
Linux-ն այն է, որտեղ ամեն ինչ աշխատում է: Կարո՞ղ եք լինել զարմանալի DevOps պրակտիկանտ՝ միևնույն ժամանակ մնալով Microsoft-ի էկոհամակարգում: Իհարկե կարող ես: Չկա օրենք, որը թելադրի, որ դուք միայն օգտվեք Linux-ից: Այնուամենայնիվ, հիշեք, որ չնայած այն հանգամանքին, որ Linux-ի բոլոր բաները կարելի է անել Windows-ում, այնտեղ դա տեղի է ունենում շատ ավելի ցավոտ և ավելի քիչ ֆունկցիոնալությամբ: Այս պահին կարելի է վստահորեն ենթադրել, որ առանց Linux-ի իմացության անհնար է դառնալ իսկական DevOps-ի մասնագետ, ուստի Linux-ը մի բան է, որը դուք պետք է ուսումնասիրեք և սովորեք:
Անկեղծ ասած, դա անելու լավագույն միջոցը պարզապես տանը տեղադրել Linux (Fedora կամ Ubuntu) և հնարավորինս օգտագործել այն: Իհարկե, շատ բան կկոտրես, կխրվես աշխատանքային պրոցեսների մեջ, պիտի ամեն ինչ շտկես, բայց Linux կսովորես!
Ի դեպ, RedHat տարբերակներն ավելի տարածված են Հյուսիսային Ամերիկայում, ուստի իմաստ ունի սկսել Fedora-ից կամ CentOS-ից: Եթե մտածում եք՝ գնել KDE կամ Gnome տարբերակ, ընտրեք KDE: Ահա թե ինչ է օգտագործում ինքը՝ Լինուս Տորվալդսը։
Python-ը մեր օրերում գերիշխող հետևի լեզուն է: Դա հեշտ է սկսել և լայնորեն կիրառվում է: Python-ը շատ տարածված է արհեստական ինտելեկտի և մեքենայական ուսուցման ոլորտում, այնպես որ, եթե երբևէ ցանկանաք տեղափոխվել այլ թեժ դաշտ, լիովին պատրաստ կլինեք:
Amazon Web Services. Կրկին անհնար է դառնալ DevOps-ի փորձառու մասնագետ՝ առանց հիմնավոր պատկերացման, թե ինչպես է աշխատում հանրային ամպը: Եվ եթե ցանկանում եք ավելին իմանալ դրա մասին, նայեք Amazon Web Services-ին: Այն առաջատար խաղացող է ծառայությունների այս ոլորտում և առաջարկում է աշխատանքային գործիքների ամենահարուստ հավաքածուն:
Հնարավո՞ր է դրա փոխարեն սկսել Google Cloud-ով կամ Azure-ով: Իհարկե, դուք կարող եք! Բայց հիշելով վերջին ֆինանսական ճգնաժամը, հարկ է նշել, որ AWS-ն ամենաանվտանգ տարբերակն է առնվազն 2018 թվականին, քանի որ այն թույլ է տալիս անվճար գրանցել հաշիվ և սկսել ուսումնասիրել ամպային ծառայությունների հնարավորությունները: Բացի այդ, AWS վահանակը օգտվողին տրամադրում է պարզ և հստակ մենյու՝ ընտրելու համար: Լավ նորությունն այն է, որ դա անելու համար ձեզ հարկավոր չէ իմանալ Amazon-ի բոլոր տեխնոլոգիաները:
Սկսեք հետևյալից՝ VPC, EC2, IAM, S3, CloudWatch, ELB (Elastic Load Balancing EC2 հովանու ներքո) և Security Group: Այս բաները բավական են ձեզ սկսելու համար, և յուրաքանչյուր ժամանակակից, ամպի վրա հիմնված ձեռնարկություն բավականին ակտիվորեն օգտագործում է այդ գործիքները: AWS-ի սեփական ուսումնական կայքը լավ տեղ է սկսելու համար:
Ես խորհուրդ եմ տալիս ամեն օր 20-30 րոպե տրամադրել սովորելու և վարժվելու Python լեզվի, Linux օպերացիոն համակարգի և AWS ամպային ծառայության հետ՝ ի հավելումն այլ բաների, որոնք դուք պետք է սովորեք: Ընդհանուր առմամբ, ես կարծում եմ, որ օրական մեկ ժամ, շաբաթը հինգ անգամ ծախսելը բավական է DevOps արդյունաբերությունը 6 ամսում կամ ավելի քիչ ժամանակում հասկանալու համար: Ընդհանուր առմամբ կան 6 հիմնական բաղադրիչներ, որոնցից յուրաքանչյուրը համապատասխանում է մեկ ամսվա վերապատրաստման։ Սա այն ամենն է, ինչ ձեզ հարկավոր է հիմնական գիտելիքներ ձեռք բերելու համար:
Հետագա հոդվածներում մենք կանդրադառնանք բարդության հաջորդ մակարդակին՝ ինչպես լիովին ավտոմատացնել ծրագրաշարի կազմաձևումը, տարբերակավորումը, փաթեթավորումը, տեղակայումը, գործարկումը և մոնիտորինգը:
Շարունակությունը շատ շուտով...
Մի քանի գովազդ 🙂
Շնորհակալություն մեզ հետ մնալու համար: Ձեզ դուր են գալիս մեր հոդվածները: Ցանկանու՞մ եք տեսնել ավելի հետաքրքիր բովանդակություն: Աջակցեք մեզ՝ պատվիրելով կամ խորհուրդ տալով ընկերներին,
Dell R730xd 2 անգամ ավելի էժան Ամստերդամի Equinix Tier IV տվյալների կենտրոնում: Միայն այստեղ
Source: www.habr.com