HighLoad++, Evgeny Kuzovlev (EcommPay IT): çfarë të bëni kur një minutë ndalimi kushton $100,000

TĂ« gjithĂ« flasin pĂ«r proceset e zhvillimit dhe testimit, trajnimet e stafit, rritjen e motivimit, por kĂ«to procese janĂ« tĂ« pakta kur njĂ« minutĂ« pezullimi i shĂ«rbimit kushton para tĂ« mĂ«dha. ÇfarĂ« tĂ« bĂ«ni kur kryeni transaksione financiare nĂ«n njĂ« SLA tĂ« rreptĂ«? Si tĂ« rrisni besueshmĂ«rinĂ« dhe qĂ«ndrueshmĂ«rinĂ« e sistemeve tuaja, duke lĂ«nĂ« mĂ«njanĂ« zhvillimin dhe testimin?

HighLoad++, Evgeny Kuzovlev (EcommPay IT): çfarë të bëni kur një minutë ndalimi kushton $100,000

Konferenca e ardhshme HighLoad++ do tĂ« mbahet mĂ« 6 dhe 7 prill 2020 nĂ« ShĂ«n Peterburg. Detajet dhe biletat nĂ« lidhjes. 9 nĂ«ntor, ora 18:00. HighLoad++ MoskĂ« 2018, salla “Deli + Kalkuta”. Tezat dhe prezantimi.

Evgeny Kuzovlev (mĂ« pas – EK): – Miq, pĂ«rshĂ«ndetje! MĂ« quajnĂ« Kuzovlev Evgeny. UnĂ« jam nga kompania EcommPay, konkretisht nga divizioni – EcommPay IT, divizioni IT i grupit tĂ« kompanive. Sot do tĂ« flasim pĂ«r pezullimet – si t'i shmangim ato, dhe si tĂ« minimizojmĂ« pasojat e tyre nĂ«se nuk arrijmĂ« t'i pĂ«rjashtojmĂ«. Tema Ă«shtĂ« e njĂ«jtĂ«: “ÇfarĂ« tĂ« bĂ«sh kur minuta e pezullimit kushton 100,000 dollarĂ«â€? Ne, duke u pĂ«rmendur mĂ« parĂ«, kemi numra tĂ« pĂ«rkatshĂ«m.

ÇfarĂ« bĂ«n EcommPay IT?

Kush jemi ne? Pse po qëndroj këtu para jush? Pse kam të drejtë të flas me ju? Dhe për çfarë do të flasim këtu më detajisht?

HighLoad++, Evgeny Kuzovlev (EcommPay IT): çfarë të bëni kur një minutë ndalimi kushton $100,000

Grupi i kompanive EcommPay Ă«shtĂ« njĂ« ekuajer ndĂ«rkombĂ«tar. Ne procesojmĂ« pagesat nĂ« tĂ« gjithĂ« botĂ«n – nĂ« Rusi, EvropĂ«, dhe nĂ« Azi tĂ« Jugut-PerĂ«ndim. Kemi 9 zyra, 500 punonjĂ«s gjithsej, dhe rreth gjysma e tyre janĂ« specialistĂ« IT. Çdo gjĂ« qĂ« bĂ«jmĂ«, gjithçka nga e cila fitojmĂ« para, e kemi bĂ«rĂ« ne vetĂ«.

TĂ« gjitha produktet tona (dhe kemi njĂ« mori – nĂ« linjĂ«n tonĂ« tĂ« produkteve tĂ« mĂ«dha IT kemi rreth 16 komponentĂ« tĂ« ndryshĂ«m) i kemi shkruar vetĂ«; i shkruajmĂ« vetĂ«, i zhvillojmĂ« vetĂ«. Dhe nĂ« momentin aktual ne procesojmĂ« rreth njĂ« milion transaksione nĂ« ditĂ« (mijĂ«ra – ndoshta kĂ«shtu do tĂ« ishte e saktĂ« tĂ« thuash). Ne jemi njĂ« kompani mjaft e re – kemi rreth gjashtĂ« vjet.

6 vjet mĂ« parĂ« ishte njĂ« startup i tillĂ«, kur erdhi njĂ« grup rinor me biznesin e tyre. Ata u bashkuan pĂ«r njĂ« ide (nuk kishte asgjĂ« tjetĂ«r pĂ«rveç ideve), dhe ne u nisa. Si çdo startup, ne vrapuam mĂ« shpejt
 PĂ«r ne ishte mĂ« e rĂ«ndĂ«sishme shpejtĂ«sia, jo cilĂ«sia.

Në ndonjë moment u ndalëm: e kuptuam se nuk mund të vazhdojmë me atë shpejtësi dhe cilësi dhe na duhej t'i kushtonim prioritet të parë cilësisë. Në atë moment, morëm vendimin për të shkruar një platformë të re, që do të ishte e saktë, e shkallëzueshme, dhe e besueshme. Kjo platformë filloi të shkruhej (filluam të investonim, zhvillonim zhvillimin, testimin), por në një moment e kuptuam se zhvillimi, testimi nuk na lejonin të arrinim një nivel të ri cilësie shërbimi.

Ju krijoni njĂ« produkt tĂ« ri, e nxirrni atĂ« nĂ« prodhim, por gjithsesi diku diçka do tĂ« shkojĂ« keq. Dhe sot do tĂ« flasim pĂ«r se si tĂ« arrijmĂ« njĂ« nivel tĂ« ri cilĂ«sor (si arritĂ«m ne kĂ«tĂ«, pĂ«r pĂ«rvojĂ«n tonĂ«), duke lĂ«nĂ« jashtĂ« zhvillimin dhe testimin; do tĂ« flasim se çfarĂ« Ă«shtĂ« nĂ« dispozicion pĂ«r operimin – çfarĂ« mund tĂ« bĂ«jĂ« operimi vetĂ«, çfarĂ« mund tĂ« ofrojĂ« testimit pĂ«r tĂ« ndikuar nĂ« cilĂ«si.

Pezullimet. TĂ« drejtat e operimit.

Always the main cornerstone of what we are going to talk about today – downtime. A terrible word. If we have downtime – everything else is bad. We run to fix it, server admins are holding – God forbid it doesn’t fall, as it is sung in that song. This is what we will talk about today.

HighLoad++, Evgeny Kuzovlev (EcommPay IT): çfarë të bëni kur një minutë ndalimi kushton $100,000

Kur filluam të ndryshojmë qasjet tona, ne formuam 4 të drejta. Ato janë të pranishme në diapozitivët e mi:

Këto të drejta janë mjaft të thjeshta:

HighLoad++, Evgeny Kuzovlev (EcommPay IT): çfarë të bëni kur një minutë ndalimi kushton $100,000

  • Shpejt tĂ« identifikoni problemin.
  • Akoma mĂ« shpejt tĂ« eliminojmĂ« atĂ«.
  • TĂ« ndihmojmĂ« nĂ« kuptimin e shkakut (pas, pĂ«r zhvilluesit).
  • Dhe tĂ« standardizojmĂ« qasjet.

Do tĂ« kushtoj vĂ«mendje pikĂ«s № 2. Ne eliminuam problemin, por nuk e zgjidhim atĂ«. Zgjidhja Ă«shtĂ« e dyta. PĂ«r ne e para Ă«shtĂ« qĂ« pĂ«rdoruesi tĂ« jetĂ« i mbrojtur nga ky problem. Ai do tĂ« ekzistojĂ« nĂ« njĂ«farĂ« ambienti tĂ« izoluar, por ky ambient nuk do tĂ« ketĂ« asnjĂ« kontakt me tĂ«. NĂ« fakt, ne do tĂ« kalojmĂ« pĂ«rmes kĂ«tyre katĂ«r grupeve problematike (pĂ«r disa mĂ« nĂ« detaje, pĂ«r disa mĂ« pak) dhe do tĂ« tregoj se çfarĂ« pĂ«rdorim, çfarĂ« kemi pĂ«rvojĂ« pĂ«rkatĂ«se nĂ« zgjidhje.

Eliminimi i problemeve: kur ndodhin dhe çfarë të bëjmë me to?

Por do tĂ« fillojmĂ« jo nga radhitja, do tĂ« fillojmĂ« nga pika № 2 – si tĂ« shpĂ«tojmĂ« shpejt nga problemi? Ka njĂ« problem – na duhet ta eliminojmĂ«. “ÇfarĂ« tĂ« bĂ«jmĂ« me kĂ«tĂ«?” – Ă«shtĂ« pyetja kryesore. Dhe kur filluam tĂ« mendojmĂ« se si tĂ« eliminojmĂ« problemin, ne zhvilluam disa kĂ«rkesa qĂ« eliminimi i problemeve duhet tĂ« ndjekĂ«.

HighLoad++, Evgeny Kuzovlev (EcommPay IT): çfarë të bëni kur një minutë ndalimi kushton $100,000

Për të formuluar këto kërkesa, ne vendosëm të pyesim veten: «Kur na ndodhin problemi?» Dhe problemet, siç u zbuluan, ndodhin në katër raste:

HighLoad++, Evgeny Kuzovlev (EcommPay IT): çfarë të bëni kur një minutë ndalimi kushton $100,000

  • Defekt i harduerit.
  • DĂ«shtimi i shĂ«rbimeve tĂ« jashtme.
  • Ndryshimi i versionit tĂ« softuerit (ai deploy-i i famshĂ«m).
  • Rritja eksplozive e ngarkesĂ«s.

PĂ«r dy tĂ« parat nuk do tĂ« flasim. Defekti i harduerit zgjidhet mjaft lehtĂ«: ju duhet tĂ« keni gjithçka tĂ« dyfishuar. NĂ«se janĂ« disku – disku duhet tĂ« jetĂ« i organizuar nĂ« RAID, nĂ«se Ă«shtĂ« server – serveri duhet tĂ« Ă«shtĂ« i dyfishuar, nĂ«se keni infrastrukturĂ« rrjetĂ« – duhet tĂ« vendosni njĂ« kopje tĂ« dytĂ« tĂ« infrastrukturĂ«s rrjetĂ«, domethĂ«nĂ« merrni dhe dyfishoni. Dhe nĂ«se diçka dĂ«shton, kaloni nĂ« kapacitetet rezervĂ«. KĂ«tu mĂ« shumĂ« tĂ« flasĂ«sh Ă«shtĂ« e vĂ«shtirĂ«.

E dyta – Ă«shtĂ« dĂ«shtimi i shĂ«rbimeve tĂ« jashtme. PĂ«r shumicĂ«n e sistemeve, kjo nĂ« fakt nuk Ă«shtĂ« njĂ« problem, por jo pĂ«r ne. Duke qenĂ« se ne procesojmĂ« pagesat, ne jemi njĂ« agregator qĂ« qĂ«ndron midis pĂ«rdoruesit (i cili fut tĂ« dhĂ«nat e tij tĂ« kartĂ«s) dhe bankave, sistemeve tĂ« pagesĂ«s («Visa», «MasterCard», «Mira» etj.). ShĂ«rbimeve tona tĂ« jashtme (sistemet e pagesĂ«s, bankat) u pĂ«lqen tĂ« dĂ«shtojnĂ«. As ne, as ju (nĂ«se keni shĂ«rbime tĂ« tilla) nuk mund tĂ« ndikoni nĂ« kĂ«tĂ«.

ÇfarĂ« tĂ« bĂ«jmĂ« atĂ«herĂ«? Ka dy mundĂ«si. E para, nĂ«se mundeni, duhet qĂ« ta dyfishoni kĂ«tĂ« shĂ«rbim nĂ« njĂ«farĂ« mĂ«nyre. PĂ«r shembull, ne, nĂ«se Ă«shtĂ« e mundur, ridrejtojmĂ« trafikun nga njĂ« shĂ«rbim nĂ« tjetrin: nĂ«se procesojmĂ«, pĂ«r shembull, karta pĂ«rmes «Sberbank», nĂ«se «Sberbank» ka probleme – ne e transferojmĂ« trafikun [nĂ« mĂ«nyrĂ« tĂ« kushtĂ«zuar] nĂ« «Raiffeisen». E dyta, ajo qĂ« mund tĂ« bĂ«jmĂ« – Ă«shtĂ« tĂ« vĂ«rejmĂ« shumĂ« shpejt dĂ«shtimin e shĂ«rbimeve tĂ« jashtme, dhe pĂ«r kĂ«tĂ« arsye do tĂ« flasim pĂ«r shpejtĂ«sinĂ« e reagimit nĂ« pjesĂ«n tjetĂ«r tĂ« raportit.

Faktikisht, nga kĂ«to katĂ«r, ne mund tĂ« ndikojmĂ« konkretisht nĂ« ndryshimin e versioneve tĂ« softuerit – tĂ« bĂ«jmĂ« veprime qĂ« do tĂ« çojnĂ« nĂ« pĂ«rmirĂ«simin e situatĂ«s nĂ« kontekstin e deploy-eve dhe nĂ« kontekstin e rritjes eksplozive tĂ« ngarkesĂ«s. NĂ« fakt, ne e bĂ«mĂ« kĂ«tĂ«. KĂ«tu, pĂ«rsĂ«ri, njĂ« shĂ«nim i vogĂ«l


Nga këto katër probleme, disa zgjidhen menjëherë, nëse keni cloud. Nëse jeni në cloud e «Microsoft Azure», «Ozon», përdorni cloud-et tona nga «Yandex» ose «Mail», atëherë të paktën defekti i harduerit bëhet problemi i tyre dhe ju menjëherë jeni mirë në kontekstin e defektit të harduerit.

Ne jemi njĂ« kompani pak sa jashtĂ«zakonisht. TĂ« gjithĂ« flasin pĂ«r «Kubernetes», pĂ«r cloud-et – ne nuk kemi as «Kubernetes», as cloud-e. Ne megjithatĂ« kemi raftet me harduer nĂ« shumĂ« qendra tĂ« tĂ« dhĂ«nave, dhe mbi kĂ«tĂ« harduer jemi tĂ« detyruar tĂ« jetojmĂ«, jemi tĂ« detyruar tĂ« pĂ«rgjigjemi pĂ«r tĂ« gjithĂ« kĂ«tĂ«. Prandaj nĂ« kĂ«tĂ« kontekst do tĂ« flasim. Pra, pĂ«r problemet. Dy tĂ« parat i kemi lĂ«nĂ« mĂ«njanĂ«.

Ndryshimi i versionit të softuerit. Baza

Ne zhvilluesit nuk kemi qasje në prodhimin. Pse kështu? Sepse ne jemi të certifikuar sipas PCI DSS, dhe zhvilluesit tanë nuk kanë të drejtë të futen në «prod». Të gjitha, pikë. Krejtësisht. Prandaj, përgjegjësia e zhvillimit përfundon në momentin kur zhvillimi transferon ndërtimin në lëshim.

HighLoad++, Evgeny Kuzovlev (EcommPay IT): çfarë të bëni kur një minutë ndalimi kushton $100,000

Baza jonĂ« e dytĂ«, qĂ« kemi dhe qĂ« gjithashtu na ndihmon shumĂ« – Ă«shtĂ« se nuk ka njohur tĂ« veçanta tĂ« papĂ«rmendura. Shpresoj se e keni edhe ju. Sepse, nĂ«se nuk Ă«shtĂ« kĂ«shtu – do tĂ« keni probleme. Problemet do tĂ« ndodhin kur kĂ«to njohuri tĂ« veçanta tĂ« papĂ«rmendura nuk do tĂ« jenĂ« tĂ« pranishme nĂ« kohĂ«n e duhur dhe nĂ« vendin e duhur. Supozoni se njĂ« person di si tĂ« deployjĂ« njĂ« komponent tĂ« caktuar – personi nuk Ă«shtĂ«, ai Ă«shtĂ« nĂ« pushime ose Ă«shtĂ« i sĂ«murĂ« – gjithçka, keni probleme.

Dhe baza e tretĂ«, nĂ« tĂ« cilĂ«n arrivum. Ne e arritĂ«m atĂ« pĂ«rmes dhimbjes, gjakut, lotĂ«ve – ne e arritĂ«m atĂ« qĂ« çdo ndĂ«rtim ynĂ« pĂ«rmban gabime, madje edhe nĂ«se Ă«shtĂ« pa gabime. Ne pĂ«r vete e kemi vendosur: kur ne deplojmĂ« diçka, kur ne lĂ«shojmĂ« diçka nĂ« prod – ndĂ«rtimi ynĂ« ka gabime. Ne formuluam kĂ«rkesat qĂ« sistemi ynĂ« duhet tĂ« plotĂ«sojĂ«.

Kërkesat për ndërrimin e versionit të softuerit

Këto kërkesa janë tri:

HighLoad++, Evgeny Kuzovlev (EcommPay IT): çfarë të bëni kur një minutë ndalimi kushton $100,000

  • Duhet tĂ« jemi nĂ« gjendje tĂ« kthejmĂ« shpejt deploy-in.
  • Duhet tĂ« minimizojmĂ« ndikimin e njĂ« deploy-i tĂ« pasuksesshĂ«m.
  • Dhe duhet tĂ« kemi mundĂ«si tĂ« deplojmĂ« paralelisht shpejt.
    SaktĂ«sisht nĂ« kĂ«tĂ« rend! Pse? Sepse, nĂ« radhĂ« tĂ« parĂ«, nĂ« momentin e deploimit tĂ« njĂ« versioni tĂ« ri, shpejtĂ«sia nuk ka rĂ«ndĂ«si, por Ă«shtĂ« e rĂ«ndĂ«sishme, nĂ«se diçka shkon keq, tĂ« ktheheni shpejt dhe tĂ« ndikoni sa mĂ« pak. Por, nĂ«se keni njĂ« grup versionesh nĂ« prodhimin, pĂ«r tĂ« cilat Ă«shtĂ« zbuluar se ka njĂ« gabim (si bora mbi kokĂ«, nuk ka pasur deploy, por gabimi Ă«shtĂ« aty) – pĂ«r ju Ă«shtĂ« e rĂ«ndĂ«sishme shpejtĂ«sia e deploy-it pasues. ÇfarĂ« kemi bĂ«rĂ« pĂ«r tĂ« pĂ«rmbushur kĂ«to kĂ«rkesa? Ne e kemi pĂ«rdorur njĂ« metodologji tĂ« tillĂ«:

    HighLoad++, Evgeny Kuzovlev (EcommPay IT): çfarë të bëni kur një minutë ndalimi kushton $100,000

    Ajo Ă«shtĂ« mjaft e njohur, ne nuk e kemi shpikur kurrĂ« – ky Ă«shtĂ« Blue/Green deploy. ÇfarĂ« Ă«shtĂ« kjo? Ju duhet tĂ« keni njĂ« kopje pĂ«r secilĂ«n grup serverĂ«sh, ku qĂ«ndrojnĂ« aplikacionet tuaja. Kjo kopje Ă«shtĂ« "e ngrohtĂ«": nuk ka trafik, por nĂ« çdo moment ky trafik mund tĂ« dĂ«rgohet atje. Kjo kopje pĂ«rmban versionin e mĂ«parshĂ«m. NĂ« momentin e deploimit, ju e nxirrni kodin nĂ« kopjen joaktive. Pastaj, ndĂ«rroni njĂ« pjesĂ« tĂ« trafikut (ose tĂ« gjithĂ«) nĂ« versionin e ri. Pra, pĂ«r tĂ« ndryshuar rrjedhĂ«n e trafikut nga versioni i vjetĂ«r nĂ« versionin e ri, ju duhet tĂ« bĂ«ni vetĂ«m njĂ« veprim: duhet tĂ« ndryshoni balancuesin nĂ« upstream, tĂ« ndryshoni drejtimin – nga njĂ« upstream nĂ« tjetrin. Kjo Ă«shtĂ« shumĂ« e pĂ«rshtatshme dhe zgjidh problemin e ndĂ«rprerjes sĂ« shpejtĂ«, kthimit tĂ« shpejtĂ«.

    KĂ«tu Ă«shtĂ« zgjidhja e pyetjes sĂ« dytĂ« – minimizimi: ju mund tĂ« dĂ«rgoni vetĂ«m njĂ« pjesĂ« tĂ« trafikut tuaj nĂ« linjĂ«n e re, nĂ« linjĂ«n me kodin e ri (le tĂ« themi, pĂ«r shembull, 2%). Dhe kĂ«to 2% — nuk janĂ« 100%! NĂ«se ju humbni 100% tĂ« trafikut gjatĂ« njĂ« deploimi tĂ« dĂ«shtuar - kjo Ă«shtĂ« tmerrshme, nĂ«se ju humbni 2% tĂ« trafikut - kjo Ă«shtĂ« e pakĂ«ndshme, por nuk Ă«shtĂ« e tmerrshme. PĂ«r mĂ« tepĂ«r, pĂ«rdoruesit ndoshta as qĂ« do ta vĂ«rejnĂ« kĂ«tĂ«, sepse nĂ« disa raste (jo nĂ« tĂ« gjitha) njĂ« pĂ«rdorues i njĂ«jtĂ«, duke shtypur F5, ai do tĂ« kalojĂ« nĂ« njĂ« version tjetĂ«r qĂ« funksionon.

    Blue/Green deploy. Rrugëzimi

    Megjithatë, nuk është gjithçka kaq e thjeshtë "Blyu/Grin deploy"... Të gjithë komponentët tanë mund të ndahen në tri grupe:

    • ky Ă«shtĂ« frontend (faqet e pagesave qĂ« shohin klientĂ«t tanĂ«);
    • nĂ« bĂ«rthamĂ«n e pĂ«rpunimit;
    • adapter pĂ«r tĂ« punuar me sistemet e pagesave (bankat, "MasterCard", "Visa"
).

    Dhe kĂ«tu ka njĂ« nuancĂ« – nuanca qĂ«ndron nĂ« rrugĂ«timin midis linjave. NĂ«se thjesht ndĂ«rroni 100% tĂ« trafikut, nuk keni kĂ«to probleme. Por nĂ«se dĂ«shiron tĂ« kalosh 2%, fillon pyetja: "Si ta bĂ«j kĂ«tĂ«?" MĂ« e thjeshta, nĂ« mĂ«nyrĂ« tĂ« drejtpĂ«rdrejtĂ«: ju mund tĂ« pĂ«rdorni njĂ« rastim tĂ« rastĂ«sishĂ«m, Round Robin nĂ« Nginx dhe ju keni 2% – nĂ« tĂ« majtĂ«, 98% – nĂ« tĂ« djathtĂ«. Por kjo nuk Ă«shtĂ« gjithmonĂ« e pĂ«rshtatshme.

    PĂ«r ne, pĂ«r shembull, pĂ«rdoruesi ndĂ«rvepron me sistemin jo me njĂ« kĂ«rkesĂ«. Kjo Ă«shtĂ« normale: 2, 3, 4, 5 kĂ«rkesa – sistemi juaj mund tĂ« jetĂ« njĂ«lloj. Dhe nĂ«se Ă«shtĂ« e rĂ«ndĂ«sishme qĂ« tĂ« gjitha kĂ«rkesat e pĂ«rdoruesit tĂ« shkojnĂ« nĂ« tĂ« njĂ«jtĂ«n linjĂ«, nĂ« tĂ« cilĂ«n erdhi kĂ«rkesa e parĂ«, ose (pika e dytĂ«) tĂ« gjitha kĂ«rkesat e pĂ«rdoruesit tĂ« shkojnĂ« nĂ« linjĂ«n e re pas kalimit (ai mund tĂ« kishte filluar tĂ« punonte mĂ« parĂ« me sistemin, para kalimit) – atĂ«herĂ« ndarja rastĂ«sore nuk ju pĂ«rshtatet. Ndaj ka mundĂ«si tĂ« tjera:

    HighLoad++, Evgeny Kuzovlev (EcommPay IT): çfarë të bëni kur një minutë ndalimi kushton $100,000

    MundĂ«sia e parĂ«, mĂ« e thjeshtĂ« – mbi bazĂ«n e parametrave bazĂ« tĂ« klientit (IP Hash). Ju keni IP-nĂ«, dhe ju e ndani nĂ« tĂ« djathtĂ«- nĂ« tĂ« majtĂ«. KĂ«shtu, do tĂ« funksionojĂ« rasti i dytĂ« i pĂ«rshkruar nga unĂ«, kur ndodhi deploimi, pĂ«rdoruesi mund tĂ« kishte filluar tĂ« punonte me sistemin tuaj, dhe nga momenti i deploimit tĂ« gjitha kĂ«rkesat do tĂ« shkojnĂ« nĂ« linjĂ«n e re (nĂ« tĂ« njĂ«jtĂ«n, tĂ« themi).

    Nëse për ndonjë arsye kjo nuk ju përshtatet dhe ju duhet me patjetër të dërgoni kërkesat në linjën, ku erdhi kërkesa e parë, atëherë keni dy mundësi...
    Mundësia e parë: ju mund të merrni Nginx+. Atje ka një mekanizëm Sticky sessions, i cili gjatë kërkesës fillestare të përdoruesit vendos një sesion për përdoruesin dhe e lidh atë me upstream-in e caktuar. Të gjitha kërkesat e mëtejshme të përdoruesit në kuadër të jetës së sesionit do të dërgohen në të njëjtin upstream, ku u vendos sesioni.

    Kjo nuk na pĂ«rshtati, sepse ne kishim Nginx tĂ« zakonshĂ«m. Kalimi nĂ« Nginx+ – nuk Ă«shtĂ« se Ă«shtĂ« i shtrenjtĂ«, thjesht pĂ«r ne ishte disi i dhimbshĂ«m dhe jo shumĂ« i drejtĂ«. "Sticky sessions" pĂ«r ne, pĂ«r shembull, nuk funksionuan pĂ«r shkakun e thjeshtĂ« se "Sticky sessions" nuk japin mundĂ«sinĂ« e rrugĂ«timit sipas kriterit "Ose-Ose". Atje mund tĂ« caktoni se ne bĂ«jmĂ« "Sticky sessions", pĂ«r shembull, sipas IP adresĂ«s ose sipas IP adresĂ«s dhe cookie-Ă«ve ose parametrave tĂ« postĂ«s, por "Ose-Ose" - atje Ă«shtĂ« mĂ« e komplikuar.

    Prandaj, arritĂ«m nĂ« mundĂ«sinĂ« e katĂ«rt. Ne morĂ«m Nginx nĂ« "steroide" (kjo Ă«shtĂ« OpenResty) – ky Ă«shtĂ« Nginx i njĂ«jtĂ«, i cili mbĂ«shtet gjithashtu pĂ«rfshirjen e skripteve last. Ju mund tĂ« shkruani njĂ« skript last, t'ia jepni kĂ«tij "oprenresti", dhe ky skript last do tĂ« ekzekutohet kur tĂ« ardhĂ« kĂ«rkesa e pĂ«rdoruesit.

    Dhe ne shkruam, në fakt, një skript të tillë, instaluam "openresty" dhe në këtë skript kalojmë përmes 6 parametrave të ndryshëm mbi bashkimin "Ose". Në varësi të disponimit të atij ose atij parametri, ne e dimë nëse përdoruesi erdhi në një faqe ose një tjetër, në një linjë ose në një tjetër.

    Blue/Green deploy. Avantazhet dhe disavantazhet

    Sigurisht, do të kishim mundur ta bënim ndoshta pak më thjesht (të përdornim ata "Sticky sessions"), por kemi edhe një aspekt tjetër, që me ne nuk interakton vetëm një përdorues në kuadër të një procesi një transaksioni
 Por edhe me ne interaktojnë sistemet e pagesave: ne, pasi procesojmë transaksionin (duke dërguar një kërkesë në sistemin e pagesës), marrim një callback.
    Le tĂ« themi se, brenda konturit tonĂ« mund tĂ« kalojmĂ« IP-nĂ« e pĂ«rdoruesit nĂ« tĂ« gjitha kĂ«rkesat dhe nĂ« bazĂ« tĂ« IP-sĂ« sĂ« pĂ«rdoruesve tĂ« ndajmĂ«, nuk do t’i themi tĂ« njĂ«jtĂ«s "Visa": "Djem, ne jemi njĂ« kompani retro, duket qĂ« jemi ndĂ«rkombĂ«tarĂ« (nĂ« faqe dhe nĂ« Rusi)
 A mund tĂ« na dĂ«rgoni, ju lutem, IP-nĂ« e pĂ«rdoruesit si njĂ« fushĂ« shtesĂ«, protokolli juaj Ă«shtĂ« standardizuar"! E qartĂ«, ata nuk do tĂ« pranojnĂ«.

    HighLoad++, Evgeny Kuzovlev (EcommPay IT): çfarë të bëni kur një minutë ndalimi kushton $100,000

    Prandaj pĂ«r ne kjo nuk ishte e pĂ«rshtatshme – ne bĂ«mĂ« openresty. Si rezultat, me routing na doli kĂ«shtu:

    Bashkëngjitja "Blue/Green deploy" ka, përkatësisht, përfitime, për të cilat flas, dhe disavantazhe.

    Ka dy disavantazhe:

    • duhet tĂ« shqetĂ«soheni pĂ«r routing;
    • disavantazhi i dytĂ« kryesor Ă«shtĂ« shpenzimet.

    Ju nevojiten dy herë më shumë serverë, ju nevojiten dy herë më shumë burime operacionale, ju nevojitet të investoni dy herë më shumë përpjekje për të mbështetur gjith këtë kafaz.

    PĂ«r mĂ« tepĂ«r, midis pĂ«rfitimeve – ka edhe njĂ« gjĂ«, pĂ«r tĂ« cilĂ«n nuk kam folur mĂ« parĂ«: keni rezervĂ« nĂ« rastin e rritjes sĂ« ngarkesĂ«s. NĂ«se keni njĂ« rritje eksplozive tĂ« ngarkesĂ«s, nĂ«se ju sulmojnĂ« njĂ« numĂ«r i madh pĂ«rdoruesish, thjesht aktivizoni njĂ« linjĂ« tjetĂ«r nĂ« shpĂ«rndarjen 50 me 50 – dhe menjĂ«herĂ« keni dyfish serverĂ« nĂ« klasterin tuaj, derisa tĂ« zgjidhni problemin me disponueshmĂ«rinĂ« e serverĂ«ve.

    Si të bëni një deploy të shpejtë?

    Folem për si të zgjidhim problemin e minimizimit dhe rikthimit të shpejtë, por pyetja mbetet: "Si të bëjmë deploy shpejt"?

    HighLoad++, Evgeny Kuzovlev (EcommPay IT): çfarë të bëni kur një minutë ndalimi kushton $100,000

    Këtu është shkurtimisht dhe gjithçka është e thjeshtë.

    • Duhet tĂ« keni njĂ« sistem CD (Continuous Delivery) – pa tĂ« nuk ka ku tĂ« shkojĂ«. NĂ«se keni njĂ« server, mund tĂ« bĂ«ni deploy manualisht. Ne kemi rreth njĂ« mijĂ« e pesĂ«qind serverĂ« dhe duke bĂ«rĂ« manualisht njĂ« mijĂ« e pesĂ«qind, natyrisht – mund tĂ« angazhojmĂ« njĂ« departament me madhĂ«si si kjo sallĂ«, vetĂ«m pĂ«r tĂ« bĂ«rĂ« deploy.
    • Deploy duhet tĂ« jetĂ« paralel. NĂ«se deploy Ă«shtĂ« sekondar, atĂ«herĂ« gjithçka Ă«shtĂ« keq. NjĂ« server – Ă«shtĂ« nĂ« rregull, njĂ« mijĂ« e pesĂ«qind serverĂ« do t’i bĂ«ni deploy gjithĂ« ditĂ«n.
    • PĂ«rsĂ«ri, pĂ«r tĂ« pĂ«rshpejtuar, kjo Ă«shtĂ« ndoshta e tepĂ«rt. GjatĂ« deploy-it zakonisht bĂ«het ndĂ«rtimi i projektit. Keni njĂ« projekt web, keni njĂ« pjesĂ« frontend (e bĂ«ni webpack, bĂ«ni npm build – diçka e tillĂ«), dhe ky proces Ă«shtĂ« zakonisht i shkurtĂ«r – rreth 5 minuta, por kĂ«to 5 minuta mund tĂ« jenĂ« kritike. Prandaj ne, pĂ«r shembull, nuk e bĂ«jmĂ« kĂ«shtu: ato 5 minuta i heqim, ne bĂ«jmĂ« deploy tĂ« artefakteve.

      ÇfarĂ« Ă«shtĂ« njĂ« artefakt? Artefakti Ă«shtĂ« ndĂ«rtimi i pĂ«rfunduar, nĂ« tĂ« cilin Ă«shtĂ« bĂ«rĂ« gjithĂ« procesi i ndĂ«rtimit. Ky artefakt e ruajmĂ« nĂ« njĂ« depo artefaktesh. Ne kemi pĂ«rdorur dy depo tĂ« tilla nĂ« kohĂ«n tonĂ« – ishte Nexus dhe tani jFrog Artifactory). "Nexus" e kemi pĂ«rdorur fillimisht sepse filluam tĂ« praktikojmĂ« kĂ«tĂ« qasje nĂ« aplikacionet java (ai ishte i pĂ«rshtatshĂ«m pĂ«r tĂ«). Pastaj aty vendosĂ«m disa aplikacione qĂ« ishin shkruar nĂ« PHP; dhe "Nexus" tashmĂ« nuk ishte i pĂ«rshtatshĂ«m, prandaj zgjodhĂ«m jFrog Artifactory, i cili Ă«shtĂ« nĂ« gjendje tĂ« ruajĂ« praktikisht gjithçka. ArritĂ«m madje nĂ« atĂ« pikĂ«, sa nĂ« kĂ«tĂ« depo artefaktesh ruajmĂ« paketat tona binare, tĂ« cilat i ndĂ«rtojmĂ« pĂ«r serverĂ«t.

    Rritje eksplozive e ngarkesës

    Folem pĂ«r ndĂ«rrimin e versionit tĂ« softuerit. E ardhshmja qĂ« kemi Ă«shtĂ« njĂ« rritje eksplozive e ngarkesĂ«s. KĂ«tu ndoshta e kuptoj nĂ«n rritje eksplozive tĂ« ngarkesĂ«s njĂ« gjĂ« qĂ« nuk Ă«shtĂ« plotĂ«sisht e saktë 

    Kemi shkruar njĂ« sistem tĂ« ri – ai Ă«shtĂ« me shĂ«rbim, modern dhe i bukur, gjithandej ka punonjĂ«s, gjithandej ka radhĂ«, gjithandej ka asinkronitet. Dhe nĂ« kĂ«to sisteme tĂ« dhĂ«nat mund tĂ« kalojnĂ« nĂ« rrugĂ« tĂ« ndryshme. PĂ«r transaksionin e parĂ« mund tĂ« pĂ«rdoren punonjĂ«sit 1, 3, 10; pĂ«r transaksionin e dytĂ« – 2, 4, 5. Dhe sot, pĂ«r shembull, nĂ« mĂ«ngjes keni njĂ« rrjedhĂ« tĂ« tĂ« dhĂ«nave qĂ« aktivizon tre punonjĂ«sit e parĂ«, ndĂ«rsa nĂ« mbrĂ«mje papritur ndryshon dhe gjithçka aktivizon tre punonjĂ«s tĂ« tjerĂ«.

    Dhe këtu del se ju nevojitet të skaloni punonjësit në një mënyrë, ju nevojitet të skaloni shërbimet tuaja, por pa lejuar zbardhjen e burimeve.

    HighLoad++, Evgeny Kuzovlev (EcommPay IT): çfarë të bëni kur një minutë ndalimi kushton $100,000

    Ne definuam kĂ«rkesat pĂ«r veten. KĂ«to kĂ«rkesa janĂ« mjaft tĂ« thjeshta: qĂ« tĂ« ketĂ« zbuluar shĂ«rbim, parametrizim – gjithçka standarde pĂ«r ndĂ«rtimin e sistemeve tĂ« tilla tĂ« shkallĂ«zuara, pĂ«rveç njĂ« pike – amortizimi i burimeve. Ne thamĂ« se nuk jemi tĂ« gatshĂ«m tĂ« amortizojmĂ« burimet, pĂ«r tĂ« lĂ«nĂ« serverĂ«t qĂ« tĂ« ngrohin ajrin. MorĂ«m "Consul", morĂ«m "Nomad", i cili menaxhon punonjĂ«sit tanĂ«.

    Pse pĂ«r ne Ă«shtĂ« njĂ« problem? Le tĂ« kthehemi pak prapa. Tani na mbĂ«shtetet rreth 70 sisteme pagese. NĂ« mĂ«ngjes, trafiku kalon pĂ«rmes "Sberbank", pastaj "Sberbank" ka rĂ«nĂ«, pĂ«r shembull, dhe ne e kalojmĂ« nĂ« njĂ« sistem tjetĂ«r pagese. Kishim 100 punĂ«torĂ« pĂ«rpara "Sberbank", dhe pas kĂ«saj duhet tĂ« rrisim menjĂ«herĂ« 100 punĂ«torĂ« pĂ«r sistemin tjetĂ«r tĂ« pagesĂ«s. Dhe gjithçka ka dĂ«shirĂ« tĂ« ndodhĂ« pa pjesĂ«marrje njerĂ«zore. Sepse, nĂ«se ka pjesĂ«marrje njerĂ«zore – njĂ« inxhinier duhet tĂ« ulet 24/7 dhe tĂ« merret vetĂ«m me kĂ«tĂ«, sepse dĂ«shtime tĂ« tilla ndodhin rregullisht kur ke 70 sisteme prapa teje.

    Prandaj ne shikojmĂ« nĂ« "Nomad", i cili ka njĂ« IP tĂ« hapur dhe shkruam gjĂ«rĂ«n tonĂ« Scale-Nomad – ScaleNo, e cila bĂ«n mĂ« ose mĂ« pak gjĂ«ra tĂ« tilla: monitoron rritjen e radhĂ«s dhe zvogĂ«lon ose rrit numrin e punĂ«torĂ«ve nĂ« varĂ«si tĂ« dinamikĂ«s sĂ« ndryshimit tĂ« radhĂ«s. Kur e pĂ«rfunduam, menduam: "Ndoshta ta hapim kĂ«tĂ«?" Pastaj e shikuam atĂ« – Ă«shtĂ« e thjeshtĂ« si dy qindarka.

    PĂ«r momentin nuk e kemi hapur, por nĂ«se ndoshta pas prezantimit tuaj, pas kuptimit se keni nevojĂ« pĂ«r njĂ« gjĂ« tĂ« tillĂ«, do tĂ« keni nevojĂ« pĂ«r tĂ«, nĂ« slajdin e fundit janĂ« kontaktet e mia – mĂ« shkruani, ju lutem. NĂ«se mbledhim tĂ« paktĂ«n 3-5 persona – ne do ta hapim atĂ«.

    HighLoad++, Evgeny Kuzovlev (EcommPay IT): çfarë të bëni kur një minutë ndalimi kushton $100,000

    Si funksionon kjo? Le tĂ« shohim! NĂ« mĂ«nyrĂ« tĂ« shpejtĂ«: nĂ« anĂ«n e majtĂ« Ă«shtĂ« njĂ« pjesĂ« e monitorimit tonĂ«: kjo Ă«shtĂ« njĂ« linjĂ«, nĂ« krye – koha e pĂ«rpunimit tĂ« ngjarjeve, nĂ« mes – numri i transaksioneve, nĂ« fund – numri i punĂ«torĂ«ve.

    NĂ«se shikoni, nĂ« kĂ«tĂ« pamje ka njĂ« dĂ«shtim. NĂ« grafikĂ«n e sipĂ«rme, njĂ« nga grafikĂ«t dĂ«shtoi pĂ«r 45 sekonda – njĂ« nga sistemet e pagesave ra. MenjĂ«herĂ« u paraqit trafiku pĂ«r 2 minuta dhe filloi rritja e radhĂ«s nĂ« njĂ« sistem tjetĂ«r pagese, ku nuk kishte punĂ«torĂ« (ne nuk po shfrytĂ«zonim burimet – pĂ«rkundrazi, po shfrytĂ«zonim burimin nĂ« mĂ«nyrĂ« tĂ« saktĂ«). Nuk donim tĂ« ngroheshim – aty ishte njĂ« numĂ«r minimal, rreth 5-10 punĂ«torĂ«, por ata nuk e pĂ«rballuan.

    NĂ« grafikĂ«n e fundit duket "kumbari", i cili tregon se "Sskaleno" e ngriti kĂ«tĂ« numĂ«r dyfish. Dhe pastaj, kur grafiku paksa u ul, ai e zvogĂ«loi pak – numri i punĂ«torĂ«ve u ndryshua nĂ« mĂ«nyrĂ« automatike. KĂ«shtu funksionon kjo gjĂ«. Diskutuam mbi pikĂ«n e dytĂ« – "Si tĂ« shpĂ«tojmĂ« shpejt nga shkaktarĂ«t?"

    Monitorimi. Si të identifikojmë shpejt problemin?

    Tani pika e parĂ« – "Si tĂ« identifikojmĂ« shpejt problemin?" Monitorimi! Ne duhet tĂ« kuptojmĂ« shpejt disa gjĂ«ra. Cilat gjĂ«ra duhet tĂ« kuptojmĂ« shpejt?

    HighLoad++, Evgeny Kuzovlev (EcommPay IT): çfarë të bëni kur një minutë ndalimi kushton $100,000

    Tre gjëra!

    • Ne duhet tĂ« kuptojmĂ« shpejt dhe nĂ« mĂ«nyrĂ« tĂ« qartĂ« funksionimin e burimeve tona.
    • Ne duhet tĂ« kuptojmĂ« shpejt dĂ«shtimet, tĂ« monitorojmĂ« funksionimin e sistemeve qĂ« janĂ« tĂ« jashtme pĂ«r ne.
    • Pika e tretĂ« – identifikimi i gabimeve logjike. Kjo Ă«shtĂ« kur sistemi funksionon pĂ«r ju, sipas tĂ« gjitha treguesve gjithçka Ă«shtĂ« nĂ« rregull, por ndodh diçka jo siç duhet.

    Këtu ndoshta nuk do të them shumë gjëra interesante. Do të jem kapiteni i Shkallës. Ne kërkuam se çfarë ka në treg. Na rezultoi një "zoo e gëzueshme". Këtu është zoo e tillë që kemi tani:

    HighLoad++, Evgeny Kuzovlev (EcommPay IT): çfarë të bëni kur një minutë ndalimi kushton $100,000

    Ne pĂ«rdorim "Zabbix" pĂ«r monitorimin e "harduerit", pĂ«r monitorimin e treguesve kryesorĂ« tĂ« serverĂ«ve. "Okmeter" e pĂ«rdorim pĂ«r bazat e tĂ« dhĂ«nave. "Grafana" dhe "Prometheus" i pĂ«rdorim pĂ«r tĂ« gjitha treguesit e tjerĂ«, qĂ« nuk i pĂ«rputhen dy tĂ« parĂ«ve, dhe njĂ« pjesĂ« – me "GrafanĂ«n" dhe "Prometheusin", njĂ« pjesĂ« – "Grafana" me "Influx" dhe Telegraf.

    NjĂ« vit mĂ« parĂ« ne donim tĂ« pĂ«rdornim New Relic. NjĂ« gjĂ« e shkĂ«lqyer, ajo di çdo gjĂ«. Por sa mĂ« shumĂ« di, aq mĂ« e shtrenjtĂ« Ă«shtĂ«. Kur u rritĂ«m nĂ« 1,500 serverĂ«, na erdhi njĂ« shitĂ«s dhe tha: "Le tĂ« nĂ«nshkruajmĂ« njĂ« marrĂ«veshje pĂ«r vitin tjetĂ«r". Ne shikuam çmimin dhe u thamĂ« se jo, nuk do ta bĂ«jmĂ« atĂ«. Tani po heqim dorĂ« nga "New Relic", kemi rreth 15 serverĂ« qĂ« kanĂ« mbetur nĂ«n monitorimin e "New Relic". Çmimi doli tĂ« ishte krejtĂ«sisht i çmendur.

    Dhe ka njĂ« mjet qĂ« ne e realizuam vetĂ« – Ă«shtĂ« Debugger. Fillimisht e quajtĂ«m "Bagger", por pastaj na kaloi njĂ« mĂ«sues anglishte dhe qeshi shumĂ«, dhe e ndryshuam emrin nĂ« "Debugger". ÇfarĂ« Ă«shtĂ« kjo? Ky Ă«shtĂ« njĂ« instrument, i cili nĂ« fakt nĂ« 15-30 sekonda nĂ« çdo komponent, si "kutia e zezĂ«" e sistemit, ekzekuton teste pĂ«r funksionimin e pĂ«rgjithshĂ«m tĂ« komponentĂ«s.

    PĂ«r shembull, nĂ«se Ă«shtĂ« njĂ« faqe e jashtme (faqja e pagesĂ«s) – thjesht e hap dhe sheh si duhet tĂ« duket. NĂ«se Ă«shtĂ« procesimi, ai dĂ«rgon njĂ« "transak" testues – sheh qĂ« kjo "transak" Ă«shtĂ« dorĂ«zuar. NĂ«se Ă«shtĂ« lidhja me sistemet e pagesĂ«s – ne pĂ«rkatĂ«sisht dĂ«rgojmĂ« njĂ« kĂ«rkesĂ« testuese, ku mundemi, dhe shohim qĂ« gjithçka Ă«shtĂ« mirĂ«.

    Cilat janë treguesit e rëndësishëm për monitorim?

    ÇfarĂ« monitorojmĂ« kryesisht? Cilat tregues janĂ« tĂ« rĂ«ndĂ«sishĂ«m pĂ«r ne?

    HighLoad++, Evgeny Kuzovlev (EcommPay IT): çfarë të bëni kur një minutë ndalimi kushton $100,000

    • Koha e pĂ«rgjigjes / RPS nĂ« fronte - Ă«shtĂ« njĂ« tregues shumĂ« i rĂ«ndĂ«sishĂ«m. Ai tregon menjĂ«herĂ« nĂ«se diçka nuk shkon si duhet.
    • Numri i mesazheve tĂ« procesuar nĂ« tĂ« gjitha radhĂ«t.
    • Numri i punĂ«torĂ«ve.
    • Treguesit kryesorĂ« tĂ« saktĂ«sisĂ«.

    Pika e fundit - është treguesi 'biznesor'. Nëse dëshironi të monitoroni të njëjtin informacion, duhet të përcaktoni një deri në dy tregues që janë thelbësorë për ju. Për ne, ky tregues është kalueshmëria (raporti i numrit të transaksioneve të suksesshme ndaj totalit të fluksit të transaksioneve). Nëse ndodhin ndryshime në intervale prej 5-10-15 minutash - do të thotë se kemi probleme (nëse ndodhin ndryshime të rëndësishme).

    Si duket kjo për ne - shembulli i një nga bordet tona:

    HighLoad++, Evgeny Kuzovlev (EcommPay IT): çfarë të bëni kur një minutë ndalimi kushton $100,000

    Në anën e majtë - 6 grafikë, përkatësisht në lidhje me linjat - numri i punëtorëve dhe numri i mesazheve në radhë. Në anën e djathtë - RPS, RTS. Në fund - ai tregues 'biznesor'. Dhe në treguesin 'biznesor' ne menjëherë shohim se diçka nuk po shkon mirë në dy grafikët e mesëm... Kjo është ndryshe, sistemi i radhës që qëndron prapa nesh ra.

    E dyta, që na duhej të bënim - ishte të monitoronim rënien e sistemeve të pagesave të jashtme. Këtu morëm OpenTracing - mekanizmi, standardi, paradigma që lejon të monitorosh sistemet e shpërndara; dhe e kemi modifikuar pak. Parimi standard i OpenTracing thotë se ne ndërtojmë një gjurmim për secilën kërkesë të veçantë. Kështu që për ne nuk ishte e nevojshme, dhe e kemi kthyer në një gjurmim të përbashkët, agregues. Krijuam një mjet që na lejon të ndjekim shpejtësinë e sistemeve që qëndrojnë pas nesh.

    HighLoad++, Evgeny Kuzovlev (EcommPay IT): çfarë të bëni kur një minutë ndalimi kushton $100,000

    Grafiku na tregon se një nga sistemet e pagesave filloi të përgjigjet pas 3 sekondash - kemi ndonjë problem. Në të njëjtën kohë, ky mjet reagon kur problemet fillojnë, në një interval prej 20-30 sekondash.

    Dhe klasa e tretë e gabimeve të monitorimit që ekziston - është monitorimi logjik.

    Sinqerisht, nuk e dija çfarë të vizatoja në këtë slaid, sepse kërkuam gjatë në treg për atë që do të na përshtatej. Nuk gjetëm asgjë, prandaj na duhej të bënim vetë.

    HighLoad++, Evgeny Kuzovlev (EcommPay IT): çfarë të bëni kur një minutë ndalimi kushton $100,000

    ÇfarĂ« kuptoj me monitorimin logjik? Imagjinoni se krijoni njĂ« sistem pĂ«r veten tuaj (pĂ«r shembull, njĂ« klon tĂ« 'Tinderit'); e keni realizuar dhe e keni lançuar. Menaxheri i suksesshĂ«m Vasya Pupkin e instalon nĂ« telefonin e tij, sheh njĂ« vajzĂ«, e like-on
 por like-i shkon tek roji Mikhaili nga i njĂ«jti qendĂ«r biznesi. Menaxheri zbret poshtĂ«, dhe pastaj habitĂ«t: 'Pse ky roji Mikhail mĂ« buzĂ«qesh kaq shumĂ«'?

    Në situata të tilla... Për ne kjo situatë tingëllon disi ndryshe, sepse (siç kam shkruar) është një humbje reputacioni, që qoftë drejtpërdrejt çon në humbje financiare. Në rastin tonë, situata është e kundërt: ne mund të pësojmë humbje financiare të drejtpërdrejta - për shembull, nëse e kemi kryer një transaksion si të suksesshëm, por ishte dështim (ose anasjelltas). Duhej të shkruaja një mjet të vetin, që monitoron numrin e transaksioneve të suksesshme në dinamikë mbi një interval kohor. Nuk gjetëm asgjë në treg! Kjo është pikërisht ideja që doja të shprehja. Për zgjidhjen e këtij lloji problemesh, në treg nuk ka asgjë.

    Kjo ishte për pyetjen se si të identifikoni shpejt problemin.

    Si të përcaktoni shkaqet e depolimit

    Grupi i tretë i detyrave që ne zgjidhim - është pasi kemi identifikuar problemin, pasi e kemi eliminur, do të ishte mirë të kuptonim shkakun për zhvillimin, testimin dhe të bëjmë diçka në lidhje me këtë. Prandaj, na nevojitet të studiojmë, të ngremë logjet.

    HighLoad++, Evgeny Kuzovlev (EcommPay IT): çfarë të bëni kur një minutë ndalimi kushton $100,000

    Nëse flasim për logjet (shkaku kryesor - logjet), pjesa më e madhe e logjeve tona janë në ELK Stack - pothuajse të gjithë e kanë kështu. Disa ndoshta jo në ELK, por nëse shkruani logje me gigabajt, përherë do të arrini te ELK. Ne i shkruajmë ato me terabajt.

    HighLoad++, Evgeny Kuzovlev (EcommPay IT): çfarë të bëni kur një minutë ndalimi kushton $100,000

    Këtu ka një problem. Ne e rregulluam, e korrigjuam gabimin për përdoruesin, filluam të thellohemi në atë që ndodhi, hyjmë në 'Kibana', shkruajmë id-në e transaksionit dhe marrim një raport të tillë (tregon shumë). Dhe në këtë raport nuk kuptohet asgjë. Pse? Sepse nuk është e qartë se cila pjesë i përket cilit punëtor, cila pjesë i përket cilit komponent. Dhe në atë moment kuptuam se na duhej gjurmimi - i njëjti OpenTracing, për të cilin flas.

    Menduam se pĂ«r kĂ«tĂ« vit mĂ« parĂ«, i kthyem sytĂ« nga tregu, dhe atje u shfaqĂ«n dy mjete – «Zipkin» dhe «Jaeger». «Jaeger» Ă«shtĂ« nĂ« fakt njĂ« trashĂ«gimtar ideologjik, njĂ« vazhdimĂ«si ideologjike e «Zipkin». NĂ« «Zipkin» gjithçka Ă«shtĂ« mirĂ«, pĂ«rveç se ai nuk di tĂ« grubulojĂ«, nuk di tĂ« pĂ«rfshijĂ« log-et nĂ« gjurmim, vetĂ«m gjurmim kohor. NdĂ«rsa «Jaeger» e mbĂ«shtet kĂ«tĂ«.

    ShikojmĂ« nĂ« «Jaeger»: mund tĂ« instrumentojmĂ« aplikacionet, mund tĂ« shkruajmĂ« nĂ« Api (standardi Api pĂ«r PHP nĂ« atĂ« kohĂ«, megjithatĂ«, nuk ishte miratuar – ishte njĂ« vit mĂ« parĂ«, tani Ă«shtĂ« miratuar), asnjĂ« klient nuk kishte ekzistuar. «Mirë», menduam, dhe shkruam klientin tonĂ« tĂ« vet. ÇfarĂ« kemi arritur? KĂ«shtu duket nĂ« pĂ«rgjithĂ«si:

    HighLoad++, Evgeny Kuzovlev (EcommPay IT): çfarë të bëni kur një minutë ndalimi kushton $100,000

    NĂ« «Jaeger» pĂ«r çdo mesazh krijohen span’e. Pra, kur pĂ«rdoruesi hap sistemin, ai sheh njĂ« ose dy blloqe pĂ«r çdo kĂ«rkesĂ« hyrĂ«se (1-2-3 – sa mĂ« shumĂ« janĂ« kĂ«rkesat hyrĂ«se nga pĂ«rdoruesi, aq mĂ« shumĂ« blloqe). PĂ«r ta bĂ«rĂ« mĂ« tĂ« lehtĂ« pĂ«r pĂ«rdoruesit, nĂ« log-e dhe gjurmimin kohor kemi shtuar etiketa. NĂ« rast tĂ« njĂ« gabimi, aplikacioni ynĂ« do ta etiketojĂ« log-un me etiketĂ«n pĂ«rkatĂ«se Error. Mund tĂ« filtroni sipas etiketĂ«s Error dhe do tĂ« shfaqen vetĂ«m span’ët qĂ« pĂ«rmbajnĂ« kĂ«tĂ« blok me gabim. KĂ«shtu duket, nĂ«se ne zhvillojmĂ« span:

    HighLoad++, Evgeny Kuzovlev (EcommPay IT): çfarë të bëni kur një minutë ndalimi kushton $100,000

    Brenda spanit ka njĂ« grup trajtesh. NĂ« kĂ«tĂ« rast janĂ« tri trajta testuese, dhe trajta e tretĂ« na tregon se ka ndodhur njĂ« gabim. NĂ« tĂ« njĂ«jtĂ«n kohĂ« kĂ«tu ne shohim gjurmimin kohor: lart – njĂ« shkallĂ« kohore, dhe ne shohim se nĂ« cilin interval kohor Ă«shtĂ« regjistruar log-u pĂ«rkatĂ«s.

    PĂ«rkatĂ«sisht, na shkoi shumĂ« mirĂ«. Kemi shkruar njĂ« shtesĂ« tonĂ«, dhe e kemi bĂ«rĂ« open source. NĂ«se dĂ«shironi tĂ« punoni me gjurmimin, nĂ«se dĂ«shironi tĂ« punoni me «Jaeger» nĂ« gjuhĂ«n PHP – kemi shtesĂ«n tonĂ«, mirĂ« se vini ta pĂ«rdorni, siç thonĂ«:

    HighLoad++, Evgeny Kuzovlev (EcommPay IT): çfarë të bëni kur një minutë ndalimi kushton $100,000

    Kjo shtesĂ« jonĂ« Ă«shtĂ« njĂ« klient pĂ«r tĂ« punuar me OpenTracing Api, Ă«shtĂ« bĂ«rĂ« si php-extention, pra ju do ta duhet ta ndĂ«rroni dhe ta shtoni nĂ« sistem. NjĂ« vit mĂ« parĂ« nuk kishte asgjĂ« tjetĂ«r. Tani kanĂ« dalĂ« edhe klientĂ« tĂ« tjerĂ«, tĂ« cilĂ«t janĂ« si komponentĂ«. Çështja Ă«shtĂ« e juat: ose i shkarkoni komponentĂ«t me composer, ose pĂ«rdorni extenshion – zgjedhja juaj.

    Standartet korporative

    Flasim pĂ«r tre urtĂ«si. UrtĂ«sia e katĂ«rt – Ă«shtĂ« tĂ« standardizoni qasjet. ÇfarĂ« do tĂ« thotĂ« kjo? ËshtĂ« pĂ«rafĂ«rsisht kĂ«shtu:

    HighLoad++, Evgeny Kuzovlev (EcommPay IT): çfarë të bëni kur një minutë ndalimi kushton $100,000

    Pse kĂ«tu Ă«shtĂ« fjala «korporative»? Jo sepse jemi njĂ« kompani e madhe ose burokratike, jo! Fjala «korporative» doja ta pĂ«rdorja nĂ« kontekstin qĂ« çdo kompani, çdo produkt ka standartet e saj, dhe gjithashtu edhe ju. ÇfarĂ« standartesh kemi ne?

    HighLoad++, Evgeny Kuzovlev (EcommPay IT): çfarë të bëni kur një minutë ndalimi kushton $100,000

    • Ne kemi njĂ« rregullore pĂ«r deploye. Ne nuk mund tĂ« lĂ«vizim pa tĂ«, nuk mundemi. Ne deployojmĂ« rreth 60 herĂ« nĂ« javĂ«, pra deployet ndodhin pothuajse vazhdimisht. MegjithatĂ«, kemi, pĂ«r shembull, nĂ« rregulloren e deployeve njĂ« tabu pĂ«r deployet tĂ« premteve – nĂ« parim, ne nuk bĂ«jmĂ« deploy.
    • Dokumentimi Ă«shtĂ« i detyrueshĂ«m pĂ«r ne. AsnjĂ« komponent i ri nuk hyn nĂ« prodhukim nĂ«se nuk ka dokumentacion, madje edhe nĂ«se Ă«shtĂ« krijuar nga shkrimtarĂ«t tanĂ« tĂ« RnD. Ne kĂ«rkojmĂ« prej tyre njĂ« udhĂ«zues pĂ«r deployimin, njĂ« hartĂ« monitorimi dhe njĂ« pĂ«rshkrim pĂ«rafĂ«rsisht (siç mund tĂ« shkruajnĂ« programuesit) se si funksionon ky komponent, si ta diagnostikoni atĂ«.
    • Ne zgjidhim jo shkakun e problemit, por problemin – atĂ« qĂ« kam thĂ«nĂ« tashmĂ«. PĂ«r ne Ă«shtĂ« e rĂ«ndĂ«sishme tĂ« mbrojmĂ« pĂ«rdoruesin nga problemet.
    • Kemi leje. PĂ«r shembull, ne nuk e konsiderojmĂ« si downtime nĂ«se pĂ«r dy minuta humbĂ«m 2 % tĂ« trafikut. NĂ« parim, kjo nuk hyn nĂ« statistikĂ«n tonĂ«. NĂ«se Ă«shtĂ« mĂ« shumĂ« nĂ« pĂ«rqindje ose kohĂ«, atĂ«herĂ« e konsiderojmĂ«.
    • Dhe ne gjithmonĂ« shkruajmĂ« postmortem. ÇfarĂ«do qĂ« ndodhi, çdo situatĂ« kur u zhvillua ndryshe nĂ« prodhim, do tĂ« reflektohet nĂ« postmortem. Postmortem Ă«shtĂ« njĂ« dokument, nĂ« tĂ« cilin shkruani se çfarĂ« ndodhi, njĂ« kohĂ« tĂ« detajuar, çfarĂ« bĂ«tĂ« pĂ«r tĂ« korrigjuar dhe (kjo Ă«shtĂ« njĂ« bllok i detyrueshĂ«m!) çfarĂ« do tĂ« bĂ«ni pĂ«r tĂ« parandaluar qĂ« kjo tĂ« ndodhĂ« pĂ«rsĂ«ri nĂ« tĂ« ardhmen. Kjo Ă«shtĂ« e detyrueshme, e nevojshme pĂ«r analizĂ«n e mĂ«passhme.

    ÇfarĂ« tĂ« llogaritĂ«sh si downtime?

    HighLoad++, Evgeny Kuzovlev (EcommPay IT): çfarë të bëni kur një minutë ndalimi kushton $100,000

    Ku e çoi kjo gjithçka?

    Kjo e çoi në faktin se (kemi pasur disa probleme me stabilitetin, që nuk kënaqte as klientët, as ne) në gjashtë muajt e fundit, treguesi ynë i stabilitetit ishte 99,97. Mund të thuhet se kjo nuk është shumë. Po, kemi për çfarë të synojmë. Nga ky tregues, rreth gjysma është stabilitet i tipit që nuk është tonë, por i firewall-it tonë të aplikacionit web, i cili ndodhet para nesh dhe përdoret si një shërbim, por për klientët kjo është njëlloj.

    Ne jemi mĂ«suar tĂ« flijmĂ« natĂ«n. SĂ« fundmi! GjashtĂ« muaj mĂ« parĂ« nuk dinim. Dhe nĂ« kĂ«tĂ« notĂ« pĂ«r rezultatet dua tĂ« bĂ«j njĂ« vĂ«rejtje. MbrĂ«mjen e djeshme kishte njĂ« paraqitje tĂ« shkĂ«lqyer mbi sistemin e menaxhimit tĂ« reaktorĂ«ve bĂ«rthamorĂ«. NĂ«se mĂ« dĂ«gjojnĂ« ata qĂ« e kanĂ« shkruar kĂ«tĂ« sistem – ju lutem, harroni atĂ« qĂ« thashĂ« pĂ«r "2% – nuk Ă«shtĂ« kohĂ« e humbur". PĂ«r ju 2% Ă«shtĂ« kohĂ« e humbur, edhe nĂ«se Ă«shtĂ« pĂ«r dy minuta!

    Kjo është gjithçka! Pyetjet tuaja.

    HighLoad++, Evgeny Kuzovlev (EcommPay IT): çfarë të bëni kur një minutë ndalimi kushton $100,000

    Për balancuesit dhe migrimin nga baza e të dhënave

    Pyetje nga publiku (mĂ« tutje – P): – MirĂ«mĂ«ngjes. Faleminderit shumĂ« pĂ«r njĂ« paraqitje kaq tĂ« shkĂ«lqyer! Pyetja Ă«shtĂ« e shkurtĂ«r, nĂ« lidhje me balancuesit tuaj. Ju thatĂ« se keni njĂ« WAF, pra, siç e kuptoj unĂ«, nĂ« cilĂ«sinĂ« e balancuesit pĂ«rdorni ndonjĂ« tĂ« jashtĂ«m


    EK: – Jo, nĂ« kapacitetin e balancuesit pĂ«rdorim shĂ«rbimet tona. NĂ« kĂ«tĂ« rast, WAF Ă«shtĂ« pĂ«r ne njĂ« mjet mbrojtjeje nga DDoS.

    M: – A mund tĂ« thuash disa fjalĂ« rreth balancuesve?

    EK: – Siç e thashĂ«, kjo Ă«shtĂ« njĂ« grup serverash nĂ« openresty. Aktualisht kemi 5 grupe rezervash, tĂ« cilat pĂ«rgjigjen ekskluzivisht
 pra, serveri, nĂ« tĂ« cilin Ă«shtĂ« instaluar ekskluzivisht openresty, vetĂ«m e ndihmon trafik. PĂ«r ta kuptuar sa mbajnĂ«: tani ka njĂ« fluks standard tĂ« trafikut – disa qindra megabit. Ata i menaxhojnĂ« mirĂ«, madje nuk stresohen.

    M: – NjĂ« pyetje e thjeshtĂ«. Ka njĂ« Blue/Green deployment. CfarĂ« bĂ«ni, pĂ«r shembull, me migrimet nga baza e tĂ« dhĂ«nave?

    EK: – Pyetje e mirĂ«! Shihni, nĂ« Blue/Green deployment-in tonĂ« kemi radhĂ« tĂ« veçanta pĂ«r secilĂ«n linjĂ«. Pra, nĂ«se flasim pĂ«r radhĂ«t e ngjarjeve qĂ« kalojnĂ« nga punĂ«tori nĂ« punĂ«tor, ka radhĂ« tĂ« veçanta pĂ«r linjĂ«n blu dhe pĂ«r linjĂ«n jeshile. NĂ«se flasim pĂ«r bazĂ«n e tĂ« dhĂ«nave, ne e kemi zvogĂ«luar qĂ«llimisht, siç mundĂ«m, kemi kaluar gjithçka nĂ« radhĂ«, nĂ« bazĂ«n e tĂ« dhĂ«nave kemi vetĂ«m njĂ« stak transaksionesh. Dhe staku i transaksioneve Ă«shtĂ« i njĂ«jtĂ« pĂ«r tĂ« gjitha linjat. NĂ« kĂ«tĂ« kontekst pĂ«r bazĂ«n e tĂ« dhĂ«nave: ne nuk e ndajmĂ« atĂ« nĂ« blu dhe jeshile, sepse tĂ« dyja variantet e kodit duhet tĂ« dinĂ« se çfarĂ« ndodh me transaksionin.

    Miq, kam njĂ« dhuratĂ« tĂ« vogĂ«l pĂ«r t'ju inkurajuar – njĂ« libĂ«r. Dhe duhet ta jap pĂ«r pyetjen mĂ« tĂ« mirĂ«.

    M: – PĂ«rshĂ«ndetje. Faleminderit pĂ«r paraqitjen. Pyetja Ă«shtĂ« kjo. Ju monitoroni pagesat, ju monitoroni shĂ«rbimet me tĂ« cilat komunikoni
 Si monitoroni qĂ« ndonjĂ« njeri ndonjĂ«herĂ« ka arritur nĂ« faqen tuaj tĂ« pagesĂ«s, ka kryer pagesĂ«n, dhe projekti i ka akredituar paratĂ«? Pra, si monitoroni qĂ« merchant Ă«shtĂ« i qasshĂ«m dhe ka pranuar callback-un tuaj?

    EK: – "Merchant" pĂ«r ne nĂ« kĂ«tĂ« rast Ă«shtĂ« njĂ« shĂ«rbim i jashtĂ«m, siç Ă«shtĂ« sistemi i pagesave. Ne monitorojmĂ« shpejtĂ«sinĂ« e pĂ«rgjigjes sĂ« "merchant".

    Për enkriptimin e bazës së të dhënave

    M: – PĂ«rshĂ«ndetje. Kam njĂ« pyetje tĂ« ngjashme. Ju keni tĂ« dhĂ«na tĂ« ndjeshme sipas PCI DSS. DĂ«shiroja tĂ« dija, si i mbani PAN-tĂ« nĂ« radhĂ«, tĂ« cilat duhet t'i kaloni? PĂ«rdorni ndonjĂ« enkriptim? Dhe pyetja e dytĂ« qĂ« rrjedh: sipas PCI DSS duhet pĂ«rsĂ«ri tĂ« enkriptohet baza nĂ« rast ndryshimesh (largimi i administratorĂ«ve dhe kĂ«shtu me radhĂ«) – si ndodh kjo nĂ« rast tĂ« disponueshmĂ«risĂ«?

    HighLoad++, Evgeny Kuzovlev (EcommPay IT): çfarë të bëni kur një minutë ndalimi kushton $100,000

    EK: – Pyetje e shkĂ«lqyer! SĂ« pari, ne nuk i mbajmĂ« PAN-tĂ« nĂ« radhĂ«. Ne nuk kemi tĂ« drejtĂ« ta ruajmĂ« PAN askund nĂ« mĂ«nyrĂ« tĂ« hapur, prandaj ne pĂ«rdorim njĂ« shĂ«rbim tĂ« veçantĂ« (e quajmĂ« "Keidemon") – ky Ă«shtĂ« njĂ« shĂ«rbim qĂ« bĂ«n vetĂ«m njĂ« gjĂ«: merr nĂ« hyrje njĂ« mesazh dhe jep njĂ« mesazh tĂ« enkriptuar. Dhe ne ruajmĂ« gjithçka me kĂ«tĂ« mesazh tĂ« enkriptuar. Prandaj, gjatĂ«sia e çelĂ«sit Ă«shtĂ« poshtĂ« njĂ« kilobajt, qĂ« tĂ« jetĂ« serioze dhe e sigurt.

    M: – Tani duhet 2 kilobajtĂ«?

    EK: – Duket se dje ishte 256
 Po ku tjetĂ«r?!

    Pra, kjo Ă«shtĂ« e para. Dhe sĂ« dyti, zgjidhja qĂ« kemi mbĂ«shtet procedurĂ«n e reenkriptimit – atje ka dy palĂ« "cekash" (çelĂ«sa) qĂ« japin "dek"-et, qĂ« enkriptojnĂ« (key – janĂ« çelĂ«sa, dek – janĂ« derivatet e çelĂ«save qĂ« enkriptojnĂ«). Dhe nĂ« rastin e nisjes sĂ« procedurĂ«s (kjo ndodh rregullisht, çdo 3 muaj deri nĂ« ± diçka) ne ngarkojmĂ« njĂ« çift tĂ« ri "cekash", dhe ne kalojmĂ« nĂ« reenkriptimin e tĂ« dhĂ«nave. Ne kemi shĂ«rbime tĂ« veçanta qĂ« nxjerrin tĂ« dhĂ«nat, i enkriptojnĂ« pĂ«rsĂ«ri; nĂ« tĂ« dhĂ«na ruhet njĂ« identifikues i çelĂ«sit, me tĂ« cilin janĂ« enkriptuar. Prandaj, sapo tĂ« dhĂ«nat tĂ« jenĂ« tĂ« enkriptuara me çelĂ«sa tĂ« rinj, ne fshijmĂ« çelĂ«sat e vjetĂ«r.

    Ndonjëherë pagesat duhet të kryhen ruaj.

    M: – Pra, nĂ«se ka njĂ« kthim pĂ«r ndonjĂ« operacion, atĂ«herĂ« e dekriptoni me çelĂ«sin e vjetĂ«r?

    EK: - Po.

    M: – AtĂ«herĂ« njĂ« pyetje tjetĂ«r e vogĂ«l. Kur ndodh ndonjĂ« dĂ«shtim, rĂ«nie, incident, Ă«shtĂ« e nevojshme tĂ« shtyhet transaksioni manualisht. Ka raste tĂ« tilla.

    EK: – Po, ndodhin.

    M: – Nga i merrni kĂ«to tĂ« dhĂ«na? A e bĂ«ni vetĂ« kĂ«tĂ« manualisht nĂ« kĂ«tĂ« depo?

    EK: – Jo, Ă«shtĂ« e qartĂ« – kemi njĂ« sistem pas skenĂ«s, i cili pĂ«rmban njĂ« ndĂ«rfaqe pĂ«r mbĂ«shtetje. NĂ«se nuk e dimĂ« se cila Ă«shtĂ« gjendja e transaksionit (p.sh., deri sa sistemi i pagesave nuk ka kthyer njĂ« pĂ«rgjigje), nuk e dimĂ«, pra ne e caktojmĂ« statusin pĂ«rfundimtar vetĂ«m kur jemi tĂ« sigurt. NĂ« kĂ«tĂ« rast, ne e zhvendosim transaksionin nĂ« njĂ« status tĂ« veçantĂ« pĂ«r pĂ«rpunim manual. NĂ« mĂ«ngjes, ditĂ«n tjetĂ«r, sapo mbĂ«shtetje tĂ« marrĂ« informacionin se nĂ« sistemin e pagesave kanĂ« mbetur kĂ«to transaksione, ato i pĂ«rpunojnĂ« manualisht nĂ« kĂ«tĂ« ndĂ«rfaqe.

    HighLoad++, Evgeny Kuzovlev (EcommPay IT): çfarë të bëni kur një minutë ndalimi kushton $100,000

    M: – Kam disa pyetje. NjĂ« prej tyre Ă«shtĂ« vazhdimi i zonĂ«s PCI DSS: si i nxirrni log-et nga konturi i tyre? Ky pyetje ardh nga fakti se zhvilluesi mund tĂ« ketĂ« vendosur çdo gjĂ« nĂ« log-e! Pyetje e dytĂ«: si i nxirrni hotfix-et? Manualisht nĂ« bazĂ« – Ă«shtĂ« njĂ« opsion, por mund tĂ« ketĂ« hotfix-e falas – çfarĂ« procedure ndjekni? Dhe pyetja e tretĂ«, ndoshta e lidhur me RTO, RPO. Ju keni njĂ« disponibilitet prej 99,97, pothuajse katĂ«r nĂ«ntĂ«, por kuptoj se keni edhe qendrĂ«n e dytĂ« tĂ« tĂ« dhĂ«nave, qendrĂ«n e tretĂ« dhe tĂ« pestë  Si merremi me sinchronizimin, replikimin, gjithçka tjetĂ«r?

    EK: – Le tĂ« fillojmĂ« me tĂ« parĂ«n. Pyetja e parĂ« ishte pĂ«r log-et, apo jo? Kur shkruhen log-et, kemi njĂ« ndĂ«rmjetĂ«s qĂ« maskon tĂ« gjitha tĂ« dhĂ«nat sensitive. Ai shikon sipas maskĂ«s dhe polikave shtesĂ«. Si rezultat, log-et tona dalin me tĂ« dhĂ«na tĂ« maskuara dhe kontur tĂ« PCI DSS. Kjo Ă«shtĂ« njĂ« nga detyrat e rregullta, e cila i Ă«shtĂ« caktuar departamentit tĂ« testimit. Ata duhet tĂ« kontrollojnĂ« çdo detyrĂ«, pĂ«rfshirĂ« log-et qĂ« ata shkruajnĂ«, dhe kjo Ă«shtĂ« njĂ« nga detyrat e rregullta gjatĂ« rishikimit tĂ« kodit, qĂ« tĂ« kontrollojnĂ« qĂ« zhvilluesi nuk ka shkruar diçka. Kontrollimi i mĂ«tejshĂ«m bĂ«het rregullisht nga departamenti i sigurisĂ« informative rreth njĂ« herĂ« nĂ« javĂ«: merren pĂ«rzgjedhĂ«sive log-et pĂ«r ditĂ«n e fundit dhe ato kalohen pĂ«rmes njĂ« skaneri-analizatori nga serverĂ«t provues, pĂ«r tĂ« kontrolluar gjithçka.
    PĂ«r hotfix-et. Kjo Ă«shtĂ« pĂ«rfshirĂ« nĂ« rregulloren tonĂ« tĂ« depolimit. Ne kemi njĂ« nen tĂ« veçantĂ« pĂ«r hotfix-et. Ne besojmĂ« se ne bĂ«jmĂ« hotfix-et 24 orĂ« nĂ« ditĂ« kur na nevojitet. Sa herĂ« qĂ« versioni pĂ«rfundon, sa herĂ« qĂ« Ă«shtĂ« testuar, sa herĂ« qĂ« kemi artefaktin – ne e ngrisim administratorin e sistemit nĂ« detyrĂ« nĂ«pĂ«rmjet telefonit nga mbĂ«shtetje, dhe ai e depolon atĂ« nĂ« momentin kur Ă«shtĂ« e nevojshme.

    PĂ«r 'katĂ«r nĂ«ntĂ«'. Numri qĂ« kemi tani Ă«shtĂ« arritur me tĂ« vĂ«rtetĂ«, dhe çelĂ«si ynĂ« ishte qĂ« ne e synuam atĂ« nĂ« njĂ« qendĂ«r tĂ« dytĂ« tĂ« tĂ« dhĂ«nave. Tani kemi njĂ« qendĂ«r tĂ« dytĂ« tĂ« tĂ« dhĂ«nave, dhe fillojmĂ« tĂ« radhisim mes tyre; dhe pyetje e replikimit ndĂ«rmjet qendrave tĂ« tĂ« dhĂ«nave Ă«shtĂ« me tĂ« vĂ«rtetĂ« njĂ« çështje e ndĂ«rlikuar. Ne kemi provuar ta zgjidhim atĂ« me mĂ«nyra tĂ« ndryshme: kemi provuar tĂ« pĂ«rdorim tĂ« njĂ«jtin 'Tarantul' – nuk na funksionoi, e them menjĂ«herĂ«. Prandaj, arritĂ«m nĂ« pĂ«rfundimin se bĂ«jmĂ« porosi pĂ«r 'senza' manualisht. Çdo aplikacion nĂ« tĂ« vĂ«rtetĂ« Ă«shtĂ« nĂ« njĂ« mĂ«nyrĂ« asinkrone pĂ«r sinchronizimin e nevojshĂ«m 'change – done' qĂ« kalon mes qendrave tĂ« tĂ« dhĂ«nave.

    M: – NĂ«se ju keni njĂ« tĂ« dytĂ«, atĂ«herĂ« pse nuk keni njĂ« tĂ« tretĂ«? Sepse Split-brain ende nuk e kanĂ« zgjidhur askush...

    EK: – Nuk kemi 'Split-brain'. PĂ«r shkak se çdo aplikacion nga ne kalon me multimashtĂ«, nuk na intereson nĂ« cilĂ«n qendĂ«r ka mbĂ«rritur kĂ«rkesa. Ne jemi tĂ« gatshĂ«m qĂ«, nĂ« rast se njĂ« qendĂ«r e tĂ« dhĂ«nave Ă«shtĂ« rĂ«nĂ« (ne e planifikojmĂ« kĂ«tĂ«) dhe nĂ« mes tĂ« kĂ«rkesĂ«s sĂ« pĂ«rdoruesit kthejmĂ« nĂ« qendrĂ«n e dytĂ«, jemi tĂ« gatshĂ«m tĂ« humbim atĂ« pĂ«rdorues, me tĂ« vĂ«rtetĂ«; por ato do tĂ« jenĂ« njĂ«si, absolutisht njĂ«si.

    M: – MirĂ«mĂ«ngjes. Faleminderit pĂ«r prezantimin. Ju folĂ«t pĂ«r debagger-in tuaj, i cili ekzekuton disa transaksione testuese nĂ« prodhim. Tani, na tregoni pĂ«r transaksionet testuese! Sa thellĂ« shkon ky proces?

    EK: – Ai kalon njĂ« cikĂ«l tĂ« plotĂ« tĂ« gjithĂ« komponentit. PĂ«r komponentin nuk ka dallime midis transaksionit testues dhe atij tĂ« produksionit. Dhe nga pikĂ«pamja e logjikĂ«s, kjo Ă«shtĂ« thjesht njĂ« projekt i veçantĂ« nĂ« sistem, ku kalojnĂ« vetĂ«m transaksionet testuese.

    M: – Ku e ndaloni atĂ«? KĂ«shtu, Core dĂ«rgoi


    EK: – Ne pasojmĂ« 'Kor' nĂ« kĂ«tĂ« rast pĂ«r transaksionet testuese... Kemi njĂ« koncept tĂ« tillĂ«, si routing: 'Kor' di nĂ« cilin sistem pagese duhet tĂ« dĂ«rgojmĂ« – ne dĂ«rgojmĂ« nĂ« njĂ« sistem pagese tĂ« rremĂ«, i cili thjesht jep njĂ« pĂ«rgjigje http dhe gjithçka.

    M: – MĂ« thoni, ju lutem, a Ă«shtĂ« aplikacioni juaj shkruar si njĂ« monolit i madh, apo e keni ndarĂ« atĂ« nĂ« disa shĂ«rbime apo madje mikroshĂ«rbime?

    EK: – Natyrisht qĂ« nuk kemi njĂ« monolit, kemi njĂ« aplikacion tĂ« orientuar nga shĂ«rbimet. Kemi njĂ« shaka qĂ« shĂ«rbimi ynĂ« Ă«shtĂ« nga monolitĂ« – ata janĂ« me tĂ« vĂ«rtetĂ« mjaft tĂ« mĂ«dhenj. Nuk do ta quaja kĂ«tĂ« si mikroshĂ«rbime, por nĂ« tĂ« vĂ«rtetĂ« janĂ« shĂ«rbime brenda tĂ« cilave punojnĂ« punĂ«torĂ«t e makinave tĂ« shpĂ«rndara.

    Nëse shërbimi në server është i kompromentuar


    M: – AtĂ«herĂ« kam njĂ« pyetje tjetĂ«r. Edhe sikur tĂ« ishte njĂ« monolit, ju vazhdoni tĂ« thoni se keni shumĂ« nga kĂ«ta serverĂ« instant, tĂ« gjithĂ« ata nĂ« thelb shqyrtojnĂ« tĂ« dhĂ«nat, dhe pyetja Ă«shtĂ« kjo: "NĂ« rastin e kompromiseve tĂ« njĂ«rit prej serverĂ«ve instant ose ndonjĂ« aplikacioni, ndonjĂ« elementi tĂ« veçantĂ«, a kanĂ« ata ndonjĂ« kontroll akses? Kush mund tĂ« bĂ«jĂ« çfarĂ«? Kush duhet tĂ« kontaktohet, pĂ«r cilat tĂ« dhĂ«na?

    HighLoad++, Evgeny Kuzovlev (EcommPay IT): çfarë të bëni kur një minutë ndalimi kushton $100,000

    EK: – Po, padyshim. KĂ«rkesat pĂ«r siguri janĂ« mjaft serioze. SĂ« pari, ne kemi lĂ«vizje tĂ« hapura tĂ« tĂ« dhĂ«nave, dhe portat janĂ« vetĂ«m ato pĂ«r tĂ« cilat ne paraprakisht presim lĂ«vizjen e trafikut. NĂ«se njĂ« komponent komunikon me bazĂ«n e tĂ« dhĂ«nave (le tĂ« themi, me "MySQL") pĂ«rmes 5-4-3-2, ai do tĂ« ketĂ« hapur vetĂ«m 5-4-3-2, dhe portat e tjera, drejtimet e tjera tĂ« lĂ«vizjes sĂ« trafikut nuk do tĂ« jenĂ« tĂ« aksesueshme. PĂ«r mĂ« tepĂ«r, duhet tĂ« kuptohet se nĂ« prodhim kemi rreth 10 konture tĂ« ndryshme sigurie. Dhe edhe nĂ«se ndonjĂ« aplikacion Ă«shtĂ« kompromentuar ndonjĂ« mĂ«nyrĂ«, Zoti na ruajttĂ«, hakeri nuk do tĂ« ketĂ« akses nĂ« konsolĂ«n e menaxhimit tĂ« serverit, sepse kjo Ă«shtĂ« njĂ« zonĂ« tjetĂ«r e sigurisĂ« nĂ« rrjet.

    M: – Mua nĂ« kĂ«tĂ« kontekst mĂ« intereson shumĂ« fakti se ju keni disa kontrata me shĂ«rbimet – çfarĂ« mund tĂ« bĂ«jnĂ« ato, pĂ«rmes cilave "veprime" mund tĂ« komunikojnĂ« me njĂ«ra-tjetrĂ«n
 Dhe nĂ« fluksin normal disa shĂ«rbime tĂ« caktuara kĂ«rkojnĂ« njĂ« radhĂ« tĂ« caktuar "veprimesh" nga tjetri. Ata nuk i drejtohen tĂ« tjerĂ«ve nĂ« situata normale dhe kanĂ« zona tĂ« ndryshme pĂ«rgjegjĂ«sie. NĂ«se njĂ« nga ata do tĂ« jetĂ« kompromentuar, do tĂ« mund tĂ« tĂ«rheqĂ« "veprimet" e atij shĂ«rbimi?..

    EK: – E kuptoj. NĂ«se nĂ« njĂ« situatĂ« normale komunikimi me serverin tjetĂ«r ishte lejuar, atĂ«herĂ« – po. Sipas kontratĂ«s SLA ne nuk monitorojmĂ« se ju janĂ« lejuar vetĂ«m 3 "veprime" tĂ« para, ndĂ«rsa 4 "veprimi" nuk ju janĂ« lejuar. Kjo ndoshta Ă«shtĂ« tepĂ«r pĂ«r ne, sepse ne kemi njĂ« sistem mbrojtĂ«s 4-niveli pĂ«r konturet. Ne preferojmĂ« tĂ« mbrohemi me konture, jo nĂ« nivelin e brendshĂ«m.

    Si funksionojnë Visa, MasterCard dhe "Sberbank"

    M: – Dua tĂ« sqaroj momentin pĂ«r kalimin e pĂ«rdoruesit nga njĂ« qendĂ«r tĂ« dhĂ«nash nĂ« njĂ« tjetĂ«r. Sipas sa di, "Visa" dhe "MasterCard" punojnĂ« me protokollin binar sinkron 8583, aty janĂ« mikse. Dhe doja tĂ« dija, tani Ă«shtĂ« fjala pĂ«r kalimin – a Ă«shtĂ« drejtpĂ«rdrejt "Visa" dhe "MasterCard" apo deri te sistemet pagesore, deri te procesorĂ«t?

    EK: – KĂ«to janĂ« deri te mikset. Mikset tona ndodhen nĂ« njĂ« qendĂ«r tĂ« dhĂ«nash.

    M: – NĂ« terma tĂ« thjeshtĂ«, a keni njĂ« pikĂ« lidhjeje?

    EK: – PĂ«r "Visa" dhe "MasterCard" – po. Thjesht sepse "Visa" dhe "MasterCard" kĂ«rkojnĂ« investime tĂ« konsiderueshme nĂ« infrastrukturĂ« pĂ«r lidhjen e kontratave tĂ« veçanta pĂ«r tĂ« marrĂ« njĂ« palĂ« mikse tĂ« dytĂ«, pĂ«r shembull. Ato janĂ« rezervuar brenda njĂ« qendre tĂ« dhĂ«nash, por nĂ«se, Zot na ruajtĂ«, ndodhi qĂ« qendra e dhĂ«nash tĂ« vdesĂ« ku janĂ« mikset pĂ«r lidhjen me "Visa" dhe "MasterCard", atĂ«herĂ« lidhja me "Visa" dhe "MasterCard" do tĂ« humbasë 

    M: – Si mund tĂ« jenĂ« rezervuar? E di qĂ« "Visa" lejon tĂ« mbajĂ« vetĂ«m njĂ« lidhje nĂ« parim!

    EK: – Ata vetĂ« sjellin pajisjet. NĂ« çdo rast, na erdhi pajisja qĂ« brenda Ă«shtĂ« rrjetĂ« rezervuar.

    M: – Pra, Ă«shtĂ« stazi nga Connects Orange tuaj?

    EK: - Po.

    M: – Si Ă«shtĂ« nĂ« kĂ«tĂ« rast: nĂ«se qendra e dhĂ«nash tuaj humbet, si do tĂ« vazhdoni ta pĂ«rdorni? Apo thjesht ndalon trafikun?

    EK: – Jo. Ne nĂ« kĂ«tĂ« rast do tĂ« kalojmĂ« trafikun nĂ« njĂ« kanal tjetĂ«r, i cili, natyrisht, do tĂ« jetĂ« mĂ« i shtrenjtĂ« pĂ«r ne, mĂ« i shtrenjtĂ« pĂ«r klientĂ«t. Por trafiku nuk do tĂ« kalojĂ« pĂ«rmes lidhjes sonĂ« tĂ« drejtpĂ«rdrejtĂ« me "Visa", "MasterCard", por pĂ«rmes njĂ« "Sberbank" hipotetik (pĂ«r tĂ« thĂ«nĂ« shumĂ« thjesht).

    Më falni nëse preka ndonjë punonjës të "Sberbank". Por sipas statistikave tona nga bankat ruse, "Sberbank" dështon më shpesh. Nuk kalon një muaj pa u ndodhur ndonjë gjë te "Sberbank".

    HighLoad++, Evgeny Kuzovlev (EcommPay IT): çfarë të bëni kur një minutë ndalimi kushton $100,000

    Luaj videon

    Pak reklamĂ« 🙂

    Faleminderit që qëndroni me ne. Ju pëlqejnë artikujt tanë? Dëshironi të shihni më shumë materiale interesante? Na mbështetni duke bërë një porosi ose duke na rekomanduar njohurive tuaj, VPS cloud për zhvillues nga $4.99, një analog unik i serverëve entry-level, i ndërtuar për ju: E gjithë e vërteta rreth VPS (KVM) E5-2697 v3 (6 Nuclea) 10GB DDR4 480GB SSD 1Gbps nga $19 ose si ta ndajmë saktësisht serverin? (disponohen variante me RAID1 dhe RAID10, deri në 24 bërthama dhe deri në 40GB DDR4).

    Dell R730xd dyfish mĂ« i lirĂ« nĂ« qendrĂ«n e tĂ« dhĂ«nave Equinix Tier IV nĂ« Amsterdam? VetĂ«m kĂ«tu 2 x Intel TetraDeca-Core Xeon 2x E5-2697v3 2.6GHz 14C 64GB DDR4 4x960GB SSD 1Gbps 100 TB nga $199 nĂ« HolandĂ«! Dell R420 — 2x E5-2430 2.2Ghz 6C 128GB DDR3 2x960GB SSD 1Gbps 100TB — nga $99! Lexoni rreth Si tĂ« ndĂ«rtosh njĂ« infrastrukturĂ« tĂ« klasĂ«s korporative me pĂ«rdorimin e serverĂ«ve Dell R730xd E5-2650 v4 me çmim prej 9000 euro pĂ«r pak para?

Burimi: habr.com

Bleni hostim tĂ« besueshĂ«m pĂ«r faqe me mbrojtje nga DDoS, serverĂ« VPS VDS đŸ”„ Bleni hostim tĂ« besueshĂ«m pĂ«r faqe me mbrojtje nga DDoS, serverĂ« VPS VDS | ProHoster