HighLoad++, Evgeniy Kuzovlev (EcommPay IT): beth i'w wneud pan fydd munud o amser segur yn costio $100000

Mae pawb yn sôn am y prosesau datblygu a phrofi, hyfforddi staff, cynyddu cymhelliant, ond nid yw'r prosesau hyn yn ddigon pan fydd munud o amser segur gwasanaeth yn costio symiau enfawr o arian. Beth i'w wneud pan fyddwch yn cyflawni trafodion ariannol o dan CLG llym? Sut i gynyddu dibynadwyedd a goddefgarwch bai eich systemau, gan ddileu datblygiad a phrofion o'r hafaliad?

HighLoad++, Evgeniy Kuzovlev (EcommPay IT): beth i'w wneud pan fydd munud o amser segur yn costio $100000

Cynhelir y gynhadledd HighLoad ++ nesaf ar Ebrill 6 a 7, 2020 yn St Petersburg. Manylion a thocynnau ar gyfer cyswllt. Tachwedd 9, 18:00. HighLoad++ Moscow 2018, neuadd Delhi + Kolkata. traethodau ymchwil a cyflwyniad.

Evgeniy Kuzovlev (o hyn ymlaen - EC): - Ffrindiau, helo! Fy enw i yw Kuzovlev Evgeniy. Rwy'n dod o gwmni EcommPay, adran benodol yw EcommPay IT, is-adran TG y grŵp o gwmnïau. A heddiw byddwn yn siarad am amseroedd segur - sut i'w hosgoi, sut i leihau eu canlyniadau os na ellir eu hosgoi. Nodir y pwnc fel a ganlyn: “Beth i'w wneud pan fydd munud o amser segur yn costio $100”? Wrth edrych ymlaen, mae ein niferoedd yn gymaradwy.

Beth mae EcommPay IT yn ei wneud?

Pwy ydym ni? Pam ydw i'n sefyll yma o'ch blaen chi? Pam fod gen i hawl i ddweud rhywbeth wrthych chi yma? A beth fyddwn ni'n siarad amdano yn fanylach yma?

HighLoad++, Evgeniy Kuzovlev (EcommPay IT): beth i'w wneud pan fydd munud o amser segur yn costio $100000

Mae grŵp cwmnïau EcommPay yn gaffaelwr rhyngwladol. Rydym yn prosesu taliadau ledled y byd - yn Rwsia, Ewrop, De-ddwyrain Asia (O Amgylch y Byd). Mae gennym 9 swyddfa, cyfanswm o 500 o weithwyr, ac mae tua ychydig yn llai na hanner ohonynt yn arbenigwyr TG. Popeth rydyn ni'n ei wneud, popeth rydyn ni'n gwneud arian ohono, fe wnaethon ni ein hunain.

Fe wnaethon ni ysgrifennu ein holl gynhyrchion (ac mae gennym ni gryn dipyn ohonyn nhw - yn ein llinell o gynhyrchion TG mawr mae gennym ni tua 16 o gydrannau gwahanol) ein hunain; Rydym yn ysgrifennu ein hunain, rydym yn datblygu ein hunain. Ac ar hyn o bryd rydym yn cynnal tua miliwn o drafodion y dydd (mae'n debyg mai miliynau yw'r ffordd gywir i'w ddweud). Cwmni gweddol ifanc ydyn ni - dim ond tua chwe blwydd oed ydyn ni.

6 mlynedd yn ôl roedd yn gymaint o gychwyn pan ddaeth y dynion gyda'r busnes. Roedden nhw'n cael eu huno gan syniad (doedd dim byd arall ond syniad), a rhedon ni. Fel unrhyw fusnes cychwynnol, fe wnaethom redeg yn gyflymach ... I ni, roedd cyflymder yn bwysicach nag ansawdd.

Ar ryw adeg fe wnaethon ni stopio: sylweddolon ni na allem ni rywsut fyw ar y cyflymder hwnnw a chyda'r ansawdd hwnnw mwyach ac roedd angen i ni ganolbwyntio ar ansawdd yn gyntaf. Ar hyn o bryd, fe benderfynon ni ysgrifennu platfform newydd a fyddai'n gywir, yn raddadwy ac yn ddibynadwy. Dechreuon nhw ysgrifennu'r platfform hwn (fe ddechreuon nhw fuddsoddi, datblygu datblygiad, profi), ond ar ryw adeg sylweddolon nhw nad oedd datblygu a phrofi yn caniatáu inni gyrraedd lefel newydd o ansawdd gwasanaeth.

Rydych chi'n gwneud cynnyrch newydd, rydych chi'n ei roi i mewn i gynhyrchu, ond bydd rhywbeth yn mynd o'i le yn rhywle o hyd. A heddiw byddwn yn siarad am sut i gyrraedd lefel ansawdd newydd (sut y gwnaethom hynny, am ein profiad), gan gymryd datblygiad a phrofi allan o'r hafaliad; byddwn yn siarad am yr hyn sydd ar gael i weithredu - yr hyn y gall llawdriniaeth ei wneud ei hun, yr hyn y gall ei gynnig i brofi er mwyn dylanwadu ar ansawdd.

Amser segur. Gorchmynion gweithredu.

Y prif gonglfaen bob amser, yr hyn y byddwn yn siarad amdano heddiw mewn gwirionedd yw amser segur. Gair ofnadwy. Os oes gennym ni amser segur, mae popeth yn ddrwg i ni. Rydyn ni'n rhedeg i'w godi, mae'r gweinyddwyr yn dal y gweinydd - mae Duw yn gwahardd nad yw'n cwympo, fel maen nhw'n dweud yn y gân honno. Dyma beth y byddwn yn siarad amdano heddiw.

HighLoad++, Evgeniy Kuzovlev (EcommPay IT): beth i'w wneud pan fydd munud o amser segur yn costio $100000

Pan ddechreuon ni newid ein dulliau, fe wnaethon ni ffurfio 4 gorchymyn. Rwyf wedi eu cyflwyno ar y sleidiau:

Mae'r gorchmynion hyn yn eithaf syml:

HighLoad++, Evgeniy Kuzovlev (EcommPay IT): beth i'w wneud pan fydd munud o amser segur yn costio $100000

  • Adnabod y broblem yn gyflym.
  • Cael gwared arno hyd yn oed yn gyflymach.
  • Helpwch i ddeall y rheswm (yn ddiweddarach, i ddatblygwyr).
  • A safoni ymagweddau.

Hoffwn dynnu eich sylw at bwynt Rhif 2. Rydym yn cael gwared ar y broblem, nid ei datrys. Mae penderfynu yn eilradd. I ni, y peth sylfaenol yw bod y defnyddiwr yn cael ei amddiffyn rhag y broblem hon. Bydd yn bodoli mewn rhai amgylchedd anghysbell, ond ni fydd gan yr amgylchedd hwn unrhyw gysylltiad ag ef. Mewn gwirionedd, byddwn yn mynd trwy'r pedwar grŵp hyn o broblemau (rhai yn fwy manwl, rhai yn llai manwl), byddaf yn dweud wrthych beth rydym yn ei ddefnyddio, pa brofiad perthnasol sydd gennym mewn atebion.

Datrys Problemau: Pryd maen nhw'n digwydd a beth i'w wneud amdanyn nhw?

Ond byddwn yn dechrau allan o drefn, byddwn yn dechrau gyda phwynt Rhif 2 - sut i gael gwared ar y broblem yn gyflym? Mae yna broblem - mae angen i ni ei thrwsio. “Beth ddylen ni ei wneud am hyn?” - y prif gwestiwn. A phan ddechreuon ni feddwl sut i ddatrys y broblem, fe wnaethom ddatblygu i ni ein hunain rai gofynion y mae'n rhaid i ddatrys problemau eu dilyn.

HighLoad++, Evgeniy Kuzovlev (EcommPay IT): beth i'w wneud pan fydd munud o amser segur yn costio $100000

Er mwyn llunio’r gofynion hyn, penderfynom ofyn y cwestiwn i’n hunain: “Pryd mae gennym ni broblemau”? Ac mae problemau, fel y digwyddodd, yn digwydd mewn pedwar achos:

HighLoad++, Evgeniy Kuzovlev (EcommPay IT): beth i'w wneud pan fydd munud o amser segur yn costio $100000

  • Methiant caledwedd.
  • Methodd gwasanaethau allanol.
  • Newid y fersiwn meddalwedd (yr un defnydd).
  • Twf llwyth ffrwydrol.

Ni fyddwn yn siarad am y ddau gyntaf. Gellir datrys camweithio caledwedd yn eithaf syml: rhaid i chi gael popeth wedi'i ddyblygu. Os yw'r rhain yn ddisgiau, rhaid i'r disgiau gael eu cydosod yn RAID; os gweinydd yw hwn, rhaid dyblygu'r gweinydd; os oes gennych chi seilwaith rhwydwaith, rhaid i chi ddarparu ail gopi o'r seilwaith rhwydwaith, hynny yw, rydych chi'n ei gymryd a ei ddyblygu. Ac os bydd rhywbeth yn methu, byddwch yn newid i bŵer wrth gefn. Mae'n anodd dweud dim byd mwy yma.

Yr ail yw methiant gwasanaethau allanol. I'r rhan fwyaf, nid yw'r system yn broblem o gwbl, ond nid i ni. Gan ein bod yn prosesu taliadau, rydym yn gydgrynwr sy'n sefyll rhwng y defnyddiwr (sy'n mewnbynnu data ei gerdyn) a banciau, systemau talu (Visa, MasterCard, Mira, ac ati). Mae ein gwasanaethau allanol (systemau talu, banciau) yn tueddu i fethu. Ni allwn ni na chi (os oes gennych wasanaethau o'r fath) ddylanwadu ar hyn.

Beth i'w wneud wedyn? Mae dau opsiwn yma. Yn gyntaf, os gallwch, dylech ddyblygu'r gwasanaeth hwn mewn rhyw ffordd. Er enghraifft, os gallwn, rydym yn trosglwyddo traffig o un gwasanaeth i'r llall: er enghraifft, cardiau eu prosesu drwy Sberbank, Sberbank yn cael problemau - rydym yn trosglwyddo traffig [yn amodol] i Raiffeisen. Yr ail beth y gallwn ei wneud yw sylwi ar fethiant gwasanaethau allanol yn gyflym iawn, ac felly byddwn yn sôn am gyflymder ymateb yn rhan nesaf yr adroddiad.

Mewn gwirionedd, o'r pedwar hyn, gallwn ddylanwadu'n benodol ar newid fersiynau meddalwedd - cymryd camau a fydd yn arwain at welliant yn y sefyllfa yng nghyd-destun gosodiadau ac yng nghyd-destun twf ffrwydrol mewn llwyth. A dweud y gwir, dyna beth wnaethom ni. Dyma, eto, nodyn bach...

O'r pedair problem hyn, mae nifer yn cael eu datrys ar unwaith os oes gennych gwmwl. Os ydych chi yn y Microsoft Azhur, cymylau Osôn, neu'n defnyddio ein cymylau, o Yandex neu Mail, yna o leiaf mae camweithio caledwedd yn dod yn broblem ac mae popeth yn dod yn iawn i chi ar unwaith yng nghyd-destun diffyg caledwedd.

Rydym yn gwmni ychydig yn anghonfensiynol. Yma mae pawb yn sôn am “Kubernets”, am gymylau - nid oes gennym ni “Kubernets” na chymylau. Ond mae gennym raciau o galedwedd mewn llawer o ganolfannau data, ac rydym yn cael ein gorfodi i fyw ar y caledwedd hwn, rydym yn cael ein gorfodi i fod yn gyfrifol am y cyfan. Felly, byddwn yn siarad yn y cyd-destun hwn. Felly, am y problemau. Tynnwyd y ddau gyntaf allan o gromfachau.

Newid y fersiwn meddalwedd. Seiliau

Nid oes gan ein datblygwyr fynediad at gynhyrchu. Pam hynny? Dim ond ein bod wedi ein hardystio gan PCI DSS, ac yn syml iawn nid oes gan ein datblygwyr yr hawl i fynd i mewn i'r “cynnyrch”. Dyna ni, cyfnod. O gwbl. Felly, mae cyfrifoldeb datblygu yn dod i ben yn union ar hyn o bryd pan fydd datblygiad yn cyflwyno'r adeilad i'w ryddhau.

HighLoad++, Evgeniy Kuzovlev (EcommPay IT): beth i'w wneud pan fydd munud o amser segur yn costio $100000

Yr ail sail sydd gennym, sydd hefyd yn ein helpu llawer, yw absenoldeb gwybodaeth unigryw heb ei dogfennu. Rwy'n gobeithio ei fod yr un peth i chi. Oherwydd os nad yw hyn yn wir, byddwch yn cael problemau. Bydd problemau'n codi pan nad yw'r wybodaeth unigryw hon, sydd heb ei dogfennu, yn bresennol ar yr amser iawn yn y lle iawn. Gadewch i ni ddweud bod gennych chi un person sy'n gwybod sut i ddefnyddio cydran benodol - nid yw'r person yno, mae ar wyliau neu'n sâl - dyna ni, mae gennych chi broblemau.

A'r drydedd sail y daethom iddi. Daethom ato trwy boen, gwaed, dagrau - daethom i'r casgliad bod unrhyw un o'n hadeiladau yn cynnwys gwallau, hyd yn oed os yw'n ddi-wall. Fe wnaethom benderfynu hyn drosom ein hunain: pan fyddwn yn defnyddio rhywbeth, pan fyddwn yn rholio rhywbeth i mewn i gynhyrchu, mae gennym strwythur gyda gwallau. Rydym wedi llunio'r gofynion y mae'n rhaid i'n system eu bodloni.

Gofynion ar gyfer newid y fersiwn meddalwedd

Mae tri gofyniad:

HighLoad++, Evgeniy Kuzovlev (EcommPay IT): beth i'w wneud pan fydd munud o amser segur yn costio $100000

  • Rhaid inni symud y defnydd yn ôl yn gyflym.
  • Rhaid inni leihau effaith defnydd aflwyddiannus.
  • Ac mae'n rhaid i ni allu defnyddio'n gyflym ochr yn ochr.
    Yn union yn y drefn honno! Pam? Oherwydd, yn gyntaf oll, wrth ddefnyddio fersiwn newydd, nid yw cyflymder yn bwysig, ond mae'n bwysig i chi, os aiff rhywbeth o'i le, rolio'n ôl yn gyflym a chael yr effaith leiaf bosibl. Ond os oes gennych chi set o fersiynau yn y cynhyrchiad, y mae'n ymddangos bod gwall ar eu cyfer (yn ddirybudd, nid oedd unrhyw ddefnydd, ond mae gwall) - mae cyflymder y defnydd dilynol yn bwysig i chi. Beth ydym ni wedi'i wneud i fodloni'r gofynion hyn? Fe wnaethom droi at y fethodoleg ganlynol:

    HighLoad++, Evgeniy Kuzovlev (EcommPay IT): beth i'w wneud pan fydd munud o amser segur yn costio $100000

    Mae'n eithaf adnabyddus, nid ydym erioed wedi ei ddyfeisio - dyma'r defnydd Glas/Gwyrdd. Beth yw e? Rhaid i chi gael copi ar gyfer pob grŵp o weinyddion y mae eich rhaglenni wedi'u gosod arnynt. Mae'r copi yn "gynnes": nid oes traffig arno, ond ar unrhyw adeg gellir anfon y traffig hwn i'r copi hwn. Mae'r copi hwn yn cynnwys y fersiwn blaenorol. Ac ar adeg ei ddefnyddio, rydych chi'n cyflwyno'r cod i gopi anactif. Yna byddwch chi'n newid rhan o'r traffig (neu'r cyfan) i'r fersiwn newydd. Felly, er mwyn newid y llif traffig o'r hen fersiwn i'r un newydd, dim ond un cam y mae angen i chi ei wneud: mae angen i chi newid y cydbwysedd i fyny'r afon, newid y cyfeiriad - o un i fyny'r afon i'r llall. Mae hyn yn gyfleus iawn ac yn datrys y broblem o newid cyflym a dychwelyd yn gyflym.

    Yma, yr ateb i'r ail gwestiwn yw lleihau: dim ond rhan o'ch traffig y gallwch ei anfon i linell newydd, i linell gyda chod newydd (gadewch iddo fod, er enghraifft, 2%). Ac nid yw'r 2% hyn yn 100%! Os colloch 100% o'ch traffig oherwydd defnydd aflwyddiannus, mae hynny'n frawychus; os colloch 2% o'ch traffig, mae hynny'n annymunol, ond nid yw'n frawychus. Ar ben hynny, mae'n debyg na fydd defnyddwyr hyd yn oed yn sylwi ar hyn, oherwydd mewn rhai achosion (nid ym mhob achos) bydd yr un defnyddiwr, gan wasgu F5, yn cael ei gludo i fersiwn weithredol arall.

    Defnydd Glas/Gwyrdd. Llwybro

    Fodd bynnag, nid yw popeth mor syml “Deploy Glas/Green”... Gellir rhannu ein holl gydrannau yn dri grŵp:

    • dyma'r blaen (tudalennau talu y mae ein cleientiaid yn eu gweld);
    • craidd prosesu;
    • addasydd ar gyfer gweithio gyda systemau talu (banciau, MasterCard, Visa...).

    Ac mae naws yma - mae'r naws yn gorwedd yn y llwybr rhwng y llinellau. Os ydych chi'n newid 100% o'r traffig yn unig, nid oes gennych chi'r problemau hyn. Ond os ydych chi am newid 2%, rydych chi'n dechrau gofyn cwestiynau: “Sut i wneud hyn?” Mae'r peth symlaf yn syml: gallwch chi sefydlu Round Robin yn nginx trwy ddewis ar hap, ac mae gennych chi 2% i'r chwith, 98% i'r dde. Ond nid yw hyn bob amser yn addas.

    Er enghraifft, yn ein hachos ni, mae defnyddiwr yn rhyngweithio â'r system gyda mwy nag un cais. Mae hyn yn arferol: 2, 3, 4, 5 cais - gall eich systemau fod yr un peth. Ac os yw'n bwysig i chi fod holl geisiadau'r defnyddiwr yn dod i'r un llinell ag y daeth y cais cyntaf arni, neu (ail bwynt) bod holl geisiadau'r defnyddiwr yn dod i'r llinell newydd ar ôl y switsh (gallai fod wedi dechrau gweithio'n gynharach gyda'r system, cyn y switsh), - yna nid yw'r dosbarthiad hap hwn yn addas i chi. Yna mae'r opsiynau canlynol:

    HighLoad++, Evgeniy Kuzovlev (EcommPay IT): beth i'w wneud pan fydd munud o amser segur yn costio $100000

    Mae'r opsiwn cyntaf, y symlaf, yn seiliedig ar baramedrau sylfaenol y cleient (IP Hash). Mae gennych IP, ac rydych chi'n ei rannu o'r dde i'r chwith yn ôl cyfeiriad IP. Yna bydd yr ail achos a ddisgrifiais yn gweithio i chi, pan ddigwyddodd y defnydd, gallai'r defnyddiwr ddechrau gweithio gyda'ch system eisoes, ac o'r eiliad y caiff ei ddefnyddio bydd pob cais yn mynd i linell newydd (i'r un un, dyweder).

    Os nad yw hyn yn addas i chi am ryw reswm a bod yn rhaid i chi anfon ceisiadau i'r llinell lle daeth cais cychwynnol, cychwynnol y defnyddiwr, yna mae gennych ddau opsiwn...
    Opsiwn cyntaf: gallwch brynu nginx + taledig. Mae yna fecanwaith sesiynau Gludiog, sydd, ar gais cychwynnol y defnyddiwr, yn aseinio sesiwn i'r defnyddiwr ac yn ei chlymu i un neu'i gilydd i fyny'r afon. Bydd pob cais defnyddiwr dilynol o fewn oes y sesiwn yn cael ei anfon i'r un cyfeiriad i fyny'r afon lle postiwyd y sesiwn.

    Nid oedd hyn yn addas i ni oherwydd roedd gennym nginx rheolaidd eisoes. Nid newid i nginx + yw ei fod yn ddrud, dim ond ei fod braidd yn boenus i ni ac nid yn iawn. Ni weithiodd “Sesiynau Ffyn”, er enghraifft, i ni am y rheswm syml nad yw “Sesiynau Ffyn” yn caniatáu llwybro yn seiliedig ar “Naill ai-neu”. Yno, gallwch chi nodi'r hyn rydyn ni'n "Sesiynau Stic" yn ei wneud, er enghraifft, trwy gyfeiriad IP neu gyfeiriad IP a chwcis neu trwy baramedr post, ond mae "Naill ai-neu" yn fwy cymhleth yno.

    Felly, daethom at y pedwerydd opsiwn. Rydym yn cymryd nginx ar steroidau (openresty yw hyn) - dyma'r un nginx, sydd hefyd yn cefnogi cynnwys y sgriptiau diwethaf. Gallwch chi ysgrifennu sgript olaf, rhoi “gweddill agored” iddo, a bydd y sgript olaf hon yn cael ei gweithredu pan ddaw cais y defnyddiwr.

    Ac fe wnaethon ni ysgrifennu, mewn gwirionedd, sgript o'r fath, yn gosod “openresti” i'n hunain ac yn y sgript hon rydyn ni'n didoli 6 paramedr gwahanol trwy gydgatenation “Neu”. Yn dibynnu ar bresenoldeb un neu baramedr arall, rydym yn gwybod bod y defnyddiwr wedi dod i un dudalen neu'r llall, un llinell neu'r llall.

    Defnydd Glas/Gwyrdd. Manteision ac anfanteision

    Wrth gwrs, mae'n debyg ei bod hi'n bosibl ei gwneud ychydig yn symlach (defnyddiwch yr un “Sesiynau Gludiog”), ond mae gennym ni hefyd y fath naws fel bod y defnyddiwr nid yn unig yn rhyngweithio â ni o fewn fframwaith prosesu un trafodiad ... Ond mae systemau talu hefyd yn rhyngweithio â ni: Ar ôl i ni brosesu'r trafodiad (trwy anfon cais i'r system dalu), rydyn ni'n derbyn ateb oeri.
    A gadewch i ni ddweud, os gallwn y tu mewn i'n cylched anfon cyfeiriad IP y defnyddiwr ymlaen ym mhob cais a rhannu defnyddwyr yn seiliedig ar y cyfeiriad IP, yna ni fyddwn yn dweud wrth yr un “Visa”: “Dude, rydym yn gwmni mor retro, rydym yn ymddangos i fod yn rhyngwladol (ar y wefan ac yn Rwsia)... Rhowch gyfeiriad IP y defnyddiwr i ni mewn maes ychwanegol, mae eich protocol wedi'i safoni”! Mae’n amlwg na fyddant yn cytuno.

    HighLoad++, Evgeniy Kuzovlev (EcommPay IT): beth i'w wneud pan fydd munud o amser segur yn costio $100000

    Felly, ni weithiodd hyn i ni - fe wnaethom openresty. Yn unol â hynny, gyda llwybro cawsom rywbeth fel hyn:

    Yn unol â hynny, mae gan Leoliad Glas/Gwyrdd y manteision a'r anfanteision y soniais amdanynt.

    Dau anfantais:

    • mae angen i chi drafferthu gyda llwybro;
    • yr ail brif anfantais yw y draul.

    Mae angen dwywaith cymaint o weinyddion arnoch chi, mae angen dwywaith cymaint o adnoddau gweithredol arnoch chi, mae angen i chi dreulio dwywaith cymaint o ymdrech i gynnal y sw cyfan hwn.

    Gyda llaw, ymhlith y manteision mae un peth arall nad wyf wedi'i grybwyll o'r blaen: mae gennych gronfa wrth gefn rhag ofn y bydd llwyth yn tyfu. Os oes gennych chi dwf ffrwydrol mewn llwyth, mae gennych chi nifer fawr o ddefnyddwyr, yna rydych chi'n syml yn cynnwys yr ail linell yn y dosbarthiad 50 i 50 - ac mae gennych chi weinyddion x2 yn eich clwstwr ar unwaith nes i chi ddatrys y broblem o gael mwy o weinyddion.

    Sut i wneud defnydd cyflym?

    Buom yn siarad am sut i ddatrys y broblem o leihau a dychwelyd yn gyflym, ond erys y cwestiwn: "Sut i ddefnyddio'n gyflym?"

    HighLoad++, Evgeniy Kuzovlev (EcommPay IT): beth i'w wneud pan fydd munud o amser segur yn costio $100000

    Mae'n fyr ac yn syml yma.

    • Rhaid i chi gael system CD (Cyflenwi Parhaus) - ni allwch fyw hebddi. Os oes gennych chi un gweinydd, gallwch chi ei ddefnyddio â llaw. Mae gennym tua mil a hanner o weinyddion a mil a hanner o ddolenni, wrth gwrs - gallwn blannu adran o faint yr ystafell hon dim ond i'w defnyddio.
    • Rhaid i'r defnydd fod yn gyfochrog. Os yw eich defnydd yn ddilyniannol, yna mae popeth yn ddrwg. Mae un gweinydd yn normal, byddwch chi'n defnyddio mil a hanner o weinyddion trwy'r dydd.
    • Unwaith eto, ar gyfer cyflymu, mae'n debyg nad yw hyn yn angenrheidiol mwyach. Yn ystod y defnydd, caiff y prosiect ei adeiladu fel arfer. Mae gennych chi brosiect gwe, mae yna ran pen blaen (rydych chi'n gwneud pecyn gwe yno, rydych chi'n llunio npm - rhywbeth felly), ac mae'r broses hon, mewn egwyddor, yn fyrhoedlog - 5 munud, ond gall y 5 munud hyn byddwch yn feirniadol. Dyna pam, er enghraifft, nad ydym yn gwneud hynny: gwnaethom ddileu'r 5 munud hyn, rydym yn defnyddio arteffactau.

      Beth yw arteffact? Mae arteffact yn adeiladwaith wedi'i ymgynnull lle mae'r holl rannau cydosod eisoes wedi'u cwblhau. Rydym yn storio'r arteffact hwn yn y storfa arteffact. Ar un adeg fe ddefnyddion ni ddau storfa o'r fath - Nexus oedd e ac yn awr jFrog Artifactory) Fe wnaethon ni ddefnyddio “Nexus” i ddechrau oherwydd i ni ddechrau ymarfer y dull hwn mewn cymwysiadau java (roedd yn ei siwtio'n dda). Yna maent yn rhoi rhai o'r ceisiadau a ysgrifennwyd yn PHP i mewn yno; ac nid oedd “Nexus” yn addas mwyach, ac felly dewisasom jFrog Artefactory, yr hwn a all gelfyddyd ar bob peth bron. Rydym hyd yn oed wedi dod i'r pwynt ein bod yn storio ein pecynnau deuaidd ein hunain yr ydym yn eu casglu ar gyfer gweinyddwyr yn y storfa arteffactau hon.

    Twf llwyth ffrwydrol

    Buom yn siarad am newid y fersiwn meddalwedd. Y peth nesaf sydd gennym yw cynnydd ffrwydrol mewn llwyth. Yma, mae'n debyg fy mod yn golygu nad yw twf ffrwydrol yn y llwyth yn union y peth iawn ...

    Fe wnaethon ni ysgrifennu system newydd - mae'n wasanaeth-oriented, ffasiynol, hardd, gweithwyr ym mhobman, ciwiau ym mhobman, asyncroni ym mhobman. Ac mewn systemau o'r fath, gall data lifo trwy lifoedd gwahanol. Ar gyfer y trafodiad cyntaf, gellir defnyddio'r gweithiwr 1af, 3ydd, 10fed, ar gyfer yr ail drafodiad - yr 2il, 4ydd, 5ed. A heddiw, gadewch i ni ddweud, yn y bore mae gennych chi lif data sy'n defnyddio'r tri gweithiwr cyntaf, a gyda'r nos mae'n newid yn ddramatig, ac mae popeth yn defnyddio'r tri gweithiwr arall.

    Ac yma mae'n troi allan bod angen i chi rywsut raddfa'r gweithwyr, mae angen i chi rywsut raddfa eich gwasanaethau, ond ar yr un pryd atal chwydd adnoddau.

    HighLoad++, Evgeniy Kuzovlev (EcommPay IT): beth i'w wneud pan fydd munud o amser segur yn costio $100000

    Rydym wedi diffinio ein gofynion. Mae'r gofynion hyn yn eithaf syml: bod yna Darganfod Gwasanaeth, parameterization - mae popeth yn safonol ar gyfer adeiladu systemau graddadwy o'r fath, ac eithrio un pwynt - dibrisiant adnoddau. Dywedasom nad ydym yn barod i amorteiddio adnoddau fel bod y gweinyddion yn gwresogi'r aer. Rydym yn cymryd "Consul", rydym yn cymryd "Nomad", sy'n rheoli ein gweithwyr.

    Pam fod hyn yn broblem i ni? Gadewch i ni olrhain ychydig. Bellach mae gennym tua 70 o systemau talu y tu ôl i ni. Yn y bore, mae traffig yn mynd trwy Sberbank, yna gostyngodd Sberbank, er enghraifft, ac rydym yn ei newid i system dalu arall. Roedd gennym 100 o weithwyr cyn Sberbank, ac ar ôl hynny mae angen inni gynyddu'n sydyn 100 o weithwyr ar gyfer system dalu arall. Ac mae'n ddymunol i hyn i gyd ddigwydd heb gyfranogiad dynol. Oherwydd os oes cyfranogiad dynol, dylai fod peiriannydd yn eistedd yno 24/7, a ddylai fod yn gwneud hyn yn unig, oherwydd mae methiannau o'r fath, pan fydd 70 o systemau y tu ôl i chi, yn digwydd yn rheolaidd.

    Felly, fe wnaethom edrych ar Nomad, sydd ag IP agored, ac ysgrifennu ein peth ein hunain, Scale-Nomad - ScaleNo, sy'n gwneud tua'r canlynol: mae'n monitro twf y ciw ac yn lleihau neu'n cynyddu nifer y gweithwyr yn dibynnu ar y ddeinameg o'r ciw. Pan wnaethon ni hynny, fe wnaethon ni feddwl: “Efallai y gallwn ni ei agor yn ei ffynhonnell?” Yna maent yn edrych ar ei - roedd hi mor syml â dau kopecks.

    Hyd yn hyn nid ydym wedi ei ffynhonnell agored, ond os yn sydyn ar ôl yr adroddiad, ar ôl sylweddoli bod angen y fath beth arnoch, mae ei angen arnoch, mae fy nghysylltiadau yn y sleid olaf - ysgrifennwch ataf. Os oes o leiaf 3-5 o bobl, byddwn yn ei noddi.

    HighLoad++, Evgeniy Kuzovlev (EcommPay IT): beth i'w wneud pan fydd munud o amser segur yn costio $100000

    Sut mae'n gweithio? Gadewch i ni gael golwg! Edrych ymlaen: ar yr ochr chwith mae darn o'n monitro: dyma un llinell, ar y brig yw amser prosesu digwyddiadau, yn y canol mae nifer y trafodion, ar y gwaelod mae nifer y gweithwyr.

    Os edrychwch, mae yna glitch yn y llun hwn. Ar y siart uchaf, cwympodd un o'r siartiau mewn 45 eiliad - aeth un o'r systemau talu i lawr. Ar unwaith, daethpwyd â thraffig i mewn mewn 2 funud a dechreuodd y ciw dyfu ar system dalu arall, lle nad oedd unrhyw weithwyr (ni wnaethom ddefnyddio adnoddau - i'r gwrthwyneb, fe wnaethom waredu'r adnodd yn gywir). Doedden ni ddim eisiau cynhesu - roedd yna nifer fach iawn, tua 5-10 o weithwyr, ond doedden nhw ddim yn gallu ymdopi.

    Mae’r graff olaf yn dangos “twmpath”, sy’n golygu bod “Skaleno” wedi dyblu’r swm hwn. Ac yna, pan ddisgynnodd y graff ychydig, fe'i gostyngodd ychydig - newidiwyd nifer y gweithwyr yn awtomatig. Dyna sut mae'r peth hwn yn gweithio. Buom yn siarad am bwynt rhif 2 - “Sut i gael gwared yn gyflym ar resymau.”

    Monitro. Sut i adnabod y broblem yn gyflym?

    Nawr y pwynt cyntaf yw "Sut i adnabod y broblem yn gyflym?" Monitro! Rhaid inni ddeall rhai pethau yn gyflym. Pa bethau ddylem ni eu deall yn gyflym?

    HighLoad++, Evgeniy Kuzovlev (EcommPay IT): beth i'w wneud pan fydd munud o amser segur yn costio $100000

    Tri pheth!

    • Rhaid inni ddeall a deall yn gyflym berfformiad ein hadnoddau ein hunain.
    • Rhaid inni ddeall methiannau’n gyflym a monitro perfformiad systemau sy’n allanol i ni.
    • Y trydydd pwynt yw nodi gwallau rhesymegol. Dyma pan fydd y system yn gweithio i chi, mae popeth yn normal yn ôl yr holl ddangosyddion, ond mae rhywbeth yn mynd o'i le.

    Mae'n debyg na fyddaf yn dweud unrhyw beth cŵl wrthych yma. Byddaf yn Gapten Amlwg. Edrychon ni am yr hyn oedd ar y farchnad. Mae gennym ni “sŵ llawn hwyl”. Dyma'r math o sw sydd gennym ni nawr:

    HighLoad++, Evgeniy Kuzovlev (EcommPay IT): beth i'w wneud pan fydd munud o amser segur yn costio $100000

    Rydym yn defnyddio Zabbix i fonitro caledwedd, i fonitro prif ddangosyddion gweinyddwyr. Rydym yn defnyddio Okmeter ar gyfer cronfeydd data. Rydym yn defnyddio “Grafana” a “Prometheus” ar gyfer pob dangosydd arall nad yw’n cyd-fynd â’r ddau gyntaf, rhai gyda “Grafana” a “Prometheus”, a rhai gyda “Grafana” gyda “Influx” a Telegraf.

    Flwyddyn yn ôl roeddem am ddefnyddio New Relic. Peth cŵl, gall wneud popeth. Ond cymaint ag y gall hi wneud popeth, mae hi mor ddrud. Pan wnaethom dyfu i gyfaint o 1,5 mil o weinyddion, daeth gwerthwr atom a dweud: “Dewch i ni ddod i gytundeb ar gyfer y flwyddyn nesaf.” Fe wnaethon ni edrych ar y pris a dweud na, ni fyddwn yn gwneud hynny. Nawr ein bod ni'n cefnu ar New Relic, mae gennym ni tua 15 o weinyddion ar ôl o dan fonitro New Relic. Trodd y pris allan yn hollol wyllt.

    Ac mae un arf yr ydym yn gweithredu ein hunain - mae hyn yn Debugger. Ar y dechrau fe wnaethon ni ei alw'n “Bagger,” ond yna aeth athrawes Saesneg heibio, chwerthin yn wyllt, a'i ailenwi'n “Debagger.” Beth yw e? Mae hwn yn offeryn sydd, mewn gwirionedd, mewn 15-30 eiliad ar bob cydran, fel “blwch du” o'r system, yn cynnal profion ar berfformiad cyffredinol y gydran.

    Er enghraifft, os oes tudalen allanol (tudalen dalu), mae'n syml yn ei agor ac yn edrych ar sut y dylai edrych. Os yw hyn yn cael ei brosesu, mae'n anfon “trafodiad” prawf ac yn sicrhau bod y “trafodiad” hwn yn cyrraedd. Os yw hwn yn gysylltiad â systemau talu, rydym yn tanio cais prawf yn unol â hynny, lle gallwn, ac yn gweld bod popeth yn iawn gyda ni.

    Pa ddangosyddion sy'n bwysig ar gyfer monitro?

    Beth ydyn ni'n ei fonitro'n bennaf? Pa ddangosyddion sy'n bwysig i ni?

    HighLoad++, Evgeniy Kuzovlev (EcommPay IT): beth i'w wneud pan fydd munud o amser segur yn costio $100000

    • Mae amser ymateb / RPS ar flaenau yn ddangosydd pwysig iawn. Mae'n ateb ar unwaith bod rhywbeth o'i le arnoch chi.
    • Nifer y negeseuon wedi'u prosesu ym mhob ciw.
    • Nifer y gweithwyr.
    • Metrigau cywirdeb sylfaenol.

    Y pwynt olaf yw metrig “busnes”, “busnes”. Os ydych chi am fonitro'r un peth, mae angen i chi ddiffinio un neu ddau fetrig sy'n brif ddangosyddion i chi. Ein metrig yw trwybwn (dyma gymhareb nifer y trafodion llwyddiannus i gyfanswm y llif trafodion). Os bydd rhywbeth yn newid ynddo ar egwyl o 5-10-15 munud, mae'n golygu bod gennym ni broblemau (os yw'n newid yn radical).

    Mae sut olwg sydd arno i ni yn enghraifft o un o’n byrddau:

    HighLoad++, Evgeniy Kuzovlev (EcommPay IT): beth i'w wneud pan fydd munud o amser segur yn costio $100000

    Ar yr ochr chwith mae 6 graff, mae hyn yn ôl y llinellau - nifer y gweithwyr a nifer y negeseuon yn y ciwiau. Ar yr ochr dde - RPS, RTS. Isod mae'r un metrig “busnes”. Ac yn y metrig “busnes” gallwn weld yn syth fod rhywbeth wedi mynd o'i le yn y ddau graff canol... Dim ond system arall sy'n sefyll y tu ôl i ni sydd wedi disgyn yw hon.

    Yr ail beth oedd yn rhaid i ni ei wneud oedd monitro cwymp systemau talu allanol. Yma cymerasom OpenTracing - mecanwaith, safonol, patrwm sy'n eich galluogi i olrhain systemau dosbarthedig; a newidiwyd ychydig. Mae patrwm safonol OpenTracing yn dweud ein bod yn adeiladu olion ar gyfer pob cais unigol. Nid oedd angen hyn arnom, a gwnaethom ei lapio mewn crynodeb, olrhain agregu. Gwnaethom offeryn sy'n ein galluogi i olrhain cyflymder y systemau y tu ôl i ni.

    HighLoad++, Evgeniy Kuzovlev (EcommPay IT): beth i'w wneud pan fydd munud o amser segur yn costio $100000

    Mae'r graff yn dangos i ni fod un o'r systemau talu wedi dechrau ymateb mewn 3 eiliad - mae gennym ni broblemau. Ar ben hynny, bydd y peth hwn yn ymateb pan fydd problemau'n dechrau, ar egwyl o 20-30 eiliad.

    A'r trydydd dosbarth o wallau monitro sy'n bodoli yw monitro rhesymegol.

    A dweud y gwir, doeddwn i ddim yn gwybod beth i'w dynnu ar y sleid hon, oherwydd roeddem wedi bod yn chwilio am amser hir ar y farchnad am rywbeth a fyddai'n addas i ni. Ni wnaethom ddod o hyd i unrhyw beth, felly roedd yn rhaid i ni ei wneud ein hunain.

    HighLoad++, Evgeniy Kuzovlev (EcommPay IT): beth i'w wneud pan fydd munud o amser segur yn costio $100000

    Beth ydw i'n ei olygu wrth fonitro rhesymegol? Wel, dychmygwch: rydych chi'n gwneud system i chi'ch hun (er enghraifft, clôn Tinder); fe wnaethoch chi, ei lansio. Mae'r rheolwr llwyddiannus Vasya Pupkin yn ei roi ar ei ffôn, yn gweld merch yno, yn ei hoffi hi ... ac nid yw ei thebyg yn mynd at y ferch - mae ei debyg yn mynd at y swyddog diogelwch Mikhalych o'r un ganolfan fusnes. Mae’r rheolwr yn mynd i lawr y grisiau, ac yna’n pendroni: “Pam mae’r swyddog diogelwch hwn Mikhalych yn gwenu mor ddymunol arno?”

    Mewn sefyllfaoedd o'r fath... I ni, mae'r sefyllfa hon yn swnio ychydig yn wahanol, oherwydd (ysgrifennais) mae hwn yn golled enw da sy'n arwain yn anuniongyrchol at golledion ariannol. Mae ein sefyllfa i'r gwrthwyneb: efallai y byddwn yn dioddef colledion ariannol uniongyrchol - er enghraifft, os ydym yn cynnal trafodiad mor llwyddiannus, ond roedd yn aflwyddiannus (neu i'r gwrthwyneb). Roedd yn rhaid i mi ysgrifennu fy nherfyn fy hun sy'n olrhain nifer y trafodion llwyddiannus dros amser gan ddefnyddio dangosyddion busnes. Heb ddod o hyd i unrhyw beth ar y farchnad! Dyma'r union syniad yr oeddwn am ei gyfleu. Nid oes unrhyw beth ar y farchnad i ddatrys y math hwn o broblem.

    Roedd hyn yn ymwneud â sut i adnabod y broblem yn gyflym.

    Sut i benderfynu ar y rhesymau dros ddefnyddio

    Y trydydd grŵp o broblemau yr ydym yn eu datrys yw ar ôl i ni nodi'r broblem, ar ôl i ni gael gwared arni, byddai'n dda deall y rheswm dros ddatblygu, ar gyfer profi, a gwneud rhywbeth yn ei gylch. Yn unol â hynny, mae angen inni ymchwilio, mae angen inni godi'r logiau.

    HighLoad++, Evgeniy Kuzovlev (EcommPay IT): beth i'w wneud pan fydd munud o amser segur yn costio $100000

    Os ydym yn sôn am logiau (y prif reswm yw logiau), mae mwyafrif ein logiau yn ELK Stack - mae gan bron pawb yr un peth. I rai, efallai na fydd yn ELK, ond os byddwch chi'n ysgrifennu logiau mewn gigabeit, yna yn hwyr neu'n hwyrach byddwch chi'n dod i ELK. Rydyn ni'n eu hysgrifennu mewn terabytes.

    HighLoad++, Evgeniy Kuzovlev (EcommPay IT): beth i'w wneud pan fydd munud o amser segur yn costio $100000

    Mae yna broblem yma. Fe wnaethon ni ei drwsio, cywiro'r gwall i'r defnyddiwr, dechrau cloddio beth oedd yno, dringo i mewn i Kibana, mynd i mewn i'r ID trafodiad yno a chael lliain traed fel hyn (yn dangos llawer). A does dim byd o gwbl yn glir yn y lliain traed hwn. Pam? Oes, oherwydd nid yw'n glir pa ran sy'n perthyn i ba weithiwr, pa ran sy'n perthyn i ba gydran. Ac ar yr eiliad honno sylweddolon ni fod angen olrhain - yr un OpenTracing y siaradais amdano.

    Roeddem yn meddwl hyn flwyddyn yn ôl, wedi troi ein sylw at y farchnad, ac roedd dau declyn yno - “Zipkin” a “Jaeger”. Mae “Jager” mewn gwirionedd yn etifedd mor ideolegol, yn olynydd ideolegol i “Zipkin”. Mae popeth yn dda yn Zipkin, ac eithrio nad yw'n gwybod sut i agregu, nid yw'n gwybod sut i gynnwys logiau yn yr olrhain, dim ond olrhain amser. Ac roedd “Jager” yn cefnogi hyn.

    Fe wnaethon ni edrych ar “Jager”: gallwch chi offeryn cymwysiadau, gallwch chi ysgrifennu yn Api (ni chymeradwywyd safon Api ar gyfer PHP bryd hynny - roedd hyn flwyddyn yn ôl, ond nawr mae eisoes wedi'i gymeradwyo), ond mae yna nid oedd unrhyw gleient o gwbl. “Iawn,” meddylion ni, ac ysgrifennodd ein cleient ein hunain. Beth gawson ni? Dyma sut mae'n edrych yn fras:

    HighLoad++, Evgeniy Kuzovlev (EcommPay IT): beth i'w wneud pan fydd munud o amser segur yn costio $100000

    Yn Jaeger, crëir rhychwantau ar gyfer pob neges. Hynny yw, pan fydd defnyddiwr yn agor y system, mae'n gweld un neu ddau o floc ar gyfer pob cais sy'n dod i mewn (1-2-3 - nifer y ceisiadau sy'n dod i mewn gan y defnyddiwr, nifer y blociau). Er mwyn ei gwneud yn haws i ddefnyddwyr, fe wnaethom ychwanegu tagiau at y logiau ac olion amser. Yn unol â hynny, rhag ofn y bydd gwall, bydd ein cais yn marcio'r log gyda'r tag Gwall priodol. Gallwch hidlo yn ôl tag Gwall a dim ond rhychwantau sy'n cynnwys y bloc hwn gyda gwall fydd yn cael eu harddangos. Dyma sut mae'n edrych os ydym yn ehangu'r rhychwant:

    HighLoad++, Evgeniy Kuzovlev (EcommPay IT): beth i'w wneud pan fydd munud o amser segur yn costio $100000

    Y tu mewn i'r rhychwant mae set o olion. Yn yr achos hwn, tri olion prawf yw'r rhain, ac mae'r trydydd olrhain yn dweud wrthym fod gwall wedi digwydd. Ar yr un pryd, yma gwelwn olrhain amser: mae gennym raddfa amser ar y brig, a gwelwn ar ba gyfwng amser y cofnodwyd hwn neu'r log hwnnw.

    Yn unol â hynny, aeth pethau'n dda i ni. Fe wnaethon ni ysgrifennu ein hestyniad ein hunain ac fe wnaethon ni ei ffynhonnell agored. Os ydych chi eisiau gweithio gydag olrhain, os ydych chi am weithio gyda “Jager” yn PHP, mae ein hestyniad, croeso i chi ei ddefnyddio, fel maen nhw'n dweud:

    HighLoad++, Evgeniy Kuzovlev (EcommPay IT): beth i'w wneud pan fydd munud o amser segur yn costio $100000

    Mae gennym yr estyniad hwn - mae'n gleient i'r OpenTracing Api, fe'i gwneir fel php-extention, hynny yw, bydd angen i chi ei ymgynnull a'i osod ar y system. Flwyddyn yn ôl doedd dim byd gwahanol. Nawr mae yna gleientiaid eraill sy'n debyg i gydrannau. Yma mae i fyny i chi: naill ai rydych chi'n pwmpio'r cydrannau allan gyda chyfansoddwr, neu rydych chi'n defnyddio estyniad i fyny i chi.

    Safonau corfforaethol

    Buom yn siarad am y tri gorchymyn. Y pedwerydd gorchymyn yw safoni ymagweddau. Am beth mae hyn? Mae'n ymwneud â hyn:

    HighLoad++, Evgeniy Kuzovlev (EcommPay IT): beth i'w wneud pan fydd munud o amser segur yn costio $100000

    Pam fod y gair “corfforaethol” yma? Nid oherwydd ein bod yn gwmni mawr neu fiwrocrataidd, na! Roeddwn i eisiau defnyddio'r gair “corfforaethol” yma yn y cyd-destun y dylai fod gan bob cwmni, pob cynnyrch ei safonau ei hun, gan gynnwys chi. Pa safonau sydd gennym ni?

    HighLoad++, Evgeniy Kuzovlev (EcommPay IT): beth i'w wneud pan fydd munud o amser segur yn costio $100000

    • Mae gennym ni reoliadau lleoli. Nid ydym yn symud i unman hebddo, ni allwn. Rydym yn defnyddio tua 60 gwaith yr wythnos, hynny yw, rydym yn defnyddio bron yn gyson. Ar yr un pryd, mae gennym, er enghraifft, yn y rheoliadau defnyddio dabŵ ar leoliadau ddydd Gwener - mewn egwyddor, nid ydym yn ei ddefnyddio.
    • Mae angen dogfennaeth arnom. Nid oes un gydran newydd yn cael ei chynhyrchu os nad oes dogfennaeth ar ei chyfer, hyd yn oed os cafodd ei geni o dan gorlan ein harbenigwyr RnD. Mae arnom angen cyfarwyddiadau defnyddio ganddynt, map monitro a disgrifiad bras (wel, fel y gall rhaglenwyr ysgrifennu) o sut mae'r gydran hon yn gweithio, sut i'w datrys.
    • Nid ydym yn datrys achos y broblem, ond y broblem - yr hyn a ddywedais eisoes. Mae'n bwysig i ni amddiffyn y defnyddiwr rhag problemau.
    • Mae gennym ni gliriadau. Er enghraifft, nid ydym yn ei ystyried yn amser segur pe baem yn colli 2% o draffig o fewn dau funud. Yn y bôn, nid yw hyn wedi'i gynnwys yn ein hystadegau. Os yw'n fwy mewn termau canrannol neu dros dro, rydym eisoes yn cyfrif.
    • Ac rydyn ni bob amser yn ysgrifennu post mortem. Beth bynnag fydd yn digwydd i ni, bydd unrhyw sefyllfa lle mae rhywun wedi ymddwyn yn annormal wrth gynhyrchu yn cael ei adlewyrchu yn y post-mortem. Mae post mortem yn ddogfen lle rydych chi'n ysgrifennu beth ddigwyddodd i chi, amseriad manwl, beth wnaethoch chi i'w gywiro a (mae hwn yn floc gorfodol!) beth fyddwch chi'n ei wneud i atal hyn rhag digwydd yn y dyfodol. Mae hyn yn orfodol ac yn angenrheidiol ar gyfer dadansoddiad dilynol.

    Beth sy'n cael ei ystyried yn amser segur?

    HighLoad++, Evgeniy Kuzovlev (EcommPay IT): beth i'w wneud pan fydd munud o amser segur yn costio $100000

    Beth arweiniodd hyn i gyd?

    Arweiniodd hyn at y ffaith (cawsom rai problemau gyda sefydlogrwydd, nid oedd hyn yn gweddu i gleientiaid na ni) dros y 6 mis diwethaf ein dangosydd sefydlogrwydd oedd 99,97. Gallwn ddweud nad yw hyn yn fawr iawn. Oes, mae gennym ni rywbeth i ymdrechu amdano. O'r dangosydd hwn, tua hanner yw'r sefydlogrwydd, fel petai, nid o'n un ni, ond o'n wal dân cymhwysiad gwe, sy'n sefyll o'n blaenau ac yn cael ei ddefnyddio fel gwasanaeth, ond nid yw cleientiaid yn poeni am hyn.

    Dysgon ni gysgu yn y nos. O'r diwedd! Chwe mis yn ôl ni allem. Ac ar y nodyn hwn gyda'r canlyniadau, hoffwn wneud un nodyn. Neithiwr cafwyd adroddiad bendigedig am y system reoli ar gyfer adweithydd niwclear. Os gall y bobl a ysgrifennodd y system hon fy nghlywed, anghofiwch yr hyn a ddywedais am “Nid yw 2% yn amser segur.” I chi, mae 2% yn amser segur, hyd yn oed os am ddau funud!

    Dyna i gyd! Eich cwestiynau.

    HighLoad++, Evgeniy Kuzovlev (EcommPay IT): beth i'w wneud pan fydd munud o amser segur yn costio $100000

    Ynglŷn â balanswyr a mudo cronfa ddata

    Cwestiwn gan y gynulleidfa (o hyn ymlaen – B): – Noswaith dda. Diolch yn fawr iawn am adroddiad gweinyddol o'r fath! Cwestiwn byr am eich balanswyr. Soniasoch fod gennych WAF, hynny yw, yn ôl a ddeallaf, rydych yn defnyddio rhyw fath o gydbwysedd allanol...

    EK: – Na, rydym yn defnyddio ein gwasanaethau fel cydbwysedd. Yn yr achos hwn, mae WAF yn offeryn amddiffyn DDoS i ni yn unig.

    AT: – Allwch chi ddweud ychydig eiriau am fantolwyr?

    EK: - Fel y dywedais eisoes, mae hwn yn grŵp o weinyddion mewn openresty. Mae gennym bellach 5 grŵp wrth gefn sy'n ymateb yn gyfan gwbl... hynny yw, gweinydd sy'n rhedeg yn gyfan gwbl openresty, dim ond traffig dirprwy sy'n ei wneud. Yn unol â hynny, i ddeall faint sydd gennym: erbyn hyn mae gennym lif traffig rheolaidd o rai cannoedd megabit. Maen nhw'n ymdopi, maen nhw'n teimlo'n dda, dydyn nhw ddim hyd yn oed yn straen eu hunain.

    AT: - Cwestiwn syml hefyd. Dyma leoliad Glas/Gwyrdd. Beth ydych chi'n ei wneud, er enghraifft, gyda mudo cronfa ddata?

    EK: - Cwestiwn da! Edrychwch, mewn defnydd Glas/Gwyrdd mae gennym giwiau ar wahân ar gyfer pob llinell. Hynny yw, os ydym yn sôn am giwiau digwyddiad sy'n cael eu trosglwyddo o weithiwr i weithiwr, mae ciwiau ar wahân ar gyfer y llinell las ac ar gyfer y llinell werdd. Os ydym yn sôn am y gronfa ddata ei hun, yna fe wnaethom yn fwriadol ei chulhau cymaint ag y gallem, symud popeth yn ymarferol i giwiau; yn y gronfa ddata dim ond pentwr o drafodion rydym yn eu storio. Ac mae ein pentwr trafodion yr un peth ar gyfer pob llinell. Gyda'r gronfa ddata yn y cyd-destun hwn: nid ydym yn ei rannu'n las a gwyrdd, oherwydd mae'n rhaid i'r ddau fersiwn o'r cod wybod beth sy'n digwydd gyda'r trafodiad.

    Gyfeillion, mae gen i wobr fach hefyd i'ch sbarduno chi - llyfr. A dylwn ei ddyfarnu am y cwestiwn gorau.

    AT: - Helo. Diolch am yr adroddiad. Y cwestiwn yw hwn. Rydych chi'n monitro taliadau, rydych chi'n monitro'r gwasanaethau rydych chi'n cyfathrebu â nhw ... Ond sut ydych chi'n monitro fel bod person rywsut yn dod i'ch tudalen dalu, wedi gwneud taliad, a bod y prosiect yn credydu arian iddo? Hynny yw, sut ydych chi'n monitro bod y marchant ar gael ac wedi derbyn eich galwad yn ôl?

    EK: – Mae “Merchant” i ni yn yr achos hwn yn union yr un gwasanaeth allanol â'r system dalu. Rydym yn monitro cyflymder ymateb y masnachwr.

    Ynglŷn ag amgryptio cronfa ddata

    AT: - Helo. Mae gennyf gwestiwn ychydig yn gysylltiedig. Mae gennych ddata sensitif PCI DSS. Roeddwn i eisiau gwybod sut rydych chi'n storio PANs mewn ciwiau y mae angen i chi drosglwyddo iddynt? Ydych chi'n defnyddio unrhyw amgryptio? Ac mae hyn yn arwain at yr ail gwestiwn: yn ôl PCI DSS, mae angen ail-amgryptio'r gronfa ddata o bryd i'w gilydd rhag ofn y bydd newidiadau (diswyddo gweinyddwyr, ac ati) - beth sy'n digwydd i hygyrchedd yn yr achos hwn?

    HighLoad++, Evgeniy Kuzovlev (EcommPay IT): beth i'w wneud pan fydd munud o amser segur yn costio $100000

    EK: - Cwestiwn bendigedig! Yn gyntaf, nid ydym yn storio PANs mewn ciwiau. Nid oes gennym yr hawl i storio PAN yn unrhyw le mewn ffurf glir, mewn egwyddor, felly rydym yn defnyddio gwasanaeth arbennig (rydym yn ei alw'n “Kademon”) - mae hwn yn wasanaeth sy'n gwneud dim ond un peth: mae'n derbyn neges fel mewnbwn ac yn anfon allan neges wedi'i hamgryptio. Ac rydyn ni'n storio popeth gyda'r neges amgryptio hon. Yn unol â hynny, mae ein hyd allweddol o dan kilobyte, fel bod hyn yn ddifrifol ac yn ddibynadwy.

    AT: – Oes angen 2 kilobeit arnoch chi nawr?

    EK: – Mae'n ymddangos fel dim ond ddoe roedd hi'n 256... Wel, ble arall?!

    Yn unol â hynny, dyma'r cyntaf. Ac yn ail, yr ateb sy'n bodoli, mae'n cefnogi'r weithdrefn ail-amgryptio - mae yna ddau bâr o “keks” (allweddi), sy'n rhoi “deciau” sy'n amgryptio (allwedd yw'r allweddi, mae dec yn ddeilliadau o'r allweddi sy'n amgryptio) . Ac os caiff y weithdrefn ei chychwyn (mae'n digwydd yn rheolaidd, o 3 mis i ± rhai), rydym yn lawrlwytho pâr newydd o "gacennau", ac rydym yn ail-amgryptio'r data. Mae gennym wasanaethau ar wahân sy'n rhwygo'r holl ddata ac yn ei amgryptio mewn ffordd newydd; Mae'r data'n cael ei storio wrth ymyl dynodwr yr allwedd y mae wedi'i amgryptio ag ef. Yn unol â hynny, cyn gynted ag y byddwn yn amgryptio'r data gydag allweddi newydd, rydym yn dileu'r hen allwedd.

    Weithiau mae angen gwneud taliadau â llaw...

    AT: - Hynny yw, os yw ad-daliad wedi cyrraedd ar gyfer rhywfaint o weithrediad, a fyddwch chi'n dal i ei ddadgryptio gyda'r hen allwedd?

    EK: - Ydw.

    AT: – Yna un cwestiwn bach arall. Pan fydd rhyw fath o fethiant, cwymp neu ddigwyddiad yn digwydd, mae angen gwthio'r trafodiad â llaw. Mae sefyllfa o'r fath.

    EK: - Ydy, weithiau.

    AT: – O ble ydych chi'n cael y data hwn? Neu a ydych chi'n mynd i'r cyfleuster storio hwn eich hun?

    EK: – Na, wel, wrth gwrs, mae gennym ni ryw fath o system swyddfa gefn sy'n cynnwys rhyngwyneb ar gyfer ein cefnogaeth. Os nad ydym yn gwybod pa statws y mae'r trafodiad ynddo (er enghraifft, nes i'r system dalu ymateb gyda therfyn amser), nid ydym yn gwybod a priori, hynny yw, dim ond gyda hyder llawn yr ydym yn aseinio'r statws terfynol. Yn yr achos hwn, rydym yn aseinio'r trafodiad i statws arbennig ar gyfer prosesu â llaw. Yn y bore, y diwrnod wedyn, cyn gynted ag y bydd cefnogaeth yn derbyn gwybodaeth bod trafodion o'r fath ac o'r fath yn aros yn y system dalu, maent yn eu prosesu â llaw yn y rhyngwyneb hwn.

    HighLoad++, Evgeniy Kuzovlev (EcommPay IT): beth i'w wneud pan fydd munud o amser segur yn costio $100000

    AT: - Mae gen i gwpl o gwestiynau. Un ohonynt yw parhad y parth PCI DSS: sut ydych chi'n cofnodi eu cylched? Mae'r cwestiwn hwn oherwydd y gallai'r datblygwr fod wedi rhoi unrhyw beth yn y logiau! Ail gwestiwn: sut ydych chi'n cyflwyno atebion poeth? Mae dolenni yn y gronfa ddata yn un opsiwn, ond efallai y bydd yna atebion poeth am ddim - beth yw'r weithdrefn yno? Ac mae'n debyg bod y trydydd cwestiwn yn ymwneud â RTO, RPO. Roedd eich argaeledd yn 99,97, bron i bedwar naw, ond yn ôl yr hyn a ddeallaf, mae gennych ail ganolfan ddata, trydydd canolfan ddata, a phumed canolfan ddata... Sut ydych chi'n eu cysoni, yn eu dyblygu, a phopeth arall?

    EK: - Gadewch i ni ddechrau gyda'r un cyntaf. Ai am logiau oedd y cwestiwn cyntaf? Pan fyddwn yn ysgrifennu logiau, mae gennym haen sy'n cuddio'r holl ddata sensitif. Mae hi'n edrych ar y mwgwd ac ar y meysydd ychwanegol. Yn unol â hynny, mae ein logiau'n dod allan gyda data sydd eisoes wedi'u cuddio a chylched PCI DSS. Dyma un o'r tasgau rheolaidd a neilltuwyd i'r adran brofi. Mae'n ofynnol iddynt wirio pob tasg, gan gynnwys y logiau y maent yn eu hysgrifennu, a dyma un o'r tasgau rheolaidd yn ystod adolygiadau cod, er mwyn rheoli na wnaeth y datblygwr ysgrifennu rhywbeth i lawr. Cynhelir gwiriadau dilynol o hyn yn rheolaidd gan yr adran diogelwch gwybodaeth tua unwaith yr wythnos: cymerir logiau ar gyfer y diwrnod olaf yn ddetholus ac fe'u rhedir trwy ddadansoddwr sganiwr arbennig o weinyddion prawf i wirio popeth.
    Am atebion poeth. Mae hyn wedi'i gynnwys yn ein rheoliadau defnyddio. Mae gennym gymal ar wahân am atebion poeth. Credwn ein bod yn defnyddio gosodiadau poeth bob awr o'r dydd pan fydd ei angen arnom. Cyn gynted ag y bydd y fersiwn wedi'i ymgynnull, cyn gynted ag y caiff ei redeg, cyn gynted ag y bydd gennym arteffact, mae gennym weinyddwr system ar ddyletswydd ar alwad gan gefnogaeth, ac mae'n ei ddefnyddio ar hyn o bryd pan fo angen.

    Tua "pedwar naw". Mae’r ffigur sydd gennym yn awr wedi’i gyflawni mewn gwirionedd, ac fe wnaethom ymdrechu i’w gael mewn canolfan ddata arall. Nawr mae gennym ni ail ganolfan ddata, ac rydym ni'n dechrau llwybro rhyngddynt, ac mae mater dyblygu canolfannau data yn wir yn gwestiwn nad yw'n ddibwys. Fe wnaethon ni geisio ei ddatrys ar un adeg gan ddefnyddio gwahanol ddulliau: fe wnaethon ni geisio defnyddio'r un “Tarantula” - nid oedd yn gweithio allan i ni, byddaf yn dweud wrthych ar unwaith. Dyna pam y gwnaethom archebu'r "sens" â llaw. Mewn gwirionedd, mae pob cymhwysiad yn ein system yn rhedeg y cydamseriad “newid - wedi'i wneud” angenrheidiol rhwng canolfannau data yn anghydamserol.

    AT: – Os cawsoch chi ail un, pam na chawsoch chi drydydd un? Gan nad oes gan unrhyw un ymennydd hollt eto ...

    EK: - Ond nid oes gennym Split Brain. Oherwydd bod pob cais yn cael ei yrru gan amlfeistr, nid oes ots i ni i ba ganolfan y daeth y cais. Rydym yn barod am y ffaith, os bydd un o'n canolfannau data yn methu (rydym yn dibynnu ar hyn) ac yng nghanol cais defnyddiwr yn newid i'r ail ganolfan ddata, rydym yn barod i golli'r defnyddiwr hwn, yn wir; ond bydd y rhain yn unedau, unedau absoliwt.

    AT: - Noswaith dda. Diolch am yr adroddiad. Soniasoch am eich dadfygiwr, sy'n rhedeg rhai trafodion prawf wrth gynhyrchu. Ond dywedwch wrthym am drafodion prawf! Pa mor ddwfn mae'n mynd?

    EK: - Mae'n mynd trwy gylchred llawn y gydran gyfan. Ar gyfer cydran, nid oes gwahaniaeth rhwng trafodiad prawf ac un cynhyrchu. Ond o safbwynt rhesymegol, mae hwn yn brosiect ar wahân yn y system, lle mae trafodion prawf yn unig yn cael eu rhedeg.

    AT: -Ble ydych chi'n ei dorri i ffwrdd? Yma anfonodd Core...

    EK: – Rydyn ni y tu ôl i “Kor” yn yr achos hwn ar gyfer trafodion prawf ... Mae gennym ni'r fath beth â llwybro: mae “Kor” yn gwybod at ba system dalu i'w hanfon - rydyn ni'n anfon at system dalu ffug, sydd yn syml yn rhoi signal http a dyna i gyd.

    AT: – Dywedwch wrthyf, os gwelwch yn dda, a oedd eich cais wedi'i ysgrifennu mewn un monolith enfawr, neu a wnaethoch chi ei dorri'n rhai gwasanaethau neu hyd yn oed yn ficrowasanaethau?

    EK: - Nid oes gennym monolith, wrth gwrs, mae gennym gymhwysiad sy'n canolbwyntio ar wasanaeth. Rydyn ni'n cellwair bod ein gwasanaeth wedi'i wneud o fonolithau - maen nhw'n eithaf mawr mewn gwirionedd. Mae'n anodd ei alw'n ficrowasanaethau, ond mae'r rhain yn wasanaethau y mae gweithwyr peiriannau dosbarthedig yn gweithredu oddi mewn iddynt.

    Os yw'r gwasanaeth ar y gweinydd mewn perygl...

    AT: - Yna mae gen i'r cwestiwn nesaf. Hyd yn oed pe bai'n fonolith, roeddech chi'n dal i ddweud bod gennych chi lawer o'r gweinyddwyr gwib hyn, maen nhw i gyd yn prosesu data yn y bôn, a'r cwestiwn yw: “Os bydd cyfaddawd gan un o'r gweinyddwyr gwib neu raglen, unrhyw ddolen unigol , a oes ganddynt ryw fath o reolaeth mynediad? Pa un ohonyn nhw all wneud beth? Â phwy y dylwn gysylltu am ba wybodaeth?

    HighLoad++, Evgeniy Kuzovlev (EcommPay IT): beth i'w wneud pan fydd munud o amser segur yn costio $100000

    EK: - Ydy, yn bendant. Mae'r gofynion diogelwch yn eithaf difrifol. Yn gyntaf, mae gennym symudiadau data agored, a dim ond y porthladdoedd yr ydym yn rhagweld symudiad traffig drwyddynt ymlaen llaw. Os yw cydran yn cyfathrebu â'r gronfa ddata (dyweder, gyda Muskul) trwy 5-4-3-2, dim ond 5-4-3-2 fydd yn agored iddo, ac ni fydd porthladdoedd eraill a chyfarwyddiadau traffig eraill ar gael. Yn ogystal, mae angen i chi ddeall bod tua 10 o ddolenni diogelwch gwahanol yn ein cynhyrchiad. A hyd yn oed pe bai'r cais yn cael ei gyfaddawdu rywsut, mae Duw yn gwahardd, ni fydd yr ymosodwr yn gallu cael mynediad i'r consol rheoli gweinydd, oherwydd mae hwn yn barth diogelwch rhwydwaith gwahanol.

    AT: – Ac yn y cyd-destun hwn, yr hyn sy'n fwy diddorol i mi yw bod gennych gontractau penodol gyda gwasanaethau - yr hyn y gallant ei wneud, trwy ba “gamau” y gallant gysylltu â'i gilydd... Ac mewn llif arferol, mae rhai gwasanaethau penodol yn gofyn am rai rhes, rhestr o “gamau gweithredu” ar y llall. Nid yw'n ymddangos eu bod yn troi at eraill mewn sefyllfa arferol, ac mae ganddynt feysydd cyfrifoldeb eraill. Os yw un ohonynt yn cael ei beryglu, a fydd yn gallu amharu ar “weithredoedd” y gwasanaeth hwnnw?..

    EK: - Rwy'n deall. Os mewn sefyllfa arferol gyda gweinydd arall roedd cyfathrebu yn cael ei ganiatáu o gwbl, yna ie. Yn ôl y contract CLG, nid ydym yn monitro mai dim ond y 3 “cam gweithredu” cyntaf a ganiateir i chi, ac ni chaniateir y 4 “cam gweithredu” i chi. Mae'n debyg bod hyn yn ddiangen i ni, oherwydd mae gennym eisoes system amddiffyn 4 lefel, mewn egwyddor, ar gyfer cylchedau. Mae'n well gennym amddiffyn ein hunain gyda'r cyfuchliniau, yn hytrach nag ar lefel y tu mewn.

    Sut mae Visa, MasterCard a Sberbank yn gweithio

    AT: – Rwyf am egluro pwynt am newid defnyddiwr o un ganolfan ddata i'r llall. Cyn belled ag y gwn, mae Visa a MasterCard yn gweithredu gan ddefnyddio'r protocol cydamserol deuaidd 8583, ac mae cymysgeddau yno. Ac roeddwn i eisiau gwybod, nawr rydyn ni'n golygu newid - ai “Visa” a “MasterCard” yn uniongyrchol neu cyn systemau talu, cyn prosesu?

    EK: — Mae hyn cyn y cymysgeddau. Mae ein cymysgeddau wedi'u lleoli yn yr un ganolfan ddata.

    AT: - Yn fras, a oes gennych chi un pwynt cysylltu?

    EK: – “Fisa” a “MasterCard” - ie. Yn syml oherwydd bod Visa a MasterCard yn gofyn am fuddsoddiadau eithaf difrifol mewn seilwaith i gwblhau contractau ar wahân i gael ail bâr o gymysgeddau, er enghraifft. Maent yn cael eu cadw o fewn un ganolfan ddata, ond os, Duw a'n gwahardd, mae ein canolfan ddata, lle mae cymysgeddau ar gyfer cysylltu â Visa a MasterCard, yn marw, yna bydd gennym gysylltiad â Visa a MasterCard a gollwyd ...

    AT: – Sut y gellir eu cadw? Gwn fod Visa yn caniatáu dim ond un cysylltiad mewn egwyddor!

    EK: - Maen nhw'n cyflenwi'r offer eu hunain. Beth bynnag, cawsom offer sy'n gwbl ddiangen y tu mewn.

    AT: - Felly mae'r stondin o'u Connects Orange?..

    EK: - Ydw.

    AT: - Ond beth am yr achos hwn: os bydd eich canolfan ddata yn diflannu, sut allwch chi barhau i'w defnyddio? Neu a yw'r traffig yn stopio?

    EK: - Nac ydy. Yn yr achos hwn, byddwn yn syml yn newid y traffig i sianel arall, a fydd, yn naturiol, yn ddrytach i ni ac yn ddrutach i'n cleientiaid. Ond ni fydd y traffig yn mynd trwy ein cysylltiad uniongyrchol â Visa, MasterCard, ond trwy'r Sberbank amodol (gorliwio iawn).

    Ymddiheuraf yn wyllt os byddaf yn tramgwyddo gweithwyr Sberbank. Ond yn ôl ein hystadegau, ymhlith y banciau Rwsia, Sberbank yn disgyn amlaf. Nid oes mis yn mynd heibio heb i rywbeth ddisgyn i ffwrdd yn Sberbank.

    HighLoad++, Evgeniy Kuzovlev (EcommPay IT): beth i'w wneud pan fydd munud o amser segur yn costio $100000

    Rhai hysbysebion 🙂

    Diolch am aros gyda ni. Ydych chi'n hoffi ein herthyglau? Eisiau gweld cynnwys mwy diddorol? Cefnogwch ni trwy osod archeb neu argymell i ffrindiau, cwmwl VPS i ddatblygwyr o $4.99, analog unigryw o weinyddion lefel mynediad, a ddyfeisiwyd gennym ni ar eich cyfer chi: Y gwir i gyd am VPS (KVM) E5-2697 v3 (6 Cores) 10GB DDR4 480GB SSD 1Gbps o $ 19 neu sut i rannu gweinydd? (ar gael gyda RAID1 a RAID10, hyd at 24 craidd a hyd at 40GB DDR4).

    Dell R730xd 2 gwaith yn rhatach yng nghanolfan ddata Equinix Haen IV yn Amsterdam? Dim ond yma 2 x Intel TetraDeca-Core Xeon 2x E5-2697v3 2.6GHz 14C 64GB DDR4 4x960GB SSD 1Gbps 100 TV o $199 yn yr Iseldiroedd! Dell R420 - 2x E5-2430 2.2Ghz 6C 128GB DDR3 2x960GB SSD 1Gbps 100TB - o $99! Darllenwch am Sut i adeiladu seilwaith Corp. dosbarth gyda'r defnydd o weinyddion Dell R730xd E5-2650 v4 gwerth 9000 ewro am geiniog?

Ffynhonnell: hab.com

Ychwanegu sylw