Bii a ṣe kọ ipilẹ ti iṣowo idoko-owo Alfa-Bank ti o da lori Tarantool

Bii a ṣe kọ ipilẹ ti iṣowo idoko-owo Alfa-Bank ti o da lori Tarantool
Ṣi lati fiimu naa “Aye Agbaye Aṣiri: Igbesi aye Farasin ti sẹẹli”

Iṣowo idoko-owo jẹ ọkan ninu awọn agbegbe ti o nira julọ ni agbaye ile-ifowopamọ, nitori kii ṣe awọn awin, awọn awin ati awọn idogo nikan, ṣugbọn awọn sikioriti, awọn owo nina, awọn ọja, awọn itọsẹ ati gbogbo iru awọn idiju ni irisi awọn ọja ti a ṣeto.

Laipe, a ti ri ilosoke ninu imọwe owo ti awọn olugbe. Awọn eniyan diẹ sii ati siwaju sii n kopa ninu iṣowo ni awọn ọja aabo. Awọn akọọlẹ idoko-owo kọọkan han ko pẹ diẹ sẹhin. Wọn gba ọ laaye lati ṣowo awọn ọja aabo ati boya gba awọn iyokuro owo-ori tabi yago fun san owo-ori. Ati gbogbo awọn onibara ti o wa si wa fẹ lati ṣakoso awọn portfolio wọn ati ki o wo iroyin ni akoko gidi. Pẹlupẹlu, pupọ julọ nigbagbogbo portfolio yii jẹ ọja lọpọlọpọ, iyẹn ni, eniyan jẹ alabara ti awọn laini iṣowo lọpọlọpọ.

Ni afikun, awọn iwulo ti awọn olutọsọna, mejeeji Russian ati ajeji, n dagba.

Lati pade awọn iwulo lọwọlọwọ ati fi ipilẹ fun awọn iṣagbega ọjọ iwaju, a ti ni idagbasoke ipilẹ iṣowo idoko-owo ti o da lori Tarantool.

Diẹ ninu awọn iṣiro. Iṣowo idoko-owo Alfa-Bank n pese awọn iṣẹ alagbata fun awọn ẹni-kọọkan ati awọn ile-iṣẹ ofin lati pese aye lati ṣowo lori ọpọlọpọ awọn ọja aabo, awọn iṣẹ idogo fun ibi ipamọ ti awọn aabo, awọn iṣẹ iṣakoso igbẹkẹle fun awọn ẹni-kọọkan pẹlu ikọkọ ati olu nla, awọn iṣẹ fun ipinfunni awọn aabo fun awọn ile-iṣẹ miiran . Iṣowo idoko-owo Alfa-Bank pẹlu diẹ sii ju 3 ẹgbẹrun awọn agbasọ fun iṣẹju kan, eyiti o ṣe igbasilẹ lati awọn iru ẹrọ iṣowo lọpọlọpọ. Lakoko ọjọ iṣẹ, diẹ sii ju awọn iṣowo 300 ẹgbẹrun ti pari lori awọn ọja ni ipo banki tabi awọn alabara rẹ. Titi di awọn ipaniyan aṣẹ 5 ẹgbẹrun fun iṣẹju keji waye lori awọn iru ẹrọ ita ati inu. Ni akoko kanna, gbogbo awọn onibara, mejeeji inu ati ita, fẹ lati ri awọn ipo wọn ni akoko gidi.

prehistory

Ibikan lati ibẹrẹ ti awọn ọdun 2000, awọn agbegbe wa ti iṣowo idoko-owo ni idagbasoke ni ominira: iṣowo paṣipaarọ, awọn iṣẹ alagbata, iṣowo owo, iṣowo lori-counter ni awọn aabo ati awọn itọsẹ oriṣiriṣi. Bi abajade, a ti ṣubu sinu idẹkùn ti awọn kanga iṣẹ. Kini o jẹ? Laini iṣowo kọọkan ni awọn ọna ṣiṣe tirẹ ti o ṣe ẹda awọn iṣẹ kọọkan miiran. Eto kọọkan ni awoṣe data tirẹ, botilẹjẹpe wọn ṣiṣẹ pẹlu awọn imọran kanna: awọn iṣowo, awọn ohun elo, awọn ẹlẹgbẹ, awọn agbasọ, ati bẹbẹ lọ. Ati bi eto kọọkan ṣe wa ni ominira, oniruuru oniruuru ti awọn imọ-ẹrọ farahan.

Ni afikun, awọn ipilẹ koodu ti awọn ọna šiše jẹ ohun ti igba atijọ, nitori diẹ ninu awọn ọja bcrc ni aarin-1990s. Ati ni diẹ ninu awọn agbegbe eyi fa fifalẹ ilana idagbasoke, ati pe awọn iṣoro iṣẹ wa.

Awọn ibeere fun titun kan ojutu

Awọn iṣowo ti rii pe iyipada imọ-ẹrọ jẹ pataki fun idagbasoke siwaju sii. A fun wa ni awọn iṣẹ-ṣiṣe:

  1. Gba gbogbo data iṣowo ni ẹyọkan, ibi ipamọ iyara ati ni awoṣe data kan.
  2. A ko gbọdọ padanu tabi yi alaye yi pada.
  3. O jẹ dandan lati ṣe ikede data naa, nitori ni eyikeyi akoko olutọsọna le beere fun awọn iṣiro fun awọn ọdun iṣaaju.
  4. A ko gbodo kan mu diẹ ninu awọn titun, asiko DBMS, ṣugbọn ṣẹda a Syeed fun lohun owo isoro.

Ni afikun, awọn ayaworan ile wa ṣeto awọn ipo tiwọn:

  1. Ojutu tuntun gbọdọ jẹ kilasi ile-iṣẹ, iyẹn ni, o gbọdọ ti ni idanwo tẹlẹ ni diẹ ninu awọn ile-iṣẹ nla.
  2. Ipo iṣẹ ojutu yẹ ki o jẹ pataki iṣẹ apinfunni. Eyi tumọ si pe a gbọdọ wa ni ọpọlọpọ awọn ile-iṣẹ data nigbakanna ati ni ifọkanbalẹ ye ijakulẹ ti ile-iṣẹ data kan.
  3. Eto naa gbọdọ jẹ iwọn ti nâa. Otitọ ni pe gbogbo awọn eto wa lọwọlọwọ jẹ iwọn inaro nikan, ati pe a ti kọlu aja tẹlẹ nitori idagbasoke kekere ti agbara ohun elo. Nitorinaa, akoko ti de nigba ti a nilo lati ni eto iwọn petele lati ye.
  4. Ninu awọn ohun miiran, a sọ fun wa pe ojutu naa gbọdọ jẹ olowo poku.

A tẹle ipa ọna boṣewa: a ṣe agbekalẹ awọn ibeere ati kan si ẹka rira. Lati ibẹ a gba atokọ ti awọn ile-iṣẹ ti, ni gbogbogbo, ti ṣetan lati ṣe eyi fun wa. A so fun gbogbo eniyan nipa awọn isoro, ati ki o gba ohun iwadi ti awọn ojutu lati mefa ninu wọn.

Ni ile ifowo pamo, a ko gba ọrọ ẹnikẹni fun rẹ; a fẹ lati ṣe idanwo ohun gbogbo funrararẹ. Nitorinaa, ipo dandan ti idije tutu wa ni lati kọja awọn idanwo fifuye. A ṣe agbekalẹ awọn iṣẹ ṣiṣe idanwo fifuye, ati mẹta ninu awọn ile-iṣẹ mẹfa ti gba tẹlẹ lati ṣe imuse ojutu apẹrẹ kan ti o da lori awọn imọ-ẹrọ inu-iranti ni idiyele tiwọn lati le ṣe idanwo rẹ.

Emi kii yoo sọ fun ọ bi a ṣe ṣe idanwo ohun gbogbo ati bii o ṣe pẹ to, Emi yoo kan ṣe akopọ: iṣẹ ṣiṣe ti o dara julọ ni awọn idanwo fifuye ni a fihan nipasẹ ojutu apẹrẹ kan ti o da lori Tarantool lati ẹgbẹ idagbasoke Ẹgbẹ Mail.ru. A fowo si adehun ati bẹrẹ idagbasoke. Awọn eniyan mẹrin wa lati Ẹgbẹ Mail.ru, ati lati Alfa-Bank awọn olupilẹṣẹ mẹta wa, awọn atunnkanka eto mẹta, ayaworan ojutu, oniwun ọja ati oluwa Scrum.

Nigbamii Emi yoo sọ fun ọ nipa bii eto wa ṣe dagba, bii o ṣe wa, kini a ṣe ati idi gangan eyi.

Idagbasoke

Ibeere akọkọ ti a beere lọwọ ara wa ni bii a ṣe le gba data lati awọn eto lọwọlọwọ wa. A pinnu pe HTTP jẹ ohun ti o dara fun wa, nitori gbogbo awọn ọna ṣiṣe lọwọlọwọ ṣe ibasọrọ pẹlu ara wọn nipa fifiranṣẹ XML tabi JSON lori HTTP.

A lo olupin HTTP ti a ṣe sinu Tarantool nitori a ko nilo lati fopin si awọn akoko SSL, ati pe iṣẹ rẹ ti to fun wa.

Gẹgẹbi Mo ti sọ tẹlẹ, gbogbo awọn eto wa n gbe ni awọn awoṣe data oriṣiriṣi, ati ni titẹ sii a nilo lati mu ohun naa wa si awoṣe ti a ṣe apejuwe ara wa. A nilo ede ti o gba data laaye lati yipada. A yan Lua pataki. A nṣiṣẹ gbogbo koodu iyipada data ni apoti iyanrin - eyi jẹ aaye ailewu ju eyiti koodu ṣiṣiṣẹ ko lọ. Lati ṣe eyi, a nìkan gbe okun koodu ti a beere, ṣiṣẹda agbegbe pẹlu awọn iṣẹ ti ko le dènà tabi ju ohunkohun silẹ.

Bii a ṣe kọ ipilẹ ti iṣowo idoko-owo Alfa-Bank ti o da lori Tarantool
Lẹhin iyipada, data gbọdọ wa ni ṣayẹwo fun ibamu pẹlu awoṣe ti a n ṣẹda. A ti jiroro fun igba pipẹ kini awoṣe yẹ ki o jẹ ati ede wo lati lo lati ṣe apejuwe rẹ. A yan Apache Avro nitori ede rọrun ati pe o ni atilẹyin lati Tarantool. Awọn ẹya tuntun ti awoṣe ati koodu aṣa ni a le fi sinu iṣẹ ni igba pupọ ni ọjọ kan, paapaa labẹ fifuye tabi laisi, ni eyikeyi akoko ti ọjọ, ati mu awọn iyipada si awọn ayipada yarayara.

Bii a ṣe kọ ipilẹ ti iṣowo idoko-owo Alfa-Bank ti o da lori Tarantool
Lẹhin ijẹrisi, data gbọdọ wa ni fipamọ. A ṣe eyi nipa lilo vshard (a ni awọn ẹda ti a tuka ti geo-tuka ti awọn shards).

Bii a ṣe kọ ipilẹ ti iṣowo idoko-owo Alfa-Bank ti o da lori Tarantool
Pẹlupẹlu, pato jẹ iru pe ọpọlọpọ awọn ọna ṣiṣe ti o firanṣẹ data wa ko bikita boya a gba tabi rara. Ti o ni idi ti a muse a titunṣe isinyi lati ibere pepe. Kini o jẹ? Ti o ba jẹ fun idi kan ohun kan ko ni iyipada data tabi ijẹrisi, a tun jẹrisi gbigba, ṣugbọn ni akoko kanna fi nkan naa pamọ ni isinyi atunṣe. O wa ni ibamu ati pe o wa ni ile itaja data iṣowo akọkọ. A kọ lẹsẹkẹsẹ ni wiwo alabojuto fun rẹ, awọn metiriki pupọ ati awọn titaniji. Bi abajade, a ko padanu data. Paapa ti ohunkan ba ti yipada ni orisun, ti awoṣe data ba ti yipada, a yoo rii lẹsẹkẹsẹ ati pe o le ṣe deede.

Bii a ṣe kọ ipilẹ ti iṣowo idoko-owo Alfa-Bank ti o da lori Tarantool
Bayi o nilo lati kọ ẹkọ bi o ṣe le gba data ti o fipamọ pada. A farabalẹ ṣe atupale awọn eto wa ati rii pe akopọ Ayebaye ti Java ati Oracle ni dandan ni iru ORM kan ti o yi data pada lati ibatan si nkan. Nitorinaa kilode ti o ko fun awọn nkan lẹsẹkẹsẹ si awọn ọna ṣiṣe ni irisi iwọn kan? Nitorina a fi ayọ gba GraphQL, eyiti o pade gbogbo awọn aini wa. O faye gba o lati gba data ni irisi awọn aworan ati fa jade nikan ohun ti o nilo ni bayi. O le paapaa ṣe ikede API pẹlu irọrun pupọ.

Bii a ṣe kọ ipilẹ ti iṣowo idoko-owo Alfa-Bank ti o da lori Tarantool
Fere lẹsẹkẹsẹ a rii pe data ti a n jade ko to. A ṣẹda awọn iṣẹ ti o le sopọ si awọn nkan ni awoṣe - pataki, awọn aaye iṣiro. Iyẹn ni, a so iṣẹ kan pọ si aaye, eyiti, fun apẹẹrẹ, ṣe iṣiro idiyele idiyele apapọ. Ati pe alabara ita ti o beere data ko paapaa mọ pe eyi jẹ aaye iṣiro.

Bii a ṣe kọ ipilẹ ti iṣowo idoko-owo Alfa-Bank ti o da lori Tarantool
Ti ṣe eto ijẹrisi kan.

Bii a ṣe kọ ipilẹ ti iṣowo idoko-owo Alfa-Bank ti o da lori Tarantool
Lẹhinna a ṣe akiyesi pe awọn ipa pupọ wa ninu ipinnu wa. A ipa ni a irú ti alaropo ti awọn iṣẹ. Ni deede, awọn ipa ni awọn profaili lilo ohun elo oriṣiriṣi:

  • T-Sopọ: kapa ti nwọle awọn isopọ, Sipiyu lopin, kekere iranti agbara, stateless.
  • IB-Core: ṣe iyipada data ti o gba nipasẹ ilana Tarantool, iyẹn ni, o ṣiṣẹ pẹlu awọn tabili. O tun ko tọju ipo ati pe o jẹ iwọn.
  • Ibi ipamọ: nikan tọju data, ko lo ọgbọn eyikeyi. Yi ipa muse awọn alinisoro atọkun. Scalable ọpẹ si vshard.

Bii a ṣe kọ ipilẹ ti iṣowo idoko-owo Alfa-Bank ti o da lori Tarantool
Iyẹn ni, lilo awọn ipa, a pin awọn ẹya oriṣiriṣi ti iṣupọ lati ara wọn, eyiti o le ṣe iwọn ni ominira ti ara wa.

Nitorinaa, a ti ṣẹda gbigbasilẹ ṣiṣan data idunadura asynchronous ati isinyi atunṣe pẹlu wiwo abojuto. Igbasilẹ naa jẹ asynchronous lati oju-ọna iṣowo: ti a ba ni ẹri lati kọ data si ara wa, nibikibi, lẹhinna a yoo jẹrisi rẹ. Ti ko ba jẹrisi, lẹhinna nkan kan ti jẹ aṣiṣe ati pe data nilo lati firanṣẹ. Eyi ni gbigbasilẹ asynchronous.

Igbeyewo

Lati ibẹrẹ ti iṣẹ akanṣe, a pinnu pe a yoo gbiyanju lati ṣe idagbasoke idagbasoke idanwo. A kọ awọn idanwo ẹyọkan ni Lua ni lilo ilana tarantool/tẹ ni kia kia, ati awọn idanwo isọpọ ni Python ni lilo ilana pytest. Ni akoko kanna, a kan awọn olupilẹṣẹ mejeeji ati awọn atunnkanka ni kikọ awọn idanwo isọpọ.

Bawo ni a ṣe le lo idagbasoke ti idanwo idanwo?

Ti a ba fẹ ẹya tuntun, a gbiyanju lati kọ idanwo kan fun u ni akọkọ. Nigba ti a ba ṣawari kokoro kan, a rii daju lati kọ idanwo kan ni akọkọ, ati lẹhinna nikan ṣe atunṣe. Ni akọkọ o nira lati ṣiṣẹ bii eyi, aiṣedeede wa ni apakan ti awọn oṣiṣẹ, paapaa sabotage: “Jẹ ki a yara tunṣe ni bayi, ṣe nkan tuntun, lẹhinna bo pẹlu awọn idanwo.” Nikan “nigbamii” yii fẹrẹ ko de.

Nitorinaa, o nilo lati fi ipa mu ararẹ lati kọ awọn idanwo ni akọkọ ki o beere lọwọ awọn miiran lati ṣe. Gbà mi gbọ, idagbasoke idari idanwo mu awọn anfani wa paapaa ni igba kukuru. Iwọ yoo lero pe igbesi aye rẹ ti rọrun. A lero pe 99% ti koodu naa ti ni aabo nipasẹ awọn idanwo. Eyi dabi pupọ, ṣugbọn a ko ni awọn iṣoro eyikeyi: awọn idanwo ṣiṣe lori gbogbo ifaramọ.

Sibẹsibẹ, ohun ti a nifẹ julọ ni idanwo fifuye; a ro pe o ṣe pataki julọ ati gbejade nigbagbogbo.

Emi yoo sọ itan kekere kan fun ọ nipa bii a ṣe ṣe ipele akọkọ ti idanwo fifuye ti ọkan ninu awọn ẹya akọkọ. A fi sori ẹrọ eto naa lori kọǹpútà alágbèéká ti olupilẹṣẹ, titan fifuye ati ni awọn iṣowo 4 ẹgbẹrun fun iṣẹju-aaya. Abajade to dara fun kọǹpútà alágbèéká kan. A fi sori ẹrọ lori ibujoko fifuye foju ti awọn olupin mẹrin, alailagbara ju iṣelọpọ lọ. Ti gbe lọ si o kere ju. A nṣiṣẹ rẹ, ati pe a gba abajade ti o buru ju lori kọǹpútà alágbèéká kan ninu okun kan. Mọnamọna akoonu.

A banujẹ pupọ. A wo ẹru olupin, ṣugbọn o han pe wọn ko ṣiṣẹ.

Bii a ṣe kọ ipilẹ ti iṣowo idoko-owo Alfa-Bank ti o da lori Tarantool
A pe awọn olupilẹṣẹ, ati pe wọn ṣe alaye fun wa, awọn eniyan ti o wa lati agbaye ti Java, pe Tarantool jẹ ila-ẹyọkan. O le nikan wa ni fe ni lo nipa ọkan isise mojuto labẹ fifuye. Lẹhinna a gbe nọmba ti o pọju ti o ṣeeṣe ti awọn iṣẹlẹ Tarantool lori olupin kọọkan, titan fifuye ati ti gba tẹlẹ 14,5 ẹgbẹrun awọn iṣowo fun iṣẹju-aaya.

Bii a ṣe kọ ipilẹ ti iṣowo idoko-owo Alfa-Bank ti o da lori Tarantool
Jẹ ki n ṣe alaye lẹẹkansi. Nitori pipin si awọn ipa ti o lo awọn orisun oriṣiriṣi, awọn ipa wa ti o ni iduro fun sisẹ awọn isopọ ati iyipada data ti kojọpọ ero isise nikan, ati ni ibamu muna si ẹru naa.

Bii a ṣe kọ ipilẹ ti iṣowo idoko-owo Alfa-Bank ti o da lori Tarantool
Bii a ṣe kọ ipilẹ ti iṣowo idoko-owo Alfa-Bank ti o da lori Tarantool
Ni idi eyi, iranti jẹ lilo nikan fun sisẹ awọn asopọ ti nwọle ati awọn nkan igba diẹ.

Bii a ṣe kọ ipilẹ ti iṣowo idoko-owo Alfa-Bank ti o da lori Tarantool
Ni ilodi si, lori awọn olupin ibi ipamọ, fifuye ero isise pọ si, ṣugbọn o lọra pupọ ju lori awọn olupin ti o ṣe ilana awọn isopọ.

Bii a ṣe kọ ipilẹ ti iṣowo idoko-owo Alfa-Bank ti o da lori Tarantool
Ati agbara iranti dagba ni iwọn taara si iye data ti kojọpọ.

Bii a ṣe kọ ipilẹ ti iṣowo idoko-owo Alfa-Bank ti o da lori Tarantool

awọn iṣẹ

Lati ṣe agbekalẹ ọja tuntun wa ni pataki bi pẹpẹ ohun elo, a ṣẹda paati kan fun gbigbe awọn iṣẹ ati awọn ile-ikawe sori rẹ.

Awọn iṣẹ kii ṣe awọn koodu kekere ti o ṣiṣẹ lori awọn aaye kan. Wọn le jẹ awọn ẹya ti o tobi pupọ ati eka ti o jẹ apakan ti iṣupọ kan, ṣayẹwo data itọkasi, ṣiṣe ọgbọn iṣowo ati awọn idahun pada. A tun ṣe okeere eto iṣẹ si GraphQL, ati pe alabara gba aaye iwọle gbogbo agbaye si data naa, pẹlu introspection kọja gbogbo awoṣe. O ti wa ni irorun.

Niwọn igba ti awọn iṣẹ ni ọpọlọpọ awọn iṣẹ diẹ sii, a pinnu pe awọn ile-ikawe yẹ ki o wa ninu eyiti a yoo gbe koodu ti a lo nigbagbogbo. A ṣafikun wọn si agbegbe ailewu, ti ṣayẹwo tẹlẹ pe ko fọ ohunkohun fun wa. Ati ni bayi a le fi awọn agbegbe afikun si awọn iṣẹ ni irisi awọn ile-ikawe.

A fẹ lati ni pẹpẹ kii ṣe fun ibi ipamọ nikan, ṣugbọn fun iširo. Ati pe niwọn igba ti a ti ni ọpọlọpọ awọn ẹda ati awọn shards, a ṣe imuse iru iširo pinpin ati pe o dinku maapu, nitori pe o wa ni iru si maapu atilẹba ti o dinku.

Atijọ awọn ọna šiše

Kii ṣe gbogbo awọn eto isinmọ wa le pe wa lori HTTP ati lo GraphQL, botilẹjẹpe wọn ṣe atilẹyin ilana naa. Nitorinaa, a ṣẹda ẹrọ kan ti o fun laaye data lati tun ṣe sinu awọn eto wọnyi.

Bii a ṣe kọ ipilẹ ti iṣowo idoko-owo Alfa-Bank ti o da lori Tarantool
Ti ohun kan ba yipada fun wa, awọn okunfa alailẹgbẹ ti nfa ni ipa Ibi ipamọ ati ifiranṣẹ pẹlu awọn ayipada pari ni isinyi processing. O ti wa ni rán si ohun ita eto nipa lilo lọtọ replicator ipa. Yi ipa ko ni fipamọ ipinle.

Awọn ilọsiwaju titun

Bi o ṣe ranti, lati oju-ọna iṣowo, a ṣe gbigbasilẹ asynchronous. Ṣugbọn lẹhinna wọn rii pe kii yoo to, nitori pe kilasi kan wa ti awọn eto ti o nilo lati gba esi lẹsẹkẹsẹ nipa ipo iṣẹ naa. Nitorinaa a faagun GraphQL wa ati ṣafikun awọn iyipada. Wọn ṣe deede ti ara ẹni sinu apẹrẹ ti o wa tẹlẹ ti ṣiṣẹ pẹlu data. Fun wa, eyi jẹ aaye kan ti kika ati kikọ fun kilasi miiran ti awọn eto.

Bii a ṣe kọ ipilẹ ti iṣowo idoko-owo Alfa-Bank ti o da lori Tarantool
A tun rii pe awọn iṣẹ nikan kii yoo to fun wa, nitori awọn ijabọ wuwo pupọ wa ti o nilo lati kọ lẹẹkan ni ọjọ kan, ọsẹ kan, oṣu kan. Eyi le gba akoko pipẹ, ati awọn ijabọ le paapaa dina iṣẹlẹ iṣẹlẹ Tarantool. Nitorinaa, a ṣẹda awọn ipa lọtọ: oluṣeto ati olusare. Asare ko tọju ipinle. Wọn ṣe awọn iṣẹ ṣiṣe ti o wuwo ti a ko le ṣe iṣiro lori fo. Ati ipa oluṣeto ṣe abojuto iṣeto ifilọlẹ ti awọn iṣẹ ṣiṣe wọnyi, eyiti o ṣe apejuwe ninu iṣeto. Awọn iṣẹ-ṣiṣe funrararẹ wa ni ipamọ ni aaye kanna bi data iṣowo. Nigbati akoko ti o tọ ba de, oluṣeto naa gba iṣẹ-ṣiṣe naa, yoo fun diẹ ninu awọn olusare, ti o ka ati fi abajade pamọ.

Bii a ṣe kọ ipilẹ ti iṣowo idoko-owo Alfa-Bank ti o da lori Tarantool
Ko gbogbo awọn iṣẹ-ṣiṣe nilo lati ṣiṣẹ lori iṣeto. Diẹ ninu awọn ijabọ nilo lati ka lori ibeere. Ni kete ti ibeere yii ba de, a ṣẹda iṣẹ kan ninu apoti iyanrin ati firanṣẹ si olusare fun ipaniyan. Lẹhin akoko diẹ, olumulo gba esi asynchronous pe ohun gbogbo ti ṣe iṣiro ati pe ijabọ naa ti ṣetan.

Bii a ṣe kọ ipilẹ ti iṣowo idoko-owo Alfa-Bank ti o da lori Tarantool
Ni ibẹrẹ, a faramọ ilana ti fifipamọ gbogbo data, ti ikede ati kii ṣe piparẹ. Ṣugbọn ni igbesi aye, lati igba de igba o tun ni lati paarẹ nkan kan, pupọ julọ diẹ ninu aise tabi alaye agbedemeji. Da lori ipari, a ṣẹda ẹrọ kan fun mimọ ibi ipamọ lati data ti igba atijọ.

Bii a ṣe kọ ipilẹ ti iṣowo idoko-owo Alfa-Bank ti o da lori Tarantool
A tun loye pe laipẹ tabi ya ipo kan yoo wa nigbati aaye ko ni to lati fi data pamọ sinu iranti, ṣugbọn sibẹsibẹ data naa gbọdọ wa ni ipamọ. Fun awọn idi wọnyi, a yoo ṣe ibi ipamọ disk laipẹ.

Bii a ṣe kọ ipilẹ ti iṣowo idoko-owo Alfa-Bank ti o da lori Tarantool

ipari

A bẹrẹ pẹlu iṣẹ ṣiṣe ti ikojọpọ data sinu awoṣe kan ati lo oṣu mẹta ni idagbasoke rẹ. A ni awọn eto ipese data mẹfa. Gbogbo koodu iyipada sinu awoṣe ẹyọkan jẹ nipa awọn laini 30 ẹgbẹrun ni Lua. Ati pupọ julọ iṣẹ naa tun wa niwaju. Nigba miiran aini iwuri wa lati ọdọ awọn ẹgbẹ adugbo, ati pe ọpọlọpọ awọn ayidayida wa ti o ṣe idiju iṣẹ naa. Ti o ba dojuko iru iṣẹ-ṣiṣe kan lailai, lẹhinna isodipupo akoko ti o dabi deede si ọ fun imuse rẹ nipasẹ mẹta, tabi paapaa mẹrin.

Tun ranti pe awọn iṣoro ti o wa tẹlẹ ninu awọn ilana iṣowo ko le yanju nipa lilo DBMS tuntun kan, paapaa ọkan ti o ni iṣelọpọ pupọ. Kini mo tumọ si? Ni ibere ti ise agbese wa, a ṣẹda awọn sami laarin awọn onibara ti bayi a yoo mu titun kan yara database, ati awọn ti a yoo gbe! Awọn ilana yoo lọ ni kiakia, ohun gbogbo yoo dara. Ni otitọ, imọ-ẹrọ ko yanju awọn iṣoro ti awọn ilana iṣowo ni, nitori awọn ilana iṣowo jẹ eniyan. Ati pe o nilo lati ṣiṣẹ pẹlu eniyan, kii ṣe imọ-ẹrọ.

Idagbasoke ti idanwo idanwo le jẹ irora ati n gba akoko ni awọn ipele ibẹrẹ. Ṣugbọn ipa rere ti o yoo jẹ akiyesi paapaa ni igba diẹ, nigbati o ko nilo lati ṣe ohunkohun lati ṣe idanwo ifaseyin.

O ṣe pataki pupọ lati ṣe idanwo fifuye ni gbogbo awọn ipele ti idagbasoke. Ni kete ti o ba ṣe akiyesi abawọn diẹ ninu faaji, rọrun yoo jẹ lati ṣatunṣe rẹ, eyiti yoo gba ọ ni akoko pupọ ni ọjọ iwaju.

Kò sóhun tó burú nínú Lua. Ẹnikẹni le kọ ẹkọ lati kọ sinu rẹ: Olùgbéejáde Java, Olùgbéejáde JavaScript, Olùgbéejáde Python, iwaju-opin tabi ẹhin-opin. Paapaa awọn atunnkanwo wa kọ lori rẹ.

Nigba ti a ba sọrọ nipa otitọ pe a ko ni SQL, o bẹru eniyan. "Bawo ni o ṣe gba data laisi SQL? Ṣe eyi ṣee ṣe? Dajudaju. Ninu eto kilasi OLTP, SQL ko nilo. Omiiran wa ni irisi ede kan ti o da ọ pada lẹsẹkẹsẹ si wiwo ti o da lori iwe-ipamọ. Fun apẹẹrẹ, GraphQL. Ati pe yiyan wa ni irisi iširo pinpin.

Ti o ba loye pe iwọ yoo nilo lati ṣe iwọn, lẹhinna ṣe apẹrẹ ojutu rẹ lori Tarantool ni ọna ti o le ṣiṣẹ ni afiwe lori awọn dosinni ti awọn iṣẹlẹ Tarantool. Ti o ko ba ṣe eyi, yoo nira ati irora nigbamii, nitori Tarantool le lo imunadoko ero isise kan nikan.

orisun: www.habr.com

Fi ọrọìwòye kun