Gava ku we karûbarek ewr heye meriv çawa xweş xew dike: serişteyên bingehîn ên mîmarî

Gava ku we karûbarek ewr heye meriv çawa xweş xew dike: serişteyên bingehîn ên mîmarîLOST ji aliyê sophiagworld

Ev gotar hin qalibên hevpar vedihewîne da ku ji endezyaran re bibe alîkar ku bi karûbarên mezin ên ku ji hêla mîlyon bikarhêneran ve têne gihîştin bixebitin. 

Di ezmûna nivîskar de, ev ne navnîşek bêkêmasî ye, lê bi rastî tesîrane şîret kirin. Ji ber vê yekê, em dest pê bikin.

Bi piştgirî hatiye wergerandin Mail.ru Cloud Solutions.

Asta yekem

Tedbîrên ku li jêr hatine rêz kirin ji bo bicîhkirinê nisbeten hêsan in lê xwedî bandorek mezin in. Ger we berê wan neceribandiye, hûn ê ji pêşkeftinên girîng şaş bimînin.

Binesaziya wekî kodê

Beşa yekem a şîretê ev e ku binesaziyê wekî kod bicîh bikin. Ev tê vê wateyê ku divê hûn rêyek bernamekirî hebe ku hûn tevahî binesaziyê bicîh bikin. Ew tevlihev xuya dike, lê em bi rastî li ser koda jêrîn diaxivin:

Sazkirina 100 makîneyên virtual

  • bi Ubuntu re
  • 2 GB RAM her yek
  • ew ê koda jêrîn hebe
  • bi van pîvanan

Hûn dikarin guheztinên binesaziya xwe bişopînin û bi karanîna kontrola guhertoyê zû li wan vegerin.

Modernîst di min de dibêje ku hûn dikarin Kubernetes / Docker bikar bînin ku hemî jorîn bikin, û ew rast e.

Wekî din, hûn dikarin otomasyonê bi karanîna Chef, Puppet an Terraform peyda bikin.

Yekbûn û Radestkirina Berdewam

Ji bo afirandina karûbarek berbiçav, girîng e ku ji bo her daxwazek kişandinê boriyek çêkirin û ceribandinê hebe. Her çend ceribandin pir hêsan be jî, ew ê bi kêmanî piştrast bike ku koda ku hûn bicîh dikin berhev dike.

Her carê di vê qonaxê de hûn bersiva pirsê didin: dê meclîsa min testan berhev bike û derbas bike, derbasdar e? Dibe ku ev wekî barek kêm xuya bike, lê ew gelek pirsgirêkan çareser dike.

Gava ku we karûbarek ewr heye meriv çawa xweş xew dike: serişteyên bingehîn ên mîmarî
Ji dîtina van tîkan xweştir tiştek tune

Ji bo vê teknolojiyê hûn dikarin Github, CircleCI an Jenkins binirxînin.

Balancers Load

Ji ber vê yekê, em dixwazin balansek barkirinê bimeşînin da ku seyrûseferê beralî bike û barkirina wekhev li ser hemî girêkan piştrast bike an jî karûbar di rewşek têkçûnê de berdewam dike:

Gava ku we karûbarek ewr heye meriv çawa xweş xew dike: serişteyên bingehîn ên mîmarî
Balansek barkirinê bi gelemperî di belavkirina seyrûseferê de karekî baş dike. Pratîka herî baş ew e ku hûn hevsengiyê zêde bikin da ku hûn yek xalek têkçûyî nemînin.

Bi gelemperî, balansên barkirinê di ewra ku hûn bikar tînin de têne mîheng kirin.

RayID, nasnameya pêwendiyê an UUID ji bo daxwaziyan

Ma we carî bi xeletiyek serîlêdanê re bi peyamek weha re rû bi rû maye: "Tiştek xelet derket. Vê nasnameyê hilînin û ji tîmê piştevaniya me re bişînin"?

Gava ku we karûbarek ewr heye meriv çawa xweş xew dike: serişteyên bingehîn ên mîmarî
Nasnameyek yekta, Nasnameya pêwendiyê, RayID, an yek ji guhertoyan, nasnameyek bêhempa ye ku dihêle hûn daxwazek li seranserê jiyana wê bişopînin. Ev dihêle hûn di têketinan de tevahiya riya daxwaznameyê bişopînin.

Gava ku we karûbarek ewr heye meriv çawa xweş xew dike: serişteyên bingehîn ên mîmarî
Bikarhêner daxwazek ji pergala A re dike, dûv re A bi B re, ku bi C re têkildar dibe, wê di X de hilîne, û dûv re daxwaz ji A re tê vegerandin.

Ger hûn ji dûr ve bi makîneyên virtual ve girêdin û hewl bidin ku riya daxwaznameyê bişopînin (û bi destan ve girêdayî bikin ka kîjan bang têne kirin), hûn ê dîn bibûna. Hebûna nasnameyek yekta jiyanê pir hêsantir dike. Ev yek ji wan tiştên herî hêsan e ku hûn dikarin bikin da ku dema ku karûbarê we mezin dibe wext xilas bike.

Asta navîn

Şêwirdariya li vir ji yên berê tevlihevtir e, lê amûrên rast peywirê hêsantir dike, ji bo pargîdaniyên piçûk û navîn jî vegerek veberhênanê peyda dike.

Têketina navendî

Pîroz be! We 100 makîneyên virtual bi cih kirine. Dotira rojê, CEO tê û ji xeletiyek ku wî dema ceribandina karûbarê wergirtiye gilî dike. Ew nasnameya têkildar a ku me li jor behs kir rapor dike, lê hûn ê neçar bin ku li têketinên 100 makîneyan bigerin da ku ya ku bûye sedema qezayê bibînin. Û pêdivî ye ku ew berî pêşkêşkirina sibê were dîtin.

Digel ku ev wekî serpêhatiyek kêfê xuya dike, çêtirîn e ku hûn pê ewle bin ku hûn xwedî kapasîteya ku hûn hemî kovarên xwe li yek cîhek bigerin heye. Min pirsgirêka navendîkirina têketinan bi karanîna fonksiyona çêkirî ya stûna ELK-ê çareser kir: ew berhevoka têketinên lêgerînê piştgirî dike. Ev ê bi rastî alîkariya çareserkirina pirsgirêka dîtina kovarek taybetî bike. Wekî bonus, hûn dikarin nexşe û tiştên din ên kêfê yên mîna wê biafirînin.

Gava ku we karûbarek ewr heye meriv çawa xweş xew dike: serişteyên bingehîn ên mîmarî
Fonksiyona stackê ya ELK

ajanên Şopandinê

Naha ku karûbarê we bi rê ve diçe, hûn hewce ne ku pê ewle bibin ku ew bi rêkûpêk dimeşe. Awayê çêtirîn ku meriv vê yekê bike ev e ku meriv çend kesan bimeşîne ajanên, ku di paralel de dixebitin û kontrol dikin ku ew dixebite û operasyonên bingehîn têne kirin.

Di vê gavê de hûn wê kontrol bikin avakirina xebitandinê baş hîs dike û baş dixebite.

Ji bo projeyên piçûk û navîn, ez Postman ji bo şopandin û belgekirina API-yan pêşniyar dikim. Lê bi gelemperî, hûn tenê dixwazin pê ewle bibin ku we rêyek heye ku hûn zanibin kengê qutbûnek çêbûye û di wextê xwe de were agahdar kirin.

Xweserî li gorî barkirinê ve girêdayî ye

Pir hêsan e. Ger daxwazên we yên karûbarê VM-ê hene û ew nêzîkê %80 karanîna bîranînê ye, hûn dikarin çavkaniyên wê zêde bikin an jî VM-yên bêtir li komê zêde bikin. Pêkanîna otomatîkî ya van operasyonan ji bo guhertinên hêza elastîk di bin barkirinê de pir xweş e. Lê divê hûn her gav baldar bin ka hûn çiqas drav xerc dikin û sînorên maqûl destnîşan dikin.

Gava ku we karûbarek ewr heye meriv çawa xweş xew dike: serişteyên bingehîn ên mîmarî
Bi piraniya karûbarên ewr re, hûn dikarin wê bi karanîna bêtir server an serverên bihêztir ve mîheng bikin.

Pergala ceribandinê

Rêbazek baş a ku hûn nûvekirinên bi ewle bişopînin ev e ku meriv saetekê ji% 1 bikarhêneran re tiştek ceribandinê bike. We helbet mekanîzmayên wiha di çalakiyê de dîtiye. Mînakî, Facebook beşên temaşevanan bi rengek cûda nîşan dide an mezinahiya fontê diguhezîne da ku bibîne ka bikarhêner guhertinan çawa dinirxînin. Ji vê re ceribandina A/B tê gotin.

Tewra berdana taybetmendiyek nû dikare wekî ceribandinek dest pê bike û dûv re were destnîşankirin ka meriv wê çawa azad bike. Di heman demê de hûn dikarin li ser bingeha fonksiyona ku di karûbarê we de dibe sedema xirabûnê, kapasîteya "bîr" an guheztina veavakirinê di firînê de digirin.

Asta pêşkeftî

Li vir serişteyên ku pêkanîna wan pir dijwar in hene. Hûn ê belkî hewceyê hin çavkaniyên din bin, ji ber vê yekê pargîdaniyek piçûk an navîn dê di rêvebirina vê yekê de dijwar be.

Daxistinên şîn-kesk

Ya ku ez jê re dibêjim awayê "Erlang"ê ye. Dema ku pargîdaniyên têlefonê derketin Erlang bi berfirehî hate bikar anîn. Softswitches dest pê kir ku ji bo rêgirtina bangên têlefonê were bikar anîn. Armanca sereke ya nermalava li ser van guheztan ew bû ku di dema nûvekirina pergalê de bangan neavêje. Erlang xwedan rêyek xweş e ku modulek nû hilîne bêyî ku ya berê têk bibe.

Ev gav bi hebûna balansek barkirinê ve girêdayî ye. Werin em bifikirin ku we guhertoya N-ya nermalava we heye, û dûv re hûn dixwazin guhertoya N+1 bicîh bikin. 

me dikaribû tenê karûbarê rawestînin û guhertoya paşîn di demek ku ji bo bikarhênerên we re dixebite derxînin û hin wextê domandinê bistînin. Lê bifikirin ku hûn hene rastî şert û mercên SLA hişk. Ji ber vê yekê, SLA 99,99% tê vê wateyê ku hûn dikarin offline biçin bi tenê her sal bi 52 hûrdeman.

Heke hûn bi rastî dixwazin ku nîşaneyên weha bi dest bixin, hûn di heman demê de du bicîhkirinê hewce ne: 

  • ya ku niha ye (N);
  • guhertoya paşîn (N + 1). 

Hûn ji balanserê barkirinê re dibêjin ku ji sedî seyrûseferê ber bi guhertoya nû (N+1) vegerîne dema ku hûn bi çalak çavdêriya paşverûyan dikin.

Gava ku we karûbarek ewr heye meriv çawa xweş xew dike: serişteyên bingehîn ên mîmarî
Li vir pêvekek N ya kesk heye ku baş dixebite. Em hewl didin ku biçin guhertoya paşîn a vê bicîhkirinê

Pêşî em ceribandinek bi rastî piçûk dişînin da ku bibînin ka bicîhkirina meya N+1 bi seyrûseferek piçûk re dixebite:

Gava ku we karûbarek ewr heye meriv çawa xweş xew dike: serişteyên bingehîn ên mîmarî
Di dawiyê de, me komek kontrolên otomatîk hene ku em di dawiyê de dimeşînin heya ku bicîhkirina me qediya. Hûn û ez pir pir baldar bin, hûn dikarin di bûyera paşveçûnek xirab de bicîhkirina N-ya xwe herheyî ji bo vegerek bilez hilînin:

Gava ku we karûbarek ewr heye meriv çawa xweş xew dike: serişteyên bingehîn ên mîmarî
Ger hûn dixwazin herin astek hîn pêşkeftî, bila her tişt di vekêşana şîn-kesk de bixweber bimeşe.

Tespîtkirina anomalî û kêmkirina otomatîk

Ji ber ku we têketinek navendî û berhevoka têketinê ya baş heye, hûn dikarin jixwe armancên bilindtir destnîşan bikin. Mînakî, bi proaktîf têkçûnan pêşbînî bikin. Fonksiyon li ser çavdêran û têketin têne şopandin û diagramên cihêreng têne çêkirin - û hûn dikarin pêşî pêşbînî bikin ka dê çi xelet derkeve:

Gava ku we karûbarek ewr heye meriv çawa xweş xew dike: serişteyên bingehîn ên mîmarî
Gava ku anomalî têne tespît kirin, hûn dest pê dikin ku hin nîşanên ku karûbar peyda dike lêkolîn bikin. Mînakî, piçek di barkirina CPU-yê de dibe ku nîşan bide ku ajokerek hişk têk diçe, di heman demê de mezinbûna daxwazan dikare destnîşan bike ku hûn hewce ne ku mezin bibin. Daneyên statîstîkî yên bi vî rengî dihêle hûn karûbarê çalak bikin.

Bi van têgihiştinan, hûn dikarin di her pîvanê de pîvandin û bi proaktîf û reaktîf taybetmendiyên makîneyan, databas, girêdan û çavkaniyên din biguhezînin.

Navê pêger!

Ger hûn karûbarek ewr bilind bikin ev navnîşa pêşînan dê ji we re gelek pirsgirêkan xilas bike.

Nivîskarê gotara orîjînal xwendevanan vedixwîne ku şîroveyên xwe bihêlin û guhertinan bikin. Gotar wekî çavkaniyek vekirî tê belav kirin, daxwaznameyên bikişîne ji hêla nivîskar ve li ser Github qebûl dike.

Din li ser mijarê çi bixwînin:

  1. Biçe û kaşên CPU
  2. Kubernetes di ruhê korsaniyê de bi şablonek ji bo pêkanîna
  3. Kanala me li dora Kubernetes di Telegram de

Source: www.habr.com

Add a comment