Ma çavdêrî mirine? - Bijî çavdêrî

Ma çavdêrî mirine? - Bijî çavdêrî

Ji sala 2008-an û vir ve, pargîdaniya me di serî de bi rêveberiya binesaziyê û piştgiriya teknîkî ya dor-do-devê ji bo projeyên malperê mijûl e: Zêdetirî 400 xerîdarên me hene, ku bi qasî 15% ji e-bazirganiya rûsî ye. Li gorî vê yekê, mîmariyek pir cihêreng tê piştgirî kirin. Ger tiştek bikeve, em mecbûr in ku di nav 15 hûrdeman de wê sererast bikin. Lê ji bo ku hûn fêm bikin ku qezayek çêbûye, divê hûn projeyê bişopînin û bersivê bidin bûyeran. Çawa vê yekê bikin?

Ez di wê baweriyê de me ku di organîzekirina sîstemeke çavdêriyê ya rast de pirsgirêk heye. Ger pirsgirêk tunebûya, wê hingê axaftina min dê ji yek tezê pêk bihata: "Ji kerema xwe Prometheus + Grafana û pêvekên 1, 2, 3 saz bikin." Mixabin êdî bi vî awayî kar nake. Û pirsgirêka sereke ev e ku her kes di warê pêkhateyên nermalavê de baweriya xwe bi tiştek ku di sala 2008-an de hebû berdewam dike.

Derbarê birêxistinkirina sîstema çavdêriyê de, ez cesaretê didim ku bibêjim ku... projeyên bi çavdêriya şareza nînin. Û rewş ew qas xirab e ku heke tiştek bikeve, metirsî heye ku ew ji nedîtî ve biçe - her tişt, her kes pê ewle ye ku "her tişt tê şopandin."
Dibe ku her tişt tê şopandin. Lê çawa?

Me hemiyan rastî çîrokek wiha hat: Devokek, admînek diyar dixebite, tîmek pêşkeftinê tê ba wan û dibêje - "Em serbest hatin berdan, naha çavdêrî bikin." Monitor çi? Çawa dixebite?

OK. Em çavdêriya awayê kevnar dikin. Û ew jixwe diguhere, û derket holê ku we çavdêriya karûbarê A kir, ku bû karûbarê B, ku bi karûbarê C re têkildar dibe. Lê tîmê pêşkeftinê ji we re dibêje: "Nermalavê saz bikin, divê ew her tiştî bişopîne!"

Îcar çi hatiye guhertin? - Her tişt guherî ye!

2008 Her tişt baş e

Çend pêşdebir hene, yek server, yek serverek databasê. Her tişt ji vir diçe. Hin agahdariya me hene, em zabbix, Nagios, cacti saz dikin. Û dûv re em li ser CPU, li ser xebata dîskê û li cîhê dîskê hişyariyên zelal danîn. Di heman demê de em çend kontrolên destan jî dikin da ku pê ewle bibin ku malper bersivê dide û ferman digihîje databasê. Û ew e - em kêm-zêde parastî ne.

Ger em rêjeya xebata ku rêvebir wê hingê kir ji bo peydakirina çavdêriyê bidin ber hev, wê hingê 98% ê wê otomatîk bû: kesê ku çavdêriyê dike divê fam bike ka Zabbix çawa saz dike, meriv wê çawa saz dike û hişyariyan mîheng dike. Û 2% - ji bo kontrolên derveyî: ku malper bersivê dide û daxwazek ji databasê re dike, ku fermanên nû hatine.

Ma çavdêrî mirine? - Bijî çavdêrî

2010 Bar zêde dibe

Em dest bi mezinkirina tevneyê dikin, motorek lêgerînê lê zêde dikin. Em dixwazin piştrast bikin ku kataloga hilberê hemî hilberan dihewîne. Û ew lêgerîna hilberê dixebite. Ku databas kar dike, ku ferman têne çêkirin, ku malper ji derve bersivê dide û ji du serveran bersiv dide û bikarhêner ji malperê nayê avêtin dema ku ew ji nû ve li ser serverek din ve tê hevseng kirin, hwd. Zêdetir sazî hene.

Wekî din, sazûmana ku bi binesaziyê ve girêdayî ye hîn jî di serê rêveberê de ya herî mezin dimîne. Hîn di serê min de ramanek heye ku kesê çavdêriyê dike ew kes e ku dê zabbix saz bike û bikaribe wê mîheng bike.

Lê di heman demê de, xebat li ser pêkanîna kontrolên derveyî xuya dike, li ser afirandina komek nivîsarên lêgerînê yên nîşankerên lêgerînê, komek nivîsarên ku kontrol bikin ku lêgerîn di dema pêvajoya îndekskirinê de diguhezîne, komek nivîsarên ku kontrol dikin ka tiştên ku têne veguheztin karûbarê radestkirinê, hwd. wate ya vê çîye.

Ma çavdêrî mirine? - Bijî çavdêrî

Nîşe: Min 3 caran "komek senaryo" nivîsand. Ango berpirsiyarê çavdêriyê êdî ne ew e ku bi tenê zabbix saz dike. Ev kesek e ku dest bi kodkirinê dike. Lê hîn tiştek di hişê tîmê de neguheriye.

Lê cîhan diguhere, her ku diçe tevlihevtir dibe. Qatek virtualîzasyonê û gelek pergalên nû têne zêdekirin. Ew bi hev re dest pê dikin. Kê got "bêhna mîkroxizmetê distîne?" Lê her karûbar hîn jî wekî malperek kesane xuya dike. Em dikarin li wê vegerin û fêm bikin ku ew agahdariya pêwîst peyda dike û bi serê xwe dixebite. Û heke hûn rêveberek ku bi berdewamî beşdarî projeyek ku 5-7-10 sal in pêşve diçe ye, ev zanîn berhev dibe: astek nû xuya dike - we ew fêm kir, astek din xuya dike - we ew fêm kir ...

Ma çavdêrî mirine? - Bijî çavdêrî

Lê kêm caran kes bi projeyek 10 salan re tevdigere.

Resume Monitoringman

Bifikirin ku hûn hatine destpêkek nû ku tavilê 20 pêşdebiran kar kiriye, 15 mîkroxizmet nivîsandiye, û hûn rêveberek in ku jê re tê gotin: “CI/CD ava bikin. Ji kerema xwe ve." We CI/CD çêkiriye û ji nişkê ve hûn dibihîzin: "Ji me re zehmet e ku em bi hilberîna "kube" re bixebitin, bêyî ku fêm bikin ka dê serîlêdan çawa tê de bixebite. Di heman "kubê" de ji me re sandboxek çêbikin.
Hûn di vê kubê de sandboxek çêbikin. Ew tavilê ji we re dibêjin: "Em databasek qonaxek dixwazin ku her roj ji hilberînê tê nûve kirin, da ku em fam bikin ku ew li ser databasê dixebite, lê di heman demê de databasa hilberînê xera neke."

Tu di van hemûyan de dijî. Ji berdanê re 2 hefte mane, ji we re dibêjin: "Niha em van hemûyan bişopînin..." Yanî. çavdêriya binesaziya komê, çavdêriya mîmariya mîkroxizmetê, çavdêriya xebata bi karûbarên derveyî re…

Û hevkarên min pîlana asayî ji serê xwe derdixin û dibêjin: “Belê, li vir her tişt zelal e! Bernameyek ku dê van hemûyan bişopîne saz bikin.” Erê, erê: Prometheus + Grafana + pêvekên.
Û ew lê zêde dikin: "Du hefte we hene, piştrast bikin ku her tişt ewle ye."

Di gelek projeyên ku em dibînin de kesek ji bo şopandinê tê veqetandin. Bifikirin ku em dixwazin kesek kar bikin ku 2 hefte çavdêriyê bike, û em jê re rezûmanek binivîsin. Çi jêhatîbûna vî mirovî heye, li gorî her tiştê ku me heya niha gotiye?

  • Pêdivî ye ku ew çavdêrî û taybetmendiyên xebata binesaziya hesin fam bike.
  • Pêdivî ye ku ew hûrguliyên çavdêriya Kubernetes fam bike (û her kes dixwaze ku biçe "kube", ji ber ku hûn dikarin ji her tiştî veqetînin, veşêrin, ji ber ku rêveber dê bi yên mayî re mijûl bibe) - xwe, binesaziya wê, û fêm bike ka meriv çawa sepanan bişopîne. nav.
  • Pêdivî ye ku ew fêm bike ku karûbar bi awayên taybetî bi hevûdu re têkilî daynin, û bi taybetî bizanibe ka karûbar çawa bi hevûdu re têkilî daynin. Pir mimkun e ku meriv projeyek bibîne ku hin karûbar bi hevdemî danûstendinê dikin, ji ber ku rêyek din tune. Mînakî, paşverû bi REST, bi gRPC ve diçe servîsa katalogê, navnîşek hilberan distîne û vedigerîne. Hûn nikarin li vir bisekinin. Û bi karûbarên din re ew asynchronously dixebite. Fermanê veguhezînin karûbarê radestkirinê, nameyekê bişînin, hwd.
    We belkî berê ji van hemûyan avjenî kiribe? Û admin, ku pêdivî ye ku vê yekê bişopîne, hê bêtir tevlihev bû.
  • Pêdivî ye ku ew bikaribe bi rêkûpêk plansaz bike û plansaz bike - her ku kar her ku diçe zêdetir dibe.
  • Ji ber vê yekê divê ew ji karûbarê hatî afirandin stratejiyek biafirîne da ku fêm bike ka meriv çawa bi taybetî çavdêriya wê dike. Ew hewceyê têgihîştina mîmariya projeyê û pêşkeftina wê + têgihîştina teknolojiyên ku di pêşkeftinê de têne bikar anîn hewce dike.

Werin em dozek bi tevahî normal bi bîr bînin: hin karûbar di PHP de ne, hin karûbar di Go de ne, hin karûbar di JS de ne. Ew bi awayekî bi hev re dixebitin. Ev e ku têgîna "microservice" jê tê: gelek pergalên ferdî hene ku pêşdebir nikanin projeyê bi tevahî fam bikin. Beşek ji tîmê karûbarên di JS-ê de dinivîse ku bi serê xwe dixebitin û nizanin pergalek mayî çawa dixebite. Beşek din karûbaran di Python de dinivîse û mudaxele nake ka karûbarên din çawa li devera xwe têne veqetandin. Ya sêyemîn karûbarên nivîsandina PHP-ê an tiştek din e.
Hemî van 20 kes di 15 karûbaran de têne dabeş kirin, û tenê yek rêveber heye ku divê van hemîyan fêm bike. Rawestan! em tenê pergalê di nav 15 mîkroxizmetan de parçe dikin ji ber ku 20 kes nikarin tevahî pergalê fam bikin.

Lê divê bi rengekî were şopandin...

Encam çi ye? Wekî encamek, kesek heye ku her tiştê ku tevahiya tîmê pêşdebiran nikaribin fêm bikin tê, û di heman demê de divê ew jî zanibe û karibe ya ku me li jor destnîşan kir bike - binesaziya hardware, binesaziya Kubernetes, hwd.

Ez çi bibêjim... Houston, pirsgirêkên me hene.

Şopandina projeyek nermalava nûjen bi serê xwe projeyek nermalavê ye

Ji baweriya derewîn ku çavdêrî nermalava ye, em baweriya mûcîzeyan pêş dixin. Lê mûcîze, mixabin, çênabin. Hûn nekarin zabbix saz bikin û hêvî bikin ku her tişt bixebite. Ti wateya sazkirina Grafana û hêviya ku dê her tişt baş be tune. Pir wext dê li ser organîzekirina kontrolên xebata karûbaran û danûstendina wan bi hev re were xerc kirin, kontrolkirina ka pergalên derveyî çawa dixebitin. Bi rastî, 90% ji wextê dê ne ji bo nivîsandina senaryoyan, lê ji bo pêşxistina nermalavê were xerc kirin. Û divê ew ji hêla tîmek ku karê projeyê fam dike ve were rêve kirin.
Ger di vê rewşê de kesek were avêtin çavdêriyê, wê demê felaket çêdibe. Ya ku li her derê diqewime ev e.

Mînak, gelek servîs hene ku bi rêya Kafka bi hev re diaxivin. Ferman hat, me li ser fermanê peyamek ji Kafka re şand. Xizmetek heye ku agahdariya li ser fermanê guhdarî dike û tiştan dişîne. Xizmetek heye ku agahdariya li ser fermanê guhdarî dike û nameyek ji bikarhêner re dişîne. Û dûv re komek bêtir karûbar xuya dibin, û em dest bi tevliheviyê dikin.

Û heke hûn vê yekê jî bidin rêvebir û pêşdebiran di qonaxa ku demek kurt ji berdanê re maye, pêdivî ye ku mirov vê protokolê tevde fêm bike. Ewan. Projeyek bi vî rengî demek girîng digire, û divê ev yek di pêşveçûna pergalê de were hesibandin.
Lê pir caran, nemaze di destpêkan de, em dibînin ku çavdêrî çawa paşde tê paşve xistin. "Niha em ê Proofek Têgînê çêbikin, em ê pê re bidin destpêkirin, bila bikeve - em amade ne ku feda bikin. Paşê em ê çavdêriya hemûyan bikin.” Dema ku (an heke) proje dest bi dana drav dike, karsazî dixwaze hê bêtir taybetmendiyan lê zêde bike - ji ber ku ew dest bi xebatê kiriye, ku tê vê wateyê ku pêdivî ye ku ew bêtir were avêtin! Û hûn li wê derê ne ku hûn pêşî hewce ne ku her tiştê berê bişopînin, ku ne 1% ji demê, lê pir zêde digire. Û bi awayê, pêşdebiran dê ji bo çavdêriyê hewce bibin, û hêsantir e ku meriv bihêle ku ew li ser taybetmendiyên nû bixebitin. Wekî encamek, taybetmendiyên nû têne nivîsandin, her tişt xera dibe, û hûn di qonaxek bêdawî de ne.

Ji ber vê yekê meriv çawa projeyek ji destpêkê ve dest pê dike çavdêrî dike, û heke hûn projeyek ku divê were şopandin bistînin, lê hûn nizanin ku hûn ji ku dest pê bikin, çi bikin?

Pêşîn, hûn hewce ne ku plan bikin.

Dûrketina lîrîk: pir caran ew bi çavdêriya binesaziyê dest pê dikin. Mînakî, me Kubernetes hene. Ka em bi sazkirina Prometheus bi Grafana re dest pê bikin, pêvekên ji bo şopandina "kube" saz bikin. Ne tenê pêşdebiran, lê di heman demê de rêvebiran jî xwedan pratîka nebaş e: "Em ê vê pêvekê saz bikin, lê pêvek belkî dizane wê çawa bike." Mirov hez dike ku ji karên girîng, ne bi karên hêsan û rasterast dest pê bikin. Û çavdêriya binesaziyê hêsan e.

Pêşîn, biryar bidin ka hûn çi û çawa dixwazin çavdêriyê bikin, û dûv re amûrek hilbijêrin, ji ber ku mirovên din nikarin ji we re bifikirin. Û divê ew? Kesên din ji xwe re, li ser pergalek gerdûnî difikirin - an jî gava ku ev pêvek hate nivîsandin qet nefikirîn. Û tenê ji ber ku ev pêvek 5 hezar bikarhêner hene, nayê vê wateyê ku ew bikêr e. Dibe ku hûn ê bibin 5001-ê tenê ji ber ku berê 5000 kes li wir hebûn.

Ger hûn dest bi şopandina binesaziyê bikin û pişta serîlêdana we bersivê bide sekinandin, dê hemî bikarhêner pêwendiya bi serîlêdana mobîl winda bikin. Çewtiyek dê xuya bibe. Ew ê werin ba we û bêjin "Serlêdan nexebite, hûn li vir çi dikin?" - "Em çavdêriyê dikin." - "Heke hûn nabînin ku serîlêdan nexebite hûn çawa çavdêriyê dikin?"

  1. Ez bawer dikim ku hûn hewce ne ku hûn tam ji xala têketina bikarhêner dest bi çavdêriyê bikin. Ger bikarhêner nabîne ku serîlêdan dixebite, ew e, ew têkçûn e. Û divê pergala çavdêriyê pêşî li ser vê yekê hişyar bike.
  2. Û tenê wê demê em dikarin binesaziyê bişopînin. An jî bi paralelî bikin. Bi binesaziyê re hêsantir e - li vir em di dawiyê de dikarin zabbix saz bikin.
  3. Û naha hûn hewce ne ku biçin ser kokên serîlêdanê da ku fêm bikin ka tişt li ku ne dixebitin.

Fikra min a sereke ev e ku çavdêrî divê bi pêvajoya pêşkeftinê re paralel be. Ger hûn tîmê çavdêriyê ji bo karên din (afirandina CI/CD, sandboxing, ji ​​nû ve organîzekirina binesaziyê) bala xwe bidinê, çavdêrî dê dest pê bike û dibe ku hûn çu carî pêşkeftinê negirin (an zû an dereng hûn ê neçar bimînin ku wê rawestînin).

Her tişt li gorî asta

Bi vî awayî ez organîzekirina pergala çavdêriyê dibînim.

1) Asta serîlêdanê:

  • çavdêriya mantiqa karsaziya serîlêdanê;
  • çavdêriya metrîkên tenduristiyê yên karûbaran;
  • çavdêriya entegrasyonê.

2) Asta binesaziyê:

  • çavdêriya asta orkestrayê;
  • çavdêriya nermalava pergalê;
  • çavdêriya asta hesin.

3) Dîsa asta serîlêdanê - lê wekî hilberek endezyariyê:

  • berhevkirin û şopandina têketinên serîlêdanê;
  • APM;
  • şopandin.

4) Hişyarkirin:

  • organîzekirina pergala hişyariyê;
  • organîzekirina pergala peywirê;
  • rêxistina "bingehek zanînê" û xebata ji bo pêvajoya bûyerê.

giring: Em ne piştî, lê di cih de haydar dibin! Ne hewce ye ku meriv çavdêriyê bide destpêkirin û "bi rengekî paşê" fêr bibe ka kî dê hişyariyan bistîne. Beriya her tiştî, peywira çavdêriyê çi ye: Fêmkirina li ku derê pergalê tiştek xelet dixebite, û mirovên rast jê agahdar bikin. Ger hûn vê yekê heya dawiyê bihêlin, wê hingê mirovên rast dê zanibin ku tiştek xelet diqewime tenê bi banga "tiştek ji me re naxebite."

Layera Serlêdanê - Çavdêriya Mantiqa Karsaziyê

Li vir em li ser kontrolkirina rastiya ku serîlêdan ji bo bikarhêner dixebite diaxivin.

Divê ev ast di qonaxa pêşveçûnê de were kirin. Mînakî, Prometheusek me ya şertî heye: ew diçe servera ku kontrolê dike, xala dawîyê dikişîne, û xala dawî diçe û API-yê kontrol dike.

Gava ku pir caran jê tê xwestin ku rûpela malê bişopînin da ku pê ewle bin ku malper dixebite, bernamesaz destekek didin ku her gava ku ew hewce ne ku pê ewle bibin ku API dixebite dikare were kişandin. Û bernamenûs di vê gavê de hîn jî /api/test/helloworld digirin û dinivîsin
Tenê awayê ku hûn pê ewle bibin ku her tişt dixebite? - Na!

  • Afirandina kontrolên weha bi bingehîn peywira pêşdebiran e. Testên yekîneyê divê ji hêla bernamenûsên ku kodê dinivîsin ve bêne nivîsandin. Ji ber ku heke hûn wê ji rêveberê re bihêlin, "Gelo, li vir navnîşek protokolên API-ê ji bo hemî 25 fonksiyonan heye, ji kerema xwe her tiştî bişopînin!" - Tiştek dê çênebe.
  • Ger hûn "dinya silav" çap bikin, kes çu carî nizane ku API divê û kar dike. Pêdivî ye ku her guhertina API-ê bibe sedema guhertinek di kontrolan de.
  • Ger jixwe pirsgirêkek we heye, taybetmendiyan rawestînin û pêşdebiran veqetînin ku dê van kontrolan binivîsin, an windayan qebûl bikin, qebûl bikin ku tiştek nayê kontrol kirin û dê têk biçin.

Serişteyên Teknîkî:

  • Pê bawer bin ku serverek derveyî organîze bikin da ku kontrolan organîze bikin - divê hûn pê ewle bin ku projeya we ji cîhana derve re bigihîje.
  • Kontrolan li seranserê protokola API-ê organîze bikin, ne tenê xalên dawiya kesane.
  • Bi encamên testê re xalek prometheus-dawiyê biafirînin.

Qada serîlêdanê - çavdêriya metrîkên tenduristiyê

Naha em li ser pîvanên tenduristiya derveyî yên karûbaran diaxivin.

Me biryar da ku em hemî "destikên" serîlêdanê bi karanîna kontrolên derveyî, ku em ji pergalek çavdêriya derveyî bang dikin, çavdêrî bikin. Lê ev "destikên" in ku bikarhêner "dibîne". Em dixwazin piştrast bin ku karûbarên me bixwe dixebitin. Li vir çîrokek çêtir heye: K8s xwedan kontrolên tenduristiyê ye, da ku bi kêmanî "kube" bixwe dikare were bawer kirin ku karûbar dixebite. Lê nîvê kontrolên ku min dîtine heman çapa "silav dinya" ne. Ewan. Ji ber vê yekê ew piştî bicîhkirinê carekê dikişîne, wî bersiv da ku her tişt baş e - ew hemî. Û karûbar, heke ew API-ya xwe peyda dike, ji bo heman API-yê hejmareke mezin xalên têketinê hene, ku ew jî pêdivî ye ku were şopandin, ji ber ku em dixwazin zanibin ku ew dixebite. Û em jixwe li hundir çavdêriya wê dikin.

Meriv çawa vê yekê bi teknîkî rast bicîh tîne: her karûbar di derheqê performansa xweya heyî de xalek dawî derdixe holê, û di grafikên Grafana (an serîlêdana din) de em rewşa hemî karûbaran dibînin.

  • Pêdivî ye ku her guhertina API-ê bibe sedema guhertinek di kontrolan de.
  • Bi metrîkên tenduristiyê tavilê karûbarek nû biafirînin.
  • Rêvebirek dikare were ba pêşdebiran û bipirse "ji min re çend taybetmendiyan lê zêde bike da ku ez her tiştî fam bikim û di derheqê vê de agahdarî li pergala çavdêriya xwe zêde bikim." Lê pêşdebiran bi gelemperî bersiv didin, "Em ê du hefte beriya berdanê tiştek zêde nekin."
    Bila rêvebirên pêşveçûnê zanibin ku dê windahiyên wiha hebin, bila rêveberiya rêvebirên pêşkeftinê jî zanibin. Ji ber ku gava ku her tişt dikeve, kesek hîn jî dê bang bike û daxwaz bike ku çavdêriya "xizmeta domdar dikeve" (c)
  • Bi awayê, pêşdebiran veqetînin ku ji bo Grafana pêvekan binivîsin - ev ê ji bo rêvebiran alîkariyek baş be.

Application Layer - Şopandina Integrasyonê

Çavdêriya entegrasyonê balê dikişîne ser şopandina danûstandinên di navbera pergalên karsaziyê-krîtîk de.

Mînakî, 15 servîs hene ku bi hev re têkilî daynin. Ev êdî malperên cuda ne. Ewan. em nikarin karûbarê bi serê xwe bikişînin, /helloworld-ê bistînin û fêm bikin ku karûbar dimeşîne. Ji ber ku karûbarê webê ya fermankirinê divê agahdariya li ser fermanê ji otobusê re bişîne - ji otobusê, divê karûbarê wargehê vê peyamê bistîne û pê re bêtir bixebite. Û karûbarê belavkirina e-nameyê divê vê yekê bi rengek din pêvajoyê bike, hwd.

Li gorî vê yekê, em nikarin fêm bikin, li ser her karûbarek kesane disekinin, ku ew hemî dixebite. Ji ber ku me otobusek diyar heye ku her tişt pê re têkilî û têkilî dike.
Ji ber vê yekê, ev qonax divê qonaxa ceribandina karûbarên ji bo danûstendina bi karûbarên din re nîşan bide. Ne gengaz e ku meriv çavdêriya ragihandinê bi şopandina brokera peyamê organîze bike. Ger karûbarek ku daneyan derdixe û karûbarek ku wê distîne hebe, dema çavdêriya brokerê em ê tenê daneyên ku ji aliyek ber bi aliyekê ve difirin bibînin. Tewra ku me bi rengekî karî danûstendina van daneyan di hundurê xwe de bişopîne - ku hilberînerek diyar daneyan dişîne, kesek wê dixwîne, ev herikîna berbi Kafka berdewam dike - heke karûbarek di yek guhertoyê de peyam bişîne ev dîsa jî dê agahiyê nede me. , lê karûbarê din li hêviya vê guhertoyê nebû û jê berda. Em ê li ser vê nizanin, ji ber ku karûbar dê ji me re vebêjin ku her tişt dixebite.

Ya ku ez pêşniyar dikim ku bikim:

  • Ji bo danûstendina hevdem: xala dawî ji karûbarên têkildar re daxwaz dike. Ewan. em vê xala dawiyê digirin, skrîptek di hundurê karûbarê de dikişînin, ku diçe hemî xalan û dibêje "Ez dikarim li wir bikişînim, û li wir bikişînim, ez dikarim li wir bikişînim..."
  • Ji bo pêwendiya asynkron: peyamên hatin - xala dawiyê otobusê ji bo peyamên ceribandinê kontrol dike û rewşa pêvajoyê nîşan dide.
  • Ji bo pêwendiya asynkron: peyamên derketinê - xala dawiyê peyamên ceribandinê ji otobusê re dişîne.

Wekî ku bi gelemperî diqewime: karûbarek me heye ku daneyan davêje otobusê. Em tên ser vê xizmetê û ji we dipirsin ku hûn li ser tenduristiya wê ya entegrasyonê ji me re bibêjin. Û heke karûbar hewce bike ku li cîhek din (WebApp) peyamek hilberîne, wê hingê ew ê vê peyama testê hilberîne. Û heke em karûbarek li ser OrderProcessing bimeşînin, ew yekem tiştê ku ew dikare serbixwe bişîne diweşîne, û heke hin tiştên girêdayî hebin, wê hingê ew komek peyamên ceribandinê ji otobusê dixwîne, fêm dike ku ew dikare wan bişopîne, rapor bike û , heke hewce be, wan bêtir bişînin, û li ser vê yekê ew dibêje - her tişt baş e, ez sax im.

Pir caran em pirsa "Em çawa dikarin vê li ser daneyên şer biceribînin?" Mînakî, em behsa heman karûbarê fermankirinê dikin. Ferman ji depoya ku mal lê hatine nivîsandin re peyaman dişîne: em nikarin vê li ser daneyên şer biceribînin, ji ber ku "dê tiştên min werin nivîsandin!" Çareserî: Di destpêkê de vê testê tevde plan bikin. Di heman demê de ceribandinên yekîtiyê yên ku tinazên xwe çêdikin jî hene. Ji ber vê yekê, vê yekê di astek kûr de bikin ku we kanalek ragihandinê heye ku zirarê nade xebata karsaziyê.

Asta binesaziyê

Çavdêriya binesaziyê tiştek e ku demek dirêj wekî çavdêriya xwe tê hesibandin.

  • Çavdêriya binesaziyê dikare û divê wekî pêvajoyek cûda were destpêkirin.
  • Pêdivî ye ku hûn bi çavdêriya binesaziyê li ser projeyek xebitandinê dest pê nekin, hetta hûn bi rastî jî bixwazin. Ev êşa hemû devokan e. "Pêşî ez ê komê bişopînim, ez ê çavdêriya binesaziyê bikim" - ango. Pêşîn, ew ê çavdêriya tiştê ku li jêr e, bike, lê dê nekeve serîlêdanê. Ji ber ku serîlêdan ji bo devops tiştek nayê fêm kirin. Ew ji wî re derket, û ew fêm nake ka ew çawa dixebite. Û ew binesaziyê fam dike û pê dest pê dike. Lê na - hûn her gav hewce ne ku pêşî serîlêdanê bişopînin.
  • Li ser hejmara alerzan neçin. Ji ber tevliheviya pergalên nûjen, hişyarî bi domdarî difirin, û pêdivî ye ku hûn bi rengekî bi vê koma hişyariyan re bijîn. Û kesê gazî, ku li sed hişyariyên din mêze kir, dê biryar bide "Ez naxwazim li ser bifikirim." Divê hişyarî tenê di derbarê tiştên krîtîk de agahdar bikin.

Asta serîlêdanê wekî yekîneyek karsaziyê

Xalên sereke:

  • ELK. Ev standarda pîşesaziyê ye. Ger ji ber hin sedeman hûn têketin berhev nakin, tavilê dest bi vê yekê bikin.
  • APM. APM-yên derveyî wekî rêyek ji bo girtina bilez çavdêriya serîlêdanê (NewRelic, BlackFire, Datadog). Hûn dikarin vê tiştê demkî saz bikin da ku bi kêmanî bi rengek fêm bikin ka çi bi we re diqewime.
  • Şopandin. Di bi dehan mîkroxizmetan de, hûn neçar in ku her tiştî bişopînin, ji ber ku daxwaz êdî bi serê xwe dijî. Zêdekirina paşê pir dijwar e, ji ber vê yekê çêtir e ku meriv tavilê şopandina di pêşkeftinê de destnîşan bike - ev kar û karanîna pêşdebiran e. Heger we heta niha pêkneanîbe, pêk bînin! Binêre Jaeger/Zipkin

Hişyar kirin

  • Rêxistinkirina pergalek ragihandinê: Di şert û mercên şopandina komek tiştan de, divê ji bo şandina ragihandinan pergalek yekgirtî hebe. Hûn dikarin li Grafana. Li Rojava her kes PagerDuty bikar tîne. Divê hişyarî zelal bin (mînak ji ku hatine...). Û tê pêşniyar kirin ku kontrol bikin ku agahdarî bi tevahî têne wergirtin
  • Rêxistinkirina pergala peywirê: Divê hişyarî ji her kesî re neyê şandin (an dê her kes di nav girseyê de bertek nîşan bide, an jî dê kes bertek nîşan nede). Pêşdebiran jî pêdivî ye ku gazî bin: Bê guman qadên berpirsiyariyê diyar bikin, rêwerzên zelal bidin û tê de binivîsin ku bi rastî roja Duşem û Çarşemê bangî kê bikin, û roja Sêşem û Îniyê jî gazî kê bikin (wekî din ew ê gazî kesek jî nekin. bûyera pirsgirêkek mezin - ew ê ditirsin ku we şiyar bikin an aciz bikin: mirov bi gelemperî hez nakin ku bangî mirovên din bikin û hişyar bikin, nemaze bi şev). Û rave bikin ku daxwaza alîkariyê ne nîşana bêkêmasiyê ye ("Ez alîkariyê dipirsim, ev tê wê wateyê ku ez xebatkarek xirab im"), daxwazên alîkariyê teşwîq bikin.
  • Organîzasyona "bingehek zanînê" û xebata ji bo pêvajoya bûyerê: ji bo her bûyerek giran, divê piştî mirinê were plansaz kirin, û wekî tedbîrek demkî, divê kiryarên ku dê bûyerê çareser bikin bêne tomar kirin. Û wê bikin pratîk ku hişyariyên dubare guneh in; pêdivî ye ku ew di xebata kod an binesaziyê de bêne rast kirin.

Stack Technology

Ka em bifikirin ku stûna me wiha ye:

  • berhevkirina daneyan - Prometheus + Grafana;
  • analîza têketinê - ELK;
  • ji bo APM an Tracing - Jaeger (Zipkin).

Ma çavdêrî mirine? - Bijî çavdêrî

Hilbijartina vebijarkan ne krîtîk e. Ji ber ku heke di destpêkê de we fêm kir ku meriv çawa pergalê çavdêrî dike û planek nivîsandiye, wê hingê hûn dest bi hilbijartina amûran dikin ku li gorî daxwazên we bin. Pirs ev e ku we di rêza yekem de çavdêriya çi hilbijart. Ji ber ku dibe ku amûra ku we di destpêkê de hilbijartiye bi tevahî li gorî daxwazên we ne.

Çend xalên teknîkî yên ku ez vê dawiyê li her derê dibînim:

Prometheus di hundurê Kubernetes de tê avêtin - kê ev yek anî?! Ger koma we têk biçe, hûn ê çi bikin? Ger di hundurê we de komek tevlihev hebe, wê hingê divê di hundurê komê de celebek pergala çavdêriyê hebe, û hin jî li derve, ku dê daneyan ji hundurê komê berhev bike.

Di hundurê komê de em têketin û her tiştê din berhev dikin. Lê divê pergala çavdêriyê li derve be. Pir caran, di komek ku li hundurê Promtheus tê saz kirin de, pergalên ku kontrolên derveyî yên xebata malperê dikin jî hene. Ger têkiliyên we bi cîhana derve re dakevin û serîlêdan nexebite? Derket holê ku her tişt di hundurê de baş e, lê ew tiştan ji bikarhêneran re hêsantir nake.

vebiguherin

  • Pêşveçûna çavdêrîkirinê ne sazkirina amûran e, lê pêşkeftina hilberek nermalavê ye. 98% ji çavdêriya îroyîn kodkirin e. Kodkirina di karûbaran de, kodkirina kontrolên derveyî, kontrolkirina karûbarên derveyî, û ew hemî.
  • Wextê pêşdebirên xwe li ser çavdêriyê winda nekin: ew dikare% 30 ji xebata wan bigire, lê ew hêja ye.
  • Devops, netirsin ku hûn nikanin tiştek çavdêr bikin, ji ber ku hin tişt bi tevahî şêwazek ramanê ne. Hûn ne bernamesaz bûn, û karê çavdêriyê tam karê wan e.
  • Ger proje jixwe dimeşe û nayê şopandin (û hûn rêveber in), ji bo çavdêriyê çavkaniyan veqetînin.
  • Ger hilber jixwe di hilberînê de ye, û hûn devopek in ku jê re hate gotin ku "şopandinê saz bikin" - hewl bidin ku ji rêveberiyê re rave bikin ka min ev hemî li ser çi nivîsandiye.

Ev guhertoyek dirêjkirî ya raporê ye li konferansa Saint Highload ++.

Heke hûn bi raman û ramanên min ên li ser wê û mijarên têkildar re eleqedar dibin, wê hingê hûn dikarin li vir in kanalê bixwînin 🙂

Source: www.habr.com

Add a comment