Itan-akọọlẹ ti Dodo IS Architecture: Monolith kutukutu

Tabi gbogbo ile-iṣẹ ti ko ni idunnu pẹlu monolith ko ni idunnu ni ọna tirẹ.

Idagbasoke eto Dodo IS bẹrẹ lẹsẹkẹsẹ, bii iṣowo Dodo Pizza, ni ọdun 2011. O da lori imọran pipe ati lapapọ digitization ti awọn ilana iṣowo, ati lori ara wọn, eyiti paapaa lẹhinna ni 2011 fa ọpọlọpọ awọn ibeere ati ṣiyemeji. Ṣugbọn fun ọdun 9 ni bayi a ti tẹle ọna yii - pẹlu idagbasoke tiwa, eyiti o bẹrẹ pẹlu monolith kan.

Nkan yii jẹ “idahun” si awọn ibeere “Kilode ti o tun ṣe atunto faaji ki o ṣe iru iwọn nla ati awọn ayipada igba pipẹ?” pada si išaaju article "Itan ti Dodo IS Architecture: Ọna ti Ọfiisi Pada". Emi yoo bẹrẹ pẹlu bi idagbasoke Dodo IS ṣe bẹrẹ, bawo ni faaji atilẹba ṣe dabi, bawo ni awọn modulu tuntun ṣe han, ati nitori awọn iṣoro wo ni awọn ayipada nla ni lati ṣe.

Itan-akọọlẹ ti Dodo IS Architecture: Monolith kutukutu

Jara ti awọn nkan "Kini Dodo IS?" sọ nipa:

  1. Tete monolith ni Dodo IS (2011-2015). (o wa nibi)

  2. Ọna Ọfiisi Pada: Awọn ipilẹ lọtọ ati ọkọ akero.

  3. Ọna ẹgbẹ alabara: facade lori ipilẹ (2016-2017). (Ni ilọsiwaju...)

  4. Awọn itan ti otitọ microservices. (2018-2019). (Ni ilọsiwaju...)

  5. Ti pari sawing ti monolith ati iduroṣinṣin ti faaji. (Ni ilọsiwaju...)

Ibẹrẹ faaji

Ni 2011, Dodo IS faaji dabi eyi:

Itan-akọọlẹ ti Dodo IS Architecture: Monolith kutukutu

Module akọkọ ninu faaji jẹ gbigba aṣẹ. Ilana iṣowo naa jẹ:

  • onibara pe pizzeria;

  • oluṣakoso mu foonu naa;

  • gba aṣẹ nipasẹ foonu;

  • fọwọsi ni afiwe ni wiwo gbigba aṣẹ: alaye nipa alabara, data lori awọn alaye aṣẹ, adirẹsi ifijiṣẹ ni a ṣe akiyesi. 

Ni wiwo ti eto alaye dabi nkan bi eyi ...

Ẹya akọkọ lati Oṣu Kẹwa ọdun 2011:

Ni ilọsiwaju diẹ ni Oṣu Kini ọdun 2012

Dodo Pizza Information System Ifijiṣẹ Pizza Restaurant

Awọn oluşewadi fun idagbasoke ti akọkọ ibere mu module ni opin. A ni lati ṣe pupọ, ni kiakia ati pẹlu ẹgbẹ kekere kan. A kekere egbe ni 2 Difelopa ti o fi ipile fun gbogbo ojo iwaju eto.

Ipinnu akọkọ wọn pinnu ayanmọ ti akopọ imọ-ẹrọ:

  • Afẹyinti lori ASP.NET MVC, C # ede. Awọn Difelopa jẹ dotnetchiki, akopọ yii jẹ faramọ ati dídùn fun wọn.

  • Frontend lori Bootstrap ati JQuery: awọn atọkun olumulo lori awọn ara kikọ ati awọn iwe afọwọkọ. 

  • MySQL database: ko si awọn idiyele iwe-aṣẹ, rọrun lati lo.

  • Awọn olupin lori Windows Server, nitori .NET lẹhinna le wa labẹ Windows nikan (a kii yoo jiroro Mono).

Ni ti ara, gbogbo eyi ni a fihan ni “dedic ni hoster”. 

Bere fun gbigbe ohun elo Architecture

Lẹhinna gbogbo eniyan ti sọrọ tẹlẹ nipa awọn iṣẹ microservices, ati SOA ti lo ni awọn iṣẹ akanṣe nla fun ọdun 5, fun apẹẹrẹ, WCF ti tu silẹ ni ọdun 2006. Ṣugbọn lẹhinna wọn yan ojutu ti o gbẹkẹle ati ti a fihan.

Ohun niyi.

Itan-akọọlẹ ti Dodo IS Architecture: Monolith kutukutu

Asp.Net MVC jẹ Razor, eyiti, lori ibeere lati fọọmu kan tabi lati ọdọ alabara kan, ṣe oju-iwe HTML kan pẹlu ṣiṣe olupin. Lori alabara, awọn iwe afọwọkọ CSS ati JS ti ṣafihan alaye tẹlẹ ati, ti o ba jẹ dandan, ṣe awọn ibeere AJAX nipasẹ JQuery.

Awọn ibeere lori olupin naa pari ni * Awọn kilasi Alakoso, nibiti iṣelọpọ ati iran ti oju-iwe HTML ikẹhin waye ni ọna naa. Awọn oludari n ṣe awọn ibeere si Layer ti oye ti a pe ni * Awọn iṣẹ. Ọkọọkan awọn iṣẹ naa ni ibamu si diẹ ninu abala ti iṣowo naa:

  • Fun apẹẹrẹ, DepartmentStructureService fun alaye lori pizzerias, lori awọn apa. Ẹka kan jẹ ẹgbẹ kan ti pizzerias ti o nṣiṣẹ nipasẹ ẹtọ ẹtọ ẹyọkan kan.

  • ReceivingOrdersService gba ati ṣe iṣiro akojọpọ aṣẹ naa.

  • Ati pe SmsService fi SMS ranṣẹ nipa pipe awọn iṣẹ API lati fi SMS ranṣẹ.

Awọn iṣẹ data ilọsiwaju lati ibi ipamọ data, ọgbọn iṣowo ti o fipamọ. Iṣẹ kọọkan ni ọkan tabi diẹ sii * Awọn ibi ipamọ pẹlu orukọ ti o yẹ. Wọn ti ni awọn ibeere tẹlẹ ninu awọn ilana ti o fipamọ sinu ibi ipamọ data ati Layer ti awọn maapu. Imọye iṣowo wa ninu awọn ibi ipamọ, ni pataki pupọ ninu awọn ti o pese data ijabọ. ORM ko lo, gbogbo eniyan gbarale sql ti a fi ọwọ kọ. 

Layer tun wa ti awoṣe ibugbe ati awọn kilasi oluranlọwọ ti o wọpọ, fun apẹẹrẹ, kilasi Bere fun ti o tọju aṣẹ naa. Ni aaye kanna, ni Layer, oluranlọwọ wa fun iyipada ọrọ ifihan ni ibamu si owo ti a yan.

Gbogbo eyi le jẹ aṣoju nipasẹ iru awoṣe:

Itan-akọọlẹ ti Dodo IS Architecture: Monolith kutukutu

Ilana Ilana

Wo ọna ibẹrẹ ti o rọrun lati ṣẹda iru aṣẹ bẹ.

Itan-akọọlẹ ti Dodo IS Architecture: Monolith kutukutu

Ni ibẹrẹ, aaye naa jẹ aimi. O ni awọn idiyele lori rẹ, ati lori oke - nọmba foonu kan ati akọle “Ti o ba fẹ pizza - pe nọmba ati aṣẹ.” Lati paṣẹ, a nilo lati ṣe ṣiṣan ti o rọrun: 

  • Onibara ṣabẹwo si aaye aimi pẹlu awọn idiyele, yan awọn ọja ati pe nọmba ti a ṣe akojọ lori aaye naa.

  • Onibara lorukọ awọn ọja ti wọn fẹ ṣafikun si aṣẹ naa.

  • O fun adirẹsi ati orukọ rẹ.

  • Oniṣẹ gba aṣẹ naa.

  • Ilana naa han ni wiwo awọn aṣẹ ti o gba.

Gbogbo rẹ bẹrẹ pẹlu iṣafihan akojọ aṣayan. Oluṣe olumulo ti o wọle gba aṣẹ kan ṣoṣo ni akoko kan. Nitorinaa, ọkọ iyaworan le wa ni ipamọ ni igba rẹ (agbegbe olumulo ti wa ni ipamọ ni iranti). Nkan fun rira kan wa ti o ni awọn ọja ati alaye alabara ninu.

Onibara lorukọ ọja naa, oniṣẹ tẹ lori + lẹgbẹẹ ọja naa, ati pe a firanṣẹ ibeere kan si olupin naa. Alaye nipa ọja ni a fa jade lati ibi ipamọ data ati alaye nipa ọja ti wa ni afikun si rira.

Itan-akọọlẹ ti Dodo IS Architecture: Monolith kutukutu

Daakọ. Bẹẹni, nibi o ko le fa ọja naa lati ibi ipamọ data, ṣugbọn gbe lọ lati iwaju iwaju. Ṣugbọn fun wípé, Mo ti fihan gangan ona lati database. 

Nigbamii, tẹ adirẹsi ati orukọ alabara sii. 

Itan-akọọlẹ ti Dodo IS Architecture: Monolith kutukutu

Nigbati o ba tẹ "Ṣẹda Bere fun":

  • Ti fi ibeere naa ranṣẹ si OrderController.SaveOrder().

  • A gba rira lati igba, awọn ọja wa ni iye ti a nilo.

  • A ṣe afikun fun rira pẹlu alaye nipa alabara ati firanṣẹ si ọna AddOrder ti kilasi GbigbaOrderService, nibiti o ti fipamọ si ibi ipamọ data. 

  • Ibi ipamọ data ni awọn tabili pẹlu aṣẹ, akopọ ti aṣẹ, alabara, ati pe gbogbo wọn ni asopọ.

  • Ni wiwo àpapọ ibere lọ ki o si fa jade awọn titun ibere ati ki o han wọn.

Awọn awoṣe tuntun

Gbigba aṣẹ naa jẹ pataki ati pataki. O ko le ṣe iṣowo pizza ti o ko ba ni aṣẹ lati ta. Nitorinaa, eto naa bẹrẹ lati gba iṣẹ ṣiṣe - isunmọ lati ọdun 2012 si 2015. Lakoko yii, ọpọlọpọ awọn bulọọki oriṣiriṣi ti eto naa han, eyiti Emi yoo pe awọn modulu, ni idakeji si imọran ti iṣẹ tabi ọja. 

A module ni a ṣeto ti awọn iṣẹ ti o ti wa ni ìṣọkan nipa diẹ ninu awọn wọpọ owo afojusun. Ni akoko kanna, wọn wa ni ti ara ni ohun elo kanna.

Awọn modulu le pe ni awọn bulọọki eto. Fun apẹẹrẹ, eyi jẹ module ijabọ, awọn atọkun abojuto, olutọpa ounje ni ibi idana ounjẹ, aṣẹ. Iwọnyi jẹ gbogbo awọn atọkun olumulo ti o yatọ, diẹ ninu paapaa ni awọn aza wiwo oriṣiriṣi. Ni akoko kanna, ohun gbogbo wa laarin ilana ti ohun elo kan, ilana ṣiṣe kan. 

Tekinikali, awọn module won apẹrẹ bi Area (iru ero ani wà ni asp.net mojuto). Awọn faili lọtọ wa fun iwaju iwaju, awọn awoṣe, ati awọn kilasi oludari tiwọn. Bi abajade, eto naa ti yipada lati eyi ...

Itan-akọọlẹ ti Dodo IS Architecture: Monolith kutukutu

... sinu eyi:

Itan-akọọlẹ ti Dodo IS Architecture: Monolith kutukutu

Diẹ ninu awọn modulu ti wa ni imuse nipasẹ awọn aaye lọtọ (iṣẹ akanṣe), nitori iṣẹ ṣiṣe ti o yatọ patapata ati ni apakan nitori iyatọ diẹ, idagbasoke idojukọ diẹ sii. Eyi:

  • ojula - akọkọ ti ikede ojula dodopizza.ru.

  • Export: ikojọpọ awọn iroyin lati Dodo IS fun 1C. 

  • Personal - iroyin ti ara ẹni ti oṣiṣẹ. O ti ni idagbasoke lọtọ ati pe o ni aaye titẹsi tirẹ ati apẹrẹ lọtọ.

  • fs - ise agbese kan fun alejo awọn iṣiro. Nigbamii a gbe kuro lati ọdọ rẹ, gbigbe gbogbo awọn iṣiro si CDN Akamai. 

Awọn ohun amorindun iyokù wa ninu ohun elo BackOffice. 

Itan-akọọlẹ ti Dodo IS Architecture: Monolith kutukutu

Alaye orukọ:

  • Cashier - Onje cashier.

  • ShiftManager - awọn atọkun fun ipa “Oluṣakoso Shift”: awọn iṣiro iṣiṣẹ lori awọn tita pizzeria, agbara lati fi awọn ọja sinu atokọ iduro, yi aṣẹ pada.

  • OfficeManager - awọn atọkun fun “Oluṣakoso Pizzeria” ati awọn ipa “Franchisee”. Eyi ni awọn iṣẹ ti a gba fun eto pizzeria kan, awọn igbega ajeseku rẹ, gbigba ati ṣiṣẹ pẹlu awọn oṣiṣẹ, awọn ijabọ.

  • Awọn iboju ti gbogbo eniyan - awọn atọkun fun awọn TV ati awọn tabulẹti ti o rọ ni pizzerias. Awọn TV ṣe afihan awọn akojọ aṣayan, alaye ipolowo, ipo aṣẹ lori ifijiṣẹ. 

Wọn lo Layer iṣẹ ti o wọpọ, idinaki kilasi agbegbe Dodo.Core ti o wọpọ, ati ipilẹ ti o wọpọ. Nigba miiran wọn tun le ṣe itọsọna pẹlu awọn iyipada si ara wọn. Pẹlu awọn aaye kọọkan, gẹgẹbi dodopizza.ru tabi personal.dodopizza.ru, lọ si awọn iṣẹ gbogbogbo.

Nigbati awọn modulu tuntun ba han, a gbiyanju lati tun lo koodu iṣẹ ti a ṣẹda tẹlẹ, awọn ilana ti o fipamọ ati awọn tabili ni ibi ipamọ data si iwọn. 

Fun oye ti o dara julọ ti iwọn awọn modulu ti a ṣe ninu eto, eyi ni aworan kan lati ọdun 2012 pẹlu awọn ero idagbasoke:

Itan-akọọlẹ ti Dodo IS Architecture: Monolith kutukutu

Ni ọdun 2015, ohun gbogbo wa lori maapu ati paapaa diẹ sii wa ni iṣelọpọ.

  • Gbigba aṣẹ ti dagba si bulọọki lọtọ ti Ile-iṣẹ Olubasọrọ, nibiti aṣẹ ti gba nipasẹ oniṣẹ.

  • Awọn iboju ti gbogbo eniyan wa pẹlu awọn akojọ aṣayan ati alaye ti o wa ni pizzerias.

  • Ibi idana ounjẹ naa ni module ti o mu ifiranṣẹ ohun ṣiṣẹ laifọwọyi “Pisa Tuntun” nigbati aṣẹ tuntun ba de, ati tun ṣe risiti kan fun oluranse naa. Eyi jẹ irọrun awọn ilana ni ibi idana ounjẹ, gba awọn oṣiṣẹ laaye lati ma ṣe idamu nipasẹ nọmba nla ti awọn iṣẹ ti o rọrun.

  • Ẹka ifijiṣẹ naa di ibi isanwo Ifijiṣẹ lọtọ, nibiti a ti paṣẹ aṣẹ naa si Oluranse ti o ti gba ayipada tẹlẹ. Akoko iṣẹ rẹ ni a ṣe sinu akọọlẹ fun iṣiro isanwo isanwo. 

Ni afiwe, lati 2012 si 2015, diẹ sii ju awọn olupilẹṣẹ 10 han, awọn pizzerias 35 ṣii, gbe eto naa lọ si Romania ati pese sile fun ṣiṣi awọn iÿë ni Amẹrika. Awọn olupilẹṣẹ ko tun ṣe pẹlu gbogbo awọn iṣẹ ṣiṣe, ṣugbọn wọn pin si awọn ẹgbẹ. kọọkan specialized ni awọn oniwe-ara apa ti awọn eto. 

Isoro

Pẹlu nitori ti faaji (ṣugbọn kii ṣe nikan).

Idarudapọ ni ipilẹ

Ọkan mimọ jẹ rọrun. Iduroṣinṣin le ṣe aṣeyọri ninu rẹ, ati ni laibikita fun awọn irinṣẹ ti a ṣe sinu awọn apoti isura data ibatan. Ṣiṣẹ pẹlu rẹ faramọ ati irọrun, paapaa ti awọn tabili diẹ ba wa ati data kekere.

Ṣugbọn lori awọn ọdun 4 ti idagbasoke, data data ti jade lati ni awọn tabili 600, awọn ilana ti o fipamọ 1500, ọpọlọpọ eyiti o tun ni oye. Alas, awọn ilana ti o fipamọ ko mu anfani pupọ wa nigbati o n ṣiṣẹ pẹlu MySQL. Wọn ko ni ipamọ nipasẹ ipilẹ, ati pe o tọju ọgbọn inu wọn ṣe idiju idagbasoke ati yokokoro. Atunlo koodu jẹ tun soro.

Ọpọlọpọ awọn tabili ko ni awọn atọka to dara, ibikan, ni ilodi si, ọpọlọpọ awọn atọka wa, eyiti o jẹ ki o ṣoro lati fi sii. O jẹ dandan lati yipada nipa awọn tabili 20 - idunadura lati ṣẹda aṣẹ le gba to awọn aaya 3-5. 

Awọn data ninu awọn tabili je ko nigbagbogbo ninu awọn julọ yẹ fọọmu. Ibikan o jẹ pataki lati ṣe denormalisation. Apa kan ti data ti o gba nigbagbogbo wa ni iwe kan ni irisi ẹya XML, eyi pọ si akoko ipaniyan, gigun awọn ibeere ati idiju idagbasoke naa.

Si awọn tabili kanna ti a ṣe pupọ orisirisi awọn ibeere. Gbajumo tabili jiya paapa, bi tabili darukọ loke. bibere tabi awọn tabili Ile itaja Pizza. Wọn lo lati ṣafihan awọn atọkun iṣiṣẹ ni ibi idana ounjẹ, awọn itupalẹ. Aaye miiran kan si wọn (dodopizza.ru), nibiti ni eyikeyi akoko ti ọpọlọpọ awọn ibeere le wa lojiji. 

A ko ṣajọpọ data naa ati ọpọlọpọ awọn isiro mu ibi lori fly lilo awọn mimọ. Eyi ṣẹda awọn iṣiro ti ko wulo ati afikun fifuye. 

Nigbagbogbo koodu naa lọ si ibi ipamọ data nigbati ko le ṣe bẹ. Ibikan ko si awọn iṣẹ olopobobo ti o to, nibiti yoo jẹ pataki lati tan ibeere kan sinu ọpọlọpọ nipasẹ koodu lati le yara ati mu igbẹkẹle pọ si. 

Iṣọkan ati obfuscation ni koodu

Awọn modulu ti o yẹ ki o jẹ iduro fun apakan iṣowo wọn ko ṣe ni otitọ. Diẹ ninu wọn ni iṣiṣẹdapọ awọn iṣẹ fun awọn ipa. Fun apẹẹrẹ, olutaja agbegbe kan ti o ni iduro fun iṣẹ iṣowo nẹtiwọọki ni ilu rẹ ni lati lo mejeeji ni wiwo “Admin” (lati ṣẹda awọn igbega) ati wiwo “Office Manager” (lati wo ipa ti awọn igbega lori iṣowo). Nitoribẹẹ, inu awọn modulu mejeeji lo iṣẹ kanna ti o ṣiṣẹ pẹlu awọn igbega ajeseku.

Awọn iṣẹ (awọn kilasi laarin iṣẹ akanṣe nla monolithic kan) le pe ara wọn lati ṣe alekun data wọn.

Pẹlu awọn kilasi awoṣe funrararẹ ti o tọju data, iṣẹ ni awọn koodu ti a ti gbe jade otooto. Ibikan nibẹ wà constructors nipasẹ eyi ti o ti ṣee ṣe lati pato awọn ti a beere aaye. Ibikan yi ti a ṣe nipasẹ àkọsílẹ ini. Nitoribẹẹ, gbigba ati yiyipada data lati ibi ipamọ data yatọ. 

Awọn kannaa wà boya ninu awọn oludari tabi ni awọn kilasi iṣẹ. 

Iwọnyi dabi awọn ọran kekere, ṣugbọn wọn fa fifalẹ idagbasoke pupọ ati didara dinku, ti o yori si aisedeede ati awọn idun. 

Awọn complexity ti kan ti o tobi idagbasoke

Awọn iṣoro dide ni idagbasoke funrararẹ. O jẹ dandan lati ṣe awọn bulọọki oriṣiriṣi ti eto, ati ni afiwe. Ibamu awọn iwulo ti paati kọọkan sinu koodu ẹyọkan di nira siwaju sii. Ko rọrun lati gba ati wù gbogbo awọn paati ni akoko kanna. Ṣe afikun si eyi ni awọn idiwọn ni imọ-ẹrọ, pataki pẹlu n ṣakiyesi si ipilẹ ati iwaju. O jẹ dandan lati kọ jQuery silẹ si awọn ilana ipele giga, paapaa ni awọn ofin ti awọn iṣẹ alabara (aaye ayelujara).

Ni diẹ ninu awọn ẹya ti eto naa, awọn apoti isura infomesonu ti o dara julọ fun eyi le ṣee lo.. Fun apẹẹrẹ, nigbamii a ni ọran lilo ti gbigbe lati Redis si CosmosDB lati tọju agbọn aṣẹ kan. 

Awọn ẹgbẹ ati awọn olupilẹṣẹ ti o kopa ninu aaye wọn han gbangba fẹ ominira diẹ sii fun awọn iṣẹ wọn, mejeeji ni awọn ofin ti idagbasoke ati yiyi. Dapọ awọn ija, awọn ọran idasilẹ. Ti fun awọn olupilẹṣẹ 5 iṣoro yii ko ṣe pataki, lẹhinna pẹlu 10, ati paapaa diẹ sii pẹlu idagbasoke ti a pinnu, ohun gbogbo yoo di diẹ sii pataki. Ati siwaju ni lati jẹ idagbasoke ohun elo alagbeka kan (o bẹrẹ ni ọdun 2017, ati ni ọdun 2018 o jẹ isubu nla). 

Awọn ẹya oriṣiriṣi ti eto naa nilo awọn ipele iduroṣinṣin ti o yatọ, ṣugbọn nitori awọn lagbara Asopọmọra ti awọn eto, a ko le pese yi. Aṣiṣe kan ninu idagbasoke iṣẹ tuntun kan ninu igbimọ abojuto le ti waye daradara ni gbigba aṣẹ lori aaye naa, nitori pe koodu naa wọpọ ati atunlo, data data ati data tun jẹ kanna.

O ṣee ṣe yoo ṣee ṣe lati yago fun awọn aṣiṣe wọnyi ati awọn iṣoro laarin ilana ti iru faaji monolithic-modular: ṣe pipin ti ojuse, ṣe atunṣe koodu mejeeji ati data data, ya sọtọ awọn ipele ti ara wọn, ṣe atẹle didara ni gbogbo ọjọ. Ṣugbọn awọn ipinnu ayaworan ti a yan ati idojukọ lori imugboroja iyara ti iṣẹ ṣiṣe eto naa yori si awọn iṣoro ni awọn ofin ti iduroṣinṣin.

Bawo ni Agbara ti Ọkàn bulọọgi ṣe fi awọn iforukọsilẹ owo ni awọn ile ounjẹ

Ti idagba ti nẹtiwọọki pizzeria (ati fifuye) tẹsiwaju ni iyara kanna, lẹhinna lẹhin igba diẹ awọn isubu yoo jẹ iru pe eto naa ko ni dide. Daradara ṣe apejuwe awọn iṣoro ti a bẹrẹ si dojuko nipasẹ ọdun 2015, eyi ni iru itan kan. 

Ninu bulọọgi"Agbara okan"jẹ ẹrọ ailorukọ kan ti o fihan data lori wiwọle fun ọdun ti gbogbo nẹtiwọki. Ẹrọ ailorukọ naa wọle si API gbangba Dodo, eyiti o pese data yii. Iṣiro yii wa lọwọlọwọ ni http://dodopizzastory.com/. Ẹrọ ailorukọ naa han loju oju-iwe kọọkan o ṣe awọn ibeere lori aago ni gbogbo iṣẹju 20. Ibeere naa lọ si api.dodopizza.ru o beere:

  • awọn nọmba ti pizzerias ninu awọn nẹtiwọki;

  • owo nẹtiwọọki lapapọ lati ibẹrẹ ọdun;

  • wiwọle fun oni.

Ibeere fun awọn iṣiro lori owo-wiwọle lọ taara si ibi ipamọ data ati bẹrẹ ibeere data lori awọn aṣẹ, apapọ data lori fo ati fifun ni iye naa. 

Awọn tabili owo ni awọn ile ounjẹ lọ si tabili awọn aṣẹ kanna, ṣii atokọ ti awọn aṣẹ ti a gba fun oni, ati awọn aṣẹ tuntun ni a ṣafikun si. Awọn iforukọsilẹ owo ṣe awọn ibeere wọn ni gbogbo iṣẹju-aaya 5 tabi ni isọdọtun oju-iwe.

Àwòrán náà rí báyìí:

Itan-akọọlẹ ti Dodo IS Architecture: Monolith kutukutu

Ọkan isubu, Fyodor Ovchinnikov kowe kan gun ati ki o gbajumo article lori bulọọgi rẹ. Ọpọlọpọ eniyan wa si bulọọgi ati bẹrẹ lati ka ohun gbogbo daradara. Lakoko ti ọkọọkan awọn eniyan ti o wa n ka nkan naa, ẹrọ ailorukọ wiwọle ṣiṣẹ daradara ati beere API ni gbogbo iṣẹju 20.

API ti a npe ni ilana ti o fipamọ lati ṣe iṣiro apapọ gbogbo awọn ibere lati ibẹrẹ ọdun fun gbogbo awọn pizzerias ninu pq. Akopọ naa da lori tabili awọn aṣẹ, eyiti o jẹ olokiki pupọ. Gbogbo awọn tabili owo ti gbogbo awọn ile ounjẹ ṣiṣi ni akoko yẹn lọ si. Awọn tabili owo duro idahun, awọn aṣẹ ko gba. Wọn tun ko gba lati aaye naa, ko han lori olutọpa, oluṣakoso iyipada ko le rii wọn ni wiwo rẹ. 

Eyi kii ṣe itan nikan. Nipa isubu ti 2015, ni gbogbo ọjọ Jimọ ẹru lori eto jẹ pataki. Ni ọpọlọpọ igba a pa API ti gbogbo eniyan, ati ni ẹẹkan, a paapaa ni lati pa aaye naa, nitori ko si ohun ti o ṣe iranlọwọ. Paapaa atokọ ti awọn iṣẹ wa pẹlu aṣẹ tiipa labẹ awọn ẹru wuwo.

Lati isisiyi lọ, Ijakadi wa pẹlu awọn ẹru ati fun imuduro eto naa bẹrẹ (lati Igba Irẹdanu Ewe 2015 si Igba Irẹdanu Ewe 2018). Nigba naa ni o ṣẹlẹ"isubu nla". Siwaju sii, awọn ikuna tun waye nigbakan, diẹ ninu awọn ni itara pupọ, ṣugbọn akoko gbogbogbo ti aisedeede le ni bayi ni a kà pe o ti kọja.

Dekun owo idagbasoke

Kini idi ti ko le ṣee ṣe lẹsẹkẹsẹ? Kan wo awọn shatti wọnyi.

Itan-akọọlẹ ti Dodo IS Architecture: Monolith kutukutu

Paapaa ni ọdun 2014-2015 ṣiṣi silẹ ni Romania ati ṣiṣi ni AMẸRIKA ti murasilẹ.

Nẹtiwọọki naa dagba ni kiakia, awọn orilẹ-ede titun ti ṣii, awọn ọna kika tuntun ti pizzerias han, fun apẹẹrẹ, pizzeria ti ṣii ni agbala ounjẹ. Gbogbo eyi nilo akiyesi pataki ni pataki si imugboroja ti awọn iṣẹ Dodo IS. Laisi gbogbo awọn iṣẹ wọnyi, laisi ipasẹ ni ibi idana ounjẹ, ṣiṣe iṣiro fun awọn ọja ati awọn adanu ninu eto, iṣafihan ipinfunni aṣẹ ni gbongan ile-ẹjọ ounjẹ, a ko le sọrọ nipa faaji “tọ” ati ọna “tọ” si idagbasoke bayi.

Idiwo miiran si atunyẹwo akoko ti faaji ati akiyesi gbogbogbo si awọn iṣoro imọ-ẹrọ ni aawọ ti ọdun 2014. Awọn nkan bii eyi kọlu lile lori awọn aye fun awọn ẹgbẹ lati dagba, pataki fun iṣowo ọdọ bii Dodo Pizza.

Awọn ọna ojutu ti o ṣe iranlọwọ

Awọn iṣoro nilo awọn idahun. Ni aṣa, awọn ojutu le pin si awọn ẹgbẹ meji:

  • Awọn ti o yara ti o pa ina kuro ati fun aaye kekere ti ailewu ati ra akoko wa lati yipada.

  • Eto eto ati, nitorina, gun. Ṣiṣe atunṣe ti nọmba awọn modulu, pipin ti faaji monolithic sinu awọn iṣẹ lọtọ (ọpọlọpọ ninu wọn kii ṣe gbogbo micro, ṣugbọn dipo awọn iṣẹ Makiro, ati pe nkankan wa nipa rẹ. Andrey Morevskiy ká Iroyin). 

Akojọ gbigbẹ ti awọn iyipada iyara jẹ bi atẹle:

Asekale soke mimọ titunto si

Nitoribẹẹ, ohun akọkọ ti a ṣe lati koju awọn ẹru ni lati mu agbara olupin naa pọ si. Eyi ni a ṣe fun data data titunto si ati fun awọn olupin wẹẹbu. Alas, eyi ṣee ṣe nikan titi di opin kan, lẹhinna o di gbowolori pupọ.

Lati ọdun 2014, a ti lọ si Azure, a tun kowe nipa koko yii ni akoko yẹn ninu nkan naa “Bawo ni Dodo Pizza Ṣe Pese Pizza Lilo Awọsanma Azure Microsoft". Ṣugbọn lẹhin lẹsẹsẹ awọn ilọsiwaju ninu olupin fun ipilẹ, wọn wa lodi si idiyele naa. 

Awọn ẹda ipilẹ fun kika

Awọn ẹda meji ni a ṣe fun ipilẹ:

ReadReplica fun itọkasi ibeere. O ti wa ni lo lati ka awọn ilana, iru, ilu, ita, pizzeria, awọn ọja (laiyara yi ašẹ), ati ninu awon atọkun ibi ti a kekere idaduro jẹ itẹwọgbà. 2 ti awọn ẹda wọnyi wa, a ṣe idaniloju wiwa wọn ni ọna kanna bi awọn oluwa.

ReadReplica fun Iroyin Ibeere. Ipamọ data yii ni wiwa kekere, ṣugbọn gbogbo awọn ijabọ lọ si. Jẹ ki wọn ni awọn ibeere wuwo fun awọn iṣiro data nla, ṣugbọn wọn ko ni ipa lori data akọkọ ati awọn atọkun iṣiṣẹ. 

Awọn caches ni koodu

Ko si awọn kaṣe nibikibi ninu koodu (ni gbogbo). Eyi yori si afikun, kii ṣe pataki nigbagbogbo, awọn ibeere si ibi ipamọ data ti kojọpọ. Awọn caches jẹ akọkọ mejeeji ni iranti ati lori iṣẹ kaṣe ita, iyẹn Redis. Ohun gbogbo ti bajẹ nipasẹ akoko, awọn eto ti wa ni pato ninu koodu naa.

Multiple backend apèsè

Igbẹhin ohun elo tun nilo lati ni iwọn lati mu awọn iwọn iṣẹ pọ si. O jẹ dandan lati ṣe iṣupọ kan lati iis-server kan. A ti tun eto igba elo lati iranti to RedisCache, eyi ti o mu ki o ṣee ṣe lati ṣe orisirisi awọn olupin sile kan ti o rọrun fifuye iwontunwonsi pẹlu yika Robin. Ni akọkọ, a lo Redis kanna bi fun awọn caches, lẹhinna o pin si ọpọlọpọ. 

Bi abajade, faaji ti di idiju diẹ sii…

Itan-akọọlẹ ti Dodo IS Architecture: Monolith kutukutu

… ṣugbọn diẹ ninu awọn ẹdọfu ti yọ kuro.

Ati lẹhinna o jẹ dandan lati tun awọn paati ti kojọpọ, eyiti a ṣe. A yoo sọrọ nipa eyi ni apakan ti nbọ.

orisun: www.habr.com

Fi ọrọìwòye kun