Kā mēs izveidojām Alfa-Bank investīciju biznesa pamatu, pamatojoties uz Tarantool

Kā mēs izveidojām Alfa-Bank investīciju biznesa pamatu, pamatojoties uz Tarantool
Kadrs no filmas ā€œMÅ«su slepenais Visums: Å Å«nas slēptā dzÄ«veā€

Investīciju bizness ir viena no sarežģītākajām jomām banku pasaulē, jo ir ne tikai aizdevumi, aizņēmumi un noguldījumi, bet arī vērtspapīri, valūtas, preces, atvasinātie instrumenti un visa veida sarežģītība strukturētu produktu veidā.

Pēdējā laikā novērojam iedzÄ«votāju finanÅ”u pratÄ«bas pieaugumu. Arvien vairāk cilvēku iesaistās tirdzniecÄ«bā vērtspapÄ«ru tirgos. Individuālie investÄ«ciju konti parādÄ«jās ne tik sen. Tie ļauj tirgoties vērtspapÄ«ru tirgos un saņemt nodokļu atskaitÄ«jumus vai izvairÄ«ties no nodokļu maksāŔanas. Un visi klienti, kas nāk pie mums, vēlas pārvaldÄ«t savu portfeli un redzēt pārskatus reāllaikā. Turklāt visbiežāk Å”is portfelis ir vairāku produktu, tas ir, cilvēki ir dažādu biznesa lÄ«niju klienti.

Turklāt pieaug gan Krievijas, gan ārvalstu regulatoru vajadzības.

Lai apmierinātu paÅ”reizējās vajadzÄ«bas un liktu pamatus turpmākiem jauninājumiem, esam izstrādājuÅ”i investÄ«ciju biznesa kodolu, kura pamatā ir Tarantool.

Daži statistikas dati. Alfa-Bank ieguldÄ«jumu bizness sniedz brokeru pakalpojumus fiziskām un juridiskām personām, lai nodroÅ”inātu iespēju tirgoties dažādos vērtspapÄ«ru tirgos, depozitārija pakalpojumus vērtspapÄ«ru glabāŔanai, trasta pārvaldÄ«bas pakalpojumus privātpersonām ar privāto un lielu kapitālu, vērtspapÄ«ru emisijas pakalpojumus citiem uzņēmumiem. . Alfa-Bank investÄ«ciju bizness ietver vairāk nekā 3 tÅ«kstoÅ”us kotējumu sekundē, kas tiek lejupielādēti no dažādām tirdzniecÄ«bas platformām. Darba dienas laikā tirgos bankas vai tās klientu vārdā tiek noslēgti vairāk nekā 300 tÅ«kstoÅ”i darÄ«jumu. Ārējās un iekŔējās platformās notiek lÄ«dz 5 tÅ«kstoÅ”iem pasÅ«tÄ«jumu izpildes sekundē. Tajā paŔā laikā visi klienti, gan iekŔējie, gan ārējie, vēlas redzēt savas pozÄ«cijas reāllaikā.

Aizvēsture

Kaut kur no 2000. gadu sākuma mÅ«su investÄ«ciju biznesa jomas attÄ«stÄ«jās patstāvÄ«gi: biržas tirdzniecÄ«ba, brokeru pakalpojumi, valÅ«tu tirdzniecÄ«ba, ārpusbiržas vērtspapÄ«ru un dažādu atvasināto instrumentu tirdzniecÄ«ba. Rezultātā esam iekļuvuÅ”i funkcionālo aku slazdā. Kas tas ir? Katrai uzņēmējdarbÄ«bas nozarei ir savas sistēmas, kas dublē viena otras funkcijas. Katrai sistēmai ir savs datu modelis, lai gan tās darbojas ar tiem paÅ”iem jēdzieniem: darÄ«jumi, instrumenti, darÄ«juma partneri, kotācijas utt. Un, katrai sistēmai attÄ«stoties neatkarÄ«gi, radās daudzveidÄ«gs tehnoloÄ£iju zoodārzs.

Turklāt sistēmu kodu bāze jau ir diezgan novecojusi, jo daži produkti raduÅ”ies 1990. gadu vidÅ«. Un dažās jomās tas palēnināja izstrādes procesu, un radās veiktspējas problēmas.

Prasības jaunam risinājumam

Uzņēmumi ir sapratuÅ”i, ka tehnoloÄ£iskā pārveide ir vitāli svarÄ«ga turpmākai attÄ«stÄ«bai. Mums tika doti uzdevumi:

  1. Apkopojiet visus biznesa datus vienā, ātrā krātuvē un vienā datu modelī.
  2. Mēs nedrÄ«kstam zaudēt vai mainÄ«t Å”o informāciju.
  3. Ir nepiecieÅ”ams veikt datu versijas, jo jebkurā brÄ«dÄ« regulators var pieprasÄ«t statistiku par iepriekŔējiem gadiem.
  4. Mums ir ne tikai jāienes jaunas, modernas DBVS, bet arÄ« jārada platforma biznesa problēmu risināŔanai.

Turklāt mūsu arhitekti izvirza savus nosacījumus:

  1. Jaunajam risinājumam jābūt uzņēmuma klases, tas ir, tas jau ir jāpārbauda dažos lielos uzņēmumos.
  2. Risinājuma darbības režīmam jābūt kritiskam. Tas nozīmē, ka mums vienlaikus jāatrodas vairākos datu centros un mierīgi jāpārdzīvo viena datu centra darbības pārtraukums.
  3. Sistēmai jābÅ«t horizontāli mērogojamai. Fakts ir tāds, ka visas mÅ«su paÅ”reizējās sistēmas ir tikai vertikāli mērogojamas, un mēs jau sasniedzam griestus zemā aparatÅ«ras jaudas pieauguma dēļ. Tāpēc ir pienācis brÄ«dis, kad mums ir nepiecieÅ”ama horizontāli mērogojama sistēma, lai izdzÄ«votu.
  4. Cita starpā mums teica, ka risinājumam jābūt lētam.

Gājām standarta marÅ”rutu: noformulējām prasÄ«bas un sazinājāmies ar iepirkumu nodaļu. No turienes mēs saņēmām sarakstu ar uzņēmumiem, kas kopumā ir gatavi to darÄ«t mÅ«su vietā. Mēs visiem pastāstÄ«jām par problēmu, un no seÅ”iem saņēmām risinājumu novērtējumu.

Bankā mēs nevienam nerunājam, mums patÄ«k visu pārbaudÄ«t paÅ”iem. Tāpēc mÅ«su konkursa obligāts nosacÄ«jums bija izturēt slodzes testus. Mēs formulējām slodzes testa uzdevumus, un trÄ«s no seÅ”iem uzņēmumiem jau ir piekrituÅ”i par saviem lÄ«dzekļiem ieviest prototipu risinājumu, kas balstÄ«ts uz atmiņas tehnoloÄ£ijām, lai to pārbaudÄ«tu.

Es jums nestāstÄ«Å”u, kā mēs visu pārbaudÄ«jām un cik ilgi tas prasÄ«ja, es tikai rezumÄ“Å”u: vislabāko sniegumu slodzes testos parādÄ«ja Mail.ru grupas izstrādes komandas prototipa risinājums, kas balstÄ«ts uz Tarantool. Mēs parakstÄ«jām lÄ«gumu un sākām attÄ«stÄ«bu. No Mail.ru grupas bija četri cilvēki, bet no Alfa-Bank bija trÄ«s izstrādātāji, trÄ«s sistēmu analÄ«tiÄ·i, risinājumu arhitekts, produkta Ä«paÅ”nieks un Scrum meistars.

Tālāk es jums pastāstÄ«Å”u par to, kā mÅ«su sistēma attÄ«stÄ«jās, kā tā attÄ«stÄ«jās, ko mēs darÄ«jām un kāpēc tieÅ”i tā.

Attīstība

Pirmais jautājums, ko sev uzdevām, bija par to, kā iegÅ«t datus no mÅ«su paÅ”reizējām sistēmām. Mēs nolēmām, ka HTTP mums ir diezgan piemērots, jo visas paÅ”reizējās sistēmas sazinās savā starpā, sÅ«tot XML vai JSON pa HTTP.

Mēs izmantojam Tarantool iebūvēto HTTP serveri, jo mums nav jāpārtrauc SSL sesijas, un tā veiktspēja mums ir pietiekama.

Kā jau teicu, visas mÅ«su sistēmas dzÄ«vo dažādos datu modeļos, un ievadē mums objekts ir jānovieto modelÄ«, kuru mēs paÅ”i aprakstām. Bija vajadzÄ«ga valoda, kas ļāva pārveidot datus. Mēs izvēlējāmies imperatÄ«vu Lua. Visu datu konvertÄ“Å”anas kodu mēs darbinām smilÅ”kastē ā€“ tā ir droÅ”a vieta, aiz kuras darbojas kods netiek. Lai to izdarÄ«tu, mēs vienkārÅ”i ielādējam nepiecieÅ”amo kodu, izveidojot vidi ar funkcijām, kas neko nevar bloķēt vai nomest.

Kā mēs izveidojām Alfa-Bank investīciju biznesa pamatu, pamatojoties uz Tarantool
Pēc konvertÄ“Å”anas ir jāpārbauda, ā€‹ā€‹vai dati atbilst modelim, kuru veidojam. Mēs ilgi spriedām, kādam jābÅ«t modelim un kādā valodā to aprakstÄ«t. Mēs izvēlējāmies Apache Avro, jo valoda ir vienkārÅ”a un to atbalsta Tarantool. Modeļa un pielāgotā koda jaunās versijas var tikt nodotas ekspluatācijā vairākas reizes dienā, pat ar slodzi vai bez tās, jebkurā diennakts laikā un ļoti ātri pielāgoties izmaiņām.

Kā mēs izveidojām Alfa-Bank investīciju biznesa pamatu, pamatojoties uz Tarantool
Pēc pārbaudes dati ir jāsaglabā. Mēs to darām, izmantojot vshard (mums ir ģeogrāfiski izkliedētas shardu kopijas).

Kā mēs izveidojām Alfa-Bank investīciju biznesa pamatu, pamatojoties uz Tarantool
Turklāt specifika ir tāda, ka lielākajai daļai sistēmu, kas mums sÅ«ta datus, ir vienalga, vai mēs tos saņēmām vai nesaņēmām. Tāpēc jau no paÅ”a sākuma ieviesām remonta rindu. Kas tas ir? Ja kāda iemesla dēļ objektam netiek veikta datu transformācija vai pārbaude, mēs joprojām apstiprinām saņemÅ”anu, bet vienlaikus saglabājam objektu remonta rindā. Tas ir konsekvents un atrodas galvenajā biznesa datu noliktavā. Mēs nekavējoties uzrakstÄ«jām tam administratora saskarni, dažādus rādÄ«tājus un brÄ«dinājumus. Tā rezultātā mēs nezaudējam datus. Pat ja kaut kas ir mainÄ«jies avotā, ja ir mainÄ«jies datu modelis, mēs to nekavējoties atklāsim un varam pielāgoties.

Kā mēs izveidojām Alfa-Bank investīciju biznesa pamatu, pamatojoties uz Tarantool
Tagad jums jāiemācās izgÅ«t saglabātos datus. Mēs rÅ«pÄ«gi analizējām savas sistēmas un redzējām, ka klasiskajā Java un Oracle kaukā noteikti ir sava veida ORM, kas pārvērÅ” datus no relācijas uz objektu. Tātad, kāpēc gan uzreiz nedot objektus sistēmām grafika veidā? Tāpēc mēs ar prieku pieņēmām GraphQL, kas apmierināja visas mÅ«su vajadzÄ«bas. Tas ļauj saņemt datus grafiku veidā un izvilkt tikai to, kas jums Å”obrÄ«d nepiecieÅ”ams. JÅ«s pat varat versijas API ar diezgan lielu elastÄ«bu.

Kā mēs izveidojām Alfa-Bank investīciju biznesa pamatu, pamatojoties uz Tarantool
GandrÄ«z uzreiz mēs sapratām, ka ar mÅ«su iegÅ«tajiem datiem nepietiek. Izveidojām funkcijas, kuras var saistÄ«t ar modelÄ« esoÅ”ajiem objektiem ā€“ bÅ«tÄ«bā aprēķinātos laukus. Tas ir, mēs pievienojam laukam noteiktu funkciju, kas, piemēram, aprēķina vidējo piedāvājuma cenu. Un ārējais patērētājs, kurÅ” pieprasa datus, pat nezina, ka tas ir aprēķināts lauks.

Kā mēs izveidojām Alfa-Bank investīciju biznesa pamatu, pamatojoties uz Tarantool
Ieviesta autentifikācijas sistēma.

Kā mēs izveidojām Alfa-Bank investīciju biznesa pamatu, pamatojoties uz Tarantool
Tad mēs pamanÄ«jām, ka mÅ«su lēmumā izkristalizējās vairākas lomas. Loma ir sava veida funkciju apkopotājs. Parasti lomām ir dažādi aprÄ«kojuma lietoÅ”anas profili:

  • T-Connect: apstrādā ienākoÅ”os savienojumus, CPU ierobežots, mazs atmiņas patēriņŔ, bezvalsts.
  • IB-Core: pārveido datus, ko tas saņem, izmantojot Tarantool protokolu, tas ir, tas darbojas ar tabulām. Tas arÄ« neuzglabā stāvokli un ir mērogojams.
  • UzglabāŔana: tikai saglabā datus, neizmanto nekādu loÄ£iku. Å Ä« loma ievieÅ” vienkārŔākās saskarnes. Mērogojams, pateicoties vshard.

Kā mēs izveidojām Alfa-Bank investīciju biznesa pamatu, pamatojoties uz Tarantool
Tas ir, izmantojot lomas, mēs atdalījām dažādas klastera daļas viena no otras, kuras var mērogot neatkarīgi vienu no otras.

Tātad, esam izveidojuÅ”i asinhronu darÄ«jumu datu plÅ«smas ierakstu un remonta rindu ar administratora interfeisu. Ieraksts ir asinhrons no biznesa viedokļa: ja mums ir garantēts, ka ierakstÄ«sim datus sev, vienalga kur, tad mēs to apstiprināsim. Ja tas neapstiprinās, tad kaut kas nogāja greizi un dati ir jānosÅ«ta. Å is ir asinhronais ieraksts.

TestēŔana

Jau paŔā projekta sākumā mēs nolēmām, ka mēģināsim ieviest testu vadÄ«tu attÄ«stÄ«bu. Mēs rakstām vienÄ«bu testus programmā Lua, izmantojot tarantool/tap ietvaru, un integrācijas testus programmā Python, izmantojot pytest ietvaru. Tajā paŔā laikā integrācijas testu rakstÄ«Å”anā iesaistām gan izstrādātājus, gan analÄ«tiÄ·us.

Kā mēs izmantojam testu vadītu izstrādi?

Ja vēlamies kādu jaunu funkciju, vispirms mēģinām tai uzrakstÄ«t testu. Kad atklājam kļūdu, vispirms noteikti uzrakstām testu un tikai pēc tam to izlabojam. Sākumā ir grÅ«ti Ŕādi strādāt, rodas neizpratne no darbinieku puses, pat sabotāža: "Tagad ātri izlabosim, darÄ«sim kaut ko jaunu un pēc tam nosegsim ar testiem." Tikai Å”is ā€œvēlākā€ gandrÄ«z nekad nenāk.

Tāpēc vispirms jāpiespiež sevi rakstÄ«t kontroldarbus un lÅ«gt to izdarÄ«t citiem. Ticiet man, testu vadÄ«ta attÄ«stÄ«ba sniedz priekÅ”rocÄ«bas pat Ä«stermiņā. JÅ«s jutÄ«siet, ka jÅ«su dzÄ«ve ir kļuvusi vieglāka. Mēs uzskatām, ka 99% koda tagad ir pārbaudÄ«ti. Å Ä·iet, ka tas ir daudz, taču mums nav nekādu problēmu: testi tiek izpildÄ«ti katrā saistÄ«bā.

Tomēr visvairāk mums patīk slodzes pārbaude; mēs to uzskatām par vissvarīgāko un veicam to regulāri.

Es jums pastāstÄ«Å”u nelielu stāstu par to, kā mēs veicām vienas no pirmajām versijām slodzes pārbaudes pirmo posmu. Mēs instalējām sistēmu izstrādātāja klēpjdatorā, ieslēdzām slodzi un saņēmām 4 tÅ«kstoÅ”us darÄ«jumu sekundē. Labs rezultāts klēpjdatoram. Mēs to uzstādÄ«jām uz četru serveru virtuālās slodzes stenda, kas ir vājāks nekā ražoÅ”anā. Izvietots lÄ«dz minimumam. Mēs to palaižam, un rezultāts ir sliktāks nekā klēpjdatorā vienā pavedienā. Å oka saturs.

Mums bija ļoti skumji. Mēs skatāmies uz servera slodzi, bet izrādās, ka tie ir dīkstāvē.

Kā mēs izveidojām Alfa-Bank investīciju biznesa pamatu, pamatojoties uz Tarantool
Mēs piezvanām izstrādātājiem, un viņi mums, cilvēkiem, kas nāk no Java pasaules, paskaidro, ka Tarantool ir viena pavediena. To var efektÄ«vi izmantot tikai viens procesora kodols zem slodzes. Pēc tam katrā serverÄ« izvietojām maksimālo iespējamo Tarantool gadÄ«jumu skaitu, ieslēdzām slodzi un jau saņēmām 14,5 tÅ«kstoÅ”us darÄ«jumu sekundē.

Kā mēs izveidojām Alfa-Bank investīciju biznesa pamatu, pamatojoties uz Tarantool
Ä»aujiet man paskaidrot vēlreiz. Sakarā ar sadalÄ«jumu lomās, kas izmanto resursus atŔķirÄ«gi, mÅ«su lomas, kas ir atbildÄ«gas par savienojumu apstrādi un datu pārveidoÅ”anu, ielādēja tikai procesoru un stingri proporcionāli slodzei.

Kā mēs izveidojām Alfa-Bank investīciju biznesa pamatu, pamatojoties uz Tarantool
Kā mēs izveidojām Alfa-Bank investīciju biznesa pamatu, pamatojoties uz Tarantool
Å ajā gadÄ«jumā atmiņa tika izmantota tikai ienākoÅ”o savienojumu un pagaidu objektu apstrādei.

Kā mēs izveidojām Alfa-Bank investīciju biznesa pamatu, pamatojoties uz Tarantool
Gluži pretēji, krātuves serveros procesora slodze palielinājās, taču daudz lēnāk nekā serveros, kas apstrādā savienojumus.

Kā mēs izveidojām Alfa-Bank investīciju biznesa pamatu, pamatojoties uz Tarantool
Un atmiņas patēriņŔ pieauga tieÅ”i proporcionāli ielādēto datu apjomam.

Kā mēs izveidojām Alfa-Bank investīciju biznesa pamatu, pamatojoties uz Tarantool

Pakalpojumi

Lai izstrādātu mÅ«su jauno produktu kā lietojumprogrammu platformu, mēs tajā izveidojām komponentu pakalpojumu un bibliotēku izvietoÅ”anai.

Pakalpojumi nav tikai nelielas koda daļas, kas darbojas dažos laukos. Tās var būt diezgan lielas un sarežģītas struktūras, kas ir daļa no klastera, pārbauda atsauces datus, izpilda biznesa loģiku un sniedz atbildes. Mēs arī eksportējam pakalpojumu shēmu uz GraphQL, un patērētājs saņem universālu piekļuves punktu datiem, ar introspekciju visā modelī. Tas ir ļoti ērti.

Tā kā pakalpojumos ir daudz vairāk funkciju, nolēmām, ka ir jābÅ«t bibliotēkām, kurās pārvietosim bieži lietoto kodu. Tos pievienojām droÅ”ai videi, iepriekÅ” pārbaudot, vai tas mums neko nesalauž. Un tagad mēs varam pieŔķirt funkcijām papildu vides bibliotēku veidā.

Mēs vēlējāmies, lai bÅ«tu platforma ne tikai glabāŔanai, bet arÄ« skaitļoÅ”anai. Un tā kā mums jau bija daudz kopiju un shardu, mēs ieviesām sava veida sadalÄ«to skaitļoÅ”anu un nosaucām to par kartes samazināŔanu, jo tas izrādÄ«jās lÄ«dzÄ«gs oriÄ£inālajam kartes samazinājumam.

Vecās sistēmas

Ne visas mÅ«su mantotās sistēmas var mums piezvanÄ«t, izmantojot HTTP, un izmantot GraphQL, lai gan tās atbalsta protokolu. Tāpēc mēs izveidojām mehānismu, kas ļauj replicēt datus Å”ajās sistēmās.

Kā mēs izveidojām Alfa-Bank investīciju biznesa pamatu, pamatojoties uz Tarantool
Ja mums kaut kas mainās, krātuves lomā tiek aktivizēti unikāli aktivizētāji, un ziņojums ar izmaiņām nonāk apstrādes rindā. Tas tiek nosÅ«tÄ«ts uz ārēju sistēmu, izmantojot atseviŔķu replikatora lomu. Å Ä« loma neglabā stāvokli.

Jauni uzlabojumi

Kā jÅ«s atceraties, no biznesa viedokļa mēs veicām asinhronu ierakstÄ«Å”anu. Taču tad saprata, ka ar to nepietiks, jo ir sistēmu klase, kurām uzreiz jāsaņem atbilde par operācijas statusu. Tāpēc mēs paplaÅ”inājām savu GraphQL un pievienojām mutācijas. Tie organiski iekļaujas esoÅ”ajā darba ar datiem paradigmā. Mums tas ir viens punkts gan lasÄ«Å”anai, gan rakstÄ«Å”anai citai sistēmu klasei.

Kā mēs izveidojām Alfa-Bank investīciju biznesa pamatu, pamatojoties uz Tarantool
Sapratām arÄ«, ka ar pakalpojumiem vien mums nepietiks, jo ir diezgan smagas atskaites, kuras jāveido reizi dienā, nedēļā, mēnesÄ«. Tas var aizņemt ilgu laiku, un ziņojumi var pat bloķēt Tarantool notikumu cilpu. Tāpēc mēs izveidojām atseviŔķas lomas: plānotājs un skrējējs. Skrējēji neuzglabā stāvokli. Viņi veic smagus uzdevumus, kurus mēs nevaram aprēķināt lidojuma laikā. Un plānotāja loma uzrauga Å”o uzdevumu palaiÅ”anas grafiku, kas ir aprakstÄ«ts konfigurācijā. PaÅ”i uzdevumi tiek glabāti tajā paŔā vietā, kur biznesa dati. Kad pienāk Ä«stais laiks, plānotājs paņem uzdevumu, iedod kādam skrējējam, kurÅ” to saskaita un saglabā rezultātu.

Kā mēs izveidojām Alfa-Bank investīciju biznesa pamatu, pamatojoties uz Tarantool
Ne visi uzdevumi ir jāveic pēc grafika. Daži ziņojumi ir jāizlasa pēc pieprasÄ«juma. TiklÄ«dz Ŕī prasÄ«ba tiek izpildÄ«ta, smilÅ”u kastē tiek izveidots uzdevums un nosÅ«tÄ«ts skrējējam izpildei. Pēc kāda laika lietotājs saņem asinhronu atbildi, ka viss ir aprēķināts un atskaite ir gatava.

Kā mēs izveidojām Alfa-Bank investīciju biznesa pamatu, pamatojoties uz Tarantool
Sākotnēji mēs pieturējāmies pie paradigmas visu datu glabāŔanas, to versijas un neizdzēsÅ”anas. Bet dzÄ«vē ik pa laikam tomēr nākas kaut ko izdzēst, pārsvarā kādu jēlu vai starpinformāciju. Pamatojoties uz derÄ«guma termiņa beigām, mēs izveidojām mehānismu krātuves tÄ«rÄ«Å”anai no novecojuÅ”iem datiem.

Kā mēs izveidojām Alfa-Bank investīciju biznesa pamatu, pamatojoties uz Tarantool
Tāpat saprotam, ka agri vai vēlu pienāks situācija, kad atmiņā nepietiks vietas datu glabāŔanai, bet tomēr dati ir jāsaglabā. Å iem nolÅ«kiem mēs drÄ«zumā izveidosim diska krātuvi.

Kā mēs izveidojām Alfa-Bank investīciju biznesa pamatu, pamatojoties uz Tarantool

Secinājums

Mēs sākām ar uzdevumu ielādēt datus vienā modelÄ« un pavadÄ«jām trÄ«s mēneÅ”us tā izstrādei. Mums bija seÅ”as datu piegādes sistēmas. Viss pārveidoÅ”anas kods vienā modelÄ« ir aptuveni 30 tÅ«kstoÅ”i rindu Lua. Un lielākā daļa darba vēl priekŔā. Dažkārt pietrÅ«kst motivācijas no kaimiņu kolektÄ«viem, un ir daudz apstākļu, kas darbu apgrÅ«tina. Ja kādreiz saskaraties ar lÄ«dzÄ«gu uzdevumu, reiziniet laiku, kas jums Ŕķiet normāls tā izpildei, ar trÄ«s vai pat četriem.

Atcerieties arÄ«, ka esoŔās problēmas biznesa procesos nevar atrisināt, izmantojot jaunu DBVS, pat ļoti produktÄ«vu. Ko es domāju? Uzsākot savu projektu, radÄ«jām klientiem iespaidu, ka tagad ienesÄ«sim jaunu ātru datu bāzi un dzÄ«vosim! Procesi ritēs ātrāk, viss bÅ«s kārtÄ«bā. PatiesÄ«bā tehnoloÄ£ijas neatrisina problēmas, kas ir biznesa procesiem, jo ā€‹ā€‹biznesa procesi ir cilvēki. Un jums ir jāstrādā ar cilvēkiem, nevis tehnoloÄ£ijām.

Testu vadīta izstrāde agrīnā stadijā var būt sāpīga un laikietilpīga. Bet tā pozitīvā ietekme būs pamanāma pat īstermiņā, kad jums nekas nav jādara, lai veiktu regresijas testu.

Ir ārkārtÄ«gi svarÄ«gi veikt slodzes testÄ“Å”anu visos izstrādes posmos. Jo ātrāk pamanÄ«sit kādu trÅ«kumu arhitektÅ«rā, jo vieglāk to bÅ«s novērst, kas nākotnē ietaupÄ«s daudz laika.

Ar Lua nav nekā slikta. Ikviens var iemācīties tajā rakstīt: Java izstrādātājs, JavaScript izstrādātājs, Python izstrādātājs, priekŔgals vai aizmugure. Pat mūsu analītiķi par to raksta.

Kad mēs runājam par to, ka mums nav SQL, tas cilvēkus biedē. ā€œKā iegÅ«t datus bez SQL? Vai tas ir iespējams? Noteikti. OLTP klases sistēmā SQL nav nepiecieÅ”ams. Ir alternatÄ«va kāda veida valoda, kas nekavējoties atgriež jÅ«s uz dokumentu orientētā skatā. Piemēram, GraphQL. Un ir alternatÄ«va izkliedētās skaitļoÅ”anas veidā.

Ja saprotat, ka jums bÅ«s jāveic mērogoÅ”ana, izstrādājiet savu risinājumu Tarantool tā, lai tas varētu darboties paralēli desmitiem Tarantool gadÄ«jumu. Ja jÅ«s to nedarÄ«sit, vēlāk bÅ«s grÅ«ti un sāpÄ«gi, jo Tarantool var efektÄ«vi izmantot tikai vienu procesora kodolu.

Avots: www.habr.com

Pievieno komentāru