Ինչպես հանգիստ քնել, երբ դուք ունեք ամպային ծառայություն. հիմնական ճարտարապետական ​​խորհուրդներ

Ինչպես հանգիստ քնել, երբ դուք ունեք ամպային ծառայություն. հիմնական ճարտարապետական ​​խորհուրդներLOST by sophiagworld

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

Հեղինակի փորձով սա սպառիչ ցուցակ չէ, բայց իսկապես արդյունավետ խորհուրդ. Այսպիսով, եկեք սկսենք:

Թարգմանված է աջակցությամբ Mail.ru Cloud Solutions.

Մուտքի մակարդակ

Ստորև թվարկված միջոցառումները համեմատաբար պարզ են իրագործվում, բայց ունեն մեծ ազդեցություն: Եթե ​​նախկինում չեք փորձել դրանք, դուք կզարմանաք զգալի բարելավումներից:

Ենթակառուցվածքը որպես ծածկագիր

Խորհրդի առաջին մասը ենթակառուցվածքի ներդրումն է որպես ծածկագիր: Սա նշանակում է, որ դուք պետք է ունենաք ծրագրային եղանակ՝ ամբողջ ենթակառուցվածքը տեղակայելու համար: Դա բարդ է թվում, բայց իրականում մենք խոսում ենք հետևյալ կոդի մասին.

100 վիրտուալ մեքենաների տեղակայում

  • Ubuntu-ի հետ
  • 2 ԳԲ RAM յուրաքանչյուրը
  • նրանք կունենան հետևյալ կոդը
  • այս պարամետրերով

Դուք կարող եք հետևել ձեր ենթակառուցվածքի փոփոխություններին և արագ վերադառնալ դրանց՝ օգտագործելով տարբերակի կառավարումը:

Իմ մեջ մոդեռնիստն ասում է, որ վերը նշված բոլորը անելու համար կարող ես օգտագործել Kubernetes/Docker-ը, և նա ճիշտ է։

Բացի այդ, դուք կարող եք ավտոմատացում ապահովել՝ օգտագործելով Chef, Puppet կամ Terraform:

Շարունակական ինտեգրում և առաքում

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

Ամեն անգամ այս փուլում դուք պատասխանում եք հարցին. իմ ասամբլեան կկազմի և կանցնի թեստեր, վավերական է? Սա կարող է թվալ ցածր նշաձող, բայց լուծում է շատ խնդիրներ:

Ինչպես հանգիստ քնել, երբ դուք ունեք ամպային ծառայություն. հիմնական ճարտարապետական ​​խորհուրդներ
Այս տզերը տեսնելուց ավելի գեղեցիկ բան չկա

Այս տեխնոլոգիայի համար կարող եք գնահատել Github, CircleCI կամ Jenkins-ը:

Բեռների հավասարակշռող սարքեր

Այսպիսով, մենք ցանկանում ենք գործարկել բեռի հավասարակշռիչ՝ երթևեկությունը վերահղելու և բոլոր հանգույցների վրա հավասար բեռ ապահովելու համար, կամ ծառայությունը շարունակվում է ձախողման դեպքում.

Ինչպես հանգիստ քնել, երբ դուք ունեք ամպային ծառայություն. հիմնական ճարտարապետական ​​խորհուրդներ
Բեռի հավասարակշռիչը սովորաբար լավ աշխատանք է կատարում երթևեկության բաշխման գործում: Լավագույն պրակտիկան գերհավասարակշռելն է, որպեսզի ձախողման ոչ մի կետ չունենաս:

Սովորաբար, բեռի հավասարակշռիչները կազմաձևվում են ձեր օգտագործած ամպում:

RayID, հարաբերակցության ID կամ UUID հարցումների համար

Երբևէ բախվե՞լ եք հավելվածի սխալի նման հաղորդագրությամբ. "Ինչ որ բան այնպես չգնաց. Պահպանեք այս ID-ն և ուղարկեք այն մեր աջակցման թիմին»?

Ինչպես հանգիստ քնել, երբ դուք ունեք ամպային ծառայություն. հիմնական ճարտարապետական ​​խորհուրդներ
Եզակի նույնացուցիչը, փոխկապակցման ID-ն, RayID-ը կամ դրանցից որևէ մեկը եզակի նույնացուցիչ է, որը թույլ է տալիս հետևել հարցումին իր կյանքի ցիկլի ընթացքում: Սա թույլ է տալիս հետևել հարցման ողջ ուղին տեղեկամատյաններում:

Ինչպես հանգիստ քնել, երբ դուք ունեք ամպային ծառայություն. հիմնական ճարտարապետական ​​խորհուրդներ
Օգտագործողը հարցում է կատարում A համակարգին, այնուհետև A-ն կապում է B-ին, որը կապում է C-ին, այն պահում է X-ում և այնուհետև հարցումը վերադարձվում է A-ին:

Եթե ​​դուք հեռակա կարգով միացնեիք վիրտուալ մեքենաներին և փորձեիք հետևել հարցումների ուղին (և ձեռքով կապել, թե որ զանգերն են կատարվում), դուք կխելագարվեք: Եզակի նույնացուցիչ ունենալը կյանքը շատ ավելի հեշտ է դարձնում: Սա ամենապարզ բաներից մեկն է, որ կարող եք անել՝ ձեր ծառայության աճի հետ ժամանակ խնայելու համար:

Միջանկյալ մակարդակ

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

Կենտրոնացված անտառահատումներ

Շնորհավորում եմ: Դուք տեղակայել եք 100 վիրտուալ մեքենաներ: Հաջորդ օրը գալիս է գործադիր տնօրենը և բողոքում ծառայության փորձարկման ժամանակ ստացած սխալից։ Այն հաղորդում է համապատասխան ID-ն, որի մասին մենք խոսեցինք վերևում, բայց դուք պետք է փնտրեք 100 մեքենաների տեղեկամատյանները՝ վթարի պատճառ հանդիսացողը գտնելու համար: Եվ այն պետք է գտնել վաղվա շնորհանդեսից առաջ։

Թեև սա զվարճալի արկած է թվում, բայց ավելի լավ է համոզվել, որ դուք կարող եք փնտրել բոլոր ամսագրերը մեկ տեղում: Ես լուծեցի տեղեկամատյանների կենտրոնացման խնդիրը՝ օգտագործելով ELK stack-ի ներկառուցված ֆունկցիոնալությունը. այն աջակցում է որոնելի տեղեկամատյանների հավաքածուն: Սա իսկապես կօգնի լուծել կոնկրետ ամսագիր գտնելու խնդիրը: Որպես բոնուս, դուք կարող եք ստեղծել գծապատկերներ և նման այլ զվարճալի բաներ:

Ինչպես հանգիստ քնել, երբ դուք ունեք ամպային ծառայություն. հիմնական ճարտարապետական ​​խորհուրդներ
ELK stack ֆունկցիոնալությունը

Մոնիտորինգի գործակալներ

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

Այս պահին դուք ստուգում եք դա վազող կառուցվածքը լավ է զգում և լավ է աշխատում.

Փոքր և միջին չափի նախագծերի համար ես խորհուրդ եմ տալիս Postman-ին API-ների մոնիտորինգի և փաստաթղթավորման համար: Բայց ընդհանուր առմամբ, դուք պարզապես ցանկանում եք համոզվել, որ դուք ունեք միջոց՝ իմանալու, թե երբ է տեղի ունեցել խափանում և ժամանակին տեղեկացված լինեք:

Ավտոմատ մասշտաբում՝ կախված ծանրաբեռնվածությունից

Դա շատ պարզ է. Եթե ​​դուք ունեք VM-ի սպասարկման հարցումներ, և այն մոտենում է 80% հիշողության օգտագործմանը, կարող եք կա՛մ ավելացնել դրա ռեսուրսները, կա՛մ ավելացնել VM-ներ կլաստերին: Այս գործողությունների ավտոմատ կատարումը գերազանց է բեռի տակ առաձգական հզորության փոփոխության համար: Բայց դուք միշտ պետք է զգույշ լինեք, թե որքան գումար եք ծախսում և սահմանեք ողջամիտ սահմաններ:

Ինչպես հանգիստ քնել, երբ դուք ունեք ամպային ծառայություն. հիմնական ճարտարապետական ​​խորհուրդներ
Ամպային ծառայությունների մեծ մասի դեպքում դուք կարող եք կարգավորել այն ավտոմատ մասշտաբով՝ օգտագործելով ավելի շատ սերվերներ կամ ավելի հզոր սերվերներ:

Փորձարարական համակարգ

Թարմացումները ապահով կերպով տարածելու լավ միջոց է օգտատերերի 1%-ի համար մեկ ժամով ինչ-որ բան փորձարկելը: Դուք, իհարկե, տեսել եք նման մեխանիզմներ գործողության մեջ։ Օրինակ՝ Facebook-ը հանդիսատեսի մասերին ցույց է տալիս այլ գույն կամ փոխում է տառաչափը՝ տեսնելու, թե ինչպես են օգտվողներն ընկալում փոփոխությունները: Սա կոչվում է A/B թեստավորում:

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

Ընդլայնված մակարդակ

Ահա խորհուրդներ, որոնք բավականին դժվար է իրականացնել: Հավանաբար, ձեզ մի քիչ ավելի շատ ռեսուրսներ պետք կգան, այնպես որ փոքր կամ միջին ընկերությունները դժվարությամբ կկառավարեն դա:

Կապույտ-կանաչ տեղակայումներ

Սա այն է, ինչ ես անվանում եմ «Էրլանգ» բացման եղանակ։ Էրլանգը լայն տարածում գտավ, երբ հայտնվեցին հեռախոսային ընկերություններ։ Փափուկ անջատիչներ սկսեցին օգտագործել հեռախոսազանգերը ուղղորդելու համար: Այս անջատիչների վրա ծրագրային ապահովման հիմնական նպատակը համակարգի արդիականացման ժամանակ զանգերը չթողնելն էր: Erlang-ն ունի նոր մոդուլը բեռնելու լավ միջոց՝ առանց նախորդը խափանելու:

Այս քայլը կախված է բեռի հավասարակշռող սարքի առկայությունից: Եկեք պատկերացնենք, որ ունեք ձեր ծրագրաշարի N տարբերակը, այնուհետև ցանկանում եք տեղակայել N+1 տարբերակը: 

Դուք Մենք կարող ենք պարզապես դադարեցրեք ծառայությունը և թողարկեք հաջորդ տարբերակը այն ժամանակ, որը կաշխատի ձեր օգտատերերի համար, և ստացեք որոշակի պարապուրդ: Բայց ենթադրենք, որ դուք ունեք իրականում SLA-ի խիստ պայմաններ. Այսպիսով, SLA 99,99% նշանակում է, որ դուք կարող եք անցանց ռեժիմում անցնել միայն տարեկան 52 րոպեով:

Եթե ​​դուք իսկապես ցանկանում եք հասնել նման ցուցանիշների, ապա ձեզ հարկավոր է միաժամանակ երկու տեղակայում. 

  • այն, որը հենց հիմա է (N);
  • հաջորդ տարբերակը (N+1): 

Դուք բեռի հավասարակշռողին ասում եք, որ երթևեկի տոկոսը վերահասցեավորի դեպի նոր տարբերակը (N+1), մինչ դուք ակտիվորեն վերահսկում եք հետընթացները:

Ինչպես հանգիստ քնել, երբ դուք ունեք ամպային ծառայություն. հիմնական ճարտարապետական ​​խորհուրդներ
Այստեղ մենք ունենք կանաչ N տեղակայում, որը լավ է աշխատում: Մենք փորձում ենք անցնել այս տեղակայման հաջորդ տարբերակին

Սկզբում մենք իսկապես փոքր թեստ ենք ուղարկում՝ տեսնելու, թե արդյոք մեր N+1 տեղակայումն աշխատում է փոքր քանակությամբ տրաֆիկի հետ.

Ինչպես հանգիստ քնել, երբ դուք ունեք ամպային ծառայություն. հիմնական ճարտարապետական ​​խորհուրդներ
Վերջապես, մենք ունենք մի շարք ավտոմատացված ստուգումներ, որոնք մենք ի վերջո գործարկում ենք մինչև մեր տեղակայման ավարտը: Եթե ​​դու շատ շատ Զգույշ եղեք, դուք կարող եք նաև ընդմիշտ պահպանել ձեր N տեղակայումը վատ ռեգրեսիայի դեպքում արագ վերադարձի համար.

Ինչպես հանգիստ քնել, երբ դուք ունեք ամպային ծառայություն. հիմնական ճարտարապետական ​​խորհուրդներ
Եթե ​​ցանկանում եք գնալ ավելի առաջադեմ մակարդակի, թող ամեն ինչ ավտոմատ կերպով գործարկվի կապույտ-կանաչ տեղակայման մեջ:

Անոմալիաների հայտնաբերում և ավտոմատ մեղմացում

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

Ինչպես հանգիստ քնել, երբ դուք ունեք ամպային ծառայություն. հիմնական ճարտարապետական ​​խորհուրդներ
Հենց որ անոմալիաները հայտնաբերվեն, դուք սկսում եք ուսումնասիրել ծառայության տրամադրած որոշ հուշումներ: Օրինակ, պրոցեսորի բեռնվածության աճը կարող է ցույց տալ, որ կոշտ սկավառակը չի աշխատում, մինչդեռ հարցումների աճը կարող է ցույց տալ, որ դուք պետք է մեծացնեք: Այս տեսակի վիճակագրական տվյալները թույլ են տալիս ծառայությունն ակտիվ դարձնել:

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

Այսքանը:

Առաջնահերթությունների այս ցանկը կփրկի ձեզ բազմաթիվ խնդիրներից, եթե դուք բարձրացնում եք ամպային ծառայություն:

Բնօրինակ հոդվածի հեղինակը հրավիրում է ընթերցողներին թողնել իրենց մեկնաբանությունները և փոփոխություններ կատարել: Հոդվածը տարածվում է բաց կոդով, հեղինակի խնդրանքով ընդունում է Github-ում.

Էլ ի՞նչ կարդալ թեմայի շուրջ.

  1. Գնացեք և պրոցեսորի քեշերը
  2. Kubernetes-ը ծովահենության ոգով, իրականացման ձևանմուշով
  3. Մեր ալիքը Kubernetes-ի շուրջ Telegram-ում

Source: www.habr.com

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