HighLoad++, Evgeniy Kuzovlev (EcommPay IT): x'għandek tagħmel meta minuta ta' waqfien tiswa $100000

Kulħadd jitkellem dwar il-proċessi tal-iżvilupp u l-ittestjar, it-taħriġ tal-persunal, iż-żieda fil-motivazzjoni, iżda dawn il-proċessi mhumiex biżżejjed meta minuta ta 'waqfien tas-servizz tiswa ammonti enormi ta' flus. X'għandek tagħmel meta twettaq tranżazzjonijiet finanzjarji taħt SLA strett? Kif iżżid l-affidabbiltà u t-tolleranza tal-ħsarat tas-sistemi tiegħek, billi tieħu l-iżvilupp u l-ittestjar barra mill-ekwazzjoni?

HighLoad++, Evgeniy Kuzovlev (EcommPay IT): x'għandek tagħmel meta minuta ta' waqfien tiswa $100000

Il-konferenza HighLoad++ li jmiss se ssir fis-6 u s-7 ta’ April, 2020 f’San Pietruburgu. Dettalji u biljetti g[al rabta. 9 ta’ Novembru, 18:00. HighLoad++ Moska 2018, sala Delhi + Kolkata. Teżijiet u preżentazzjoni.

Evgeniy Kuzovlev (minn hawn 'il quddiem – KE): - Ħbieb, bonjour! Jisimni Kuzovlev Evgeniy. Jien mill-kumpanija EcommPay, diviżjoni speċifika hija EcommPay IT, id-diviżjoni tal-IT tal-grupp ta 'kumpaniji. U llum se nitkellmu dwar waqfien - dwar kif jiġu evitati, dwar kif jiġu minimizzati l-konsegwenzi tagħhom jekk ma jistax jiġi evitat. Is-suġġett huwa ddikjarat kif ġej: "X'għandek tagħmel meta minuta ta 'waqfien tiswa $100"? B'ħarsa 'l quddiem, in-numri tagħna huma komparabbli.

X'jagħmel EcommPay IT?

Aħna min aħna? Għaliex jien qiegħed hawn quddiemek? Għaliex għandi d-dritt ngħidlek xi ħaġa hawn? U x’se nitkellmu hawn f’aktar dettall?

HighLoad++, Evgeniy Kuzovlev (EcommPay IT): x'għandek tagħmel meta minuta ta' waqfien tiswa $100000

Il-grupp ta' kumpaniji EcommPay huwa akkwirent internazzjonali. Aħna nipproċessaw pagamenti madwar id-dinja kollha - fir-Russja, l-Ewropa, l-Asja tax-Xlokk (All Around the World). Għandna 9 uffiċċji, 500 impjegat b'kollox, u bejn wieħed u ieħor ftit inqas minn nofshom huma speċjalisti tal-IT. Dak kollu li nagħmlu, dak kollu li nagħmlu l-flus minnu, għamilna aħna stess.

Aħna ktibna l-prodotti kollha tagħna (u għandna ħafna minnhom - fil-linja tagħna ta 'prodotti kbar tal-IT għandna madwar 16-il komponent differenti) aħna stess; Aħna niktbu lilna nfusna, niżviluppaw lilna nfusna. U bħalissa nwettqu madwar miljun tranżazzjoni kuljum (miljuni probabbilment huwa l-mod it-tajjeb biex ngħiduha). Aħna kumpanija pjuttost żagħżugħa - għandna biss madwar sitt snin.

6 snin ilu kienet tali startup meta l-guys ġew flimkien man-negozju. Kienu magħqudin b’idea (ma kien hemm xejn ħlief idea), u ħriġna. Bħal kull startup, ġrajna aktar malajr... Għalina, il-veloċità kienet aktar importanti mill-kwalità.

F’xi ħin waqafna: indunajna li b’xi mod ma nistgħux nibqgħu ngħixu b’dik il-veloċità u b’dik il-kwalità u kellna bżonn niffukaw fuq il-kwalità l-ewwel. F'dan il-mument, iddeċidejna li niktbu pjattaforma ġdida li tkun korretta, skalabbli, u affidabbli. Bdew jiktbu din il-pjattaforma (bdew jinvestu, jiżviluppaw l-iżvilupp, jittestjaw), iżda f'xi punt indunaw li l-iżvilupp u l-ittestjar ma ppermettewx li nilħqu livell ġdid ta 'kwalità tas-servizz.

Inti tagħmel prodott ġdid, tpoġġih fil-produzzjoni, iżda xorta xi ħaġa se tmur ħażin x'imkien. U llum se nitkellmu dwar kif nilħqu livell ġdid ta 'kwalità (kif għamilna, dwar l-esperjenza tagħna), li nieħdu l-iżvilupp u l-ittestjar barra mill-ekwazzjoni; se nitkellmu dwar dak li huwa disponibbli għall-operazzjoni - liema operazzjoni tista 'tagħmel hi stess, dak li tista' toffri għall-ittestjar sabiex tinfluwenza l-kwalità.

Waqfien. Kmandamenti ta' operazzjoni.

Dejjem il-pedament ewlieni, dak li fil-fatt se nitkellmu dwaru llum huwa l-waqfien. Kelma terribbli. Jekk ikollna waqfien, kollox huwa ħażin għalina. Qegħdin niġru biex ngħollu, l-amministraturi qed iżommu s-server - Alla ħares li ma jaqax, kif jgħidu f'dik il-kanzunetta. Dan huwa dak li se nitkellmu llum.

HighLoad++, Evgeniy Kuzovlev (EcommPay IT): x'għandek tagħmel meta minuta ta' waqfien tiswa $100000

Meta bdejna nbiddlu l-approċċi tagħna, iffurmajna 4 kmandamenti. Għandihom ippreżentati fuq is-slajds:

Dawn il-kmandamenti huma pjuttost sempliċi:

HighLoad++, Evgeniy Kuzovlev (EcommPay IT): x'għandek tagħmel meta minuta ta' waqfien tiswa $100000

  • Identifika malajr il-problema.
  • Neħles minnha saħansitra aktar malajr.
  • Għajnuna tifhem ir-raġuni (aktar tard, għall-iżviluppaturi).
  • U standardizza l-approċċi.

Nixtieq niġbed l-attenzjoni tiegħek għall-punt Nru 2. Aħna qed inneħħu l-problema, mhux insolvuha. Id-deċiżjoni hija sekondarja. Għalina, il-ħaġa primarja hija li l-utent huwa protett minn din il-problema. Se jeżisti f'xi ambjent iżolat, iżda dan l-ambjent ma jkollu ebda kuntatt miegħu. Fil-fatt, se ngħaddu minn dawn l-erba 'gruppi ta' problemi (uħud f'aktar dettall, xi wħud f'inqas dettall), ngħidlek x'nużaw, x'esperjenza rilevanti għandna fis-soluzzjonijiet.

Issolvi l-problemi: Meta jiġri u x'għandek tagħmel dwarhom?

Imma se nibdew barra mill-ordni, se nibdew bil-punt Nru 2 - kif malajr teħles mill-problema? Hemm problema - irridu nirranġawha. "X'għandna nagħmlu dwar dan?" - il-mistoqsija prinċipali. U meta bdejna naħsbu dwar kif nirranġaw il-problema, żviluppajna għalina nfusna xi rekwiżiti li s-soluzzjoni tal-problemi trid issegwi.

HighLoad++, Evgeniy Kuzovlev (EcommPay IT): x'għandek tagħmel meta minuta ta' waqfien tiswa $100000

Biex nifformulaw dawn ir-rekwiżiti, iddeċidejna li nistaqsu lilna nfusna l-mistoqsija: “Meta jkollna l-problemi”? U l-problemi, kif irriżulta, iseħħu f'erba 'każijiet:

HighLoad++, Evgeniy Kuzovlev (EcommPay IT): x'għandek tagħmel meta minuta ta' waqfien tiswa $100000

  • Ħsara tal-ħardwer.
  • Is-servizzi esterni fallew.
  • Nibdlu l-verżjoni tas-softwer (l-istess skjerament).
  • Tkabbir ta 'tagħbija splussiva.

Mhux se nitkellmu dwar l-ewwel tnejn. Malfunzjoni tal-hardware tista 'tiġi solvuta b'mod pjuttost sempliċi: irid ikollok kollox duplikat. Jekk dawn huma diski, id-diski għandhom jiġu mmuntati f'RAID; jekk dan huwa server, is-server għandu jiġi duplikat; jekk għandek infrastruttura tan-netwerk, trid tipprovdi t-tieni kopja tal-infrastruttura tan-netwerk, jiġifieri, teħodha u duplikaha. U jekk xi ħaġa tfalli, taqleb għal riżerva ta 'enerġija. Huwa diffiċli li tgħid xi ħaġa aktar hawn.

It-tieni huwa l-falliment tas-servizzi esterni. Għal ħafna, is-sistema mhi problema xejn, iżda mhux għalina. Peress li aħna nipproċessaw il-ħlasijiet, aħna aggregatur li joqgħod bejn l-utent (li jdaħħal id-dejta tal-kard tiegħu) u l-banek, is-sistemi tal-ħlas (Visa, MasterCard, Mira, eċċ.). Is-servizzi esterni tagħna (sistemi ta' ħlas, banek) għandhom it-tendenza li jfallu. La aħna u lanqas int (jekk għandek servizzi bħal dawn) ma nistgħu ninfluwenzaw dan.

X'għandek tagħmel allura? Hemm żewġ għażliet hawn. L-ewwel, jekk tista', għandek tidduplika dan is-servizz b'xi mod. Pereżempju, jekk nistgħu, nittrasferixxu t-traffiku minn servizz għal ieħor: pereżempju, il-karti ġew ipproċessati permezz ta' Sberbank, Sberbank qed ikollu problemi - nittrasferixxu t-traffiku [kondizzjonalment] lil Raiffeisen. It-tieni ħaġa li nistgħu nagħmlu hija li ninnutaw il-falliment tas-servizzi esterni malajr ħafna, u għalhekk se nitkellmu dwar il-veloċità tar-rispons fil-parti li jmiss tar-rapport.

Fil-fatt, minn dawn l-erbgħa, nistgħu ninfluwenzaw speċifikament il-bidla tal-verżjonijiet tas-softwer - tieħu azzjonijiet li jwasslu għal titjib fis-sitwazzjoni fil-kuntest tal-iskjeramenti u fil-kuntest ta 'tkabbir splussiv fit-tagħbija. Fil-fatt, hekk għamilna. Hawnhekk, għal darb'oħra, nota żgħira...

Minn dawn l-erba 'problemi, diversi jiġu solvuti immedjatament jekk ikollok sħaba. Jekk inti fil-Microsoft Azhur, sħab Ozone, jew tuża sħab tagħna, minn Yandex jew Mail, allura mill-inqas malfunzjoni tal-hardware ssir il-problema tagħhom u kollox immedjatament isir tajjeb għalik fil-kuntest ta 'malfunzjoni tal-hardware.

Aħna kumpanija kemmxejn mhux konvenzjonali. Hawnhekk kulħadd qed jitkellem dwar "Kubernets", dwar sħab - la għandna "Kubernets" u lanqas sħab. Iżda għandna xtillieri ta 'ħardwer f'ħafna ċentri tad-dejta, u aħna sfurzati li ngħixu fuq dan il-ħardwer, aħna sfurzati li nkunu responsabbli għal dan kollu. Għalhekk, se nitkellmu f'dan il-kuntest. Allura, dwar il-problemi. L-ewwel tnejn inħarġu mill-parentesi.

Nibdlu l-verżjoni tas-softwer. Bażijiet

L-iżviluppaturi tagħna m'għandhomx aċċess għall-produzzjoni. Għalfejn? Huwa biss li aħna ċertifikati PCI DSS, u l-iżviluppaturi tagħna sempliċement m'għandhomx id-dritt li jidħlu fil-"prodott". Dak hu, punt. Fuq kollox. Għalhekk, ir-responsabbiltà tal-iżvilupp tispiċċa eżattament fil-mument meta l-iżvilupp jissottometti l-bini għar-rilaxx.

HighLoad++, Evgeniy Kuzovlev (EcommPay IT): x'għandek tagħmel meta minuta ta' waqfien tiswa $100000

It-tieni bażi tagħna li għandna, li wkoll tgħinna ħafna, hija n-nuqqas ta 'għarfien uniku mhux dokumentat. Nispera li huwa l-istess għalik. Għax jekk dan ma jkunx il-każ, ikollok problemi. Se jinqalgħu problemi meta dan l-għarfien uniku u mhux dokumentat ma jkunx preżenti fil-ħin it-tajjeb fil-post it-tajjeb. Ejja ngħidu li għandek persuna waħda li taf kif tuża komponent speċifiku - il-persuna ma tkunx hemm, tkun fuq vaganza jew marida - dak hu, għandek problemi.

U t-tielet bażi li wasalna għaliha. Wasalna għaliha permezz ta 'uġigħ, demm, tiċrit - wasalna għall-konklużjoni li kwalunkwe bini tagħna fih żbalji, anki jekk huwa ħieles mill-iżbalji. Iddeċidejna dan għalina nfusna: meta niskjeraw xi ħaġa, meta nirrollaw xi ħaġa fil-produzzjoni, ikollna build bi żbalji. Aħna ffurmajna r-rekwiżiti li s-sistema tagħna trid tissodisfa.

Rekwiżiti biex tinbidel il-verżjoni tas-softwer

Hemm tliet rekwiżiti:

HighLoad++, Evgeniy Kuzovlev (EcommPay IT): x'għandek tagħmel meta minuta ta' waqfien tiswa $100000

  • Irridu nġibu lura malajr l-iskjerament.
  • Irridu nimminimizzaw l-impatt ta' skjerament li ma jirnexxix.
  • U rridu nkunu nistgħu niskjeraw malajr b'mod parallel.
    Eżattament f'dik l-ordni! Għaliex? Minħabba li, l-ewwelnett, meta tuża verżjoni ġdida, il-veloċità mhix importanti, iżda huwa importanti għalik, jekk xi ħaġa tmur ħażin, li tgerrab malajr lura u jkollok impatt minimu. Imma jekk għandek sett ta 'verżjonijiet fil-produzzjoni, li għalihom jirriżulta li hemm żball (mill-blu, ma kien hemm l-ebda skjerament, iżda hemm żball) - il-veloċità ta' skjerament sussegwenti hija importanti għalik. X’għamilna biex nilħqu dawn it-talbiet? Aħna rrikorrejna għall-metodoloġija li ġejja:

    HighLoad++, Evgeniy Kuzovlev (EcommPay IT): x'għandek tagħmel meta minuta ta' waqfien tiswa $100000

    Huwa pjuttost magħruf, qatt ma ivvintajna - dan huwa Blue/Green deploy. X'inhu? Irid ikollok kopja għal kull grupp ta' servers li fuqhom huma installati l-applikazzjonijiet tiegħek. Il-kopja hija "sħun": m'hemm l-ebda traffiku fuqha, iżda fi kwalunkwe mument dan it-traffiku jista' jintbagħat lil din il-kopja. Din il-kopja fiha l-verżjoni preċedenti. U fil-ħin tal-iskjerament, inti roll out il-kodiċi għal kopja inattiva. Imbagħad taqleb parti mit-traffiku (jew kollu) għall-verżjoni l-ġdida. Għalhekk, sabiex tibdel il-fluss tat-traffiku mill-verżjoni l-antika għal dik il-ġdida, trid tagħmel azzjoni waħda biss: trid tibdel il-balancer fil-upstream, ibiddel id-direzzjoni - minn upstream għal oħra. Dan huwa konvenjenti ħafna u jsolvi l-problema ta 'qlib ta' malajr u rollback malajr.

    Hawnhekk is-soluzzjoni għat-tieni mistoqsija hija l-minimizzazzjoni: tista 'tibgħat biss parti mit-traffiku tiegħek għal linja ġdida, għal linja b'kodiċi ġdid (ħalliha tkun, pereżempju, 2%). U dawn it-2% mhumiex 100%! Jekk tlift 100% tat-traffiku tiegħek minħabba skjerament bla suċċess, dan huwa tal-biża; jekk tlift 2% tat-traffiku tiegħek, dan mhux pjaċevoli, iżda mhux tal-biża. Barra minn hekk, l-utenti x'aktarx lanqas biss jindunaw dan, minħabba li f'xi każijiet (mhux f'kollox) l-istess utent, li jagħfas F5, se jittieħed għal verżjoni oħra li taħdem.

    Skjerament blu/aħdar. Rotot

    Madankollu, mhux kollox huwa daqshekk sempliċi "Skjerament Blu/Aħdar"... Il-komponenti kollha tagħna jistgħu jinqasmu fi tliet gruppi:

    • dan huwa l-frontend (paġni tal-ħlas li jaraw il-klijenti tagħna);
    • qalba tal-ipproċessar;
    • adapter biex taħdem ma' sistemi ta' ħlas (banek, MasterCard, Visa...).

    U hemm sfumatura hawn - l-isfumatura tinsab fir-rotta bejn il-linji. Jekk taqleb biss 100% tat-traffiku, m'għandekx dawn il-problemi. Imma jekk trid taqleb 2%, tibda tistaqsi mistoqsijiet: "Kif tagħmel dan?" L-iktar ħaġa sempliċi hija sempliċi: tista 'twaqqaf Round Robin f'nginx b'għażla każwali, u għandek 2% lejn ix-xellug, 98% lejn il-lemin. Iżda dan mhux dejjem huwa adattat.

    Pereżempju, fil-każ tagħna, utent jinteraġixxi mas-sistema b'aktar minn talba waħda. Dan huwa normali: 2, 3, 4, 5 talbiet - is-sistemi tiegħek jistgħu jkunu l-istess. U jekk huwa importanti għalik li t-talbiet kollha tal-utent jaslu fl-istess linja li fiha ġiet l-ewwel talba, jew (it-tieni punt) it-talbiet kollha tal-utent jaslu għal-linja l-ġdida wara l-iswiċċ (hu seta’ beda jaħdem qabel mal- sistema, qabel is-swiċċ), - allura din id-distribuzzjoni każwali mhix adattata għalik. Imbagħad hemm l-għażliet li ġejjin:

    HighLoad++, Evgeniy Kuzovlev (EcommPay IT): x'għandek tagħmel meta minuta ta' waqfien tiswa $100000

    L-ewwel għażla, l-aktar sempliċi, hija bbażata fuq il-parametri bażiċi tal-klijent (IP Hash). Għandek IP, u taqsamha mil-lemin għax-xellug bl-indirizz IP. Imbagħad it-tieni każ li ddeskrivejt se jaħdem għalik, meta seħħ l-iskjerament, l-utent jista 'diġà jibda jaħdem mas-sistema tiegħek, u mill-mument tal-iskjerament it-talbiet kollha jmorru għal linja ġdida (għall-istess waħda, ngħidu aħna).

    Jekk għal xi raġuni dan ma jaqbillekx u trid tibgħat it-talbiet fil-linja fejn waslet it-talba inizjali tal-utent, allura għandek żewġ għażliet...
    L-ewwel għażla: tista 'tixtri nginx+ imħallas. Hemm mekkaniżmu ta 'sessjonijiet Sticky, li, fuq it-talba inizjali tal-utent, jassenja sessjoni lill-utent u jorbotha ma' wieħed jew ieħor upstream. It-talbiet kollha sussegwenti tal-utent matul il-ħajja tas-sessjoni se jintbagħtu lill-istess upstream fejn is-sessjoni ġiet imqiegħda.

    Dan ma kienx tajjeb għalina għax diġà kellna nginx regolari. Li taqleb għal nginx + mhux li huwa għali, huwa biss li kien xi ftit uġigħ għalina u mhux tajjeb ħafna. "Sticks Sessions", pereżempju, ma ħadimx għalina għas-sempliċi raġuni li "Sticks Sessions" ma jippermettux routing ibbażat fuq "Either-jew". Hemmhekk tista 'tispeċifika dak li nagħmlu aħna "Sticks Sessions", pereżempju, bl-indirizz IP jew bl-indirizz IP u l-cookies jew permezz ta' postparametru, iżda "Jew-jew" hija aktar ikkumplikata hemmhekk.

    Għalhekk, wasalna għar-raba’ għażla. Ħadna nginx fuq sterojdi (dan huwa openresty) - dan huwa l-istess nginx, li barra minn hekk jappoġġja l-inklużjoni tal-aħħar skripts. Tista 'tikteb l-aħħar skript, tagħtiha "mistrieħ miftuħ", u dan l-aħħar skript se jiġi eżegwit meta tiġi t-talba tal-utent.

    U ktibna, fil-fatt, skript bħal dan, stabbilixxejna lilna nfusna "openresti" u f'dan l-iskrittura nagħmlu għażla ta '6 parametri differenti b'konkatenazzjoni "Jew". Skont il-preżenza ta 'parametru wieħed jew ieħor, nafu li l-utent wasal għal paġna jew oħra, linja jew oħra.

    Skjerament blu/aħdar. Vantaġġi u żvantaġġi

    Naturalment, kien probabbilment possibbli li tagħmilha ftit aktar sempliċi (uża l-istess "Sessjonijiet Sticky"), iżda għandna wkoll tali sfumatura li mhux biss l-utent jinteraġixxi magħna fil-qafas ta 'proċessar wieħed ta' tranżazzjoni waħda... Iżda s-sistemi tal-ħlas jinteraġixxu magħna wkoll: Wara li nipproċessaw it-tranżazzjoni (billi nibagħtu talba lis-sistema tal-ħlas), nirċievu coolback.
    U ejja ngħidu, jekk ġewwa ċ-ċirkwit tagħna nistgħu ngħaddu l-indirizz IP tal-utent fit-talbiet kollha u naqsmu l-utenti bbażati fuq l-indirizz IP, allura mhux se ngħidu l-istess "Visa": "Raġel, aħna tali kumpanija retro, nidhru biex tkun internazzjonali (fuq il-websajt u fir-Russja)... Jekk jogħġbok agħtina l-indirizz IP tal-utent f'qasam addizzjonali, il-protokoll tiegħek huwa standardizzat"! Huwa ċar li mhux se jaqblu.

    HighLoad++, Evgeniy Kuzovlev (EcommPay IT): x'għandek tagħmel meta minuta ta' waqfien tiswa $100000

    Għalhekk, dan ma ħadimx għalina - għamilna openresty. Għaldaqstant, bir-routing ksibna xi ħaġa bħal din:

    Blue/Green Deployment għandu, għaldaqstant, il-vantaġġi li semmejt u l-iżvantaġġi.

    Żewġ żvantaġġi:

    • għandek bżonn tolqot bir-routing;
    • it-tieni żvantaġġ ewlieni huwa l-ispiża.

    Għandek bżonn id-doppju ta' servers, għandek bżonn id-doppju ta' riżorsi operattivi, trid tonfoq id-doppju ta' sforz biex iżżomm dan iż-żoo kollu.

    Mill-mod, fost il-vantaġġi hemm ħaġa oħra li ma semmejtx qabel: għandek riżerva f'każ ta 'tkabbir tat-tagħbija. Jekk għandek tkabbir splussiv fit-tagħbija, għandek numru kbir ta 'utenti, allura sempliċement tinkludi t-tieni linja fid-distribuzzjoni 50 sa 50 - u immedjatament għandek servers x2 fil-cluster tiegħek sakemm issolvi l-problema li jkollok aktar servers.

    Kif tagħmel skjerament malajr?

    Tkellimna dwar kif issolvi l-problema tal-minimizzazzjoni u t-tkeċċija ta 'malajr, iżda l-mistoqsija tibqa': "Kif tiskjera malajr?"

    HighLoad++, Evgeniy Kuzovlev (EcommPay IT): x'għandek tagħmel meta minuta ta' waqfien tiswa $100000

    Huwa qasir u sempliċi hawn.

    • Irid ikollok sistema CD (Konsenja Kontinwa) - ma tistax tgħix mingħajrha. Jekk għandek server wieħed, tista' tuża manwalment. Għandna madwar elf u nofs server u elf u nofs manki, ovvjament - nistgħu nħawwel dipartiment daqs din il-kamra biss biex niskjeraw.
    • L-iskjerament għandu jkun parallel. Jekk l-iskjerament tiegħek huwa sekwenzjali, allura kollox huwa ħażin. Server wieħed huwa normali, inti tkun qed tuża elf u nofs server il-ġurnata kollha.
    • Għal darb'oħra, għall-aċċelerazzjoni, dan probabbilment m'għadux meħtieġ. Matul l-iskjerament, il-proġett normalment jinbena. Għandek proġett tal-web, hemm parti ta 'quddiem (tagħmel pakkett tal-web hemmhekk, tikkumpila npm - xi ħaġa bħal dik), u dan il-proċess huwa, fil-prinċipju, ta' ħajja qasira - 5 minuti, iżda dawn il-5 minuti jistgħu kun kritiku. Huwa għalhekk li, pereżempju, ma nagħmlux hekk: neħħejna dawn il-5 minuti, niskjeraw artifacts.

      X'inhu artifact? Artifact huwa bini immuntat li fih il-partijiet kollha tal-assemblaġġ diġà tlestew. Aħna naħżnu dan l-artifact fil-ħażna tal-artifact. F'ħin minnhom użajna żewġ ħażniet bħal dawn - kien Nexus u issa jFrog Artifactory). Inizjalment użajna "Nexus" għax bdejna nipprattikaw dan l-approċċ f'applikazzjonijiet java (kienu adattat tajjeb). Imbagħad poġġew xi wħud mill-applikazzjonijiet miktuba fil-PHP hemmhekk; u "Nexus" ma kienx għadu adattat, u għalhekk għażilna jFrog Artefactory, li tista 'artifactorize kważi kollox. Saħansitra wasalna sal-punt li f'dan ir-repożitorju tal-artifact aħna naħżnu l-pakketti binarji tagħna stess li niġbru għas-servers.

    Tkabbir ta 'tagħbija splussiva

    Tkellimna dwar il-bidla tal-verżjoni tas-softwer. Il-ħaġa li jmiss li għandna hija żieda splussiva fit-tagħbija. Hawnhekk, probabbilment nifhem bi tkabbir splussiv tat-tagħbija mhux il-ħaġa tajba...

    Aħna ktibna sistema ġdida - hija orjentata lejn is-servizz, moda, sabiħa, ħaddiema kullimkien, kjuwijiet kullimkien, asinkronija kullimkien. U f'sistemi bħal dawn, id-dejta tista' tgħaddi minn flussi differenti. Għall-ewwel tranżazzjoni, jista 'jintuża l-1, it-3, l-10 ħaddiem, għat-tieni tranżazzjoni - it-2, 4, 5. U llum, ejja ngħidu, filgħodu għandek data flow li juża l-ewwel tliet ħaddiema, u filgħaxija jinbidel b’mod drammatiku, u kollox juża t-tliet ħaddiema l-oħra.

    U hawn jirriżulta li għandek bżonn b'xi mod tiskala l-ħaddiema, trid b'xi mod tiskala s-servizzi tiegħek, iżda fl-istess ħin tipprevjeni n-nefħa tar-riżorsi.

    HighLoad++, Evgeniy Kuzovlev (EcommPay IT): x'għandek tagħmel meta minuta ta' waqfien tiswa $100000

    Iddefinijna r-rekwiżiti tagħna. Dawn ir-rekwiżiti huma pjuttost sempliċi: li jkun hemm skoperta tas-Servizz, parametrizzazzjoni - kollox huwa standard għall-bini ta 'sistemi skalabbli bħal dawn, ħlief għal punt wieħed - deprezzament tar-riżorsi. Għidna li m’aħniex lesti li namortizzaw ir-riżorsi biex is-servers isaħħnu l-arja. Ħadna "Konslu", ħadna "Nomad", li jamministra l-ħaddiema tagħna.

    Għaliex din hija problema għalina? Ejja nerġgħu lura ftit. Issa għandna madwar 70 sistema ta’ ħlas warajna. Filgħodu, it-traffiku jgħaddi minn Sberbank, imbagħad Sberbank waqa, pereżempju, u naqilbuh għal sistema oħra ta 'ħlas. Kellna 100 ħaddiem qabel Sberbank, u wara hemm bżonn li nżidu drastikament 100 ħaddiem għal sistema oħra ta 'ħlas. U huwa mixtieq li dan kollu jseħħ mingħajr il-parteċipazzjoni tal-bniedem. Għax jekk ikun hemm parteċipazzjoni umana, għandu jkun hemm inġinier bilqiegħda hemm 24/7, li għandu jkun qed jagħmel dan biss, għax fallimenti bħal dawn, meta 70 sistema jkunu warajk, iseħħu regolarment.

    Għalhekk, ħares lejn Nomad, li għandu IP miftuħ, u ktibna l-ħaġa tagħna stess, Scale-Nomad - ScaleNo, li jagħmel bejn wieħed u ieħor dan li ġej: jimmonitorja t-tkabbir tal-kju u jnaqqas jew iżid in-numru ta 'ħaddiema skont id-dinamika tal-kju. Meta għamilna, ħsibna: "Forsi nistgħu niftħuha?" Imbagħad ħarsu lejha - kienet sempliċi daqs żewġ kopecks.

    S'issa m'aħniex open sourcedha, imma jekk f'daqqa waħda wara r-rapport, wara li tirrealizza li għandek bżonn xi ħaġa bħal din, għandek bżonnha, il-kuntatti tiegħi huma fl-aħħar slide - jekk jogħġbok iktebli. Jekk ikun hemm mill-inqas 3-5 persuni, aħna nisponsorjawha.

    HighLoad++, Evgeniy Kuzovlev (EcommPay IT): x'għandek tagħmel meta minuta ta' waqfien tiswa $100000

    Kif taħdem? Ejja nagħtu ħarsa! Ħarsa 'l quddiem: fuq in-naħa tax-xellug hemm biċċa tal-monitoraġġ tagħna: din hija linja waħda, fin-naħa ta' fuq hemm il-ħin tal-ipproċessar tal-avveniment, fin-nofs hemm in-numru ta 'tranżazzjonijiet, fil-qiegħ hemm in-numru ta' ħaddiema.

    Jekk tħares, hemm glitch f'din l-istampa. Fuq iċ-ċart ta’ fuq, waħda miċ-ċarts ġġarraf f’45 sekonda – waħda mis-sistemi ta’ ħlas niżlet. Immedjatament, it-traffiku ddaħħal f'minuti 2 u l-kju beda jikber fuq sistema oħra ta 'ħlas, fejn ma kienx hemm ħaddiema (ma użajnax ir-riżorsi - għall-kuntrarju, morna r-riżors b'mod korrett). Ma ridniex insaħħnu - kien hemm numru minimu, madwar ħaddiema 5-10, iżda ma setgħux ilaħħqu.

    L-aħħar graff turi "ħotba", li tfisser biss li "Skaleno" irdoppja dan l-ammont. U mbagħad, meta l-grafika niżlet ftit, naqqasha ftit - in-numru ta 'ħaddiema nbidel awtomatikament. Hekk taħdem din il-ħaġa. Tkellimna dwar il-punt numru 2 - "Kif teħles malajr mir-raġunijiet."

    Monitoraġġ. Kif tidentifika malajr il-problema?

    Issa l-ewwel punt huwa "Kif tidentifika malajr il-problema?" Monitoraġġ! Irridu nifhmu ċerti affarijiet malajr. X’affarijiet għandna nifhmu malajr?

    HighLoad++, Evgeniy Kuzovlev (EcommPay IT): x'għandek tagħmel meta minuta ta' waqfien tiswa $100000

    Tliet affarijiet!

    • Irridu nifhmu u nifhmu malajr il-prestazzjoni tar-riżorsi tagħna stess.
    • Irridu nifhmu malajr il-fallimenti u nissorveljaw il-prestazzjoni tas-sistemi li huma esterni għalina.
    • It-tielet punt huwa l-identifikazzjoni ta 'żbalji loġiċi. Dan meta s-sistema tkun qed taħdem għalik, kollox huwa normali skont l-indikaturi kollha, iżda xi ħaġa tmur ħażin.

    Probabbilment ma ngħidlek xejn li jibred hawn. Jien inkun Kaptan Ovvju. Fittixna dak li kien fis-suq. Għandna "fun zoo". Dan huwa t-tip ta’ zoo li għandna issa:

    HighLoad++, Evgeniy Kuzovlev (EcommPay IT): x'għandek tagħmel meta minuta ta' waqfien tiswa $100000

    Aħna nużaw Zabbix biex tissorvelja l-ħardwer, biex tissorvelja l-indikaturi ewlenin tas-servers. Aħna nużaw Okmeter għal databases. Aħna nużaw "Grafana" u "Prometheus" għall-indikaturi l-oħra kollha li ma jaqblux mal-ewwel tnejn, xi wħud b'"Grafana" u "Prometheus", u xi wħud b'"Grafana" b'"Influx" u Telegraf.

    Sena ilu ridna nużaw New Relic. Ħaġa friska, tista 'tagħmel kollox. Imma kemm tista’ tagħmel kollox, hija tant għalja. Meta kiber għal volum ta '1,5 elf servers, bejjiegħ ġie għandna u qal: "Ejja nikkonkludu ftehim għas-sena d-dieħla." Ħarsa lejn il-prezz u għedna le, mhux se nagħmlu dan. Issa qed nabbandunaw New Relic, fadal madwar 15-il server taħt il-monitoraġġ ta 'New Relic. Il-prezz irriżulta li kien assolutament selvaġġ.

    U hemm għodda waħda li aħna implimentajna nfusna - dan huwa Debugger. Għall-ewwel nsejħulha “Bagger,” imma mbagħad għadda għalliem tal-Ingliż, daħqet b’mod selvaġġ, u semmieha mill-ġdid “Debagger.” X'inhu? Din hija għodda li, fil-fatt, f'15-30 sekonda fuq kull komponent, bħal "kaxxa sewda" tas-sistema, twettaq testijiet fuq il-prestazzjoni ġenerali tal-komponent.

    Pereżempju, jekk ikun hemm paġna esterna (paġna tal-ħlas), huwa sempliċement jiftaħha u jħares lejn kif għandha tidher. Jekk dan qed jipproċessa, huwa jibgħat test "transazzjoni" u jiżgura li din it-"tranżazzjoni" tasal. Jekk din hija konnessjoni ma 'sistemi ta' ħlas, nisparaw talba ta 'test kif xieraq, fejn nistgħu, u naraw li kollox huwa tajjeb magħna.

    Liema indikaturi huma importanti għall-monitoraġġ?

    X'nimmonitorjaw prinċipalment? Liema indikaturi huma importanti għalina?

    HighLoad++, Evgeniy Kuzovlev (EcommPay IT): x'għandek tagħmel meta minuta ta' waqfien tiswa $100000

    • Il-ħin tar-rispons / RPS fuq il-faċċati huwa indikatur importanti ħafna. Immedjatament iwieġeb li xi ħaġa ħażina miegħek.
    • In-numru ta' messaġġi pproċessati fil-kjuwijiet kollha.
    • Numru ta' ħaddiema.
    • Metriċi bażiċi tal-korrettezza.

    L-aħħar punt huwa metrika "negozju", "negozju". Jekk trid tissorvelja l-istess ħaġa, trid tiddefinixxi metrika waħda jew tnejn li huma l-indikaturi ewlenin għalik. Il-metrika tagħna hija t-trażmissjoni (dan huwa l-proporzjon tan-numru ta 'tranżazzjonijiet ta' suċċess mal-fluss totali tat-tranżazzjonijiet). Jekk xi ħaġa tinbidel fiha f'intervall ta '5-10-15-il minuta, dan ifisser li għandna problemi (jekk tinbidel radikalment).

    Dak li jidher għalina huwa eżempju ta’ wieħed mill-bordijiet tagħna:

    HighLoad++, Evgeniy Kuzovlev (EcommPay IT): x'għandek tagħmel meta minuta ta' waqfien tiswa $100000

    Fuq in-naħa tax-xellug hemm 6 graphs, dan skont il-linji - in-numru ta 'ħaddiema u n-numru ta' messaġġi fil-kjuwijiet. Fuq in-naħa tal-lemin - RPS, RTS. Hawn taħt hemm l-istess metrika ta '"negozju". U fil-metrika "negozju" nistgħu naraw immedjatament li xi ħaġa marret ħażin fiż-żewġ graffs tan-nofs... Din hija biss sistema oħra li tinsab warajna li waqgħet.

    It-tieni ħaġa li kellna nagħmlu kienet li nissorveljaw il-waqgħa tas-sistemi ta’ pagament esterni. Hawnhekk ħadna OpenTracing - mekkaniżmu, standard, paradigma li jippermettilek li tintraċċa sistemi distribwiti; u nbidel ftit. Il-paradigma standard OpenTracing tgħid li aħna nibnu traċċa għal kull talba individwali. Ma kellniex bżonn dan, u tgeżwerh f'sommarju, traċċa ta 'aggregazzjoni. Għamilna għodda li tippermettilna nsegwu l-veloċità tas-sistemi warajna.

    HighLoad++, Evgeniy Kuzovlev (EcommPay IT): x'għandek tagħmel meta minuta ta' waqfien tiswa $100000

    Il-graff jurina li waħda mis-sistemi tal-ħlas bdiet tirrispondi fi 3 sekondi - għandna problemi. Barra minn hekk, din il-ħaġa se tirreaġixxi meta jibdew il-problemi, f'intervall ta '20-30 sekonda.

    U t-tielet klassi ta 'żbalji ta' monitoraġġ li jeżistu hija monitoraġġ loġiku.

    Biex inkun onest, ma kontx naf x'nagħmel fuq din is-slide, għax ilna nfittxu fis-suq xi ħaġa li tkun taqbelna. Ma sibna xejn, allura kellna nagħmluh aħna.

    HighLoad++, Evgeniy Kuzovlev (EcommPay IT): x'għandek tagħmel meta minuta ta' waqfien tiswa $100000

    Xi rrid nifhem b'monitoraġġ loġiku? Ukoll, immaġina: inti tagħmel lilek innifsek sistema (per eżempju, klonu Tinder); għamiltu, nedietha. Il-maniġer ta 'suċċess Vasya Pupkin poġġih fuq it-telefon tiegħu, jara tfajla hemmhekk, jħobbha ... u simili ma jmurx għat-tfajla - simili jmur għand il-gwardja tas-sigurtà Mikhalych mill-istess ċentru tan-negozju. Il-maniġer jinżel, u mbagħad jistaqsi: "Għaliex dan il-gwardjan tas-sigurtà Mikhalych jitbissemlu daqshekk pjaċevoli?"

    F'sitwazzjonijiet bħal dawn... Għalina, din is-sitwazzjoni tinstema' ftit differenti, għax (ktibt) dan huwa telf ta' reputazzjoni li indirettament iwassal għal telf finanzjarju. Is-sitwazzjoni tagħna hija l-oppost: nistgħu nsofru telf finanzjarju dirett - per eżempju, jekk wettaqna tranżazzjoni bħala suċċess, iżda ma rnexxietx (jew viċi versa). Kelli nikteb l-għodda tiegħi stess li ssegwi n-numru ta 'tranżazzjonijiet ta' suċċess maż-żmien billi tuża indikaturi tan-negozju. Ma sibt xejn fis-suq! Din hija eżattament l-idea li ridt inwassal. M'hemm xejn fis-suq biex issolvi din it-tip ta 'problema.

    Dan kien dwar kif tidentifika malajr il-problema.

    Kif tiddetermina r-raġunijiet għall-iskjerament

    It-tielet grupp ta 'problemi li nsolvu huwa wara li identifikajna l-problema, wara li neħilsu minnha, ikun tajjeb li nifhmu r-raġuni għall-iżvilupp, għall-ittestjar, u nagħmlu xi ħaġa dwarha. Għaldaqstant, għandna bżonn ninvestigaw, irridu ngħollu z-zkuk.

    HighLoad++, Evgeniy Kuzovlev (EcommPay IT): x'għandek tagħmel meta minuta ta' waqfien tiswa $100000

    Jekk qed nitkellmu dwar zkuk (ir-raġuni ewlenija hija zkuk), il-biċċa l-kbira taż-zkuk tagħna huma f'ELK Stack - kważi kulħadd għandu l-istess. Għal xi wħud, jista 'ma jkunx f'ELK, imma jekk tikteb zkuk f'gigabytes, allura illum jew għada tasal għal ELK. Niktbuhom f’terabytes.

    HighLoad++, Evgeniy Kuzovlev (EcommPay IT): x'għandek tagħmel meta minuta ta' waqfien tiswa $100000

    Hemm problema hawn. Irranġajna, ikkoreġejna l-iżball għall-utent, bdejna nħaffru dak li kien hemm, telgħu f'Kibana, daħħalna l-id tat-tranżazzjoni hemmhekk u ltqajna footcloth bħal din (turi ħafna). U assolutament xejn mhu ċar f'dan il-footcloth. Għaliex? Iva, għax mhux ċar liema parti tappartjeni għal liema ħaddiem, liema parti tappartjeni għal liema komponent. U f'dak il-mument indunajna li kellna bżonn it-traċċar - l-istess OpenTracing li tkellimt dwaru.

    Ħsibna dan sena ilu, dawwar l-attenzjoni tagħna lejn is-suq, u kien hemm żewġ għodod hemmhekk - "Zipkin" u "Jaeger". "Jager" huwa fil-fatt werriet ideoloġiku bħal dan, suċċessur ideoloġiku ta '"Zipkin". Kollox huwa tajjeb f'Zipkin, ħlief li ma jafx kif jaggrega, ma jafx kif jinkludi zkuk fit-traċċa, biss traċċa tal-ħin. U "Jager" appoġġja dan.

    Ħarsa lejn "Jager": tista' tistrumenta l-applikazzjonijiet, tista' tikteb f'Api (l-istandard Api għall-PHP dak iż-żmien, madankollu, ma kienx approvat - dan kien sena ilu, iżda issa diġà ġie approvat), iżda hemm kien assolutament l-ebda klijent. "Okay," ħsibna, u ktibna lill-klijent tagħna stess. X’ksibna? Dan huwa bejn wieħed u ieħor kif jidher:

    HighLoad++, Evgeniy Kuzovlev (EcommPay IT): x'għandek tagħmel meta minuta ta' waqfien tiswa $100000

    F'Jaeger, jinħolqu spans għal kull messaġġ. Jiġifieri, meta utent jiftaħ is-sistema, jara blokka waħda jew tnejn għal kull talba deħlin (1-2-3 - in-numru ta 'talbiet deħlin mill-utent, in-numru ta' blokki). Biex tagħmilha aktar faċli għall-utenti, aħna żidna tikketti maz-zkuk u traċċi tal-ħin. Għaldaqstant, f'każ ta' żball, l-applikazzjoni tagħna timmarka r-reġistru bit-tikketta ta' Żball xierqa. Tista' tiffiltra b'tikketta ta' Żball u se jintwerew biss medda li fihom din il-blokka bi żball. Dan huwa kif jidher jekk nespandu l-medda:

    HighLoad++, Evgeniy Kuzovlev (EcommPay IT): x'għandek tagħmel meta minuta ta' waqfien tiswa $100000

    Ġewwa l-medda hemm sett ta 'traċċi. F'dan il-każ, dawn huma tliet traċċi tat-test, u t-tielet traċċa tgħidilna li seħħ żball. Fl-istess ħin, hawnhekk naraw traċċa tal-ħin: għandna skala ta 'żmien fil-quċċata, u naraw f'liema intervall ta' ħin ġie rreġistrat dan jew dak ir-reġistru.

    Għaldaqstant, l-affarijiet marru tajjeb għalina. Aħna ktibna l-estensjoni tagħna stess u aħna open sourcedha. Jekk trid taħdem bit-traċċar, jekk trid taħdem ma '"Jager" fil-PHP, hemm l-estensjoni tagħna, merħba tuża, kif jgħidu:

    HighLoad++, Evgeniy Kuzovlev (EcommPay IT): x'għandek tagħmel meta minuta ta' waqfien tiswa $100000

    Għandna din l-estensjoni - huwa klijent għall-OpenTracing Api, huwa magħmul bħala php-extension, jiġifieri, ser ikollok bżonn tiġborha u tinstallaha fuq is-sistema. Sena ilu ma kien hemm xejn differenti. Issa hemm klijenti oħra li huma bħal komponenti. Hawn f'idejk: jew tippompja l-komponenti b'kompożitur, jew tuża l-estensjoni sa inti.

    Standards korporattivi

    Tkellimna dwar it-tliet kmandamenti. Ir-raba’ kmandament huwa li jiġu standardizzati l-approċċi. X'inhu dan dwar? Huwa dwar dan:

    HighLoad++, Evgeniy Kuzovlev (EcommPay IT): x'għandek tagħmel meta minuta ta' waqfien tiswa $100000

    Għaliex il-kelma "korporattiva" hawn? Mhux għax aħna kumpanija kbira jew burokratika, le! Jien ridt nuża l-kelma "korporattiva" hawn fil-kuntest li kull kumpanija, kull prodott għandu jkollu l-istandards tiegħu, inkluż int. Liema standards għandna?

    HighLoad++, Evgeniy Kuzovlev (EcommPay IT): x'għandek tagħmel meta minuta ta' waqfien tiswa $100000

    • Għandna regolamenti tal-iskjerament. Ma nimxu imkien mingħajru, ma nistgħux. Niskjeraw madwar 60 darba fil-ġimgħa, jiġifieri, niskjeraw kważi kontinwament. Fl-istess ħin, għandna, pereżempju, fir-regolamenti tal-iskjerament tabù dwar l-iskjerament nhar il-Ġimgħa - fil-prinċipju, aħna ma nħaddmux.
    • Aħna neħtieġu dokumentazzjoni. L-ebda komponent ġdid ma jidħol fil-produzzjoni jekk ma jkunx hemm dokumentazzjoni għaliha, anki jekk twieled taħt il-pinna tal-ispeċjalisti tagħna RnD. Neħtieġu mingħandhom struzzjonijiet ta 'skjerament, mappa ta' monitoraġġ u deskrizzjoni approssimattiva (ukoll, kif jistgħu jiktbu l-programmaturi) ta 'kif jaħdem dan il-komponent, kif issolvih il-problemi.
    • Aħna nsolvu mhux il-kawża tal-problema, iżda l-problema - dak li diġà għedt. Huwa importanti għalina li nipproteġu lill-utent minn problemi.
    • Għandna awtorizzazzjonijiet. Pereżempju, ma nqisuhx waqfien jekk tlifna 2% tat-traffiku fi żmien żewġ minuti. Dan bażikament mhuwiex inkluż fl-istatistika tagħna. Jekk huwa aktar f'termini perċentwali jew temporanju, aħna diġà ngħoddu.
    • U dejjem niktbu postmortems. Jiġrilna x’jiġri, kull sitwazzjoni fejn xi ħadd ġab ruħu b’mod anormali fil-produzzjoni tkun riflessa fil-post-mortem. Postmortem huwa dokument li fih tikteb x’ġara lilek, ħin dettaljat, x’għamilt biex tikkoreġih u ​​(dan huwa blokk obbligatorju!) x’se tagħmel biex dan ma jseħħx fil-futur. Dan huwa obbligatorju u meħtieġ għal analiżi sussegwenti.

    X'inhu kkunsidrat waqfien?

    HighLoad++, Evgeniy Kuzovlev (EcommPay IT): x'għandek tagħmel meta minuta ta' waqfien tiswa $100000

    Għal xiex wassal dan kollu?

    Dan wassal għall-fatt li (kellna ċerti problemi bl-istabbiltà, dan ma kienx jaqbel la lill-klijenti u lanqas lilna) matul l-aħħar 6 xhur l-indikatur tal-istabbiltà tagħna kien 99,97. Nistgħu ngħidu li dan mhux ħafna. Iva, għandna xi ħaġa li nistinkaw għaliha. Ta 'dan l-indikatur, madwar nofs hija l-istabbiltà, kif inhi, mhux tagħna, iżda tal-firewall tal-applikazzjoni tal-web tagħna, li jinsab quddiemna u jintuża bħala servizz, iżda l-klijenti ma jimpurtahomx minn dan.

    Tgħallimna torqod bil-lejl. Fl-aħħarnett! Sitt xhur ilu ma stajniex. U fuq din in-nota bir-riżultati, nixtieq nagħmel nota waħda. Ilbieraħ filgħaxija kien hemm rapport mill-isbaħ dwar is-sistema ta’ kontroll għal reattur nukleari. Jekk in-nies li kitbu din is-sistema jistgħu jisimgħuni, jekk jogħġbok insa dwar dak li għedt dwar "2% mhux ħin ta' waqfien." Għalik, 2% huwa ħin ta' waqfien, anki jekk għal żewġ minuti!

    Dak kollox! Il-mistoqsijiet tiegħek.

    HighLoad++, Evgeniy Kuzovlev (EcommPay IT): x'għandek tagħmel meta minuta ta' waqfien tiswa $100000

    Dwar balancers u migrazzjoni tad-database

    Mistoqsija mill-udjenza (minn hawn 'il quddiem – B): – Il-lejla t-tajba. Grazzi ħafna għal tali rapport amministrattiv! Mistoqsija qasira dwar il-balancers tiegħek. Semmejt li għandek WAF, jiġifieri kif nifhem jien, tuża xi tip ta’ external balancer...

    EK: – Le, nużaw is-servizzi tagħna bħala balancer. F'dan il-każ, WAF hija esklussivament għodda ta 'protezzjoni DDoS għalina.

    FI: – Tista’ tgħid ftit kliem dwar il-balancers?

    EK: – Kif diġà għedt, dan huwa grupp ta 'servers f'openresty. Issa għandna 5 gruppi ta 'riżerva li jirrispondu esklussivament... jiġifieri, server li jmexxi esklussivament openresty, jipproduċi biss it-traffiku. Għaldaqstant, biex nifhmu kemm inżommu: issa għandna fluss regolari tat-traffiku ta 'diversi mijiet ta' megabits. Jilaħħqu, iħossuhom tajjeb, lanqas biss jitgħawġu lilhom infushom.

    FI: – Mistoqsija sempliċi wkoll. Hawnhekk huwa l-iskjerament Blu / Aħdar. X'tagħmel, pereżempju, bil-migrazzjoni tad-databases?

    EK: - Mistoqsija tajba! Ara, fl-iskjerament Blue/Green għandna kjuwijiet separati għal kull linja. Jiġifieri, jekk qed nitkellmu dwar kjuwijiet tal-avvenimenti li jiġu trażmessi minn ħaddiem għal ħaddiem, hemm kjuwijiet separati għal-linja blu u għal-linja ħadra. Jekk qed nitkellmu dwar id-database nnifisha, allura naqqasnieha deliberatament kemm stajna, mċaqalqa kollox prattikament fi kjuwijiet; fid-database aħna naħżnu biss munzell ta 'tranżazzjonijiet. U l-munzell tat-tranżazzjonijiet tagħna huwa l-istess għal-linji kollha. Mad-database f'dan il-kuntest: aħna ma naqsmux fi blu u aħdar, minħabba li ż-żewġ verżjonijiet tal-kodiċi għandhom ikunu jafu x'qed jiġri mat-tranżazzjoni.

    Ħbieb, għandi wkoll premju żgħir biex nixprunakom - ktieb. U għandi ningħataha għall-aħjar mistoqsija.

    FI: - Bongu. Grazzi tar-rapport. Il-mistoqsija hija din. Tissorvelja l-pagamenti, tissorvelja s-servizzi li tikkomunika magħhom... Imma kif tissorvelja sabiex persuna b'xi mod waslet għall-paġna tal-ħlas tiegħek, tagħmel ħlas, u l-proġett ikkreditaha bi flus? Jiġifieri, kif tissorvelja li l-merkantili huwa disponibbli u aċċetta l-callback tiegħek?

    EK: – "Merkantili" għalina f'dan il-każ huwa eżattament l-istess servizz estern bħas-sistema ta 'ħlas. Aħna nissorveljaw il-veloċità tar-rispons tan-negozjant.

    Dwar il-kriptaġġ tad-database

    FI: - Bongu. Għandi mistoqsija kemmxejn relatata. Għandek dejta sensittiva tal-PCI DSS. Xtaqt inkun naf kif taħżen PANs fi kjuwijiet li għandek bżonn tittrasferixxi fihom? Tuża xi encryption? U dan iwassal għat-tieni mistoqsija: skond il-PCI DSS, huwa meħtieġ li perjodikament terġa 'tikkripta d-database f'każ ta' bidliet (tkeċċija ta 'amministraturi, eċċ.) - x'jiġri mill-aċċessibilità f'dan il-każ?

    HighLoad++, Evgeniy Kuzovlev (EcommPay IT): x'għandek tagħmel meta minuta ta' waqfien tiswa $100000

    EK: - Mistoqsija mill-isbaħ! L-ewwelnett, aħna ma naħżnux PANs fi kjuwijiet. M'għandniex id-dritt li naħżnu PAN kullimkien f'forma ċara, fil-prinċipju, għalhekk nużaw servizz speċjali (aħna nsejħulu "Kademon") - dan huwa servizz li jagħmel ħaġa waħda biss: jirċievi messaġġ bħala input u jibgħat barra messaġġ kriptat. U aħna naħżnu kollox b'dan il-messaġġ kriptat. Għaldaqstant, it-tul ewlieni tagħna huwa taħt kilobyte, sabiex dan ikun serju u affidabbli.

    FI: – Għandek bżonn 2 kilobytes issa?

    EK: – Jidher li lbieraħ kien 256... Tajjeb, fejn inkella?!

    Għaldaqstant, din hija l-ewwel waħda. U t-tieni, is-soluzzjoni li teżisti, tappoġġja l-proċedura ta 'kriptaġġ mill-ġdid - hemm żewġ pari ta' "keks" (ċwievet), li jagħtu "gverti" li jikkriptaw (ċavetta huma ċ-ċwievet, dek huma derivattivi taċ-ċwievet li jikkriptaw) . U jekk tinbeda l-proċedura (jiġri regolarment, minn 3 xhur sa ± xi wħud), iniżżlu par ġdid ta '"kejkijiet", u nerġgħu nikkriptaw id-dejta. Għandna servizzi separati li jaqilgħu d-data kollha u jikkriptawha b'mod ġdid; Id-data hija maħżuna ħdejn l-identifikatur taċ-ċavetta li biha hija encrypted. Għaldaqstant, hekk kif nikkriptaw id-dejta b'ċwievet ġodda, inħassru ċ-ċavetta l-antika.

    Xi drabi l-ħlasijiet iridu jsiru manwalment...

    FI: – Jiġifieri, jekk tkun waslet rifużjoni għal xi operazzjoni, xorta ser tiddikriptah biċ-ċavetta l-antika?

    EK: - Iva.

    FI: – Imbagħad mistoqsija żgħira oħra. Meta jseħħ xi tip ta 'falliment, waqgħa jew inċident, huwa meħtieġ li timbotta t-tranżazzjoni manwalment. Hemm sitwazzjoni bħal din.

    EK: - Iva, kultant.

    FI: – Minn fejn tikseb din id-dejta? Jew tmur f'din il-faċilità tal-ħażna lilek innifsek?

    EK: – Le, ukoll, ovvjament, għandna xi tip ta 'sistema ta' back-office li fiha interface għall-appoġġ tagħna. Jekk ma nafux f'liema status tinsab it-tranżazzjoni (pereżempju, sakemm is-sistema ta 'ħlas wieġbet b'timeout), ma nafux a priori, jiġifieri, nassenjaw l-istatus finali biss b'kunfidenza sħiħa. F'dan il-każ, aħna nassenjaw it-tranżazzjoni għal status speċjali għall-ipproċessar manwali. Filgħodu, l-għada, hekk kif l-appoġġ jirċievi informazzjoni li tranżazzjonijiet bħal dawn jibqgħu fis-sistema ta 'ħlas, huma jipproċessawhom manwalment f'din l-interface.

    HighLoad++, Evgeniy Kuzovlev (EcommPay IT): x'għandek tagħmel meta minuta ta' waqfien tiswa $100000

    FI: – Għandi ftit mistoqsijiet. Waħda minnhom hija l-kontinwazzjoni taż-żona PCI DSS: kif tilloggja ċ-ċirkwit tagħhom? Din il-mistoqsija hija minħabba li l-iżviluppatur seta 'poġġa xi ħaġa fil-zkuk! It-tieni mistoqsija: kif tagħmel il-hotfixes? L-użu tal-pumi fid-database hija għażla waħda, iżda jista 'jkun hemm hot-fixes b'xejn - x'inhi l-proċedura hemmhekk? U t-tielet mistoqsija hija probabbilment relatata ma 'RTO, RPO. Id-disponibbiltà tiegħek kienet 99,97, kważi erba 'disgħa, imma kif nifhem jien, għandek it-tieni ċentru tad-dejta, it-tielet ċentru tad-dejta, u l-ħames ċentru tad-dejta... Kif tissinkronizzahom, tirreplikahom, u kull ħaġa oħra?

    EK: - Nibdew bl-ewwel waħda. L-ewwel mistoqsija kienet dwar iz-zkuk? Meta niktbu zkuk, għandna saff li jaħbi d-dejta sensittiva kollha. Hija tħares lejn il-maskra u lejn l-oqsma addizzjonali. Għaldaqstant, ir-zkuk tagħna joħorġu b'dejta diġà mgħottija u ċirkwit PCI DSS. Dan huwa wieħed mill-kompiti regolari assenjati lid-dipartiment tal-ittestjar. Huma meħtieġa li jiċċekkjaw kull kompitu, inklużi r-zkuk li jiktbu, u dan huwa wieħed mill-kompiti regolari waqt ir-reviżjonijiet tal-kodiċi, sabiex jikkontrollaw li l-iżviluppatur ma kitebx xi ħaġa. Kontrolli sussegwenti ta 'dan isiru regolarment mid-dipartiment tas-sigurtà tal-informazzjoni madwar darba fil-ġimgħa: zkuk għall-aħħar jum jittieħdu b'mod selettiv u jitmexxew permezz ta' scanner-analizzatur speċjali minn servers tat-test biex jiċċekkjaw kollox.
    Dwar hot-fixes. Dan huwa inkluż fir-regolamenti tal-iskjerament tagħna. Għandna klawżola separata dwar il-hotfixes. Aħna nemmnu li aħna niskjeraw hotfixes XNUMX ġurnata meta jkollna bżonnha. Hekk kif il-verżjoni tkun immuntata, hekk kif titmexxa, hekk kif ikollna artifact, għandna amministratur tas-sistema fuq dmirijiet fuq sejħa mill-appoġġ, u huwa jużah fil-mument meta jkun meħtieġ.

    Dwar "erba disgħa". Iċ-ċifra li għandna issa nkisbet tassew, u stinkajna għaliha f'ċentru tad-dejta ieħor. Issa għandna t-tieni ċentru tad-dejta, u qed nibdew nagħtu rotta bejniethom, u l-kwistjoni tar-replikazzjoni taċ-ċentru tad-dejta inkroċjata hija tassew mistoqsija mhux trivjali. Ippruvajna nsolvuha f'ħin wieħed billi tuża mezzi differenti: ippruvajna nużaw l-istess "Tarantula" - ma ħadmitx għalina, ngħidlek mill-ewwel. Huwa għalhekk li spiċċajna ordnaw is-"sens" manwalment. Fil-fatt, kull applikazzjoni fis-sistema tagħna tmexxi s-sinkronizzazzjoni meħtieġa "bidla - magħmul" bejn iċ-ċentri tad-dejta b'mod asinkroniku.

    FI: – Jekk ħadt it-tieni waħda, għaliex ma ħadtx it-tielet wieħed? Għax ħadd għadu ma għandu moħħ maqsum...

    EK: - Imma m'għandniex Split Brain. Minħabba l-fatt li kull applikazzjoni hija mmexxija minn multimaster, għalina ma jimpurtax f'liema ċentru waslet it-talba. Aħna lesti għall-fatt li jekk wieħed miċ-ċentri tad-dejta tagħna jonqos (niddependu fuq dan) u f'nofs talba tal-utent jaqleb għat-tieni ċentru tad-dejta, aħna lesti li nitilfu dan l-utent, tabilħaqq; iżda dawn se jkunu unitajiet, unitajiet assoluti.

    FI: - Il-lejla t-tajba. Grazzi tar-rapport. Tkellimt dwar id-debugger tiegħek, li jmexxi xi transazzjonijiet tat-test fil-produzzjoni. Imma għidilna dwar it-transazzjonijiet tat-test! Kemm imur fil-fond?

    EK: – Tgħaddi miċ-ċiklu sħiħ tal-komponent kollu. Għal komponent, m'hemm l-ebda differenza bejn transazzjoni tat-test u tranżazzjoni ta 'produzzjoni. Iżda mil-lat loġiku, dan huwa sempliċement proġett separat fis-sistema, li fuqu jitmexxew biss transazzjonijiet tat-test.

    FI: -Fejn taqtagħha? Hawnhekk Core bagħtet...

    EK: – Aħna qegħdin wara "Kor" f'dan il-każ għal transazzjonijiet tat-test... Għandna ħaġa bħal rotta: "Kor" jaf lil liema sistema ta 'ħlas tibgħat - nibagħtu lil sistema ta' ħlas falza, li sempliċement tagħti sinjal http u dak kollox.

    FI: – Għidli, jekk jogħġbok, l-applikazzjoni tiegħek kienet miktuba f'monolite enormi wieħed, jew qatgħetha f'xi servizzi jew saħansitra mikroservizzi?

    EK: - M'għandniex monolith, ovvjament, għandna applikazzjoni orjentata lejn is-servizz. Niċċajta li s-servizz tagħna huwa magħmul minn monoliti - huma verament pjuttost kbar. Huwa diffiċli li ssejjaħlu mikroservizzi, iżda dawn huma servizzi li fihom joperaw ħaddiema ta 'magni mqassma.

    Jekk is-servizz fuq is-server ikun kompromess...

    FI: – Imbagħad għandi l-mistoqsija li jmiss. Anke jekk kien monolith, inti xorta qal li għandek ħafna minn dawn is-servers instantanji, huma kollha bażikament jipproċessaw id-data, u l-mistoqsija hija: "Fil-każ ta 'kompromess ta' wieħed mis-servers instantanji jew applikazzjoni, kwalunkwe link individwali , għandhom xi tip ta 'kontroll ta' aċċess? Liema minnhom jista' jagħmel xiex? Lil min għandi nikkuntattja għal liema informazzjoni?

    HighLoad++, Evgeniy Kuzovlev (EcommPay IT): x'għandek tagħmel meta minuta ta' waqfien tiswa $100000

    EK: - Iva, żgur. Ir-rekwiżiti tas-sigurtà huma pjuttost serji. L-ewwelnett, għandna movimenti tad-dejta miftuħa, u l-portijiet huma biss dawk li permezz tagħhom nantiċipaw il-moviment tat-traffiku minn qabel. Jekk komponent jikkomunika mad-database (jiġifieri, ma 'Muskul) permezz ta' 5-4-3-2, 5-4-3-2 biss ikun miftuħ għalih, u portijiet oħra u direzzjonijiet oħra tat-traffiku mhux se jkunu disponibbli. Barra minn hekk, trid tifhem li fil-produzzjoni tagħna hemm madwar 10 loops ta 'sigurtà differenti. U anki jekk l-applikazzjoni kienet b'xi mod kompromessa, Alla jipprojbixxi, l-attakkant mhux se jkun jista 'jaċċessa l-console ta' ġestjoni tas-server, minħabba li din hija żona ta 'sigurtà tan-netwerk differenti.

    FI: – U f’dan il-kuntest, l-aktar interessanti għalija hu li għandek ċerti kuntratti ma’ servizzi – x’jistgħu jagħmlu, permezz ta’ liema “azzjonijiet” jistgħu jikkuntattjaw lil xulxin... U fi fluss normali, xi servizzi speċifiċi jitolbu xi wħud. ringiela, lista ta’ “azzjonijiet” fuq in-naħa l-oħra. Jidher li ma jdurux lejn oħrajn f'sitwazzjoni normali, u għandhom oqsma oħra ta 'responsabbiltà. Jekk wieħed minnhom ikun kompromess, ikun jista’ jfixkel l-“azzjonijiet” ta’ dak is-servizz?...

    EK: - Fhimt. Jekk f'sitwazzjoni normali ma 'server ieħor komunikazzjoni kienet permessa xejn, allura iva. Skont il-kuntratt SLA, aħna ma nissorveljawx li inti permess biss l-ewwel 3 "azzjonijiet", u m'intix permess l-4 "azzjonijiet". Dan probabbilment huwa żejda għalina, għaliex diġà għandna sistema ta 'protezzjoni ta' 4 livelli, fil-prinċipju, għaċ-ċirkwiti. Nippreferu niddefendu lilna nfusna bil-kontorni, aktar milli fil-livell ta’ ġewwa.

    Kif jaħdmu Visa, MasterCard u Sberbank

    FI: – Irrid niċċara punt dwar il-bidla ta' utent minn ċentru tad-dejta għal ieħor. Safejn naf jien, Visa u MasterCard joperaw bl-użu tal-protokoll sinkroniku binarju 8583, u hemm taħlitiet hemmhekk. U ridt inkun naf, issa rridu nfissru bidla - hija direttament "Visa" u "MasterCard" jew qabel is-sistemi ta 'ħlas, qabel l-ipproċessar?

    EK: - Dan qabel it-taħlitiet. It-taħlitiet tagħna jinsabu fl-istess ċentru tad-dejta.

    FI: – Bejn wieħed u ieħor, għandek punt wieħed ta’ konnessjoni?

    EK: – “Visa” u “MasterCard” - iva. Sempliċement għax Visa u MasterCard jeħtieġu investimenti pjuttost serji fl-infrastruttura biex jikkonkludu kuntratti separati biex jiksbu t-tieni par ta 'taħlitiet, pereżempju. Huma riżervati fi ħdan ċentru tad-dejta wieħed, imma jekk, Alla ħares, iċ-ċentru tad-dejta tagħna, fejn hemm taħlitiet għall-konnessjoni ma 'Visa u MasterCard, imut, allura jkollna konnessjoni ma' Visa u MasterCard mitlufa...

    FI: – Kif jistgħu jiġu riżervati? Naf li Visa tippermetti konnessjoni waħda biss fil-prinċipju!

    EK: – Huma jfornu t-tagħmir huma stess. Fi kwalunkwe każ, irċevejna tagħmir li huwa kompletament żejda ġewwa.

    FI: – Allura l-istand huwa mill-Connects Orange tagħhom?...

    EK: - Iva.

    FI: – Imma xi ngħidu dwar dan il-każ: jekk iċ-ċentru tad-dejta tiegħek jisparixxi, kif tista' tkompli tużah? Jew it-traffiku jieqaf biss?

    EK: - Le. F'dan il-każ, aħna sempliċement se naqilbu t-traffiku għal kanal ieħor, li, naturalment, se jiswa aktar għalina u jiswa aktar għall-klijenti tagħna. Iżda t-traffiku mhux se jgħaddi mill-konnessjoni diretta tagħna ma 'Visa, MasterCard, iżda permezz tas-Sberbank kundizzjonali (eżaġerat ħafna).

    Niskuża ruħi bil-kbir jekk offendejt lill-impjegati ta’ Sberbank. Iżda skond l-istatistika tagħna, fost il-banek Russi, Sberbank jaqa 'aktar spiss. Ma jgħaddix xahar mingħajr ma taqa’ xi ħaġa fi Sberbank.

    HighLoad++, Evgeniy Kuzovlev (EcommPay IT): x'għandek tagħmel meta minuta ta' waqfien tiswa $100000

    Xi reklami 🙂

    Grazzi talli bqajt magħna. Tħobb l-artikoli tagħna? Trid tara aktar kontenut interessanti? Appoġġuna billi tagħmel ordni jew tirrakkomanda lill-ħbieb, Cloud VPS għall-iżviluppaturi minn $4.99, analogu uniku ta 'servers ta' livell ta 'dħul, li ġie ivvintat minna għalik: Il-verità kollha dwar VPS (KVM) E5-2697 v3 (6 Cores) 10GB DDR4 480GB SSD 1Gbps minn $19 jew kif taqsam server? (disponibbli b'RAID1 u RAID10, sa 24 core u sa 40GB DDR4).

    Dell R730xd 2 darbiet orħos fiċ-ċentru tad-dejta Equinix Tier IV f'Amsterdam? Hawn biss 2 x Intel TetraDeca-Core Xeon 2x E5-2697v3 2.6GHz 14C 64GB DDR4 4x960GB SSD 1Gbps 100 TV minn $199 fl-Olanda! Dell R420 - 2x E5-2430 2.2Ghz 6C 128GB DDR3 2x960GB SSD 1Gbps 100TB - minn $99! Aqra dwar Kif tibni l-infrastruttura corp. klassi bl-użu ta 'servers Dell R730xd E5-2650 v4 li jiswew 9000 ewro għal ċenteżmu?

Sors: www.habr.com

Żid kumment