Թեև «պլատֆորմ որպես ծառայություն» (PaaS) լուծումները միայնակ չեն կարող փոխել անհատների և թիմերի համագործակցության եղանակը, դրանք հաճախ ծառայում են որպես կազմակերպչական փոփոխությունների կատալիզատոր՝ ի պատասխան ՏՏ տեխնոլոգիաների ճկունության աճի։

Իրականում, PaaS-ում ներդրումների եկամտաբերության մաքսիմալացումը հաճախ հնարավոր է միայն այն դեպքում, երբ փոխվում են կազմակերպչական դերերը, պարտականությունները և հարաբերությունները: Բարեբախտաբար, PaaS լուծումները, ինչպիսին է OpenShift Container Platform-ը, բավականաչափ ճկուն են, որպեսզի յուրաքանչյուր ՏՏ կազմակերպություն կարողանա որոշել փոփոխությունների արագությունն ու շրջանակը՝ հաշվի առնելով ներգրավված մարդկանց և գործընթացները:
Ձեռնարկության կոնտեյներացման առաջին փուլում գլխավոր առաջնահերթությունը կոնտեյներային հարթակի ներդրումն է՝ որպես հավելվածների տեղակայման նոր համակարգ: Այս պահին կազմակերպությունները ծանոթ առաջադրանքները կապում են ծանոթ դերերի հետ՝ արձագանքելու մշակողների թիմերի ստանդարտ հարցումներին այնպիսի հարցերի վերաբերյալ, ինչպիսիք են պահեստավորման համակարգերը, տեղակայման միջավայրերը և այլն: Կոնտեյներացման հետագա փուլերում խոսքն արդեն ավտոմատացման կամ մշակողներին ինքնասպասարկման հնարավորություններ տրամադրելու մասին է՝ համակարգի ադմինիստրատորների բեռը նվազեցնելու և մշակողների ինքնավարությունն ու արձագանքունակությունը ավելի բարձր մակարդակի հասցնելու համար: Ահա թե ինչպես է կազմակերպությունը սկսում շարժվել դեպի DevOps: Ձեռնարկության կոնտեյներացման վերջնական փուլում գործի է դրվում ավելի մաքուր, կանոնիկ DevOps մոդել, որի շրջանակներում նախորդ առաջադրանքների և աշխատանքների մեծ մասը փոխանցվում է խաչաձև ֆունկցիոնալ թիմերի վերահսկողությանը, որոնք խմբավորված են ոչ թե հարթակի կամ տեխնոլոգիայի, այլ հավելվածների կամ հավելվածների ծառայությունների աշխատանքի ապահովման առումով:
Այս գրառման մեջ մենք կտրամադրենք ուղեցույց, թե ինչպես կատարել անհրաժեշտ կազմակերպչական փոփոխությունները և ինչպես են փոխվում ավանդական ՏՏ դերերը, քանի որ ձեռնարկությունում ներդրվում են կոնտեյներային տեխնոլոգիաներ։
Նոր աշխատատեղերի կապը հին դերերի հետ
Իր հիմնական, սկզբնական տեսքով, PaaS կազմակերպչական մոդելը նախագծված է ավելի ճկուն և արագ ՏՏ ռեսուրսները ծրագրերի միջև բաշխելու համար՝ որպես աշխատանքային միջավայր: Չնայած սա որոշակի առավելություններ է տալիս համակարգի ադմինիստրատորներին, մշակողները սովորաբար որևէ էական օգուտ կամ նոր հնարավորություններ չեն ստանում, քանի որ այս փուլում ձեռնարկությունը կարող է հեշտությամբ անել առանց ավտոմատացման, ինքնասպասարկման կամ տեղակայման խողովակաշարի արմատական բարելավման: Չնայած այս փուլում մշակման գործընթացներին նվազագույնի հասցնելուն, PaaS-ը, այնուամենայնիվ, մեծացնում է ՏՏ համակարգի ճկունությունը՝ թույլ տալով ադմինիստրատորներին ավելի լավ սպասարկել մշակողների հարցումները: Օրինակ, նախկինում մի քանիսից մշակման միջավայր ստեղծելիս... վիրտուալ մեքենա Մինչդեռ պահեստային ծավալների ստեղծումն ու տեղակայումը կարող է տևել օրեր կամ նույնիսկ շաբաթներ՝ պահանջելով մի քանի տարբեր ադմինիստրատորների ներգրավում, PaaS-ում ամեն ինչ արվում է շատ ավելի արագ և միայն մեկ ադմինիստրատորի կողմից։ Այլ կերպ ասած, մշակողների թիմերը հարցումներ են ներկայացնում նախկինի պես, բայց դրանք իրականացնելու աշխատանքն այժմ իրականացվում է նոր մոդելի համաձայն։
Դեպի DevOps կազմակերպություն
PaaS-ը գործարկելով և դրան տեղափոխելով ՏՏ գործառնությունների ու հավելվածների մշակողներին՝ կազմակերպությունը կարող է շարունակել ներդնել DevOps մեթոդաբանությունը, որը, ի թիվս այլոց, ներառում է հետևյալ հիմնական սկզբունքները՝
- Բաժանեք աշխատանքը փոքր քայլերիվաղ փուլում հետադարձ կապ ստանալու, ռիսկերը նվազեցնելու և «վերլուծության կաթվածահարությունից» խուսափելու համար։
- Գործողությունները բավարար չափով ավտոմատացնել, որպեսզի չստեղծվեն խոչընդոտներ կամ խցանումներ հավելվածի տեղակայման գործընթացում։
- Գիտելիքների փոխանակում – վստահություն կառուցելու բանալին;
- Կանոնավոր կերպով վճարեք տեխնիկական պարտքերը, յուրաքանչյուր աշխատանքային ցիկլում որոշակի ժամանակ հատկացնելով համակարգված բարելավումների համար։
Կոնտեյներների ներդրման երկրորդ փուլում մշակողների թիմերը բնականաբար սկսում են տեսնել բարելավման տեղ, և ձեռնարկությունը անցնում է ավելի կանոնիկ DevOps մոդելի: Ավանդական տոմսավորման մեխանիզմն այժմ դիտվում է որպես խոչընդոտ, ուստի կազմակերպությունը ձգտում է ավտոմատացնել կրկնվող գործողությունները և մշակողներին տրամադրել ինքնասպասարկման հնարավորություններ: Եվ տվյալ տոմսի շրջանակներում մշակողների այս հնարավորությունները որոշվում են համատեղ ՏՏ հարթակի գործողությունների և ծրագրերի մատուցման թիմերի կողմից: Այլ կերպ ասած, մշակողների տոմսերի հիման վրա գործող համակարգի ադմինիստրատորները փոխարինվում են վերը նշված երկու կատեգորիաների մարդկանցով, որոնք պատասխանատու են այն քաղաքականությունը սահմանելու և կիրառելու համար, որը կարգավորում է մշակողների կողմից ինքնուրույն անելիքները: Ավտոմատացված գործընթացները օգնում են ապահովել համապատասխանությունը և համակարգել գործողությունները, երբ քաղաքականությունը չի պահպանվում:
Իտերատիվ ժամանակացույցի անցումը, որի դեպքում ՏՏ միջավայրը և գործառնական մոդելը ժամանակի ընթացքում ենթարկվում են իտերատիվ փոփոխությունների, ձեռնարկության DevOps հասունության ծրագրի կարևորագույն հանգրվան է: DevOps-ի ներդրման աստիճանը կախված է յուրաքանչյուր կազմակերպության փոփոխությունների նկատմամբ հանդուրժողականությունից և այն փոփոխություններից, որոնք ապահովում են առավելագույն արժեք: Օրինակ, եթե նոր միջավայրեր կամ ծրագրեր կառուցելու անհրաժեշտությունը հազվադեպ է առաջանում, ապա այդ գործողությունների օպտիմալացումը պակաս կարևոր կլինի, քան մշակողի վերահսկողության մեծացումը ծրագրի կյանքի ցիկլի վրա:
Նոր մարտահրավերներ, որոնց բախվում են ՏՏ կազմակերպությունները OpenShift-ին անցնելիս
Այս բաժնում մենք կանդրադառնանք OpenShift-ին անցած կազմակերպությունների դերերին և առաջադրանքներին, որոնք սովորաբար օգտագործում են ավտոմատացումը և ինքնասպասարկումը արագացնելու համար՝ օգտագործելով տեխնոլոգիա և PaaS:
Ստորև բերված աղյուսակում ներկայացված են OpenShift-ը ներդրած ցանկացած կազմակերպությունում առկա բարձր մակարդակի առաջադրանքները՝ դրանց հետ կապված աշխատանքների և հմտությունների օրինակներով։ Առաջադրանքների այս ցանկը չպետք է շփոթել աշխատանքի բաժանման կառուցվածքի կամ թիմի կազմակերպչական սխեմայի հետ, այլ ավելի շուտ առաջադրանքների ամբողջություն է, որը պետք է կատարեն ՏՏ միջավայր(ներ)ը աջակցելու համար պատասխանատու անձինք՝ կոնտեյներային հարթակը հաջողությամբ իրականացնելու համար։ Փաստորեն, մենք ավելի ուշ կցույց տանք, որ կոնտեյներային տեխնոլոգիաների ընդունումը նախադրյալներ է ստեղծում ձեռնարկության ներսում ավելի հասուն DevOps ռազմավարության համար, որն իր հերթին մեծացնում է թիմերի միջև խաչաձև ֆունկցիոնալության աստիճանը և նվազեցնում նեղ մասնագիտացման ռիսկերը՝ թե՛ անհատների, թե՛ թիմերի մակարդակում։
Աղյուսակ 1. OpenShift առաջադրանքների սահմանումներ
խնդիրները
Պահանջվող հմտություններ
ՏՏ ենթակառուցվածքների ավտոմատացում և ապահովում
Աշխատություններ:
- Սարքավորումների լուծումների նախագծում և կառուցում
- Սկզբնական կարգավորման ավտոմատացման կազմակերպում և աջակցություն
- Վիրտուալ մեքենայի և հոսթի նախապատրաստման նախագծում և ավտոմատացում
- Տվյալների կենտրոնների նախագծում և ներդրում
- Համակարգի կառավարում Linux
- Ավտոմատացման սցենարներ
- Պահեստավորման համակարգերի իմացություն
- Գիտելիքներ ցանցերի նախագծման և ներդրման ոլորտում
- Безопасность
OpenShift հարթակի տեղադրում և կառավարում
Աշխատություններ:
- Կլաստերի տեղադրում
- Ենթակառուցվածքային ծառայությունների կառավարում
- Հարթակի մասշտաբավորման կառավարում
- Հարթակի մակարդակի նույնականացում և լիազորում
- Համակարգի կառավարում Linux
- Ցանցային տեխնոլոգիաների իմացություն
- Ավտոմատացման սկրիպտներ (Ansible)
- Պահեստավորման համակարգերի իմացություն
- Կոնտեյներային տեխնոլոգիաների և ճարտարապետության իմացություն
- Kubernetes և OpenShift ճարտարապետությունների իմացություն
- Հարթակի անվտանգություն
- Մոնիթորինգի ինտեգրում
Վարձակալների մատակարարման կառավարում, ՏՏ հզորությունների մեկուսացում
Աշխատություններ:
- Հարթակի ներսում օգտատերերի և թիմերի ստեղծում
- Քվոտաների նախագծում և կառավարում
- RBAC-ի նախագծում և ներդրում
- Kubernetes և OpenShift ճարտարապետությունների իմացություն
- Կոնտեյներային տեխնոլոգիաների և ճարտարապետության իմացություն
- Ավտոմատացման սցենարներ
- Նախագծերի, քվոտաների, դերերի բաշխման և ժամանակացույց կազմողների հետ աշխատանքի լավ իմացություն
Հիմնական պատկերների կառուցում և կառավարում
Աշխատություններ:
- Պատկերների փոփոխման համար աշխատանքային հոսքի մշակում
- Ստանդարտների հիման վրա պատկերների մշակում
- Համակարգի կառավարում Linux
- Ավտոմատացման սցենարներ
- Ծրագրերի և միջանկյալ ծրագրերի աշխատանքային ժամանակի բաղադրիչների կարգավորում
- Կոնտեյներների ճարտարապետության իմացություն
- Հավելվածի կառուցման շրջանակներ
- Պատկերների, պատկերային հոսքի և ձևանմուշների լավ իմացություն
Տեղակայման խողովակաշարերի նախագծում և կառավարում
Աշխատություններ:
- Փոխակրիչի ստանդարտների նախագծում և փաստաթղթավորում
- Արագ ուղեցույցների և ձևանմուշների մշակում
- Ծրագրավորողների վերապատրաստում
- Աղբյուրի կոդի կառավարում
- Հավելվածների նախագծում և իրականացում
- Ավտոմատացման սցենարներ
- Ավտոմատացված թեստավորում
- Կոդի որակի ստուգում
- Կոնտեյներների ճարտարապետության իմացություն
- Անփոփոխ ենթակառուցվածքների իմացություն
- Անվտանգություն՝ խողովակաշարի փուլերին մուտքի կառավարում, աշխատանքային հոսքերի հաստատում և այլն:
- OpenShift ձևանմուշների, բաղադրիչների buildconfigs, deploymentconfigs, services, routes, configmaps-ի լավ իմացություն
Կիրառման և թեստավորման մշակում
Աշխատություններ:
- Դիմումի կոդավորում
- Ավտոմատացված թեստերի մշակում
- Տեղակայման խողովակաշարի ընթացքում փորձարկման ձախողումների արձագանքը
- Դիմումի ձախողումների արձագանքը
- Օգտագործողի ընդունման թեստավորում
- Հավելվածների նախագծում և իրականացում
- Ավտոմատացված թեստավորում
- Աղբյուրի կոդի կառավարում
- Դիմումների մոնիթորինգ
- Ամպային բնիկ կիրառական ճարտարապետությունների իմացություն
Գործառնական մոնիթորինգ և կիրառման կառավարում
Աշխատություններ:
- Արդյունավետության համար նախատեսված ծրագրերի նախագծում
- Ծրագրերի մոնիթորինգ աշխատանքի ընթացքում
- Ծրագրի մասշտաբավորում (կամ ավտոմատ մասշտաբավորում)
- Հավելվածի մատչելիության կառավարում
- Հարցման քվոտաներ և ռեսուրսների կառավարման սահմանափակումներ
- Արդյունավետության և ՏՏ կարողությունների թեստավորում
- Ծրագրի կատարողականի նախագծում և իրականացում
- Հավելվածի կատարողականի մոնիտորինգ
- Արդյունավետության և բեռնվածության փորձարկում
Օգտագործողի ընդունման թեստավորում
Աշխատություններ:
- UI (Դիզայն և օգտատիրոջ փոխազդեցություն) թեստավորում
- Ավտոմատացված թեստերի մշակում
- Օգտագործողի ինտերֆեյսների նախագծում և փորձարկում
- Ավտոմատացված թեստավորման ձևանմուշներ
- Փորձարկման շրջանակներ
- Դիմումի դիզայնի մոդելներ
Նոր դերեր, որոնք ի հայտ են գալիս ՏՏ կազմակերպությունում OpenShift-ին անցնելիս
DevOps-կենտրոն կազմակերպչական մոդելի անցնելուն զուգընթաց, դերերի մասնագիտացումների քանակը սովորաբար նվազում է, մինչդեռ միջֆունկցիոնալ թիմերի և դերերի քանակը մեծանում է՝ համագործակցությունը մեծացնելու համար: Ահա, թե ինչպիսին է, մեր կարծիքով, OpenShift օգտագործող ՏՏ կազմակերպությունում հիմնական պաշտոնների ցանկը.
- Կիրառական գործառնությունների ինժեներ ԿԱՄ կայքի հուսալիության ինժեներ: Նախկինում այս պաշտոնը կարող էր կոչվել կիրառական սերվերի ադմինիստրատոր:
- Ծրագրավորող/ծրագրային ապահովման մշակող/ծրագրային ապահովման ինժեներ։
- Կլաստերի/Ծրագրերի Հարթակի Ադմինիստրատոր։ Նախկինում այս դերը կարող էր կոչվել «Համակարգի Ադմինիստրատոր» կամ «Ադմինիստրատոր»։ Linux-հարթակներ»։
- Թողարկման մենեջեր/կառուցման ինժեներ։
Դերի և առաջադրանքների մատրից RACI
Վերջապես, մենք անցնում ենք վերը նշված պաշտոնների և առաջադրանքների քարտեզագրմանը՝ ընդհանուր պատկերացում կազմելու համար, թե ինչպիսին պետք է լինի OpenShift հարթակում DevOps ներդրող կազմակերպության կառուցվածքը: Սկզբում ստորև թվարկված դերերը կարող են կատարվել հին, ավանդական կազմակերպչական կառուցվածքի տարբեր ճյուղերի կողմից: Սակայն ժամանակի ընթացքում տեղի է ունենում համախմբում, և ի հայտ են գալիս նոր ծրագրային թիմեր, որոնք կատարում են ստորև թվարկված առաջադրանքների մեծ մասը կամ բոլորը:
խնդիրները
Դերը
Կիրառական գործառնությունների ինժեներ / Կայքի հուսալիության ինժեներ
Ծրագրավորող/Ծրագրային ապահովման մշակող/Ծրագրային ապահովման ինժեներ
Կլաստերի/Ծրագրերի Հարթակի Ադմինիստրատոր
Ծրագրային ապահովման թողարկման մենեջեր / հավաքման ինժեներ
ՏՏ ենթակառուցվածքների ավտոմատացում և ապահովում
I
I
Ռ/Ա
C
OpenShift հարթակի տեղադրում և կառավարում
C
I
Ռ/Ա
C
Տեղակայման խողովակաշարերի նախագծում և կառավարում
C
C
I
Ռ/Ա
Վարձակալների մատակարարման, մեկուսացման և ՏՏ հզորությունների կառավարում
C
I
Ռ/Ա
I
Հիմնական պատկերների կառուցում և կառավարում
R
C
Ռ/Ա
C
Կիրառման և թեստավորման մշակում
C
Ռ/Ա
I
I
Գործառնական մոնիթորինգ և կիրառման կառավարում
Ռ/Ա
C
C
I
Օգտագործողի ընդունման թեստավորում
C
R
I
I
RACI մատրիցային խորհրդանիշներ
Source:
- Պատասխանատու - Կատարողը նա է, ով անում է այն, ինչ անհրաժեշտ է առաջադրանքն ավարտելու համար։
- Պատասխանատու Պատասխանատու – աշխատակիցը, որը, վերջնական արդյունքում, պատասխանատու է առաջադրանքի ճիշտ և մանրակրկիտ կատարման կամ արդյունքի հասնելու համար, ինչպես նաև միակն է, ով կարող է աշխատանքը հանձնարարել կատարողներին։
- Խորհրդակցված է – Խորհրդատուները սովորաբար թեմայի փորձագետներ են, որոնցից խորհրդատվություն է պահանջվում. նրանց հետ պահպանվում է երկկողմանի կապ:
- Տեղեկացված – Տեղեկացված – մարդիկ, ովքեր տեղեկացված են պահվում իրադարձությունների մասին (երբեմն միայն առաջադրանքի ավարտից կամ արդյունքի հասնելուց հետո). նրանք տեղեկատվություն են ստանում միակողմանիորեն։
Ինչպես են թիմերը համագործակցում DevOps կազմակերպությունում
Ռեսուրսների ձեռքբերման ավանդական գործընթացը սովորաբար ներառում է ռեսուրսների բաշխման հարցումների ցիկլ, որոնք այնուհետև կատարվում են մի քանի թիմերի կողմից: Ի վերջո, բոլոր անհրաժեշտ ռեսուրսները հատկացվում և հաստատվում են հարցում ներկայացնողի կողմից: Հաճախ այս գործընթացները մասամբ կամ ամբողջությամբ ձեռքով են կատարվում, ինչը պահանջում է թիմերի միջև հաճախակի և բազմակի փոխազդեցություններ՝ յուրաքանչյուր հարցումը հաջողությամբ մշակելու համար:
Նկար 1. Ավանդական ՏՏ կազմակերպություն

Վերևում նշված դիագրամը պատկերում է ավանդական ՏՏ կազմակերպությունում թիմերի միջև բնորոշ հարաբերությունները: Այս մոդելում թիմերը աշխատանք են խնդրում այլ թիմերից՝ օգտագործելով ավելի կամ պակաս ֆորմալ հաղորդակցման միջոցներ, ինչպիսիք են տոմսերի համակարգը կամ էլեկտրոնային փոստը: Այնուհետև այս հարցումները հերթում են մնում և սպասում իրենց հերթին, որ իրենց հերթը կատարվի, ընդ որում՝ երկար սպասումը հաճախ հանգեցնում է թիմերի միջև լարվածության սրման կամ նույնիսկ սրման: Լարվածությունն ավելի է սրվում այն փաստով, որ թիմի անդամները հազվադեպ են հանդիպում անձամբ և սովորաբար կիսվում են միայն նվազագույն տեղեկատվությամբ:
Նկար 2. DevOps IT կազմակերպություն

Այս դիագրամը ցույց է տալիս, թե ինչպես է համագործակցությունը գործում DevOps կազմակերպությունում: Այստեղ նախորդ դիագրամի նույն թիմերը հրաժարվել են անարդյունավետ հաղորդակցություններից, որոնք ստեղծում էին մեկուսացում և փոխարինել դրանք դեմ առ դեմ փոխազդեցություններով՝ ստեղծելով թիմերի միջև հաղորդակցության շարունակական ալիքներ: Այս ալիքները խթանում են հիբրիդային հմտությունների մի շարք, որը օգնում է անհատներին ավելի լավ հասկանալ և ներկայացնել իրենց ներկայացրած թիմերի կարիքները, մարտահրավերները և հնարավորությունները: Թիմերը միմյանց լիազորում են աշխատանքն ավարտել ավտոմատ ինքնասպասարկման պորտալների միջոցով, այլ ոչ թե ձեռքով մշակել ուրիշներից ստացված փոփոխությունների հարցումները, ինչպես նախկինում էր: Եվ ալիքների շնորհիվ այս ինքնասպասարկման համակարգերը կարողանում են արագորեն հարմարվել իրենց սպասարկած թիմերի կարիքներին: Կազմակերպության շրջանակներում փոխըմբռնումը և գիտելիքների փոխանակումը հետագայում բարելավելու համար թիմի անդամները պարբերաբար փոխում են դերերը՝ տարբեր թիմերի հետ փոխազդեցության փորձ ձեռք բերելու և իրենց կողմից աջակցվող ՏՏ համակարգերի ընդհանուր պատկերը ավելի լավ հասկանալու համար, մեծացնելով դրանց խաչաձև ֆունկցիոնալությունը և արժեքը:
Ամփոփելով
Այս գրառման մեջ մենք քննարկեցինք, թե ինչպես PaaS-ը կարող է օգնել կազմակերպությանը ներդնել DevOps-ներ՝ փոխելով ավանդական դերերն ու առաջադրանքները որպես գործընթացի մաս: Այդ նպատակով մենք թվարկեցինք OpenShift-ին անցնելիս կազմակերպության առջև ծառացած ամենակարևոր ՏՏ խնդիրները, ինչպես նաև դրանք կատարելու համար անհրաժեշտ հմտությունները: Մենք նաև տրամադրեցինք կազմակերպչական դերերի հիմնական հավաքածու, որոնք ի հայտ են գալիս միջֆունկցիոնալ DevOps թիմեր կառուցելիս, և RACI մատրից, որը նոր դերերը կապում է նոր առաջադրանքների հետ: Վերջապես, մենք քննարկեցինք, թե ինչպես OpenShift-ը և դրան կից DevOps-ը կարող են փոխել կազմակերպության կազմակերպչական կառուցվածքը, երբ այն անցնում է ավանդական հիերարխիաներից և տոմսերի համակարգերից դեպի միջֆունկցիոնալ թիմեր՝ ավելի բարձր մակարդակի դեմ առ դեմ հաղորդակցությամբ:
Source: www.habr.com
