Itan-akọọlẹ ti Dodo IS Architecture: Ọna Ọfiisi Pada

Habr n yi aye pada. A ti n ṣe bulọọgi fun ọdun kan ni bayi. Ní nǹkan bí oṣù mẹ́fà sẹ́yìn, a rí àbájáde tó bọ́gbọ́n mu láti ọ̀dọ̀ Khabrovites pé: “Dodo, o sọ níbi gbogbo pé o ní ẹ̀rọ ìṣiṣẹ́ tirẹ̀. Ati kini eto yii? Ati kilode ti pq pizza nilo rẹ?

A joko, ronu ati rii pe o tọ. A gbiyanju lati ṣe alaye ohun gbogbo lori awọn ika ọwọ wa, ṣugbọn o jade ni awọn ege ti o ya ati pe ko si ibi ti o wa ni apejuwe pipe ti eto naa. Bayi bẹrẹ irin-ajo gigun kan ti gbigba alaye, wiwa awọn onkọwe ati kikọ lẹsẹsẹ awọn nkan nipa Dodo IS. Jeka lo!

Awọn iyin: O ṣeun fun pinpin esi rẹ pẹlu wa. O ṣeun fun u, a nipari ṣe apejuwe eto naa, ṣajọ radar imọ-ẹrọ kan ati pe yoo jade laipẹ apejuwe nla ti awọn ilana wa. Laisi iwọ, a yoo ti joko nibẹ fun ọdun 5 miiran.

Itan-akọọlẹ ti Dodo IS Architecture: Ọna Ọfiisi Pada

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

  1. Tete monolith ni Dodo IS (2011-2015). (Ni ilọsiwaju...)
  2. Ona ọfiisi ẹhin: awọn ipilẹ lọtọ ati ọkọ akero. (o wa nibi)
  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...)

Ti o ba nifẹ lati mọ nkan miiran - kọ ninu awọn asọye.

Ero lori apejuwe chronological lati onkowe
Mo ṣe apejọ nigbagbogbo fun awọn oṣiṣẹ tuntun lori koko-ọrọ “Iṣeto eto”. A pe ni “Intoro si Dodo IS Architecture” ati pe o jẹ apakan ti ilana gbigbe fun awọn olupilẹṣẹ tuntun. Sisọ ni fọọmu kan tabi omiiran nipa faaji wa, nipa awọn ẹya ara ẹrọ rẹ, Mo ti bi ọna itan kan si apejuwe naa.

Ni aṣa, a wo eto naa gẹgẹbi ipilẹ awọn paati (imọ-ẹrọ tabi ipele ti o ga julọ), awọn modulu iṣowo ti o nlo pẹlu ara wọn lati ṣaṣeyọri diẹ ninu ibi-afẹde. Ati pe ti iru wiwo ba jẹ idalare fun apẹrẹ, lẹhinna ko dara fun apejuwe ati oye. Awọn idi pupọ lo wa nibi:

  • Otitọ yatọ si ohun ti o wa lori iwe. Ko ohun gbogbo ṣiṣẹ jade bi a ti pinnu. Ati pe a nifẹ si bi o ti yipada ati ṣiṣẹ.
  • Dédé igbejade ti alaye. Ni otitọ, o le lọ ni ọna-ọjọ lati ibẹrẹ si ipo lọwọlọwọ.
  • Lati rọrun si eka. Kii ṣe ni gbogbo agbaye, ṣugbọn ninu ọran wa o jẹ. Awọn faaji gbe lati awọn isunmọ ti o rọrun si awọn eka diẹ sii. Nigbagbogbo nipasẹ ilolura, awọn iṣoro ti iyara imuse ati iduroṣinṣin ni a yanju, ati awọn dosinni ti awọn ohun-ini miiran lati atokọ ti awọn ibeere ti kii ṣe iṣẹ (Nibi sọ daradara nipa iyatọ idiju pẹlu awọn ibeere miiran).

Ni 2011, Dodo IS faaji dabi eyi:

Itan-akọọlẹ ti Dodo IS Architecture: Ọna Ọfiisi Pada

Ni ọdun 2020, o ti di idiju diẹ ati pe o ti dabi eyi:

Itan-akọọlẹ ti Dodo IS Architecture: Ọna Ọfiisi Pada

Bawo ni itankalẹ yii ṣe waye? Kini idi ti awọn ẹya oriṣiriṣi ti eto naa nilo? Awọn ipinnu ayaworan wo ni a ṣe ati kilode? Ẹ jẹ́ ká wádìí nínú ọ̀wọ́ àpilẹ̀kọ yìí.

Awọn iṣoro akọkọ ti 2016: kilode ti awọn iṣẹ yẹ ki o lọ kuro ni monolith

Awọn nkan akọkọ lati inu iyipo yoo jẹ nipa awọn iṣẹ ti o jẹ akọkọ lati yapa kuro ninu monolith. Lati fi ọ si ipo, Emi yoo sọ fun ọ kini awọn iṣoro ti a ni ninu eto naa ni ibẹrẹ ọdun 2016, pe a ni lati wo pẹlu iyapa awọn iṣẹ.

Aaye data MySql kan, ninu eyiti gbogbo awọn ohun elo ti o wa ni akoko yẹn ni Dodo IS ko awọn igbasilẹ wọn. Awọn abajade ni:

  • Ẹru ti o wuwo (pẹlu 85% ti awọn ibeere ti a ṣe iṣiro fun kika).
  • Ipilẹ ti dagba. Nitori eyi, idiyele ati atilẹyin rẹ di iṣoro.
  • Nikan ojuami ti ikuna. Ti ohun elo kan ba kọ si ibi ipamọ data lojiji bẹrẹ lati ṣe diẹ sii ni itara, lẹhinna awọn ohun elo miiran ro lori ara wọn.
  • Ailagbara ni ibi ipamọ ati awọn ibeere. Nigbagbogbo data ti wa ni ipamọ ni diẹ ninu eto ti o rọrun fun diẹ ninu awọn oju iṣẹlẹ ṣugbọn ko dara fun awọn miiran. Awọn atọka titẹ diẹ ninu awọn iṣẹ ṣiṣe, ṣugbọn o le fa fifalẹ awọn miiran.
  • Diẹ ninu awọn iṣoro naa ni a yọkuro nipasẹ awọn kaṣe ti a ṣe ni iyara ati awọn ẹda kika si awọn ipilẹ (eyi yoo jẹ nkan lọtọ), ṣugbọn wọn gba wọn laaye nikan lati ni akoko ati pe wọn ko yanju iṣoro naa ni ipilẹ.

Iṣoro naa ni wiwa ti monolith funrararẹ. Awọn abajade ni:

  • Nikan ati toje tu.
  • Iṣoro ni idagbasoke apapọ ti nọmba nla ti eniyan.
  • Ailagbara lati mu awọn imọ-ẹrọ titun wa, awọn ilana titun ati awọn ile-ikawe.

Awọn iṣoro pẹlu ipilẹ ati monolith ti ṣe apejuwe ni ọpọlọpọ igba, fun apẹẹrẹ, ni ipo ti awọn ipadanu ni ibẹrẹ 2018 (Jẹ bi Munch, tabi awọn ọrọ diẹ nipa gbese imọ-ẹrọ, Ojo ti Dodo WA duro. Asynchronous akosile и Itan ti ẹiyẹ Dodo lati idile Phoenix. Isubu Nla ti Dodo NI), nitorina Emi kii yoo gbe pupọ. Jẹ ki n kan sọ pe a fẹ lati fun ni irọrun diẹ sii nigbati o ba n dagbasoke awọn iṣẹ. Ni akọkọ, eyi kan awọn ti o jẹ ti kojọpọ julọ ati gbongbo ninu gbogbo eto - Auth ati Tracker.

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

Abala lilọ

  1. Ilana Monolith 2016
  2. Bibẹrẹ lati Unload Monolith: Auth ati Iyapa Olutọpa
  3. Kini Auth ṣe?
  4. Nibo ni awọn ẹru naa wa lati?
  5. Unloading Auth
  6. Kini Tracker ṣe?
  7. Nibo ni awọn ẹru naa wa lati?
  8. Unloading Tracker

Ilana Monolith 2016

Eyi ni awọn bulọọki akọkọ ti Dodo IS 2016 monolith, ati pe ni isalẹ jẹ iwe-kikọ ti awọn iṣẹ-ṣiṣe akọkọ wọn.
Itan-akọọlẹ ti Dodo IS Architecture: Ọna Ọfiisi Pada
Ifijiṣẹ Cashier. Iṣiro fun awọn ojiṣẹ, fifun awọn aṣẹ si awọn ojiṣẹ.
Ile-iṣẹ olubasọrọ. Gbigba awọn aṣẹ nipasẹ oniṣẹ ẹrọ.
ojula. Awọn oju opo wẹẹbu wa (dodopizza.ru, dodopizza.co.uk, dodopizza.by, ati bẹbẹ lọ).
Auth. Iwe-aṣẹ ati iṣẹ ijẹrisi fun ọfiisi ẹhin.
olutọpa. Bere fun olutọpa ni ibi idana ounjẹ. Iṣẹ fun siṣamisi awọn ipo imurasilẹ nigbati o ngbaradi aṣẹ kan.
Owo Iduro ti awọn Restaurant. Gbigba awọn aṣẹ ni ile ounjẹ kan, awọn atọkun cashier.
Export. Ikojọpọ awọn iroyin ni 1C fun iṣiro.
Awọn iwifunni ati awọn risiti. Awọn pipaṣẹ ohun ni ibi idana ounjẹ (fun apẹẹrẹ, “Pizza tuntun ti de”) + Titẹ iwe risiti fun awọn ojiṣẹ.
Yi lọ yi bọ Manager. Awọn atọkun fun iṣẹ ti oluṣakoso iyipada: atokọ ti awọn aṣẹ, awọn aworan iṣẹ, gbigbe awọn oṣiṣẹ si iyipada.
Alakoso ọfiisi. Awọn atọkun fun iṣẹ ti franchisee ati oluṣakoso: gbigba awọn oṣiṣẹ, awọn ijabọ lori iṣẹ ti pizzeria.
Scoreboard ounjẹ. Ifihan akojọ aṣayan lori awọn TV ni pizzerias.
abojuto. Eto ni pizzeria kan pato: akojọ aṣayan, awọn idiyele, ṣiṣe iṣiro, awọn koodu ipolowo, awọn igbega, awọn asia oju opo wẹẹbu, ati bẹbẹ lọ.
Account ti ara ẹni ti oṣiṣẹ. Awọn iṣeto iṣẹ ti awọn oṣiṣẹ, alaye nipa awọn oṣiṣẹ.
Idana iwuri Board. Iboju lọtọ ti o kọorí ni ibi idana ounjẹ ati ṣafihan iyara ti awọn oluṣe pizza.
Communication. Fifiranṣẹ SMS ati imeeli.
Ibi ipamọ faili. Iṣẹ tirẹ fun gbigba ati fifun awọn faili aimi.

Awọn igbiyanju akọkọ lati yanju awọn iṣoro naa ṣe iranlọwọ fun wa, ṣugbọn wọn jẹ isinmi igba diẹ. Wọn ko di awọn solusan eto, nitorinaa o han gbangba pe ohun kan ni lati ṣe pẹlu awọn ipilẹ. Fun apẹẹrẹ, lati pin data gbogbogbo si ọpọlọpọ awọn amọja diẹ sii.

Bibẹrẹ lati Unload Monolith: Auth ati Iyapa Olutọpa

Awọn iṣẹ akọkọ ti o gbasilẹ ati ka lati ibi ipamọ data diẹ sii ju awọn miiran lọ:

  1. Òótọ́. Iwe-aṣẹ ati iṣẹ ijẹrisi fun ọfiisi ẹhin.
  2. Olutọpa. Bere fun olutọpa ni ibi idana ounjẹ. Iṣẹ fun siṣamisi awọn ipo imurasilẹ nigbati o ngbaradi aṣẹ kan.

Kini Auth ṣe?

Auth jẹ iṣẹ nipasẹ eyiti awọn olumulo wọle si ọfiisi ẹhin (ọna ẹnu-ọna ominira lọtọ ni ẹgbẹ alabara). O tun pe ni ibeere lati rii daju pe awọn ẹtọ iwọle ti o nilo wa ati pe awọn ẹtọ wọnyi ko yipada lati iwọle ti o kẹhin. Nipasẹ rẹ, awọn ẹrọ wọ inu pizzeria.

Fun apẹẹrẹ, a fẹ ṣii ifihan kan pẹlu awọn ipo ti awọn aṣẹ ti o pari lori TV ti o wa ni gbongan. Lẹhinna a ṣii auth.dodopizza.ru, yan “Wọle bi ẹrọ kan”, koodu kan han ti o le tẹ sii ni oju-iwe pataki kan lori kọnputa oluṣakoso iyipada, n tọka iru ẹrọ (ẹrọ). TV funrararẹ yoo yipada si wiwo ti o fẹ ti pizzeria rẹ ati bẹrẹ lati ṣafihan awọn orukọ ti awọn alabara ti awọn aṣẹ ti ṣetan nibẹ.

Itan-akọọlẹ ti Dodo IS Architecture: Ọna Ọfiisi Pada

Nibo ni awọn ẹru naa wa lati?

Olukuluku olumulo ti ọfiisi ẹhin lọ si ibi ipamọ data, si tabili olumulo fun ibeere kọọkan, fa olumulo jade nipasẹ ibeere sql ati ṣayẹwo ti o ba ni iwọle pataki ati awọn ẹtọ si oju-iwe yii.

Ọkọọkan awọn ẹrọ ṣe kanna nikan pẹlu tabili ẹrọ, ṣayẹwo ipa rẹ ati iwọle rẹ. Nọmba nla ti awọn ibeere si aaye data titunto si nyorisi ikojọpọ rẹ ati egbin awọn orisun ti ibi ipamọ data ti o wọpọ fun awọn iṣẹ wọnyi.

Unloading Auth

Auth ni agbegbe ti o ya sọtọ, iyẹn ni, data nipa awọn olumulo, awọn wiwọle tabi awọn ẹrọ wọ inu iṣẹ naa (fun akoko yii) o si wa nibẹ. Ti ẹnikan ba nilo wọn, lẹhinna oun yoo lọ si iṣẹ yii fun data.

WA. Ilana atilẹba ti iṣẹ jẹ bi atẹle:

Itan-akọọlẹ ti Dodo IS Architecture: Ọna Ọfiisi Pada

Emi yoo fẹ lati ṣalaye diẹ bi o ti ṣiṣẹ:

  1. Ibeere lati ita wa si ẹhin (Asp.Net MVC wa), mu kuki igba kan wa, eyiti o lo lati gba data igba lati Redis (1). O ni alaye nipa awọn iraye si, ati lẹhinna iraye si oludari wa ni sisi (3,4), tabi rara.
  2. Ti ko ba si iwọle, o nilo lati lọ nipasẹ ilana aṣẹ. Nibi, fun ayedero, o han bi apakan ti ọna ni abuda kanna, botilẹjẹpe o jẹ iyipada si oju-iwe iwọle. Ninu ọran ti oju iṣẹlẹ ti o dara, a yoo gba igba ti o ti pari ni deede ati lọ si Oluṣakoso Backoffice.
  3. Ti data ba wa, lẹhinna o nilo lati ṣayẹwo fun ibaramu ninu aaye data olumulo. Njẹ ipa rẹ ti yipada, ko yẹ ki o gba laaye ni oju-iwe ni bayi? Ni ọran yii, lẹhin gbigba igba (1), o nilo lati lọ taara si ibi ipamọ data ki o ṣayẹwo iraye si olumulo nipa lilo Layer kannaa ijẹrisi (2). Nigbamii, boya si oju-iwe iwọle, tabi lọ si oludari. Iru kan ti o rọrun eto, sugbon ko oyimbo boṣewa.
  4. Ti gbogbo awọn ilana ba ti kọja, lẹhinna a fo siwaju sii ni imọran ni awọn oludari ati awọn ọna.

Awọn data olumulo ti yapa si gbogbo data miiran, o wa ni ipamọ sinu tabili ẹgbẹ ọtọtọ, awọn iṣẹ lati inu Layer kannaa AuthService le di awọn ọna api daradara. Awọn aala agbegbe jẹ asọye ni kedere: awọn olumulo, awọn ipa wọn, data iraye si, fifunni ati fifagilee iwọle. Ohun gbogbo dabi pe o le mu jade ni iṣẹ lọtọ.

DI. Nitorina wọn ṣe:

Itan-akọọlẹ ti Dodo IS Architecture: Ọna Ọfiisi Pada

Yi ona ni o ni awọn nọmba kan ti isoro. Fun apẹẹrẹ, pipe ọna inu ilana kan kii ṣe bakanna bi pipe iṣẹ ita nipasẹ http. Lairi, igbẹkẹle, iduroṣinṣin, akoyawo ti iṣiṣẹ jẹ iyatọ patapata. Andrey Morevskiy sọ ni alaye diẹ sii nipa iru awọn iṣoro ninu ijabọ rẹ. "Awọn iboji 50 ti Awọn iṣẹ Micro".

Iṣẹ ijẹrisi ati, pẹlu rẹ, iṣẹ ẹrọ ni a lo fun ọfiisi ẹhin, iyẹn ni, fun awọn iṣẹ ati awọn atọkun ti a lo ninu iṣelọpọ. Ijeri fun awọn iṣẹ alabara (bii oju opo wẹẹbu kan tabi ohun elo alagbeka) waye lọtọ laisi lilo Auth. Iyapa naa gba to ọdun kan, ati ni bayi a tun n ṣe pẹlu koko yii, gbigbe eto naa si awọn iṣẹ ijẹrisi tuntun (pẹlu awọn ilana boṣewa).

Kini idi ti iyapa naa ṣe pẹ to bẹ?
Awọn iṣoro pupọ wa ni ọna ti o fa fifalẹ wa:

  1. A fẹ lati gbe olumulo, ẹrọ, ati data ijẹrisi lati awọn apoti isura infomesonu ti orilẹ-ede si ọkan. Lati ṣe eyi, a ni lati tumọ gbogbo awọn tabili ati lilo lati idamọ int si idamọ UUId agbaye (laipe tun ṣe koodu yii Roman Bukin "Uuid - itan nla ti eto kekere kan" ati ìmọ orisun ise agbese Awọn ipilẹṣẹ). Titoju data olumulo (niwon o jẹ alaye ti ara ẹni) ni awọn idiwọn rẹ ati fun diẹ ninu awọn orilẹ-ede o jẹ dandan lati tọju wọn lọtọ. Ṣugbọn id agbaye ti olumulo gbọdọ jẹ.
  2. Ọpọlọpọ awọn tabili ninu aaye data ni alaye iṣayẹwo nipa olumulo ti o ṣe iṣẹ naa. Eyi nilo ilana afikun fun aitasera.
  3. Lẹhin ẹda ti awọn iṣẹ api, akoko gigun ati mimu wa ti iyipada si eto miiran. Yipada ni lati jẹ ailoju fun awọn olumulo ati iṣẹ afọwọṣe ti o nilo.

Eto iforukọsilẹ ẹrọ ni pizzeria:

Itan-akọọlẹ ti Dodo IS Architecture: Ọna Ọfiisi Pada

faaji gbogbogbo lẹhin isediwon ti Auth ati Awọn ẹrọ iṣẹ:

Itan-akọọlẹ ti Dodo IS Architecture: Ọna Ọfiisi Pada

Daakọ. Fun 2020, a n ṣiṣẹ lori ẹya tuntun ti Auth, eyiti o da lori boṣewa aṣẹ aṣẹ OAuth 2.0. Iwọnwọn yii jẹ idiju pupọ, ṣugbọn o wulo fun idagbasoke iṣẹ-ifọwọsi nipasẹ-kọja. Ninu nkan naa "Awọn arekereke ti aṣẹ: Akopọ ti imọ-ẹrọ OAuth 2.0»A Alexey Chernyaev gbiyanju lati sọ nipa boṣewa ni irọrun ati kedere bi o ti ṣee ṣe ki o fi akoko pamọ lori kikọ rẹ.

Kini Tracker ṣe?

Bayi nipa keji ti awọn iṣẹ ti kojọpọ. Olutọpa naa ṣe ipa meji:

  • Ni apa kan, iṣẹ-ṣiṣe rẹ ni lati ṣafihan awọn oṣiṣẹ ni ibi idana kini awọn aṣẹ ti n ṣiṣẹ lọwọlọwọ, awọn ọja wo ni o nilo lati jinna ni bayi.
  • Ni apa keji, lati ṣe digitize gbogbo awọn ilana ni ibi idana ounjẹ.

Itan-akọọlẹ ti Dodo IS Architecture: Ọna Ọfiisi Pada

Nigbati ọja tuntun ba han ni aṣẹ (fun apẹẹrẹ, pizza), o lọ si ibudo olutọpa Rolling. Ni ibudo yii, oluṣe pizza kan wa ti o gba bun kan ti iwọn ti o nilo ati yiyi jade, lẹhin eyi o ṣe akiyesi lori tabulẹti olutọpa pe o ti pari iṣẹ-ṣiṣe rẹ ati gbe ipilẹ iyẹfun ti yiyi si ibudo atẹle - “Ibẹrẹ” .

Nibe, oluṣe pizza ti o tẹle ti o kun pizza, lẹhinna ṣe akiyesi lori tabulẹti pe o ti pari iṣẹ-ṣiṣe rẹ ti o si fi pizza sinu adiro (eyi tun jẹ aaye ti o yatọ ti o gbọdọ ṣe akiyesi lori tabulẹti). Iru eto bayi wa lati ibere pepe ni Dodo ati lati ibere pepe ti aye Dodo IS. O faye gba o lati ni kikun orin ati digitize gbogbo awọn iṣowo. Ni afikun, olutọpa ni imọran bi o ṣe le ṣe ọja kan pato, ṣe itọsọna iru ọja kọọkan ni ibamu si awọn ero iṣelọpọ rẹ, tọju akoko sise to dara julọ fun ọja naa, ati tọpa gbogbo awọn iṣẹ ṣiṣe lori ọja naa.

Itan-akọọlẹ ti Dodo IS Architecture: Ọna Ọfiisi PadaEyi ni bii iboju ti tabulẹti ṣe dabi ni ibudo ti olutọpa "Raskatka"

Nibo ni awọn ẹru naa wa lati?

Ọkọọkan awọn pizzerias ni awọn tabulẹti bii marun pẹlu olutọpa kan. Ni ọdun 2016, a ni diẹ sii ju awọn pizzerias 100 (ati ni bayi diẹ sii ju 600). Ọkọọkan awọn tabulẹti ṣe ibeere si ẹhin lẹẹkan ni gbogbo iṣẹju-aaya 10 ati yọkuro data lati tabili aṣẹ (isopọ pẹlu alabara ati adirẹsi), akopọ aṣẹ (isopọ pẹlu ọja ati itọkasi iye), tabili iṣiro iwuri (awọn akoko titẹ ti wa ni itopase ninu rẹ). Nigbati oluṣe pizza ba tẹ ọja kan lori olutọpa, awọn titẹ sii ni gbogbo awọn tabili wọnyi ti ni imudojuiwọn. Tabili aṣẹ jẹ gbogbogbo, o tun ni awọn ifibọ nigba gbigba aṣẹ, awọn imudojuiwọn lati awọn ẹya miiran ti eto ati ọpọlọpọ awọn kika, fun apẹẹrẹ, lori TV ti o kọorí ni pizzeria ati ṣafihan awọn aṣẹ ti o pari si awọn alabara.

Lakoko akoko Ijakadi pẹlu awọn ẹru, nigbati ohun gbogbo ati ohun gbogbo ti wa ni ipamọ ati gbe lọ si ẹda asynchronous ti ipilẹ, awọn iṣẹ wọnyi pẹlu olutọpa tẹsiwaju lati lọ si ipilẹ titunto si. Ko yẹ ki o jẹ aisun eyikeyi, data yẹ ki o wa ni imudojuiwọn, ti amuṣiṣẹpọ ko jẹ itẹwẹgba.

Pẹlupẹlu, aini awọn tabili ati awọn atọka ti ara wọn ko gba kikọ awọn ibeere kan pato diẹ sii ti a ṣe deede fun lilo wọn. Fun apẹẹrẹ, o le jẹ daradara fun olutọpa lati ni itọka fun pizzeria lori tabili aṣẹ. Nigbagbogbo a yọ awọn aṣẹ pizzeria kuro lati ibi ipamọ data olutọpa. Ni akoko kanna, fun gbigba aṣẹ kan, kii ṣe pataki iru pizzeria ti o ṣubu sinu, o ṣe pataki diẹ sii ti alabara ṣe aṣẹ yii. Ati pe o tumọ si pe atọka lori alabara jẹ pataki. Ko tun ṣe pataki fun olutọpa lati tọju id ti iwe-ẹri ti a tẹjade tabi awọn ipolowo ajeseku ti o ni nkan ṣe pẹlu aṣẹ ni tabili aṣẹ. Alaye yii kii ṣe iwulo si iṣẹ olutọpa wa. Ninu ibi ipamọ data monolithic ti o wọpọ, awọn tabili le jẹ adehun laarin gbogbo awọn olumulo. Eyi jẹ ọkan ninu awọn iṣoro atilẹba.

WA. Atilẹba faaji ni:

Itan-akọọlẹ ti Dodo IS Architecture: Ọna Ọfiisi Pada

Paapaa lẹhin ti o yapa si awọn ilana lọtọ, pupọ julọ ipilẹ koodu wa wọpọ fun awọn iṣẹ oriṣiriṣi. Ohun gbogbo ti o wa ni isalẹ awọn oludari jẹ ẹyọkan ati gbe ni ibi ipamọ kanna. A lo awọn ọna ti o wọpọ ti awọn iṣẹ, awọn ibi ipamọ, ipilẹ ti o wọpọ, ninu eyiti awọn tabili ti o wọpọ dubulẹ.

Unloading Tracker

Iṣoro akọkọ pẹlu olutọpa ni pe data gbọdọ wa ni mimuuṣiṣẹpọ laarin oriṣiriṣi awọn apoti isura infomesonu. Eyi tun jẹ iyatọ akọkọ rẹ lati iyapa ti iṣẹ Auth, aṣẹ ati ipo rẹ le yipada ati pe o yẹ ki o ṣafihan ni awọn iṣẹ oriṣiriṣi.

A gba aṣẹ ni ibi isanwo Ile ounjẹ (eyi jẹ iṣẹ kan), o wa ni ipamọ sinu ibi ipamọ data ni ipo “Ti gba”. Lẹhin iyẹn, o yẹ ki o lọ si olutọpa, nibiti yoo yi ipo rẹ pada ni ọpọlọpọ igba diẹ sii: lati “Ibi idana” si “Packed”. Ni akoko kanna, diẹ ninu awọn ipa ita lati Cashier tabi wiwo Oluṣakoso Shift le waye pẹlu aṣẹ naa. Emi yoo fun awọn ipo aṣẹ pẹlu apejuwe wọn ninu tabili:

Itan-akọọlẹ ti Dodo IS Architecture: Ọna Ọfiisi Pada
Ilana fun iyipada awọn ipo aṣẹ dabi eyi:

Itan-akọọlẹ ti Dodo IS Architecture: Ọna Ọfiisi Pada

Awọn ipo yipada laarin awọn ọna ṣiṣe oriṣiriṣi. Ati pe nibi olutọpa kii ṣe eto ikẹhin ninu eyiti data ti wa ni pipade. A ti rii ọpọlọpọ awọn ọna ti o ṣeeṣe fun ipin ninu iru ọran:

  1. A ṣe idojukọ gbogbo awọn iṣe aṣẹ ni iṣẹ kan. Ninu ọran wa, aṣayan yii nilo iṣẹ pupọ lati ṣiṣẹ pẹlu aṣẹ naa. Ti a ba duro si i, a yoo gba monolith keji. A ko ni yanju iṣoro naa.
  2. Ọkan eto ṣe ipe si miiran. Awọn keji aṣayan jẹ tẹlẹ diẹ awon. Ṣugbọn pẹlu rẹ, awọn ẹwọn awọn ipe ṣee ṣe (cascading ikuna), Asopọmọra ti awọn paati jẹ ti o ga, o nira sii lati ṣakoso.
  3. A ṣeto awọn iṣẹlẹ, ati iṣẹ kọọkan ṣe ibasọrọ pẹlu miiran nipasẹ awọn iṣẹlẹ wọnyi. Bi abajade, o jẹ aṣayan kẹta ti a yan, gẹgẹbi eyiti gbogbo awọn iṣẹ bẹrẹ lati ṣe paṣipaarọ awọn iṣẹlẹ pẹlu ara wọn.

Otitọ ti a yan aṣayan kẹta tumọ si pe olutọpa yoo ni ibi ipamọ data tirẹ, ati fun iyipada kọọkan ninu aṣẹ, yoo firanṣẹ iṣẹlẹ kan nipa eyi, eyiti awọn iṣẹ miiran ṣe alabapin ati eyiti o tun ṣubu sinu aaye data oluwa. Lati ṣe eyi, a nilo iṣẹ kan ti yoo rii daju ifijiṣẹ awọn ifiranṣẹ laarin awọn iṣẹ.

Ni akoko yẹn, a ti ni RabbitMQ tẹlẹ ninu akopọ, nitorinaa ipinnu ikẹhin lati lo bi alagbata ifiranṣẹ. Aworan atọka naa fihan iyipada ti aṣẹ lati ọdọ Cashier Ile ounjẹ nipasẹ Olutọpa, nibiti o ti yipada ipo rẹ ati ifihan rẹ lori wiwo Awọn aṣẹ Alakoso. DI:

Itan-akọọlẹ ti Dodo IS Architecture: Ọna Ọfiisi Pada

Paṣẹ ona igbese nipa igbese
Ona ibere bẹrẹ ni ọkan ninu awọn iṣẹ orisun ibere. Eyi ni Cashier ti Ile ounjẹ naa:

  1. Ni ibi isanwo, aṣẹ naa ti ṣetan patapata, ati pe o to akoko lati firanṣẹ si olutọpa naa. Iṣẹlẹ si eyiti olutọpa ti ṣe alabapin jẹ jabọ.
  2. Olutọpa, gbigba aṣẹ fun ararẹ, fi pamọ si ibi ipamọ data ti ara rẹ, ṣiṣe iṣẹlẹ naa "Ibere ​​ti a gba nipasẹ Olutọpa" ati fifiranṣẹ si RMQ.
  3. Ọpọlọpọ awọn olutọju ti wa tẹlẹ ti ṣe alabapin si ọkọ akero iṣẹlẹ fun aṣẹ. Fun wa, ọkan ti o ṣe amuṣiṣẹpọ pẹlu ipilẹ monolithic jẹ pataki.
  4. Olutọju naa gba iṣẹlẹ kan, yan lati inu rẹ data ti o ṣe pataki fun u: ninu ọran wa, eyi ni ipo aṣẹ “Ti gba nipasẹ Olutọpa” ati ṣe imudojuiwọn nkan ibere rẹ ni ibi ipamọ data akọkọ.

Ti ẹnikan ba nilo aṣẹ lati awọn aṣẹ tabili monolithic, lẹhinna o le ka lati ibẹ paapaa. Fun apẹẹrẹ, wiwo Awọn aṣẹ ni Oluṣakoso Shift nilo eyi:

Itan-akọọlẹ ti Dodo IS Architecture: Ọna Ọfiisi Pada

Gbogbo awọn iṣẹ miiran le tun ṣe alabapin lati paṣẹ awọn iṣẹlẹ lati ọdọ olutọpa lati lo wọn fun ara wọn.

Ti o ba jẹ pe lẹhin igba diẹ ti aṣẹ naa wa sinu iṣẹ, lẹhinna ipo rẹ yipada ni akọkọ ninu ibi ipamọ data rẹ (Data data Tracker), ati lẹhinna iṣẹlẹ “OrderIn Progress” ti wa ni ipilẹṣẹ lẹsẹkẹsẹ. O tun n wọle sinu RMQ, lati ibiti o ti muuṣiṣẹpọ ni ibi ipamọ data monolithic ati jiṣẹ si awọn iṣẹ miiran. Awọn iṣoro oriṣiriṣi le wa ni ọna, awọn alaye diẹ sii nipa wọn le wa ninu iroyin ti Zhenya Peshkov nipa awọn alaye imuse ti Aitasera Iṣẹlẹ ni Olutọpa.

Ipari faaji lẹhin awọn ayipada ninu Auth ati Tracker

Itan-akọọlẹ ti Dodo IS Architecture: Ọna Ọfiisi Pada

Akopọ abajade agbedemeji: Ni ibẹrẹ, Mo ni imọran lati ṣajọ itan-akọọlẹ ọdun mẹsan ti eto Dodo IS sinu nkan kan. Mo fẹ lati yara ati irọrun sọrọ nipa awọn ipele ti itankalẹ. Sibẹsibẹ, joko fun ohun elo naa, Mo rii pe ohun gbogbo jẹ idiju pupọ ati iwunilori ju ti o dabi.

Ni iṣaro lori awọn anfani (tabi aini rẹ) ti iru ohun elo, Mo wa si ipari pe idagbasoke ilọsiwaju ko ṣee ṣe laisi awọn itan-akọọlẹ kikun ti awọn iṣẹlẹ, awọn atunyẹwo alaye ati itupalẹ awọn ipinnu mi ti o kọja.

Mo nireti pe o wulo ati iwunilori fun ọ lati kọ ẹkọ nipa ọna wa. Bayi Mo dojuko yiyan apakan ti eto Dodo IS lati ṣapejuwe ninu nkan atẹle: kọ sinu awọn asọye tabi dibo.

Awọn olumulo ti o forukọsilẹ nikan le kopa ninu iwadi naa. wọle, Jowo.

Apa wo ni Dodo IS yoo fẹ lati mọ nipa ninu nkan ti o tẹle?

  • 24,1%Tete monolith ni Dodo IS (2011-2015)14

  • 24,1%Awọn iṣoro akọkọ ati awọn ojutu wọn (2015-2016) 14

  • 20,7%Awọn ose-ẹgbẹ ona: facade lori mimọ (2016-2017) 12

  • 36,2%Awọn itan ti gidi microservices (2018-2019)21

  • 44,8%Pipe sawing ti monolith ati imuduro ti architecture26

  • 29,3%Nipa awọn ero siwaju sii fun idagbasoke eto naa17

  • 19,0%Nko fe mo nkankan nipa Dodo IS11

58 olumulo dibo. 6 olumulo abstained.

orisun: www.habr.com

Fi ọrọìwòye kun