Երկու տեխնոլոգիաների համեմատություն՝ դադարեցնելու բանավեճն այն մասին, թե որն է ավելի լավը:

Ops, ես դա նորից արեցի: Ես օգտագործեցի այս գրավիչ վերնագիրը, որպեսզի անպայման գրավեմ ձեր ուշադրությունը, կներեք դրա համար: Ես ձեր ուշադրության կարիքն ունեմ՝ մտորելու համար այս մեծ թեման ներկայացնելու համար: Ի՞նչ եք կարծում, Kubernetes-ը DevOps աշխարհում վերջին գովազդային լավագույն տեխնոլոգիան է: Դե, այսօր, ինչպես երբեք, տեխնոլոգիաները անցողիկ են, և դուք պետք է պատրաստ լինեք փոփոխությունների: Ես սիրում եմ Kubernetes-ը և ուրախ եմ կրկին խոսել դրա մասին: Դա DevOps սցենարի ամենաթեժ բառն է: Այս հոդվածը կարդալով՝ դուք կգտնեք մեծ հարցի պատասխանը.

Դա ենթակառուցվածքների կառավարման վերջնական լուծումն է, թե՞ մենք պետք է խաղադրույք կատարենք Անսերվերի վրա, որն ավելի երկար է մղում մեր սրտերը գործառնական թիմից: Հիշեք, որ NoOps-ը գալիս է:

Կարծում եմ, որ փոփոխությունները սովորական են տեխնոլոգիայի մեջ։ Մեր նախնիները ճանապարհորդում են վագոններով, իսկ մենք՝ ինքնաթիռներով։ Դա առաջընթացի մի մասն է:

Վերջին տարիներին փոքր հեղափոխություն եղավ, որը վիրտուալ մեքենաներից ավելի ու ավելի շատ հավելվածներ բերեց կոնտեյներներ՝ հիմնականում Kubernetes-ի միջոցով տեղակայելու հնարավորության շնորհիվ:

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

Ո՞րն է տարբերությունը Kubernetes-ի և առանց սերվերի միջև:

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

Դուք տրամադրում եք կոդը, վաճառողը տրամադրում է մնացածը:

Ամենատարածված առանց սերվերի իրականացումներն ունեն քաղաքացիություն չունեցող կոնտեյներներ SDK-ով, որը թույլ է տալիս ձեր կոդը ինտեգրվել համակարգին և հաշիվ-ապրանքագիր ներկայացնել ձեզ՝ հիմնվելով ռեսուրսների օգտագործման վրա: Շատ դեպքերում մենք կարող ենք ամպի վրա վերբեռնել մեր գործառույթը («FaaS», Գործում է որպես ծառայություն)և այդ գործառույթն ակտիվանում է HTTP զանգերի միջոցով: Ամպային խոշոր մատակարարներն առաջարկում են նմանատիպ ամպային փորձ.

Իհարկե, սերվերները չեն անհետացել: Դուք դրանք չեք տեսնում, քանի որ դրանք թաքցված են վաճառողի կողմից, որն օգտագործում է դրանք ծառայությունը տրամադրելու համար: Սերվերները դեռ կենդանի են, բայց դուք չեք տեսնում որևէ ram, CPU կամ սկավառակի տարածք: Դուք պարզապես կենտրոնանում եք կոդի վրա: Դուք կարող եք ձեր ջանքերը ներդնել այնտեղ, որտեղ դա իսկապես անհրաժեշտ է:

Իսկ ի՞նչ էKubernetes-ը: Մտածեք Kubernetes-ի մասին որպես շրջանակ՝ բաշխված համակարգեր գործարկելու համար, որոնք նայում են պարզ դոկերի պատկերներից: Այն հոգում է ձեր մասշտաբի պահանջները, տեղակայումը և բեռի հավասարակշռումը: Այդ բոլոր նյութերը կարելի է հեշտությամբ նկարագրել՝ օգտագործելով պարզ YAML ֆայլեր և նորից օգտագործել՝ ստեղծելով վերարտադրվող միջավայր՝ ըստ դիզայնի:

Kubernetes-ը ենթակառուցվածք է ձեր ձեռքին:

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

Kubernetes-ը, ինչպես առանց սերվերի, թույլ է տալիս բարդ ճարտարապետություն՝ sysadmin-ից ցածր ջանքերով: Նման տեխնոլոգիան փոխակերպում է դասական տեղակայումը, որը մարդկանց ինտենսիվ է, խելացի և արագ: Բարև տղաներ, NoOps-ը գալիս է:

Որո՞նք են Kubernetes-ի առավելությունները:

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

Այսպիսով, իմ առավելությունների ցանկը, օգտագործելով Kubernetes-ը առանց սերվերի հարթակների փոխարեն.

  • մեծ համատեղելիություն անցյալի հետ: Եթե ​​դուք բեռնարկղերի տեղափոխման մեջ եք, հեշտ է, եթե ոչ, դա պարզապես ձեր հավելվածի բաղադրիչների կոնտեյներավորման արժեքն է:
  • մեծ վերահսկողություն տեղի ունեցածի վերաբերյալ
  • ավելի քիչ վաճառողի կողպում: Kubernetes-ը Kubernetes է, իսկ Docker կոնտեյները պարզապես Docker կոնտեյներ է: Թղթի վրա դուք կարող եք տեղափոխել ենթակառուցվածքը մեկ սեղմումով
  • յուրաքանչյուր բաղադրիչը լավ կարգավորելու ունակություն
  • կարող է աշխատել նաև on-prem (ծրագրավորողների կամ ծայրահեղ դեպքերի համար, կամ եթե դուք պարզապես խելագար եք)
  • Ծախսերի կանխատեսում. Դուք վճարում եք ռեսուրսների համար կլաստերին, որոնք կարելի է ավելի լավ կանխատեսել, քան առանց սերվերի մոտեցման դեպքում:

Որո՞նք են Serverless-ի առավելությունները:

Kubernetes-ը մեծ առաջընթաց է sysadmin-ի ջանքերը նվազեցնելու ուղղությամբ, բայց չի հասցվել զրոյի: Սերվերազուրկ մոտեցումը, հիմնականում, խուսափում է ցանկացած sysadmin բաղադրիչից, քանի որ միակ մասը, որի մասին պետք է հոգ տանել, աղբյուրի կոդը է: Դա նման է լեգո աղյուսի հավաքածուն և դրանք միասին հավաքելուն: Յուրաքանչյուր աղյուս աշխատում է առանձին։ Պարզապես պետք է թույլ տալ, որ նրանք ճիշտ շփվեն: Հենց դա. FaaS-ի լուծումները կարող են թվալ չափազանց դժվար, որպեսզի դրանք տեղադրվեն՝ պայմանավորված նրանց մտածելակերպի փոփոխությամբ: Այս դեպքում, դուք կարող եք մոտենալ որոշ ավելի մեղմ առանց սերվերի լուծման, որն ուղղակիորեն կտեղադրի ձեր հավելվածը՝ առանց փոփոխությունների: Նման լուծման լավ օրինակ է Heroku-ն, որը վերացվում է սերվերից և ավանդական DevOps-ից՝ տրամադրելով NoOps Serverless փորձ, որը կարող է խթանել ձեր հավելվածի զարգացումը` նվազեցնելով հոսթինգի բոլոր շփումները (դուք նաև ունեք անվճար մակարդակ):

Արդյո՞ք առանց սերվերի ավարտն է Kubernetes-ը:

Նույնիսկ առանց սերվերի նորություն է թվում մեր օրերում, AWS Lambda-ի առաջին թողարկումը 2014-ին է: Այդ տարի Docker-ը առաջին քայլերն էր անում (առաջին պաշտոնական թողարկումը եղել է 2013-ին, և ես վստահ չեմ, թե երբ էր այն պատրաստ արտադրության սցենարների համար: գործարկման ժամանակը): Kubernetes-ը ծնվել է 2014 թվականին: Այսպիսով, մենք կարող ենք ասել, որ առանց սերվերի հասանելի է եղել կոնտեյների նույն ժամանակից՝ ավելի քիչ կամ ավելի: Այս տեսանկյունից, առանց սերվերը չի գալիս Kubernetes-ից հետո, և մենք չենք կարող առանց սերվերի համարել որպես կոնտեյներների փոխարինում: Դրանք ընդամենը երկու տարբեր մոտեցումներ են վեբ հավելվածում հոսթինգի մասի ներդրման համար: Միգուցե որոշ դեպքերում դուք կարող եք նախընտրել մեկը կամ մյուսը: Ե՞րբ մեկը և երբ մյուսը: Ճիշտ պատասխանը, ինչպես մեր լայքերի շատ հարցերի համար, «դա կախված է»: Խորհրդատուի և լավ խորհրդատուի միջև տարբերությունը շատ փոխլրացնող լուծումներ իմանալն է և սցենարի հիման վրա լավագույնը գտնելը:

Ինչ տանել տուն

Մենք արդեն քննարկել ենք երկու լուծման դրական կողմերը, այնուհետև կարող ենք փակել՝ ասելով, որ պարզապես իմանալով տեխնոլոգիաները՝ կարող եք գտնել լավագույն լուծումը ձեր սցենարի համար: Օգտագործելով մեծ ամպային ծառայություն, ինչպիսին է Google Cloud-ը կամ այլոց, դուք պատրաստ կլինեք իրականացնել ցանկացած լուծում: Պարզապես ժամանակն է փորձարկել այն գործիքները, որոնք նա տրամադրում է և հասկանալ դրական/դեմ:

Այս հոդվածը օգտակար համարեցի՞ք: Հետևեք ինձ (Դանիել Ֆոնտանի) Medium-ում և դիտեք DevOps-ի իմ ամենահայտնի հոդվածները ստորև: Մի մոռացեք 👏 այս հոդվածը կիսելու համար: