DevOps-ը ծրագրային ապահովման մշակման մեթոդաբանություն է, որի խնդիրն է ընկերությունում ծրագրավորողների և համակարգի ադմինիստրատորների միջև փոխգործակցություն հաստատել: Եթե տարբեր գերատեսչությունների ՏՏ մասնագետները չեն հասկանում միմյանց առաջադրանքները, նրանց համար նոր հավելվածների և թարմացումների թողարկումը հետաձգվում է։
DevOps-ը ստեղծում է «անխափան» զարգացման ցիկլ՝ դրանով իսկ օգնելով արագացնել ծրագրային արտադրանքի թողարկումը: Արագացումն իրականացվում է ավտոմատացման համակարգերի ներդրման միջոցով: Բացի այդ, ծրագրավորողները սկսում են մասնակցել սերվերների տեղադրմանը և սխալների հայտնաբերմանը, օրինակ, նրանք կարող են գրել ավտոմատ թեստեր:
Սա բարելավում է գերատեսչությունների միջև փոխգործակցությունը: Աշխատակիցները սկսում են ավելի լավ հասկանալ, թե ինչ փուլերի միջով է անցնում ծրագրային արտադրանքը, մինչև այն հայտնվի օգտագործողի ձեռքում:
Երբ մշակողը հասկանա, թե ինչի է բախվում ադմինիստրատորը սերվերի տեղադրման ժամանակ, նա կփորձի հարթել կոդի հնարավոր «սուր անկյունները»: Սա նվազեցնում է հավելվածի տեղակայման ժամանակ սխալների քանակը՝ ըստ վիճակագրության՝ այն նվազում է մոտ հինգ անգամ:
Ո՞ւմ է պետք և ում պետք չէ մեթոդաբանությունը
Շատ ՏՏ մասնագետները կարծում ենոր DevOps-ը օգուտ կբերի ցանկացած կազմակերպության, որը մշակում է ծրագրակազմ: Սա ճիշտ է նույնիսկ այն դեպքում, երբ ընկերությունը ՏՏ ծառայությունների պարզ սպառող է և չի մշակում իր սեփական հավելվածները: Այս դեպքում, DevOps մշակույթի ներդրումը կօգնի ձեզ կենտրոնանալ նորարարության վրա:
Բացառություն կազմել ստարտափներ, բայց այստեղ ամեն ինչ կախված է նախագծի մասշտաբից։ Եթե ձեր նպատակն է թողարկել նվազագույն կենսունակ արտադրանք (MVP)՝ նոր գաղափար փորձարկելու համար, ապա դուք կարող եք անել առանց DevOps-ի: Օրինակ, Groupon-ի հիմնադիրը սկսեց ձեռքով աշխատել ծառայության վրա տեղադրված է բոլոր առաջարկները կայքում և հավաքագրված պատվերները: Նա ոչ մի ավտոմատացման գործիք չի օգտագործել։
Ավտոմատացման մեթոդաբանության և գործիքների ներդրումը իմաստ ունի միայն այն ժամանակ, երբ հավելվածը սկսում է ժողովրդականություն ձեռք բերել: Սա կօգնի պարզեցնել բիզնես գործընթացները և արագացնել թարմացումների թողարկումը:
Ինչպես իրականացնել DevOps-ը
Ստորև բերված են մի քանի առաջարկություններ նոր մեթոդաբանության անցնելու համար:
Բացահայտեք բիզնես գործընթացներում առկա խնդիրները: Մեթոդաբանությունը կիրառելուց առաջ առանձնացրեք կազմակերպության նպատակներն ու խնդիրները։ DevOps-ին անցնելու ռազմավարությունը կախված կլինի դրանցից: Դա անելու համար կազմեք հարցերի ցանկ, օրինակ.
Ի՞նչն է ամենաշատ ժամանակը խլում ծրագրաշարը թարմացնելիս:
Հնարավո՞ր է ավտոմատացնել այս գործընթացը:
Արդյո՞ք կազմակերպության կառուցվածքն ազդում է դրա վրա:
Փոխեք մշակույթը ընկերությունում: Կարևոր է համոզել բոլոր աշխատակիցներին փոխել իրենց սովորական գործելաոճը և ընդլայնել իրենց իրավասությունների շրջանակը: Օրինակ, Facebook-ում բոլոր ծրագրավորողները պատասխանել հավելվածի ողջ կյանքի ցիկլի համար՝ կոդավորումից մինչև իրականացում: Նաև Facebook-ը չունի առանձին թեստավորման բաժին՝ թեստերը գրում են իրենք՝ մշակողները։
Սկսեք փոքր: Ընտրեք այն գործընթացը, որն առավելագույն ժամանակ և ջանք է պահանջում թարմացումները թողարկելիս և ավտոմատացրեք այն: Սա գուցե թեստավորման կամ հավելվածի տեղակայման գործընթաց: Փորձագետներ խորհուրդ տալ Առաջին քայլը բաշխված տարբերակների կառավարման գործիքների ներդրումն է: Դրանք հեշտացնում են աղբյուրների կառավարումը: Նման լուծումներից առավել հայտնի են Git, Mercurial, Subversion (SVN) և CVS:
Արժե նաև ուշադրություն դարձնել շարունակական ինտեգրացիոն համակարգերին, որոնք պատասխանատու են վերջնական արտադրանքի հավաքման և փորձարկման համար: Նման գործիքների օրինակներ՝ Jenkins, TeamCity և Bamboo:
Գնահատեք բարելավումները. Մշակել կատարողականի չափումներ իրականացված լուծումների համար և ստեղծել ստուգաթերթ: Չափումները կարող են ներառել թողարկման հաճախականությունը, ծրագրային ապահովման գործառույթների վրա ծախսված ժամանակը և կոդի սխալների քանակը: Քննարկեք արդյունքները ոչ միայն ղեկավարների, այլ նաև նախագծում ներգրավված մնացած թիմի հետ: Հարցրեք, թե ինչ գործիքներ են պակասում: Հաշվի առեք այս հարցումները ձեր գործընթացների հետագա օպտիմալացման ժամանակ:
DevOps-ի քննադատությունը
Չնայած մեթոդաբանությունը օգնում է կազմակերպությունները կարող են ավելի արագ որոշումներ կայացնել հավելվածների մշակման վերաբերյալ, կրճատումներ ծրագրային ապահովման մեջ սխալների քանակը և աշխատակիցներին խրախուսում է նոր բաներ սովորել, այն նաև ունի քննադատներ:
Կա դիտելոր ծրագրավորողները չպետք է հասկանան համակարգի ադմինիստրատորների աշխատանքի մանրամասները։ Իբր, DevOps-ը հանգեցնում է նրան, որ զարգացման կամ կառավարման մասնագետների փոխարեն ընկերությունում կան մարդիկ, ովքեր ամեն ինչ հասկանում են, բայց մակերեսորեն։
Կարծիք կա նաև, որ DevOps չգործող վատ կառավարմամբ։ Եթե զարգացման և ադմինիստրատորների թիմերը չունեն ընդհանուր նպատակներ, ապա հենց մենեջերներն են մեղավոր թիմերի միջև շփումը չկազմակերպելու համար։ Այս խնդիրը լուծելու համար անհրաժեշտ է ոչ թե նոր մեթոդաբանություն, այլ ղեկավարների գնահատման համակարգ՝ հիմնված ենթակաների արձագանքների վրա։ Այն կարող եք կարդալ այստեղ, ինչ հարցեր պետք է ներառվեն աշխատակիցների հարցման ձևերում.
DevOps-ի ինժեներն իրականացնում է DevOps մեթոդաբանությունը: Այն համաժամացնում է ծրագրային արտադրանքի ստեղծման բոլոր փուլերը՝ կոդ գրելուց մինչև հավելվածի փորձարկում և թողարկում: Նման մասնագետը վերահսկում է զարգացման և կառավարման բաժինները, ինչպես նաև ավտոմատացնում է նրանց առաջադրանքների կատարումը՝ ներդնելով տարբեր ծրագրային գործիքներ:
DevOps-ի ինժեների հնարքն այն է, որ նա համատեղում է բազմաթիվ մասնագիտություններ՝ ադմինիստրատոր, մշակող, փորձարկող և մենեջեր։
Ջո Սանչես, DevOps-ի ավետարանիչ VMware-ում, վիրտուալացման ծրագրային ապահովման ընկերություն, առանձնացրեց մի շարք հմտություններ, որոնք պետք է ունենա DevOps-ի ինժեները: Ի լրումն DevOps մեթոդաբանության ակնհայտ գիտելիքների, այս անձը պետք է ունենա Windows և Linux օպերացիոն համակարգերի կառավարման փորձ և աշխատելու փորձ ավտոմատացման գործիքների հետ, ինչպիսիք են. Chef, Տիկնիկ, Հղիություն. Նա նաև պետք է կարողանա գրել սցենարներ և ծածկագրեր մի քանի լեզուներով և հասկանալ ցանցային տեխնոլոգիաները:
DevOps-ի ինժեները պատասխանատու է հավելվածների կազմաձևման և տեղակայման հետ կապված առաջադրանքների ցանկացած ավտոմատացման համար: Ծրագրային մոնիտորինգը նույնպես ընկնում է նրա ուսերին։ Այս խնդիրները լուծելու համար նա օգտագործում է տարբեր կոնֆիգուրացիայի կառավարման համակարգեր, վիրտուալացման լուծումներ և ռեսուրսների հավասարակշռման ամպային գործիքներ։
Ով է աշխատանքի ընդունում
DevOps-ի ինժեներները կարող են օգտակար լինել ցանկացած կազմակերպության, որը մշակում է հավելվածներ կամ կառավարում է մեծ թվով սերվերներ: DevOps ինժեներներ աշխատանքի են ընդունում ՏՏ հսկաները, ինչպիսիք են Amazon-ը, Adobe-ը և Facebook-ը: Նրանք նաև աշխատում են Netflix-ում, Walmart-ում և Etsy-ում:
Աշխատանքի չընդունելը DevOps-ի ինժեներները միայն ստարտափներ են: Նրանց գործն է թողարկել նվազագույն կենսունակ արտադրանք՝ նոր գաղափարը փորձարկելու համար: Շատ դեպքերում, ստարտափները կարող են անել առանց DevOps-ի:
Որքա՞ն վարձատրություն
DevOps ինժեներներ վաստակել ավելին, քան ոլորտի որևէ մեկը: Նման մասնագետների միջին վաստակն ամբողջ աշխարհում տատանվում է տարեկան 100-125 հազար դոլարի սահմաններում։
ԱՄՆ-ում նրանք ստացեք Տարեկան 90 հազար դոլար (ամսական 500 հազար ռուբլի): Կանադայում նրանք վճարել տարեկան 122 հազար դոլար (ամսական 670 հազար ռուբլի), իսկ Մեծ Բրիտանիայում՝ տարեկան 67,5 հազար ֆունտ ստերլինգ (ամսական 490 հազար ռուբլի):
Ինչ վերաբերում է Ռուսաստանին, ապա մոսկովյան ընկերությունները պատրաստ է վճարել DevOps-ի մասնագետներին ամսական 100-ից 200 հազար ռուբլի: Սանկտ Պետերբուրգում գործատուները մի փոքր ավելի շռայլ են՝ առաջարկում են ամսական 160-360 հազար ռուբլի։ Մարզերում ամսական 100-120 հազար ռուբլի են աշխատավարձերը:
Ինչպես դառնալ DevOps-ի մասնագետ
DevOps-ը համեմատաբար նոր ուղղություն է ՏՏ ոլորտում, ուստի DevOps-ի ինժեներների համար սահմանված պահանջների ցանկ չկա: Թափուր աշխատատեղերում այս պաշտոնին ներկայացվող պահանջների շարքում կարող եք գտնել ինչպես Debian, այնպես էլ CentOS-ի ադմինիստրացիայի հմտություններ, ինչպես նաև սկավառակի կրիչներով աշխատելու կարողություն։ RAID զանգվածներ.
Ելնելով դրանից՝ մենք կարող ենք եզրակացնել, որ առաջին հերթին DevOps-ի ինժեները պետք է լավ տեխնիկական հայացք ունենա։ Նման մարդու համար կարևոր է անընդհատ սովորել նոր գործիքներ և տեխնոլոգիաներ։
DevOps-ի ինժեներ դառնալու ամենադյուրին ճանապարհը կլինի համակարգի ադմինիստրատորը կամ մշակողը: Նրանք արդեն ունեն մի շարք հմտություններ, որոնք պարզապես պետք է զարգացնել: Հիմնական խնդիրն է կատարելագործել DevOps-ում գիտելիքների նվազագույն փաթեթը, հասկանալ, թե ինչպես աշխատել ավտոմատացման գործիքների հետ և լրացնել վարչարարության, ծրագրավորման և վիրտուալացման հմտությունների բացերը:
Հասկանալու համար, թե որտեղ գիտելիքը դեռ պակասում է, կարող եք օգտագործել մինի-Վիքիպեդիա GitHub-ում կամ մտավոր քարտեզ. Hacker News-ի բնակիչները նույնպես Խորհուրդ տալ կարդալ գրքեր»«Փյունիկ» նախագիծ"Եւ"DevOps ուղեցույց«(որը մենք նշեցինք վերևում) և «DevOps փիլիսոփայություն. ՏՏ կառավարման արվեստը» O'Reilly Media-ի կնիքի տակ: