Kif torqod tajjeb meta jkollok servizz tal-cloud: pariri arkitettoniċi bażiċi

Kif torqod tajjeb meta jkollok servizz tal-cloud: pariri arkitettoniċi bażiċiMITLUF minn sophiagworld

Dan l-artikolu fih xi mudelli komuni biex jgħinu lill-inġiniera jaħdmu ma 'servizzi fuq skala kbira li huma aċċessati minn miljuni ta' utenti. 

Fl-esperjenza tal-awtur, din mhix lista eżawrjenti, iżda tabilħaqq effettiv parir. Allura, ejja nibdew.

Tradott bl-appoġġ Mail.ru Soluzzjonijiet Cloud.

L-ewwel livell

Il-miżuri elenkati hawn taħt huma relattivament sempliċi biex jiġu implimentati iżda għandhom impatt għoli. Jekk ma ppruvajthomx qabel, tkun sorpriż bit-titjib sinifikanti.

Infrastruttura bħala kodiċi

L-ewwel parti tal-parir hija li timplimenta l-infrastruttura bħala kodiċi. Dan ifisser li jrid ikollok mod programmatiku biex tuża l-infrastruttura kollha. Jidher ikkumplikat, iżda fil-fatt qed nitkellmu dwar il-kodiċi li ġej:

Skjerament ta' 100 magna virtwali

  • ma' Ubuntu
  • 2 GB RAM kull wieħed
  • se jkollhom il-kodiċi li ġej
  • b'dawn il-parametri

Tista 'ssegwi l-bidliet fl-infrastruttura tiegħek u malajr terġa' lura għalihom billi tuża l-kontroll tal-verżjoni.

Il-modernist fija jgħid li tista 'tuża Kubernetes/Docker biex tagħmel dak kollu ta' hawn fuq, u għandu raġun.

Barra minn hekk, tista 'tipprovdi awtomazzjoni bl-użu ta' Chef, Puppet jew Terraform.

Integrazzjoni u Kunsinna Kontinwi

Biex jinħoloq servizz skalabbli, huwa importanti li jkun hemm pipeline tal-bini u tat-test għal kull talba tal-ġibda. Anke jekk it-test huwa sempliċi ħafna, mill-inqas jiżgura li l-kodiċi li tuża jikkompila.

Kull darba f'dan l-istadju twieġeb il-mistoqsija: l-assemblaġġ tiegħi se jikkompila u jgħaddi t-testijiet, huwa validu? Dan jista 'jidher qisu bar baxx, iżda ssolvi ħafna problemi.

Kif torqod tajjeb meta jkollok servizz tal-cloud: pariri arkitettoniċi bażiċi
M'hemm xejn isbaħ milli tara dawn il-qurdien

Għal din it-teknoloġija tista' tevalwa Github, CircleCI jew Jenkins.

Load Balancers

Għalhekk, irridu nħaddmu load balancer biex nidderieġu mill-ġdid it-traffiku u niżguraw tagħbija ugwali fuq in-nodi kollha jew is-servizz ikompli f'każ ta 'falliment:

Kif torqod tajjeb meta jkollok servizz tal-cloud: pariri arkitettoniċi bażiċi
A load balancer normalment jagħmel xogħol tajjeb ta 'distribuzzjoni tat-traffiku. L-aħjar prattika hija li tibbilanċja żejjed sabiex ma jkollokx punt wieħed ta' falliment.

Tipikament, load balancers huma kkonfigurati fis-sħab li tuża.

RayID, ID ta' korrelazzjoni jew UUID għal talbiet

Qatt iltqajt ma' żball ta' applikazzjoni b'messaġġ bħal dan: "Xi ħaġa marret ħażin. Issejvja din l-id u ibgħatha lit-tim ta' appoġġ tagħna"?

Kif torqod tajjeb meta jkollok servizz tal-cloud: pariri arkitettoniċi bażiċi
Identifikatur uniku, ID ta' korrelazzjoni, RayID, jew kwalunkwe varjazzjoni, huwa identifikatur uniku li jippermettilek issegwi talba matul iċ-ċiklu tal-ħajja tagħha. Dan jippermettilek issegwi l-mogħdija kollha tat-talba fir-zkuk.

Kif torqod tajjeb meta jkollok servizz tal-cloud: pariri arkitettoniċi bażiċi
L-utent jagħmel talba lis-sistema A, imbagħad A jikkuntattja lil B, li jikkuntattja lil C, jaħżenha f'X, u mbagħad it-talba tintbagħat lura lil A

Kieku kellek tikkonnettja mill-bogħod ma 'magni virtwali u tipprova tintraċċa l-mogħdija tat-talba (u tikkorrelata manwalment liema sejħiet qed isiru), inti tmur miġnun. Li jkollok identifikatur uniku jagħmel il-ħajja ħafna aktar faċli. Din hija waħda mill-aktar affarijiet sempliċi li tista’ tagħmel biex tiffranka l-ħin hekk kif is-servizz tiegħek jikber.

Livell intermedju

Il-pariri hawnhekk huma aktar kumplessi minn dawk ta 'qabel, iżda l-għodda t-tajba jagħmlu l-kompitu aktar faċli, u jipprovdu qligħ fuq l-investiment anke għal kumpaniji żgħar u ta' daqs medju.

Logging ċentralizzat

Prosit! Int skjerat 100 magna virtwali. L-għada, is-CEO jiġi u jilmenta dwar żball li rċieva waqt li kien qed jittestja s-servizz. Jirrapporta l-ID korrispondenti li tkellimna dwarha hawn fuq, iżda jkollok tfittex permezz ta 'zkuk ta' 100 magna biex issib dik li kkawża l-ħabta. U jeħtieġ li jinstab qabel il-preżentazzjoni ta’ għada.

Filwaqt li din tinstema 'bħal avventura divertenti, huwa aħjar li tiżgura ruħek li għandek il-ħila li tfittex ir-rivisti kollha f'post wieħed. I solvut il-problema taċ-ċentralizzazzjoni taz-zkuk bl-użu tal-funzjonalità inkorporata tal-munzell ELK: jappoġġja l-ġbir ta 'zkuk li jista' jitfittex. Dan se jgħin tassew biex issolvi l-problema li ssib ġurnal speċifiku. Bħala bonus, tista 'toħloq charts u affarijiet oħra divertenti bħal dik.

Kif torqod tajjeb meta jkollok servizz tal-cloud: pariri arkitettoniċi bażiċi
Funzjonalità tal-munzell ELK

Aġenti ta' monitoraġġ

Issa li s-servizz tiegħek qiegħed jaħdem, trid tiżgura li taħdem bla xkiel. L-aħjar mod biex tagħmel dan huwa li tmexxi diversi aġenti, li jaħdmu b'mod parallel u jiċċekkjaw li jaħdem u jsiru operazzjonijiet bażiċi.

F'dan il-punt inti tiċċekkja li il-bini li jaħdem iħossu tajjeb u jaħdem tajjeb.

Għal proġetti ta 'daqs żgħir u medju, nirrakkomanda lil Postman għall-monitoraġġ u d-dokumentazzjoni tal-APIs. Iżda b'mod ġenerali, trid biss tiżgura ruħek li għandek mod kif tkun taf meta seħħet qtugħ u tiġi nnotifikat fil-ħin.

Autoscaling skond it-tagħbija

Huwa sempliċi ħafna. Jekk għandek talbiet għall-manutenzjoni ta' VM u qed toqrob 80% tal-użu tal-memorja, tista' jew iżżid ir-riżorsi tagħha jew iżżid aktar VMs mal-cluster. L-eżekuzzjoni awtomatika ta 'dawn l-operazzjonijiet hija eċċellenti għal bidliet ta' qawwa elastika taħt tagħbija. Imma dejjem għandek toqgħod attent dwar kemm tonfoq flus u tistabbilixxi limiti raġonevoli.

Kif torqod tajjeb meta jkollok servizz tal-cloud: pariri arkitettoniċi bażiċi
Bil-biċċa l-kbira tas-servizzi tas-sħab, tista 'tikkonfiguraha biex tiskala awtomatikament billi tuża aktar servers jew servers aktar b'saħħithom.

Sistema ta' esperimenti

Mod tajjeb biex jitħaddmu aġġornamenti b'mod sikur huwa li tkun tista' tittestja xi ħaġa għal 1% tal-utenti għal siegħa. Int, ovvjament, rajt mekkaniżmi bħal dawn fl-azzjoni. Pereżempju, Facebook juri lil partijiet mill-udjenza kulur differenti jew ibiddel id-daqs tat-tipa biex tara kif l-utenti jipperċepixxu l-bidliet. Dan jissejjaħ ittestjar A/B.

Anke r-rilaxx ta 'karatteristika ġdida jista' jinbeda bħala esperiment u mbagħad jiġi determinat kif tirrilaxxha. Ikollok ukoll il-kapaċità li "tiftakar" jew tibdel il-konfigurazzjoni fuq il-fly ibbażata fuq il-funzjoni li qed tikkawża degradazzjoni fis-servizz tiegħek.

Livell avvanzat

Hawn huma pariri li huma pjuttost diffiċli biex jiġu implimentati. Probabbilment ikollok bżonn ftit aktar riżorsi, għalhekk kumpanija żgħira jew ta' daqs medju ser ikollha diffiċli biex timmaniġġja dan.

Skjeramenti blu-aħdar

Dan huwa dak li jien insejjaħ il-mod "Erlang" ta 'żvolġiment. Erlang intuża ħafna meta dehru kumpaniji tat-telefon. Softswitches bdew jintużaw biex jintbagħtu t-telefonati. L-għan ewlieni tas-softwer fuq dawn is-swiċċijiet kien li ma twaqqax sejħiet waqt l-aġġornamenti tas-sistema. Erlang għandu mod sabiħ kif jgħabbi modulu ġdid mingħajr ma jikkraxxja dak preċedenti.

Dan il-pass jiddependi fuq il-preżenza ta 'load balancer. Ejja nimmaġinaw li għandek il-verżjoni N tas-softwer tiegħek, u mbagħad trid tuża l-verżjoni N+1. 

You nistgħu biss waqqaf is-servizz u roll out il-verżjoni li jmiss f'ħin li jaħdem għall-utenti tiegħek u tikseb xi ħin ta 'waqfien. Imma ejja ngħidu li għandek tassew kundizzjonijiet SLA stretti. Allura, SLA 99,99% ifisser li tista 'tmur offline biss bi 52 minuta fis-sena.

Jekk verament trid tikseb indikaturi bħal dawn, għandek bżonn żewġ skjeramenti fl-istess ħin: 

  • dak li huwa proprju issa (N);
  • verżjoni li jmiss (N+1). 

Tgħid lill-load balancer biex imexxi mill-ġdid persentaġġ tat-traffiku lejn il-verżjoni l-ġdida (N+1) waqt li timmonitorja b'mod attiv għar-rigressjonijiet.

Kif torqod tajjeb meta jkollok servizz tal-cloud: pariri arkitettoniċi bażiċi
Hawnhekk għandna skjerament N aħdar li jaħdem tajjeb. Qed nippruvaw nimxu għall-verżjoni li jmiss ta' dan l-iskjerament

L-ewwel nibagħtu test tassew żgħir biex naraw jekk l-iskjerament tagħna ta’ N+1 jaħdimx b’ammont żgħir ta’ traffiku:

Kif torqod tajjeb meta jkollok servizz tal-cloud: pariri arkitettoniċi bażiċi
Fl-aħħarnett, għandna sett ta 'kontrolli awtomatizzati li eventwalment inwettqu sakemm l-iskjerament tagħna jitlesta. Jekk int ħafna ħafna Oqgħod attent, tista' wkoll issalva l-iskjerament N tiegħek għal dejjem għal rollback malajr f'każ ta' rigressjoni ħażina:

Kif torqod tajjeb meta jkollok servizz tal-cloud: pariri arkitettoniċi bażiċi
Jekk trid tmur għal livell saħansitra aktar avvanzat, ħalli kollox fl-iskjerament blu-aħdar jaħdem awtomatikament.

Sejbien ta' anomaliji u mitigazzjoni awtomatika

Minħabba li għandek illoggjar ċentralizzat u ġbir tajjeb ta 'log, diġà tista' tistabbilixxi miri ogħla. Pereżempju, tbassar b'mod proattiv il-fallimenti. Il-funzjonijiet jiġu ssorveljati fuq il-moniters u fiz-zkuk u jinbnew diversi dijagrammi - u tista 'tbassar minn qabel x'se jmur ħażin:

Kif torqod tajjeb meta jkollok servizz tal-cloud: pariri arkitettoniċi bażiċi
Ladarba jiġu skoperti anomaliji, tibda teżamina xi wħud mill-indikazzjonijiet li jipprovdi s-servizz. Pereżempju, żieda fit-tagħbija tas-CPU tista 'tindika li hard drive qed ifalli, filwaqt li żieda fit-talbiet tista' tindika li għandek bżonn tiżdied. Din it-tip ta' data statistika tippermettilek li tagħmel is-servizz proattiv.

B'dawn l-għarfien, tista 'skala fi kwalunkwe dimensjoni u tibdel b'mod proattiv u reattiv il-karatteristiċi ta' magni, databases, konnessjonijiet u riżorsi oħra.

Dak kollox!

Din il-lista ta' prijoritajiet tiffranka ħafna problemi jekk tkun qed tgħolli servizz ta' cloud.

L-awtur tal-artiklu oriġinali jistieden lill-qarrejja biex iħallu l-kummenti tagħhom u jagħmlu bidliet. L-artikolu huwa mqassam bħala sors miftuħ, pull talbiet mill-awtur jaċċetta fuq Github.

X'iktar għandek taqra dwar is-suġġett:

  1. Mur u CPU caches
  2. Kubernetes fl-ispirtu tal-piraterija b'mudell għall-implimentazzjoni
  3. Il-kanal tagħna Madwar Kubernetes f'Telegram

Sors: www.habr.com

Żid kumment