Sut y gwnaethom adeiladu craidd busnes buddsoddi Alfa-Bank yn seiliedig ar Tarantool

Sut y gwnaethom adeiladu craidd busnes buddsoddi Alfa-Bank yn seiliedig ar Tarantool
Dal o'r ffilm "Our Secret Universe: The Hidden Life of the Cell"

Mae'r busnes buddsoddi yn un o'r meysydd mwyaf cymhleth yn y byd bancio, oherwydd nid yn unig y mae benthyciadau, benthyciadau ac adneuon, ond hefyd gwarantau, arian cyfred, nwyddau, deilliadau a phob math o gymhlethdodau ar ffurf cynhyrchion strwythuredig.

Yn ddiweddar, rydym wedi gweld cynnydd yn llythrennedd ariannol y boblogaeth. Mae mwy a mwy o bobl yn ymwneud â masnachu yn y marchnadoedd gwarantau. Nid oedd cyfrifon buddsoddi unigol yn ymddangos mor bell yn ôl. Maent yn caniatáu ichi fasnachu'r marchnadoedd gwarantau a naill ai derbyn didyniadau treth neu osgoi talu trethi. Ac mae pob cleient sy'n dod atom ni eisiau rheoli eu portffolio a gweld adrodd mewn amser real. Ar ben hynny, yn fwyaf aml mae'r portffolio hwn yn aml-gynnyrch, hynny yw, mae pobl yn gleientiaid o wahanol linellau busnes.

Yn ogystal, mae anghenion rheoleiddwyr, yn Rwsia a thramor, yn tyfu.

Er mwyn diwallu anghenion presennol a gosod y sylfaen ar gyfer uwchraddio yn y dyfodol, rydym wedi datblygu craidd busnes buddsoddi yn seiliedig ar Tarantool.

Rhai ystadegau. Mae busnes buddsoddi Alfa-Bank yn darparu gwasanaethau broceriaeth i unigolion ac endidau cyfreithiol i roi'r cyfle i fasnachu ar wahanol farchnadoedd gwarantau, gwasanaethau storfa ar gyfer storio gwarantau, gwasanaethau rheoli ymddiriedolaeth i unigolion â chyfalaf preifat a mawr, gwasanaethau ar gyfer cyhoeddi gwarantau i gwmnïau eraill. . Mae busnes buddsoddi Alfa-Bank yn cynnwys mwy na 3 mil o ddyfynbrisiau yr eiliad, sy'n cael eu lawrlwytho o wahanol lwyfannau masnachu. Yn ystod y diwrnod gwaith, mae mwy na 300 mil o drafodion yn cael eu cwblhau ar y marchnadoedd ar ran y banc neu ei gleientiaid. Mae hyd at 5 mil o weithrediadau archeb yr eiliad yn digwydd ar lwyfannau allanol a mewnol. Ar yr un pryd, mae pob cleient, yn fewnol ac yn allanol, eisiau gweld eu swyddi mewn amser real.

cynhanes

Yn rhywle o ddechrau'r 2000au, datblygodd ein meysydd busnes buddsoddi yn annibynnol: masnachu cyfnewid, gwasanaethau broceriaeth, masnachu arian cyfred, masnachu dros y cownter mewn gwarantau a deilliadau amrywiol. O ganlyniad, rydym wedi syrthio i fagl ffynhonnau swyddogaethol. Beth yw e? Mae gan bob llinell fusnes ei systemau ei hun sy'n dyblygu swyddogaethau ei gilydd. Mae gan bob system ei model data ei hun, er eu bod yn gweithredu gyda'r un cysyniadau: trafodion, offerynnau, gwrthbartïon, dyfynbrisiau, ac ati. Ac wrth i bob system esblygu'n annibynnol, daeth sw amrywiol o dechnolegau i'r amlwg.

Yn ogystal, mae sylfaen cod y systemau eisoes yn hen ffasiwn, oherwydd bod rhai cynhyrchion yn tarddu o ganol y 1990au. Ac mewn rhai meysydd roedd hyn yn arafu'r broses ddatblygu, ac roedd problemau perfformiad.

Gofynion ar gyfer datrysiad newydd

Mae busnesau wedi sylweddoli bod trawsnewid technolegol yn hanfodol ar gyfer datblygiad pellach. Rhoddwyd tasgau i ni:

  1. Casglwch yr holl ddata busnes mewn un storfa gyflym ac mewn un model data.
  2. Rhaid inni beidio â cholli na newid y wybodaeth hon.
  3. Mae angen fersiwn y data, oherwydd ar unrhyw adeg gall y rheolydd ofyn am ystadegau ar gyfer blynyddoedd blaenorol.
  4. Rhaid inni nid yn unig ddod â rhai DBMS newydd, ffasiynol, ond creu llwyfan ar gyfer datrys problemau busnes.

Yn ogystal, mae ein penseiri yn gosod eu hamodau eu hunain:

  1. Rhaid i'r datrysiad newydd fod yn ddosbarth menter, hynny yw, mae'n rhaid ei brofi eisoes mewn rhai cwmnïau mawr.
  2. Dylai modd gweithredu'r datrysiad fod yn hanfodol i genhadaeth. Mae hyn yn golygu bod yn rhaid i ni fod yn bresennol mewn sawl canolfan ddata ar yr un pryd a goroesi'n ddigynnwrf pan fydd un ganolfan ddata yn segur.
  3. Rhaid i'r system fod yn scalable yn llorweddol. Y ffaith yw mai dim ond yn fertigol y gellir ei raddio yn ein holl systemau presennol, ac rydym eisoes yn cyrraedd y nenfwd oherwydd twf isel pŵer caledwedd. Felly, mae’r foment wedi dod pan fydd angen inni gael system y gellir ei graddio’n llorweddol i oroesi.
  4. Ymhlith pethau eraill, dywedwyd wrthym fod yn rhaid i'r ateb fod yn rhad.

Fe wnaethom ddilyn y llwybr safonol: gwnaethom lunio'r gofynion a chysylltu â'r adran brynu. Oddi yno cawsom restr o gwmnïau sydd, yn gyffredinol, yn barod i wneud hyn i ni. Dywedasom wrth bawb am y broblem, a chawsom asesiad o'r atebion gan chwech ohonynt.

Yn y banc, nid ydym yn cymryd gair unrhyw un amdano; rydym yn hoffi profi popeth ein hunain. Felly, un o amodau gorfodol ein cystadleuaeth dendro oedd pasio profion llwyth. Fe wnaethom lunio tasgau prawf llwyth, ac mae tri o bob chwe chwmni eisoes wedi cytuno i weithredu datrysiad prototeip yn seiliedig ar dechnolegau cof ar eu cost eu hunain er mwyn ei brofi.

Ni fyddaf yn dweud wrthych sut y gwnaethom brofi popeth a pha mor hir a gymerodd, byddaf yn crynhoi: dangoswyd y perfformiad gorau mewn profion llwyth gan ddatrysiad prototeip yn seiliedig ar Tarantool o dîm datblygu Grŵp Mail.ru. Fe wnaethom lofnodi cytundeb a dechrau datblygu. Roedd pedwar o bobl o Mail.ru Group, ac o Alfa-Bank roedd tri datblygwr, tri dadansoddwr system, pensaer datrysiadau, perchennog cynnyrch a meistr Scrum.

Nesaf byddaf yn dweud wrthych sut y tyfodd ein system, sut y datblygodd, yr hyn a wnaethom a pham yn union hyn.

Datblygiad

Y cwestiwn cyntaf a ofynnwyd i ni'n hunain oedd sut i gael data o'n systemau presennol. Fe wnaethom benderfynu bod HTTP yn eithaf addas i ni, oherwydd bod yr holl systemau cyfredol yn cyfathrebu â'i gilydd trwy anfon XML neu JSON dros HTTP.

Rydym yn defnyddio'r gweinydd HTTP sydd wedi'i ymgorffori yn Tarantool oherwydd nid oes angen i ni derfynu sesiynau SSL, ac mae ei berfformiad yn ddigon i ni.

Fel y dywedais eisoes, mae ein holl systemau yn byw mewn modelau data gwahanol, ac yn y mewnbwn mae angen inni ddod â'r gwrthrych i'r model yr ydym yn ei ddisgrifio ein hunain. Roedd angen iaith a oedd yn caniatáu i ddata gael ei drawsnewid. Dewisasom Lua hanfodol. Rydyn ni'n rhedeg yr holl god trosi data mewn blwch tywod - mae hwn yn lle diogel nad yw'r cod rhedeg yn mynd y tu hwnt iddo. I wneud hyn, rydym yn llwytho llinyn y cod gofynnol, gan greu amgylchedd gyda swyddogaethau na allant rwystro neu ollwng unrhyw beth.

Sut y gwnaethom adeiladu craidd busnes buddsoddi Alfa-Bank yn seiliedig ar Tarantool
Ar ôl trosi, rhaid gwirio'r data i weld a yw'n cydymffurfio â'r model yr ydym yn ei greu. Buom yn trafod am amser hir beth ddylai’r model fod a pha iaith i’w defnyddio i’w ddisgrifio. Fe wnaethon ni ddewis Apache Avro oherwydd bod yr iaith yn syml ac mae ganddi gefnogaeth gan Tarantool. Gellir rhoi fersiynau newydd o'r model a'r cod arferiad ar waith sawl gwaith y dydd, hyd yn oed dan lwyth neu hebddynt, ar unrhyw adeg o'r dydd, ac addasu i newidiadau yn gyflym iawn.

Sut y gwnaethom adeiladu craidd busnes buddsoddi Alfa-Bank yn seiliedig ar Tarantool
Ar ôl dilysu, rhaid cadw'r data. Rydyn ni'n gwneud hyn gan ddefnyddio vshard (mae gennym ni atgynyrchiadau geo-wasgaredig o ddarnau mân).

Sut y gwnaethom adeiladu craidd busnes buddsoddi Alfa-Bank yn seiliedig ar Tarantool
At hynny, mae'r penodoldeb yn golygu nad yw'r rhan fwyaf o systemau sy'n anfon data atom yn poeni a gawsom ef ai peidio. Dyna pam y gwnaethom weithredu ciw atgyweirio o'r cychwyn cyntaf. Beth yw e? Os nad yw gwrthrych yn cael ei drawsnewid neu ei wirio am ryw reswm, rydym yn dal i gadarnhau ei fod wedi'i dderbyn, ond ar yr un pryd yn arbed y gwrthrych yn y ciw atgyweirio. Mae'n gyson ac wedi'i leoli yn y prif warws data busnes. Fe wnaethon ni ysgrifennu rhyngwyneb gweinyddwr ar ei gyfer ar unwaith, amrywiol fetrigau a rhybuddion. O ganlyniad, nid ydym yn colli data. Hyd yn oed os oes rhywbeth wedi newid yn y ffynhonnell, os yw'r model data wedi newid, byddwn yn ei ganfod ar unwaith ac yn gallu addasu.

Sut y gwnaethom adeiladu craidd busnes buddsoddi Alfa-Bank yn seiliedig ar Tarantool
Nawr mae angen i chi ddysgu sut i adfer data sydd wedi'u cadw. Fe wnaethom ddadansoddi ein systemau yn ofalus a gweld bod y pentwr clasurol o Java ac Oracle o reidrwydd yn cynnwys rhyw fath o ORM sy'n trosi data o berthynol i wrthrych. Felly beth am roi gwrthrychau i systemau ar unwaith ar ffurf graff? Felly fe wnaethom fabwysiadu GraphQL yn hapus, a oedd yn cwrdd â'n holl anghenion. Mae'n caniatáu ichi dderbyn data ar ffurf graffiau a thynnu allan dim ond yr hyn sydd ei angen arnoch ar hyn o bryd. Gallwch hyd yn oed fersiwn yr API gyda chryn dipyn o hyblygrwydd.

Sut y gwnaethom adeiladu craidd busnes buddsoddi Alfa-Bank yn seiliedig ar Tarantool
Bron ar unwaith sylweddolom nad oedd y data yr oeddem yn ei echdynnu yn ddigon. Fe wnaethon ni greu swyddogaethau y gellir eu cysylltu â gwrthrychau yn y model - yn y bôn, meysydd wedi'u cyfrifo. Hynny yw, rydym yn atodi swyddogaeth benodol i'r maes, sydd, er enghraifft, yn cyfrifo'r pris dyfynbris cyfartalog. Ac nid yw'r defnyddiwr allanol sy'n gofyn am y data hyd yn oed yn gwybod bod hwn yn faes wedi'i gyfrifo.

Sut y gwnaethom adeiladu craidd busnes buddsoddi Alfa-Bank yn seiliedig ar Tarantool
Wedi rhoi system ddilysu ar waith.

Sut y gwnaethom adeiladu craidd busnes buddsoddi Alfa-Bank yn seiliedig ar Tarantool
Yna fe wnaethom sylwi bod sawl rôl yn crisialu yn ein penderfyniad. Mae rôl yn fath o agregwr swyddogaethau. Yn nodweddiadol, mae gan rolau broffiliau defnydd offer gwahanol:

  • T-Connect: yn trin cysylltiadau sy'n dod i mewn, CPU cyfyngedig, defnydd cof isel, heb wladwriaeth.
  • IB-Core: yn trawsnewid y data y mae'n ei dderbyn trwy'r protocol Tarantool, hynny yw, mae'n gweithredu gyda thablau. Nid yw ychwaith yn storio cyflwr ac mae'n raddadwy.
  • Storio: dim ond storio data, nid yw'n defnyddio unrhyw resymeg. Mae'r rôl hon yn gweithredu'r rhyngwynebau symlaf. Scalable diolch i vshard.

Sut y gwnaethom adeiladu craidd busnes buddsoddi Alfa-Bank yn seiliedig ar Tarantool
Hynny yw, gan ddefnyddio rolau, gwnaethom ddatgysylltu gwahanol rannau o'r clwstwr oddi wrth ei gilydd, y gellir eu graddio'n annibynnol ar ei gilydd.

Felly, rydym wedi creu recordiad llif data trafodion asyncronaidd a chiw atgyweirio gyda rhyngwyneb gweinyddol. Mae'r recordiad yn anghydamserol o safbwynt busnes: os ydym yn sicr o ysgrifennu data atom ni ein hunain, ni waeth ble, yna byddwn yn ei gadarnhau. Os na chaiff ei gadarnhau, yna aeth rhywbeth o'i le ac mae angen anfon y data. Dyma'r recordiad asyncronaidd.

Profi

O ddechrau'r prosiect, penderfynasom y byddem yn ceisio gweithredu datblygiad a yrrir gan brawf. Rydym yn ysgrifennu profion uned yn Lua gan ddefnyddio'r fframwaith tarantool/tap, a phrofion integreiddio yn Python gan ddefnyddio'r fframwaith pytest. Ar yr un pryd, rydym yn cynnwys datblygwyr a dadansoddwyr wrth ysgrifennu profion integreiddio.

Sut ydyn ni'n defnyddio datblygiad a yrrir gan brawf?

Os ydyn ni eisiau rhyw nodwedd newydd, rydyn ni'n ceisio ysgrifennu prawf ar ei gyfer yn gyntaf. Pan rydyn ni'n darganfod nam, rydyn ni'n gwneud yn siŵr ein bod ni'n ysgrifennu prawf yn gyntaf, a dim ond wedyn ei drwsio. Ar y dechrau mae'n anodd gweithio fel hyn, mae camddealltwriaeth ar ran gweithwyr, hyd yn oed sabotage: “Dewch i ni ei drwsio'n gyflym nawr, gwneud rhywbeth newydd, ac yna ei orchuddio â phrofion.” Dim ond hyn "yn ddiweddarach" bron byth yn dod.

Felly, mae angen i chi orfodi eich hun i ysgrifennu profion yn gyntaf a gofyn i eraill ei wneud. Credwch fi, mae datblygiad a yrrir gan brawf yn dod â buddion hyd yn oed yn y tymor byr. Byddwch yn teimlo bod eich bywyd wedi dod yn haws. Teimlwn fod 99% o'r cod bellach wedi'i gwmpasu gan brofion. Mae hyn yn ymddangos fel llawer, ond nid oes gennym unrhyw broblemau: mae profion yn rhedeg ar bob ymrwymiad.

Fodd bynnag, yr hyn yr ydym yn ei garu fwyaf yw profi llwyth; rydym yn ei ystyried yn bwysicaf ac yn ei gynnal yn rheolaidd.

Fe ddywedaf stori fach wrthych am sut y gwnaethom gynnal cam cyntaf profi llwyth un o'r fersiynau cyntaf. Fe wnaethom osod y system ar liniadur y datblygwr, troi'r llwyth ymlaen a chael 4 mil o drafodion yr eiliad. Canlyniad da ar gyfer gliniadur. Fe wnaethon ni ei osod ar fainc llwyth rhithwir o bedwar gweinydd, yn wannach nag wrth gynhyrchu. Wedi'i leoli i isafswm. Rydyn ni'n ei redeg, ac rydyn ni'n cael canlyniad yn waeth nag ar liniadur mewn un edefyn. Cynnwys sioc.

Roeddem yn drist iawn. Edrychwn ar y llwyth gweinydd, ond mae'n troi allan eu bod yn segur.

Sut y gwnaethom adeiladu craidd busnes buddsoddi Alfa-Bank yn seiliedig ar Tarantool
Rydyn ni'n galw'r datblygwyr, ac maen nhw'n esbonio i ni, bobl sy'n dod o fyd Java, bod Tarantool yn un edau. Dim ond un craidd prosesydd o dan lwyth y gellir ei ddefnyddio'n effeithiol. Yna fe wnaethom ddefnyddio'r nifer uchaf posibl o achosion Tarantool ar bob gweinydd, troi'r llwyth ymlaen a derbyn 14,5 mil o drafodion yr eiliad eisoes.

Sut y gwnaethom adeiladu craidd busnes buddsoddi Alfa-Bank yn seiliedig ar Tarantool
Gadewch imi egluro eto. Oherwydd y rhaniad yn rolau sy'n defnyddio adnoddau'n wahanol, roedd ein rolau sy'n gyfrifol am brosesu cysylltiadau a thrawsnewid data yn llwytho'r prosesydd yn unig, ac yn gwbl gymesur â'r llwyth.

Sut y gwnaethom adeiladu craidd busnes buddsoddi Alfa-Bank yn seiliedig ar Tarantool
Sut y gwnaethom adeiladu craidd busnes buddsoddi Alfa-Bank yn seiliedig ar Tarantool
Yn yr achos hwn, defnyddiwyd cof yn unig ar gyfer prosesu cysylltiadau sy'n dod i mewn a gwrthrychau dros dro.

Sut y gwnaethom adeiladu craidd busnes buddsoddi Alfa-Bank yn seiliedig ar Tarantool
I'r gwrthwyneb, ar weinyddion storio, cynyddodd llwyth prosesydd, ond yn llawer arafach nag ar weinyddion sy'n prosesu cysylltiadau.

Sut y gwnaethom adeiladu craidd busnes buddsoddi Alfa-Bank yn seiliedig ar Tarantool
A thyfodd defnydd cof mewn cyfrannedd union â faint o ddata a lwythwyd.

Sut y gwnaethom adeiladu craidd busnes buddsoddi Alfa-Bank yn seiliedig ar Tarantool

Gwasanaethau

Er mwyn datblygu ein cynnyrch newydd yn benodol fel llwyfan cymhwysiad, fe wnaethom greu cydran ar gyfer defnyddio gwasanaethau a llyfrgelloedd arno.

Nid darnau bach o god sy'n gweithredu ar rai meysydd yn unig yw gwasanaethau. Gallant fod yn strwythurau eithaf mawr a chymhleth sy'n rhan o glwstwr, yn gwirio data cyfeirio, yn rhedeg rhesymeg busnes ac yn dychwelyd ymatebion. Rydym hefyd yn allforio'r sgema gwasanaeth i GraphQL, ac mae'r defnyddiwr yn derbyn pwynt mynediad cyffredinol i'r data, gyda mewnwelediad ar draws y model cyfan. Mae'n gyfforddus iawn.

Gan fod gwasanaethau'n cynnwys llawer mwy o swyddogaethau, fe wnaethom benderfynu y dylai fod llyfrgelloedd lle byddwn yn symud cod a ddefnyddir yn aml. Fe wnaethon ni eu hychwanegu at yr amgylchedd diogel, ar ôl gwirio o'r blaen nad yw'n torri unrhyw beth i ni. Ac yn awr gallwn neilltuo amgylcheddau ychwanegol i swyddogaethau ar ffurf llyfrgelloedd.

Roeddem am gael llwyfan nid yn unig ar gyfer storio, ond hefyd ar gyfer cyfrifiadura. A chan ein bod eisoes wedi cael criw o atgynyrchiadau a darnau, rydym yn gweithredu math o gyfrifiadura dosranedig a'i alw'n map lleihau, oherwydd ei fod yn troi allan yn debyg i'r map gwreiddiol lleihau.

Hen systemau

Ni all pob un o'n systemau etifeddiaeth ein ffonio dros HTTP a defnyddio GraphQL, er eu bod yn cefnogi'r protocol. Felly, rydym wedi creu mecanwaith sy'n caniatáu i ddata gael ei ailadrodd yn y systemau hyn.

Sut y gwnaethom adeiladu craidd busnes buddsoddi Alfa-Bank yn seiliedig ar Tarantool
Os bydd rhywbeth yn newid i ni, mae sbardunau unigryw yn cael eu sbarduno yn y rôl Storio ac mae'r neges gyda'r newidiadau yn dod i ben yn y ciw prosesu. Mae'n cael ei anfon i system allanol gan ddefnyddio rôl atgynhyrchydd ar wahân. Nid yw'r rôl hon yn storio cyflwr.

Gwelliannau newydd

Fel y cofiwch, o safbwynt busnes, gwnaethom recordio asyncronaidd. Ond yna sylweddolon nhw na fyddai'n ddigon, oherwydd mae yna ddosbarth o systemau sydd angen ymateb ar unwaith am statws y llawdriniaeth. Felly fe wnaethom ymestyn ein GraphQL ac ychwanegu treigladau. Maent yn ffitio'n organig i'r patrwm presennol o weithio gyda data. I ni, mae hwn yn bwynt unigol o ddarllen ac ysgrifennu ar gyfer dosbarth arall o systemau.

Sut y gwnaethom adeiladu craidd busnes buddsoddi Alfa-Bank yn seiliedig ar Tarantool
Sylweddolasom hefyd na fyddai gwasanaethau yn unig yn ddigon inni, oherwydd ceir adroddiadau eithaf trwm y mae angen eu hadeiladu unwaith y dydd, yr wythnos, y mis. Gall hyn gymryd amser hir, a gall adroddiadau hyd yn oed rwystro dolen digwyddiad Tarantool. Felly, fe wnaethon ni greu rolau ar wahân: trefnydd a rhedwr. Nid yw rhedwyr yn storio cyflwr. Maent yn rhedeg tasgau trwm na allwn eu cyfrifo ar y hedfan. Ac mae rôl y trefnydd yn monitro amserlen lansio'r tasgau hyn, a ddisgrifir yn y ffurfweddiad. Mae'r tasgau eu hunain yn cael eu storio yn yr un lle â data busnes. Pan ddaw'r amser iawn, mae'r trefnydd yn cymryd y dasg, yn ei rhoi i ryw redwr, sy'n ei gyfrif ac yn arbed y canlyniad.

Sut y gwnaethom adeiladu craidd busnes buddsoddi Alfa-Bank yn seiliedig ar Tarantool
Nid oes angen rhedeg pob tasg ar amserlen. Mae angen darllen rhai adroddiadau ar gais. Cyn gynted ag y bydd y gofyniad hwn yn cyrraedd, mae tasg yn cael ei chreu yn y blwch tywod a'i hanfon at y rhedwr i'w gweithredu. Ar ôl peth amser, mae'r defnyddiwr yn derbyn ymateb asyncronaidd bod popeth wedi'i gyfrifo a bod yr adroddiad yn barod.

Sut y gwnaethom adeiladu craidd busnes buddsoddi Alfa-Bank yn seiliedig ar Tarantool
I ddechrau, fe wnaethom gadw at y patrwm o storio'r holl ddata, ei fersiwnio a pheidio â'i ddileu. Ond mewn bywyd, o bryd i'w gilydd mae'n rhaid i chi ddileu rhywbeth o hyd, rhywfaint o wybodaeth amrwd neu ganolradd yn bennaf. Yn seiliedig ar ddod i ben, rydym wedi creu mecanwaith ar gyfer glanhau'r storfa o ddata sydd wedi dyddio.

Sut y gwnaethom adeiladu craidd busnes buddsoddi Alfa-Bank yn seiliedig ar Tarantool
Deallwn hefyd y daw sefyllfa yn hwyr neu'n hwyrach pan na fydd digon o le i storio data yn y cof, ond serch hynny rhaid storio'r data. At y dibenion hyn, byddwn yn gwneud storfa ddisg yn fuan.

Sut y gwnaethom adeiladu craidd busnes buddsoddi Alfa-Bank yn seiliedig ar Tarantool

Casgliad

Dechreuon ni gyda'r dasg o lwytho data i un model a threulio tri mis yn ei ddatblygu. Roedd gennym chwe system cyflenwi data. Mae'r cod trawsnewid cyfan i fodel sengl tua 30 mil o linellau yn Lua. Ac mae'r rhan fwyaf o'r gwaith o'n blaenau o hyd. Weithiau mae diffyg cymhelliant gan dimau cyfagos, ac mae llawer o amgylchiadau sy'n cymhlethu'r gwaith. Os byddwch chi byth yn wynebu tasg debyg, yna lluoswch yr amser sy'n ymddangos yn arferol i chi ar gyfer ei gweithredu â thri, neu hyd yn oed pedwar.

Cofiwch hefyd na ellir datrys problemau presennol mewn prosesau busnes gan ddefnyddio DBMS newydd, hyd yn oed un cynhyrchiol iawn. Beth ydw i'n ei olygu? Ar ddechrau ein prosiect, fe wnaethon ni greu'r argraff ymhlith cwsmeriaid y byddwn ni nawr yn dod â chronfa ddata gyflym newydd ac y byddwn ni'n byw! Bydd y prosesau'n mynd yn gyflymach, bydd popeth yn iawn. Mewn gwirionedd, nid yw technoleg yn datrys y problemau sydd gan brosesau busnes, oherwydd bod prosesau busnes yn bobl. Ac mae angen i chi weithio gyda phobl, nid technoleg.

Gall datblygiad a yrrir gan brawf fod yn boenus ac yn cymryd llawer o amser yn y camau cynnar. Ond bydd ei effaith gadarnhaol yn amlwg hyd yn oed yn y tymor byr, pan nad oes angen i chi wneud unrhyw beth i gynnal profion atchweliad.

Mae'n hynod bwysig cynnal profion llwyth ar bob cam o'r datblygiad. Gorau po gyntaf y byddwch yn sylwi ar rywfaint o ddiffyg yn y bensaernïaeth, yr hawsaf fydd ei drwsio, a fydd yn arbed llawer o amser i chi yn y dyfodol.

Does dim byd o'i le ar Lua. Gall unrhyw un ddysgu ysgrifennu ynddo: datblygwr Java, datblygwr JavaScript, datblygwr Python, pen blaen neu ben ôl. Mae hyd yn oed ein dadansoddwyr yn ysgrifennu arno.

Pan fyddwn yn siarad am y ffaith nad oes gennym SQL, mae'n dychryn pobl. “Sut mae cael data heb SQL? A yw hynny'n bosibl? Yn sicr. Mewn system ddosbarth OLTP, nid oes angen SQL. Mae dewis arall ar ffurf rhyw fath o iaith sy'n eich dychwelyd ar unwaith i olwg sy'n canolbwyntio ar ddogfen. Er enghraifft, GraphQL. Ac mae dewis arall ar ffurf cyfrifiadura dosranedig.

Os ydych chi'n deall y bydd angen i chi raddfa, yna dyluniwch eich datrysiad ar Tarantool yn y fath fodd fel y gall redeg ochr yn ochr â dwsinau o achosion Tarantool. Os na wnewch hyn, bydd yn anodd ac yn boenus yn ddiweddarach, gan mai dim ond un craidd prosesydd y gall Tarantool ei ddefnyddio'n effeithiol.

Ffynhonnell: hab.com

Ychwanegu sylw