Faʻafefea ona taofi le popole ma amata ola e aunoa ma se monolith

Faʻafefea ona taofi le popole ma amata ola e aunoa ma se monolith

Matou te fiafia uma i tala. Matou te fiafia e nofonofo i tafatafa o le afi ma talanoa e uiga i a matou manumalo, taua, poʻo na o matou poto masani i galuega.

O aso nei ua na o se aso faapena. Ma e tusa lava pe e te le o iai i le afi i le taimi nei, o loʻo i ai sa matou tala mo oe. Le tala i le auala na matou amata galulue ai ma le teuina i luga o Tarantool.

I se tasi taimi, sa i ai i le matou kamupani ni "monoliths" ma le tasi "faʻaalo" mo tagata uma, lea na faʻagesegese ae mautinoa o loʻo oʻo mai nei monoliths, faʻatapulaʻaina le faigamalaga a le matou kamupani, la matou atinaʻe. Ma sa i ai se malamalama manino: e i ai se aso o le a tatou taia malosi ai lenei taualuga.

O le taimi nei o le talitonuga masani o le vavaeeseina o mea uma ma tagata uma, mai meafaigaluega i pisinisi faʻatatau. O se taunuuga, matou, mo se faʻataʻitaʻiga, e lua DCs e toetoe lava tutoʻatasi i le tulaga o fesoʻotaʻiga. Ona matua ese ai lea o mea uma.

I aso nei, o loʻo i ai le tele o mea faigaluega ma mea faigaluega mo le faia o suiga i foliga o CI / CD, K8S, ma isi. I le taimi "monolithic", matou te le manaʻomia le tele o upu ese. Na lava le naʻo le faʻasaʻoina o le "teu" i totonu o le database.

Ae o le taimi na agai i luma, ma le numera o talosaga na agai i luma faatasi ma ia, o nisi taimi e fanaina ai le RPS i tua atu o lo tatou gafatia. Faatasi ai ma le ulufale atu o atunuu CIS i le maketi, o le uta i luga o le database processor o le monolith muamua e leʻi pa'ū i lalo o le 90%, ma o le RPS na tumau pea i le maualuga o le 2400. Ma o nei mea e le na o ni filifiliga laiti, ae o ni fesili tetele ma se fa'asologa o siaki ma SO'O'I e mafai ona tamo'e toetoe lava o le afa o fa'amaumauga e fa'asaga i tua o le IO tele.

Ina ua amata ona faʻaalia le faʻatauga atoa o le Aso Faraile o le Black Friday i luga o le vaaiga - ma o Wildberries o se tasi o muamua na taofia i Rusia - na matua faʻanoanoa le tulaga. A uma mea uma, o le uta i aso faapena e faatolu ona faateleina.
Oi, o nei "taimi monolithic"! Ou te mautinoa na e oʻo i se mea faapena, ma e te le malamalama pe faʻapefea ona tupu lenei mea ia te oe.

O le a se mea e mafai ona e faia - o teuga e masani lava i tekinolosi. E tusa ma le 5 tausaga talu ai, e tatau ona matou toe mafaufau i se tasi o nei mods i le tulaga o se nofoaga o loʻo i ai i luga o le .NET ma le MS SQL server, lea na teuina ma le faʻaeteete uma manatu o le saite lava ia. Sa ou tausia ma le faaeteete o le vaai i se monolith na avea ma se fiafiaga umi ma e le faigofie.
O se fa'aletonu la'ititi.

I mea eseese, ou te fai atu: "Afai e te leʻi vaʻai i se monolith, ona e le tupu ai lea!" Ou te fiafia i lou manatu i lenei mataupu, faamolemole tusi i totonu o faamatalaga.

O Se Leo o Faititili

Sei o tatou toe foi i la tatou "afi afi". Ina ia tufatufa atu le avega o le "monolithic" galuega, na matou filifili e vaevae le faiga i microservices e faʻavae i luga o tekinolosi tatala. Aua, i se tulaga maualalo, latou te taugofie le fua. Ma sa matou 100% malamalama e tatau ona matou fuaina (ma tele). I le uma, ua i ai i lena taimi na mafai ai ona ulufale atu i maketi o atunuu tuaoi, ma le numera o le resitalaina, faapea foi ma le numera o poloaiga, na amata ona tupu malosi.

O le suʻesuʻeina o sui muamua mo le alu ese mai le monolith i microservices, na matou iloa ai o le 80% o tusitusiga i totonu e sau mai le ofisa i tua, ma faitau mai le ofisa i luma. Muamua lava, o lenei mea e aafia ai ni nai vaega taua mo i matou - faʻamatalaga tagata faʻaoga ma se faiga mo le faʻatusatusaina o le tau mulimuli o oloa e faʻavae i luga o faʻamatalaga e uiga i faʻaitiitiga faʻatau faʻatau ma coupons.

Fa'amau. O le taimi nei e taufaafefe le mafaufau, ae i le faaopoopo atu i vaega o loʻo taʻua i luga, o faʻamaumauga o oloa, se faʻatau faʻatau faʻatau, se faiga suʻesuʻe oloa, se faiga faʻapipiʻi mo faʻamaumauga o oloa, ma ituaiga eseese o faiga faʻatonu na aveesea foi mai le matou monolith. Mo le faʻatinoina o latou taʻitoʻatasi, o loʻo i ai vasega eseese o faiga faʻapipiʻi vaapiapi, ae i se tasi taimi na latou nonofo uma i le "fale" e tasi.

Na vave ona matou fuafua e faʻafeiloaʻi faʻamatalaga e uiga ia matou tagata faʻatau i le sharded system. O le aveeseina o galuega mo le fuafuaina o le tau mulimuli o oloa e manaʻomia ai le scalability lelei mo le faitau, aua na faia ai le uta sili o le RPS ma e sili ona faigata ona faʻatinoina mo le faʻamaumauga (tele faʻamatalaga o loʻo aʻafia i le faʻatulagaina o le faʻatulagaga).

O se taunuuga, na matou o mai ma se polokalame e fetaui lelei ma Tarantool.

I lena taimi, mo le faʻaogaina o microservices, o fuafuaga mo le galulue faʻatasi ma le tele o nofoaga autu o faʻamaumauga i luga o masini komepiuta ma masini na filifilia. E pei ona faʻaalia i faʻataʻitaʻiga, na faʻaaogaina filifiliga toe faia e Tarantool i le matai-matai ma le matai-pologa.

Faʻafefea ona taofi le popole ma amata ola e aunoa ma se monolith
Fa'ataina. Filifiliga 1. Auaunaga fa'aoga

I le taimi nei, o loʻo i ai le 24 shards, e tofu uma ma 2 faʻataʻitaʻiga (tasi mo DC taʻitasi), uma i le master-master mode.

I le pito i luga o faʻamaumauga o loʻo i ai talosaga e maua ai faʻamaumauga faʻamaumauga. O talosaga e galulue faatasi ma Tarantool e ala i la matou faletusi masani, lea e faʻaaogaina ai le taʻavale taʻavale Tarantool Go. Na te vaʻai i faʻataʻitaʻiga uma ma e mafai ona galulue ma le matai e faitau ma tusitusi. O le mea moni, o loʻo faʻaaogaina le faʻataʻitaʻiga seti faʻataʻitaʻiga, lea e faʻaopoopoina ai le faʻaogaina mo le filifilia o faʻataʻitaʻiga, faʻataʻitaʻiga toe faʻataʻitaʻiga, se vaʻavaʻavaʻa ma se tapulaa tau.

I lenei tulaga, e mafai ona faʻatulagaina le faiga faʻavae filifiliga faʻatusa i le tulaga o shards. Mo se faʻataʻitaʻiga, roundrobin.

Faʻafefea ona taofi le popole ma amata ola e aunoa ma se monolith
Fa'ataina. Filifiliga 2. Auaunaga mo le fuafuaina o tau mulimuli o oloa

I ni nai masina talu ai, o le tele o talosaga mo le fuafuaina o le tau mulimuli o oloa na alu i se auaunaga fou, lea, i le mataupu faavae, e galue e aunoa ma ni faʻamaumauga, ae o se taimi ua mavae na faʻatautaia mea uma 100% e se auaunaga ma Tarantool i lalo o le pulou.

O le 'au'aunaga fa'amaumauga e aofia ai matai e 4 lea e aoina ai e le synchronizer fa'amaumauga, ma o nei matai fa'asologa ta'itasi e tufatufa fa'amaumauga i na'o fa'atusa. O matai ta'itasi e tusa ma le 15 fa'apei fa'apenei.

Po'o le muamua po'o le polokalame lona lua, afai e le maua se DC tasi, e mafai e le talosaga ona maua fa'amatalaga i le lona lua.

E taua le maitauina o le toe faia i Tarantool e faigofie tele ma e mafai ona faʻatulagaina i le taimi faʻataʻavalevale. I isi faiga, na tulai mai ai faigata. Mo se faʻataʻitaʻiga, o le suia o max_wal_seners ma max_replication_slots parakalafa i PostgreSQL e manaʻomia ai le toe amataina o le wizard, lea i nisi tulaga e ono taʻitaʻia ai le motusia o fesoʻotaʻiga i le va o le talosaga ma le DBMS.

Saili ma o le ae mauaina!

Aisea na matou le faia ai "pei o tagata masani", ae na matou filifilia se auala e le masani ai? E fa'alagolago i le mea e ta'ua masani. O le to'atele e masani ona faia se fuifui mai Mongo ma fa'asalalau atu i DCs e tolu fa'a-geo.

I lena taimi, ua uma ona i ai a matou galuega faatino e lua a Redis. O le muamua o se cache, ma le lona lua o se teuina faifai pea mo faʻamatalaga e le taua tele. Sa fai si faigata ia te ia, o se vaega ona o lo matou sese. O nisi taimi e fai si tele voluma i totonu o le ki, ma mai lea taimi i lea taimi e le lelei le saite. Na matou faʻaogaina lenei faiga i le master-slave version. Ma sa i ai le tele o mataupu na tupu ai se mea i le matai ma le toe faia na malepe.

O lona uiga, e lelei Redis mo galuega e leai ni setete, ae le o ni mea faʻapitoa. I le mataupu faavae, na mafai ai ona foia le tele o faʻafitauli, ae naʻo pe a fai o ni fofo autu-taua ma se pea o faʻasino igoa. Ae o Redis i lena taimi sa matua faanoanoa lava i le finafinau ma le toe faia. E le gata i lea, sa i ai faitioga e uiga i le faatinoga.

Na matou mafaufau e uiga i MySQL ma PostgreSQL. Ae o le mea muamua e leʻi maua mai ia i matou, ma o le lona lua o se oloa faʻapitoa lava ia, ma e le talafeagai le fausiaina o ni auaunaga faigofie i luga.
Na matou taumafai RIAK, Cassandra, e oʻo lava i se faʻamaumauga o kalafi. O nei mea uma o niche fofo e le talafeagai mo le matafaioi o se meafaigaluega lautele lautele mo le fatuina o auaunaga.

Mulimuli ane na matou nofo i luga o Tarantool.

Na matou liliu atu i ai ina ua i ai i le version 1.6. Sa matou fiafia i ai e ala i le symbiosis o le taua-taua ma le faʻatinoga o se faʻamaumauga faʻamaumauga. O loʻo i ai faʻamatalaga lona lua, fefaʻatauaiga ma avanoa, e pei o laulau, ae le faigofie, e mafai ona e teuina numera eseese o koluma i totonu. Ae o le uiga fasioti tagata o Tarantool o faʻailoga lona lua faʻatasi ma le taua-taua ma fefaʻatauaʻiga.

O le faʻalapotopotoga faʻa-Rusia tali mai, ua sauni e fesoasoani i talatalanoaga, sa faia foi se sao. Matou te faʻaaogaina ma le malosi lenei ma ola saʻo i le talatalanoaga. Ma aua neʻi galo e uiga i le faʻaauau pea e aunoa ma ni faʻalavelave ma mea sese. Afai e te vaʻavaʻai i la matou tala faʻasolopito ma Tarantool, e tele a matou tiga ma faʻaletonu i le toe faia, ae matou te leʻi leiloa faʻamatalaga ona o lona sese!

O le faʻatinoga na amata i se amataga faigata

I lena taimi, o la matou atinaʻe autu o le .NET, lea e leai se fesoʻotaʻiga mo Tarantool. Na vave ona matou faia se mea i Go. Sa lelei foi ma Lua. O le faafitauli autu i lena taimi o le debugging: i le .NET e lelei mea uma i lenei mea, ae ina ua mavae lena sa faigata ona oso i le lalolagi o Lua faʻapipiʻi, pe a leai sau debugging vagana ogalaau. E le gata i lea, mo nisi mafuaʻaga na malepelepe ai le kopi, o lea na tatau ai ona ou suʻesuʻeina le fausaga o le masini Tarantool. O le talatalanoaga na fesoasoani i lenei mea, ma i se tulaga maualalo, o faʻamaumauga; o nisi taimi matou te tilotilo i le code. I lena taimi, o le faʻamaumauga sa faʻapea.

O lea la, i le gasologa o ni nai masina, na mafai ona ou faʻasolosolo loʻu ulu ma maua ni taunuuga lelei mai le galue ma Tarantool. Na matou tuʻufaʻatasia faʻamatalaga atinaʻe i le git na fesoasoani i le faʻavaeina o microservices fou. Mo se faʻataʻitaʻiga, pe a tulaʻi mai se galuega: e fatu ai se isi microservice, na vaʻavaʻai e le tagata atiaʻe le faʻailoga autu o le faʻamatalaga faʻamatalaga i totonu o le fale teu oloa, ma e leʻi silia ma le vaiaso e fai ai se mea fou.

O taimi faapitoa ia. I le masani ai, e mafai ona e alu i luga i le pule i le isi laulau ma fesili: "Tuu mai ia te au se masini masini." Pe a ma le tolusefulu minute mulimuli ane ua uma ona i ai le taavale ma oe. Na e faʻafesoʻotaʻi oe lava, faʻapipiʻi mea uma, ma auina atu le fefaʻatauaiga ia te oe.

I aso nei o le a le toe aoga lenei mea: e te manaʻomia le faʻaopoopoina o le mataʻituina ma le faʻapipiʻiina i le tautua, faʻapipiʻi galuega i suʻega, faʻatonu se masini masini poʻo le tuʻuina atu i Kuber, ma isi. I se tulaga lautele, o le a sili atu i lenei auala, e ui o le a umi se taimi ma sili atu ona faigata.

Vaevae ma pule. O le a le mea ua fai ma Lua?

Sa i ai se fa'afitauli matuia: o nisi 'au e le'i mafai ona fa'amoemoeina le fa'asolo atu o suiga i se 'au'aunaga ma le tele o manatu i Lua. Sa masani ona o faatasi ma le auaunaga e le o galue.

O lona uiga, o loʻo saunia e le au atinaʻe se ituaiga o suiga. Tarantool ua amata ona faia le femalagaiga, ae o le kopi o loʻo i ai pea i le code tuai; O nisi DDL po'o se isi mea e taunu'u mai iina e ala i le toe faia, ma o le fa'ailoga e malepelepe ona e le o amanaia. O le iʻuga, o le faʻafouga faiga mo le pulega na tuʻuina atu i luga o le A4 pepa: taofi le toe faia, faʻafouina lenei, faʻaalia le toe faia, tape iinei, faʻafouina iina. Moemiti!

O le mea ua tupu, o lea ua tele ina matou taumafai e leai se mea e fai i Lua. Naʻo le faʻaaogaina o le iproto (se protocol binary mo le fegalegaleai ma le server), ma o le mea lena. Masalo o le le lava lea o le malamalama i le au atinaʻe, ae mai lenei manatu o le faiga e faigata.

Matou te le mulimuli tauaso i taimi uma i lenei tusitusiga. O aso nei e leai ni a tatou uliuli ma papae: a le o mea uma o loʻo i Lua, poʻo mea uma i Go. Ua uma ona tatou malamalama i le auala e mafai ai ona tatou tuʻufaʻatasia ina ia tatou le iʻu i faʻafitauli o femalagaiga mulimuli ane.

O fea o iai nei Tarantool?
Tarantool o loʻo faʻaaogaina i le tautua mo le faʻatusatusaina o le tau mulimuli o oloa e faʻatatau i faʻatauga faʻaitiitiga, lea e lauiloa foi o le "Promoter". E pei ona ou fai atu muamua, o lea ua malolo litaea: ua suia o ia i se auaunaga fou o lisi ma tau na muai fuafuaina, ae o le ono masina talu ai na faia uma faʻatusatusaga i Promotizer. I le taimi muamua, o le afa o lona manatu sa tusia i le Lua. I le lua tausaga talu ai, na suia ai le auaunaga i se nofoaga e teu ai, ma na toe tusia le manatu i le Go, ona o le masini o faʻaitiitiga na suia sina suiga ma le auaunaga e leai se faʻatinoga.

O se tasi o auaunaga pito sili ona taua o le faʻamatalaga o tagata faʻaoga. O lona uiga, o lo'o teuina uma tagata fa'aoga Wildberries i Tarantool, ma e tusa ma le 50 miliona.
E tusa ai ma le RPS, o Promoter sa avea muamua ma taʻitaʻi, e oʻo atu i le 6 afe talosaga. I se tasi taimi na matou maua ai le 50-60 kopi. O le taimi nei o le taʻitaʻi i le RPS o faʻamatalaga faʻaoga, e tusa ma le 12 afe. ​​O lenei 'auʻaunaga e faʻaogaina ai faʻasalalauga masani, vaevaeina i laina o ID faʻaoga. O le tautua e sili atu i le 20 masini, ae e tele naua; matou te fuafua e faʻaititia le tuʻufaʻatasia o punaoa, aua o le gafatia o le 4-5 masini e lava mo ia.

Au'aunaga sauniga o la matou auaunaga muamua lea i luga o vshard ma Cartridge. O le faʻatulagaina o vshard ma le faʻafouina o Cartridge e manaʻomia ai se taumafaiga mai ia i matou, ae i le faaiuga na lelei mea uma.

O le tautua mo le faʻaalia o fuʻa eseese i luga o le upega tafaʻilagi ma i totonu o le telefoni feaveaʻi o se tasi lea o muamua na tuʻuina saʻo i luga o Tarantool. O lenei auaunaga e iloga ona o le 6-7 tausaga le matua, o loʻo faʻaogaina pea ma e leʻi toe faʻafouina. Sa fa'aaogaina le kopi matai-matai. E leai se mea na gau.

O loʻo i ai se faʻataʻitaʻiga o le faʻaaogaina o Tarantool mo le faʻaogaina vave o galuega i totonu o se fale teu oloa e vave faʻalua-siaki faʻamatalaga i nisi tulaga. Na matou taumafai e faʻaoga Redis mo lenei mea, ae o faʻamaumauga i le mafaufau na sili atu le avanoa nai lo Tarantool.

O tautua a le lisi fa'atali, fa'aulu o tagata fa'atau, tala fa'aonaponei ma oloa fa'atalitali e galulue fa'atasi ma Tarantool. O le auaunaga mulimuli i le manatua e tusa ma le 120 GB. Ole 'au'aunaga sili ona atoatoa lea o lo'o ta'ua i luga.

iʻuga

Faʻafetai i faʻamatalaga lona lua tuʻufaʻatasia ma le ki-taua ma fefaʻatauaʻiga, Tarantool e fetaui lelei mo microservices-based architectures. Ae ui i lea, sa matou feagai ma faʻafitauli i le faʻalauiloaina o suiga i auaunaga ma le tele o faʻamatalaga i Lua - o auaunaga e masani ona le toe galue. Sa le mafai ona matou manumalo i lenei mea, ma i le aluga o taimi na matou oo mai ai i tuʻufaʻatasiga eseese o Lua ma Go: matou te iloa le mea e faʻaoga ai le tasi gagana ma le mea e faʻaoga ai le isi.

O le a se isi mea e faitau i le autu

puna: www.habr.com

Faaopoopo i ai se faamatalaga