Moolelo o ka Dodo IS Architecture: He Monolith Mua

A i ʻole kēlā me kēia hui hauʻoli me kahi monolith ʻaʻole hauʻoli i kona ʻano ponoʻī.

Ua hoʻomaka koke ka hoʻomohala ʻana o ka ʻōnaehana Dodo IS, e like me ka ʻoihana Dodo Pizza, ma 2011. Hoʻokumu ʻia ia ma ka manaʻo o ka hoʻopiha piha ʻana a me ka helu helu o nā kaʻina ʻoihana, a ia lakou iho, ʻo ia hoʻi i ka makahiki 2011 ua nui nā nīnau a me nā kānalua. Akā no 9 mau makahiki i kēia manawa ua hahai mākou i kēia ala - me kā mākou hoʻomohala ponoʻī, i hoʻomaka me kahi monolith.

He "pane" kēia ʻatikala i nā nīnau "No ke aha e kākau hou ai i ka hale hana a hana i nā loli nui a lōʻihi?" hoʻi i ka ʻatikala mua "Ka Moʻolelo o ka Dodo IS Architecture: The Way of the Back Office". E hoʻomaka wau me ka hoʻomaka ʻana o ka hoʻomohala ʻana o Dodo IS, pehea ke ʻano o ka hoʻolālā kumu, pehea i ʻike ʻia ai nā modules hou, a no nā pilikia e pono ai ke hoʻololi nui.

Moolelo o ka Dodo IS Architecture: He Monolith Mua

Nā ʻatikala "He aha ka Dodo IS?" haʻi e pili ana i:

  1. Monolith mua ma Dodo IS (2011-2015). (Aia ʻoe)

  2. ʻO ke ala hope o ke keʻena: nā kumu hoʻokaʻawale a me ka kaʻa.

  3. ʻO ke ala ʻaoʻao o ka mea kūʻai aku: facade ma luna o ke kumu (2016-2017). (Ke holo nei...)

  4. ʻO ka mōʻaukala o nā microservices maoli. (2018-2019). (Ke holo nei...)

  5. Hoʻopau i ka ʻeli ʻana o ka monolith a me ka hoʻopaʻa ʻana o ka hoʻolālā. (Ke holo nei...)

Hoʻolālā mua

I ka makahiki 2011, ua like ke ano o ka hale hana Dodo IS penei:

Moolelo o ka Dodo IS Architecture: He Monolith Mua

ʻO ka module mua i ka hale hoʻolālā ʻo ka ʻae kauoha. ʻO ke kaʻina hana ʻoihana:

  • kāhea ka mea kūʻai i ka pizzeria;

  • lawe ka luna i ke kelepona;

  • ʻae i kahi kauoha ma ke kelepona;

  • hoʻopiha i ka mea like i loko o ke kaʻina ʻae ʻae: ʻike e pili ana i ka mea kūʻai aku, ʻikepili i nā kikoʻī kauoha, lawe ʻia ka helu hoʻouna. 

ʻO ka interface o ka ʻōnaehana ʻike e like me kēia ...

ʻO ka mana mua mai ʻOkakopa 2011:

Ua hoʻomaikaʻi iki ʻia ma Ianuali 2012

ʻO ka ʻōnaehana ʻike Dodo Pizza Hoʻouna i ka hale ʻaina Pizza

Ua kaupalena ʻia nā kumuwaiwai no ka hoʻomohala ʻana i ka module lawe kauoha mua. Pono mākou e hana nui, wikiwiki a me kahi hui liʻiliʻi. ʻO kahi hui liʻiliʻi he 2 mea hoʻomohala nāna i hoʻokumu i ke kumu no ka ʻōnaehana holoʻokoʻa e hiki mai ana.

ʻO kā lākou hoʻoholo mua i hoʻoholo i ka hopena o ka ʻenehana ʻenehana:

  • Ka hope ma ka ASP.NET MVC, ka ʻōlelo C#. ʻO nā mea hoʻomohala he dotnetchiki, ua kamaʻāina a ʻoluʻolu kēia ʻōpala iā lākou.

  • Frontend ma Bootstrap a me JQuery: nā mea hoʻohana ma nā ʻano kākau a me nā palapala. 

  • MySQL database: ʻaʻohe uku laikini, maʻalahi e hoʻohana.

  • Nā kikowaena ma Windows Server, no ka mea, hiki i ka .NET ma lalo o Windows wale nō (ʻaʻole mākou e kūkākūkā i ka Mono).

Ma ke kino, ua hōʻike ʻia kēia mau mea ma ka "dedic at the hoster". 

Hoʻokaʻaʻike palapala hoʻokomo ʻana

A laila ua kamaʻilio nā mea a pau e pili ana i nā microservices, a ua hoʻohana ʻia ʻo SOA i nā papahana nui no 5 mau makahiki, no ka laʻana, ua hoʻokuʻu ʻia ʻo WCF ma 2006. Akā, ua koho lākou i kahi hopena hilinaʻi a hōʻoia ʻia.

Eia nō.

Moolelo o ka Dodo IS Architecture: He Monolith Mua

ʻO Asp.Net MVC ʻo Razor, ka mea, ma ke noi ʻana mai kahi palapala a i ʻole mai kahi mea kūʻai aku, e hāʻawi i kahi ʻaoʻao HTML me ka hāʻawi kikowaena. Ma ka mea kūʻai, hōʻike mua nā palapala CSS a me JS i ka ʻike a, inā pono, e hana i nā noi AJAX ma o JQuery.

Loaʻa nā noi ma ke kikowaena i nā papa *Controller, kahi e hana ai ka hana a me ka hana ʻana o ka ʻaoʻao HTML hope loa ma ke ʻano. Hana nā mea hoʻoponopono i nā noi i kahi papa o ka loiloi i kapa ʻia ʻo *Services. Ua pili kēlā me kēia lawelawe i kekahi ʻano o ka ʻoihana:

  • No ka laʻana, hāʻawi ʻo DepartmentStructureService i ka ʻike e pili ana i nā pizzeria, ma nā keʻena. ʻO kahi keʻena he hui o nā pizzeria e holo ʻia e kahi franchisee hoʻokahi.

  • Ua ʻae ʻia ka ReceivingOrdersService a helu ʻia ke ʻano o ke kauoha.

  • A hoʻouna ʻo SmsService i ka SMS ma ke kāhea ʻana i nā lawelawe API e hoʻouna i SMS.

Hoʻoponopono nā lawelawe i ka ʻikepili mai ka waihona, mālama ʻia ka loiloi ʻoihana. Loaʻa i kēlā me kēia lawelawe i hoʻokahi a ʻoi aku paha nā *Repositories me ka inoa kūpono. Ua loaʻa iā lākou nā nīnau i nā kaʻina hana i mālama ʻia i ka waihona a me kahi papa o nā palapala palapala. Loaʻa ka loiloi ʻoihana i nā waihona, ʻoi aku ka nui o nā mea i hoʻopuka i ka ʻikepili hōʻike. ʻAʻole i hoʻohana ʻia ʻo ORM, hilinaʻi nā mea a pau i ka sql kākau lima. 

Aia kekahi papa o ka ʻōnaehana domain a me nā papa kōkua maʻamau, no ka laʻana, ka papa kauoha i mālama i ke kauoha. Ma kahi hoʻokahi, ma ka papa, aia kahi mea kōkua no ka hoʻololiʻana i ka kikokikona hōʻike e like me ke kālā i kohoʻia.

Hiki ke hōʻike ʻia kēia mau mea a pau e kēia ʻano hoʻohālike:

Moolelo o ka Dodo IS Architecture: He Monolith Mua

Ke ala kauoha

E noʻonoʻo i kahi ala mua maʻalahi e hana i kahi kauoha.

Moolelo o ka Dodo IS Architecture: He Monolith Mua

I ka wā mua, paʻa ka pūnaewele. Loaʻa iā ia nā kumukūʻai, a ma luna - he helu kelepona a me ka palapala "Inā makemake ʻoe i ka pizza - e kāhea i ka helu a kauoha." No ke kauoha, pono mākou e hoʻokō i kahi kahe maʻalahi: 

  • Hele ka mea kūʻai aku i kahi kahua paʻa me nā kumukūʻai, koho i nā huahana a kāhea i ka helu i helu ʻia ma ka pūnaewele.

  • Kapa ka mea kūʻai aku i nā huahana a lākou e makemake ai e hoʻohui i ke kauoha.

  • Hāʻawi i kona helu wahi a me kona inoa.

  • ʻAe ka mea hoʻohana i ke kauoha.

  • Hōʻike ʻia ke kauoha ma ke kikowaena kauoha i ʻae ʻia.

Hoʻomaka ia me ka hōʻike ʻana i ka papa kuhikuhi. Hoʻokahi wale nō kauoha i ka manawa hoʻokahi. No laila, hiki ke mālama ʻia ke kaʻa kiʻi i loko o kāna kau (ua mālama ʻia ke kau o ka mea hoʻohana i ka hoʻomanaʻo). Aia kekahi mea Cart i loaʻa nā huahana a me nā ʻike mea kūʻai aku.

Kapa ka mea kūʻai aku i ka huahana, kaomi ka mea hoʻohana + ma ka ʻaoʻao o ka huahana, a hoʻouna ʻia kahi noi i ke kikowaena. Huki ʻia ka ʻike e pili ana i ka huahana mai ka waihona a hoʻohui ʻia ka ʻike e pili ana i ka huahana i ke kaʻa.

Moolelo o ka Dodo IS Architecture: He Monolith Mua

i hoʻopuka. ʻAe, ma aneʻi ʻaʻole hiki iā ʻoe ke huki i ka huahana mai ka waihona, akā e hoʻololi iā ia mai ka frontend. Akā no ka maopopo, ua hōʻike pololei wau i ke ala mai ka waihona. 

A laila, e hoʻokomo i ka helu wahi a me ka inoa o ka mea kūʻai aku. 

Moolelo o ka Dodo IS Architecture: He Monolith Mua

Ke kaomi ʻana iā "Create Order":

  • Hoʻouna ʻia ke noi iā OrderController.SaveOrder().

  • Loaʻa iā mākou ka Cart mai ka hālāwai, aia nā huahana i ka nui a mākou e pono ai.

  • Hoʻohui mākou i ka Cart me ka ʻike e pili ana i ka mea kūʻai aku a hāʻawi iā ia i ke ʻano AddOrder o ka papa ReceivingOrderService, kahi i mālama ʻia i ka waihona. 

  • Aia ka waihona i nā papa me ke kauoha, ke ʻano o ke kauoha, ka mea kūʻai aku, a pili pū lākou a pau.

  • Hele ka papa kuhikuhi kauoha a huki i nā kauoha hou loa a hōʻike iā lākou.

Nā modula hou

ʻO ka lawe ʻana i ke kauoha he mea nui a pono. ʻAʻole hiki iā ʻoe ke hana i kahi ʻoihana pizza inā ʻaʻohe kauoha e kūʻai aku. No laila, hoʻomaka ka ʻōnaehana e loaʻa ka hana - ma kahi o 2012 a 2015. I loko o kēia manawa, ua ʻike ʻia nā poloka like ʻole o ka ʻōnaehana, aʻu e kāhea ai modules, e kū'ē i ka manaʻo o ka lawelawe a huahana paha. 

ʻO ka module kahi hoʻonohonoho o nā hana i hoʻohui ʻia e kekahi pahuhopu ʻoihana maʻamau. I ka manawa like, aia lākou ma ke kino i ka noi like.

Hiki ke kapa ʻia nā modula i nā poloka ʻōnaehana. No ka laʻana, he module hōʻike kēia, nā kikowaena admin, mea huli meaʻai ma ka lumi kuke, mana. He mau mea hoʻohana like ʻole kēia a pau, ʻokoʻa nā ʻano hiʻohiʻona o kekahi. I ka manawa like, aia nā mea a pau i loko o ka hoʻolālā o hoʻokahi noi, hoʻokahi kaʻina hana. 

ʻO ka ʻenehana, ua hoʻolālā ʻia nā modula e like me Area (ʻo ia ka manaʻo i waiho ʻia i loko kumu asp.net). Aia nā faila ʻokoʻa no ka frontend, nā hiʻohiʻona, a me kā lākou mau papa hoʻomalu. ʻO ka hopena, ua hoʻololi ʻia ka ʻōnaehana mai kēia ...

Moolelo o ka Dodo IS Architecture: He Monolith Mua

...i loko o kēia:

Moolelo o ka Dodo IS Architecture: He Monolith Mua

Hoʻokō ʻia kekahi mau modula e nā pūnaewele ʻokoʻa (papahana hoʻokō), ma muli o kahi hana kaʻawale loa a ʻo kekahi hapa ma muli o kahi hoʻomohala ʻokoʻa, ʻoi aku ka nānā ʻana. ʻO kēia:

  • paena - mana mua paena dodopizza.ru.

  • mea hoʻolilo: hoʻouka ʻana i nā hōʻike mai Dodo IS no 1C. 

  • Personal - moʻokāki pilikino o ka limahana. Ua hoʻomohala ʻokoʻa ʻia a loaʻa iā ia kona wahi komo a me ka hoʻolālā ʻokoʻa.

  • fs - he papahana no ka mālama ʻana i nā statics. Ma hope ua neʻe mākou mai laila aku, e neʻe ana i nā statics a pau i ka Akamai CDN. 

ʻO ke koena o nā poloka i loko o ka polokalamu BackOffice. 

Moolelo o ka Dodo IS Architecture: He Monolith Mua

Ka wehewehe inoa:

  • Cashier - Luna kālā hale ʻaina.

  • ShiftManager - nā pilina no ka "Shift Manager" kuleana: nā helu hana ma nā kūʻai pizzeria, ka hiki ke kau i nā huahana ma ka papa hoʻomaha, hoʻololi i ke kauoha.

  • OfficeManager - nā pilina no nā kuleana "Pizzeria Manager" a me "Franchisee". Eia nā hana i hōʻiliʻili ʻia no ka hoʻonohonoho ʻana i kahi pizzeria, kāna hoʻolaha bonus, loaʻa a hana pū me nā limahana, hōʻike.

  • PublicScreens - nā pilina no nā TV a me nā papa e kau ana ma nā pizzeria. Hōʻike nā TV i nā menus, ka ʻike hoʻolaha, ke kūlana kauoha ma ka lawe ʻana. 

Ua hoʻohana lākou i kahi papa lawelawe maʻamau, kahi poloka papa inoa Dodo.Core maʻamau, a me kahi kumu maʻamau. I kekahi manawa hiki iā lākou ke alakaʻi i ka hoʻololi ʻana i kekahi i kekahi. Me nā pūnaewele hoʻokahi, e like me dodopizza.ru a i ʻole personal.dodopizza.ru, i hele i nā lawelawe maʻamau.

I ka wā i ʻike ʻia ai nā modula hou, ua hoʻāʻo mākou e hoʻohana hou i ke code o nā lawelawe i hana mua ʻia, nā kaʻina hana i mālama ʻia a me nā papa i loko o ka waihona i ka nui. 

No ka ʻike maikaʻi ʻana i ka nui o nā modules i hana ʻia i loko o ka ʻōnaehana, eia kahi kiʻi mai ka makahiki 2012 me nā hoʻolālā hoʻomohala:

Moolelo o ka Dodo IS Architecture: He Monolith Mua

Ma ka makahiki 2015, aia nā mea a pau ma ka palapala ʻāina a ʻoi aku ka nui o ka hana.

  • Ua ulu aʻe ka ʻae ʻana i ke kauoha i kahi poloka o ka Contact Center, kahi i ʻae ʻia ai ke kauoha e ka mea hoʻokele.

  • Aia nā pale ākea me nā menus a me nā ʻike e kau ana ma nā pizzeria.

  • Aia ka lumi kuke i kahi module e hoʻokani ʻokoʻa i ka memo leo "New Pizza" i ka wā e hiki mai ai kahi kauoha hou, a paʻi pū i kahi palapala no ka ʻelele. Hoʻomaʻamaʻa nui kēia i nā kaʻina hana i loko o ka lumi kuke, hiki i nā limahana ke hoʻopilikia ʻole ʻia e ka nui o nā hana maʻalahi.

  • Ua lilo ka ʻāpana lawe i kahi Delivery Checkout kaʻawale, kahi i hoʻopuka ʻia ai ke kauoha i ka ʻelele nāna i lawe mua i ka hoʻololi. Ua noʻonoʻo ʻia kāna manawa hana no ka helu uku. 

Ma ka like, mai 2012 a 2015, ua ʻoi aku ma mua o 10 mau mea hoʻomohala, ua wehe ʻia nā pizzerias 35, hoʻonoho i ka ʻōnaehana i Romania a hoʻomākaukau no ka wehe ʻana i nā hale kūʻai ma United States. ʻAʻole i hana hou nā mea hoʻomohala i nā hana āpau, akā ua māhele ʻia i nā hui. ʻo kēlā me kēia mea kūikawā i kāna ʻāpana ponoʻī o ka ʻōnaehana. 

Nā pilikia

Hoʻopili ʻia ma muli o ka hoʻolālā (akā ʻaʻole wale).

Chaos i ke kumu

Hoʻokahi kumu kūpono. Hiki ke hoʻokō ʻia i loko o ia mea, a ma ka lilo o nā mea hana i kūkulu ʻia i loko o nā waihona pili. Maʻa a maʻalahi ka hana ʻana me ia, ʻoiai inā he liʻiliʻi nā papa a me nā ʻikepili liʻiliʻi.

Akā ma luna o 4 mau makahiki o ka hoʻomohala ʻana, ua ʻike ʻia ka waihona ma kahi o 600 mau papa, 1500 mau kaʻina hana i mālama ʻia, a ʻo ka hapa nui o ia mau mea he loiloi. Auē, ʻaʻole lawe nui nā kaʻina hana mālama i ka hana me MySQL. ʻAʻole lākou i hūnā ʻia e ka waihona, a ʻo ka mālama ʻana i ka loiloi i loko o lākou e hoʻopili ai i ka hoʻomohala ʻana a me ka debugging. Paʻakikī hoʻi ka hoʻohana hou ʻana i ke code.

ʻAʻole i loaʻa nā papa kuhikuhi kūpono, ma kahi'ē aʻe, ua nui nā indexes, i paʻakikī ke hoʻokomo. Pono e hoʻololi e pili ana i 20 mau papa - hiki ke hana i kahi kauoha ma kahi o 3-5 kekona. 

ʻAʻole i kūpono nā ʻikepili i nā papa i nā manawa a pau. Ma kekahi wahi ua pono e hana denormalization. ʻO kahi hapa o ka ʻikepili i loaʻa mau i loko o kahi kolamu ma ke ʻano o kahi hoʻolālā XML, hoʻonui kēia i ka manawa hoʻokō, hoʻolōʻihi i nā nīnau a paʻakikī i ka hoʻomohala ʻana.

I nā papa ʻaina hoʻokahi i hana nui ʻia noi like ole. Ua pilikia nā papa ʻaina kaulana, e like me ka papa i ʻōlelo ʻia ma luna. kauoha a i ʻole nā ​​papa ʻaina Hale kūʻai Pizza. Ua hoʻohana ʻia lākou e hōʻike i nā interface hana i ka lumi kuke, analytics. Ua hoʻopili kekahi pūnaewele iā lākou (dodopizza.ru), kahi e hiki koke mai ai nā noi he nui i kēlā me kēia manawa. 

ʻAʻole i hōʻuluʻulu ʻia ka ʻikepili a he nui nā helu i hana ʻia ma ka lele me ka hoʻohana ʻana i ke kumu. Ua hana kēia i nā helu pono ʻole a me nā ukana ʻē aʻe. 

Ua hele pinepine ke code i ka waihona ke hiki ʻole ke hana pēlā. Ma kekahi wahi ʻaʻole lawa ka hana nui, ma kahi e pono ai e hoʻolaha i hoʻokahi noi i loko o kekahi ma o ke code i mea e wikiwiki ai a hoʻonui i ka hilinaʻi. 

ʻO ka hui ʻana a me ka obfuscation ma ke code

ʻO nā modula i manaʻo ʻia he kuleana no kā lākou ʻāpana o ka ʻoihana ʻaʻole i hana pololei. ʻO kekahi o lākou i hana hou i nā hana no nā kuleana. No ka laʻana, pono e hoʻohana kekahi mea kūʻai kūloko i ke kuleana o ka ʻoihana kūʻai aku ma kona kūlanakauhale i ka "Admin" interface (e hana i nā hoʻolaha) a me ka "Office Manager" interface (e ʻike i ka hopena o nā hoʻolaha ma ka ʻoihana). ʻOiaʻiʻo, i loko o nā modula ʻelua i hoʻohana i ka lawelawe like i hana me nā hoʻolaha bonus.

Hiki i nā lawelawe (nā papa i loko o hoʻokahi papahana nui monolithic) ke kāhea kekahi i kekahi e hoʻonui i kā lākou ʻikepili.

Me nā papa hoʻohālike iā lākou iho e mālama i ka ʻikepili, ʻokoʻa ka hana ma ke code. Aia kekahi mau mea kūkulu hale i hiki ai ke kuhikuhi i nā kahua e pono ai. Ua hana ʻia kēia ma kekahi wahi ma o nā waiwai lehulehu. ʻOiaʻiʻo, ʻokoʻa ka loaʻa ʻana a me ka hoʻololi ʻana i ka ʻikepili mai ka waihona. 

Aia ka logic i nā mea hoʻoponopono a i nā papa lawelawe. 

He mau pilikia liʻiliʻi kēia, akā ua lohi nui lākou i ka hoʻomohala ʻana a hōʻemi i ka maikaʻi, e alakaʻi ana i ka paʻa ʻole a me nā pōpoki. 

ʻO ka paʻakikī o kahi hoʻomohala nui

Ua ulu mai nā pilikia ma ka hoʻomohala ʻana iho. Ua pono e hana i na poloka o ka nenoaiu, a ma ka like. ʻO ka hoʻokomo ʻana i nā pono o kēlā me kēia ʻāpana i hoʻokahi code ua lilo i mea paʻakikī. ʻAʻole maʻalahi ka ʻae ʻana a ʻoluʻolu i nā ʻāpana āpau i ka manawa like. Hoʻohui ʻia i kēia nā palena o ka ʻenehana, ʻoi aku ka pili i ke kumu a me ka frontend. He mea pono e haʻalele i ka jQuery i nā frameworks kiʻekiʻe, ʻoi aku ka nui o nā lawelawe o nā mea kūʻai aku (pūnaewele).

Ma kekahi mau wahi o ka ʻōnaehana, hiki ke hoʻohana ʻia nā ʻikepili i kūpono no kēia.. No ka laʻana, ma hope ua loaʻa iā mākou ka hihia hoʻohana o ka neʻe ʻana mai Redis i CosmosDB e mālama i kahi hīnaʻi kauoha. 

Ua makemake nui nā hui a me nā mea hoʻomohala i kā lākou kahua i ka mana kūʻokoʻa no kā lākou lawelawe, ma ke ʻano o ka hoʻomohala ʻana a me ka rollout. Hoʻohui i nā paio, hoʻokuʻu i nā pilikia. Inā no nā mea hoʻomohala 5 he mea nuiʻole kēia pilikia, a laila me ka 10, aʻoi aku me ka uluʻana i hoʻolālāʻia, e lilo nā mea a pau i mea koʻikoʻi. A ma mua ka hoʻomohala ʻana i kahi noi kelepona (hoʻomaka ia ma 2017, a ma 2018 ʻo ia. hāʻule nui). 

Pono nā ʻāpana like ʻole o ka ʻōnaehana i nā pae like ʻole o ke kūpaʻa, akā ma muli o ka pilina ikaika o ka ʻōnaehana, ʻaʻole hiki iā mākou ke hāʻawi i kēia. ʻO kahi hewa i ka hoʻomohala ʻana i kahi hana hou i loko o ka admin panel i hiki ke lawe ʻia i ka ʻae ʻana i kahi kauoha ma ka pūnaewele, no ka mea maʻamau ka code a hiki ke hoʻohana hou ʻia, ʻo ka waihona a me ka ʻikepili hoʻi.

Hiki paha ke pale aku i kēia mau hewa a me nā pilikia i loko o ke ʻano o ka hoʻolālā monolithic-modular: e hoʻokaʻawale i ke kuleana, e hoʻihoʻi hou i ke code a me ka waihona, e hoʻokaʻawale i nā papa mai kēlā me kēia, e nānā i ka maikaʻi i kēlā me kēia lā. Akā ʻo nā hoʻonā hale kūkulu i koho ʻia a me ka nānā ʻana i ka hoʻonui wikiwiki ʻana o ka hana o ka ʻōnaehana i alakaʻi i nā pilikia e pili ana i ke kūpaʻa.

Pehea e kau ai ka blog Power of the Mind i nā waihona kālā ma nā hale ʻaina

Inā hoʻomau ka ulu ʻana o ka pūnaewele pizzeria (a me ka ukana) i ka wikiwiki like, a laila ma hope o kekahi manawa e lilo ka hāʻule i ʻole e piʻi ka ʻōnaehana. Hōʻike maikaʻi i nā pilikia a mākou i hoʻomaka ai e alo i ka makahiki 2015, eia kahi moʻolelo. 

Ma ka blog "Mana manaʻo” he widget i hōʻike i ka ʻikepili i ka loaʻa kālā no ka makahiki o ka pūnaewele holoʻokoʻa. Ua komo ka widget i ka Dodo public API, nāna i hāʻawi i kēia ʻikepili. Loaʻa kēia helu helu i kēia manawa ma http://dodopizzastory.com/. Hōʻike ʻia ka widget ma kēlā me kēia ʻaoʻao a hana i nā noi ma kahi manawa i kēlā me kēia 20 kekona. Ua hele ka noi i api.dodopizza.ru a noi:

  • ka helu o nā pizzerias ma ka pūnaewele;

  • ka huina kālā loaʻa mai ka hoʻomaka ʻana o ka makahiki;

  • loaa no keia la.

Ua hele pololei ka noi no ka ʻikepili no ka loaʻa kālā a hoʻomaka i ka noi ʻana i ka ʻikepili ma nā kauoha, ka hōʻuluʻulu ʻana i ka ʻikepili ma ka lele a hāʻawi i ka nui. 

Ua hele nā ​​keʻena kālā ma nā hale ʻaina i ka papa ʻaina o nā kauoha, wehe i kahi papa inoa o nā kauoha i loaʻa i kēia lā, a ua hoʻohui ʻia nā kauoha hou. Ua hana nā waihona kālā i kā lākou noi i kēlā me kēia 5 kekona a i ʻole ma ka ʻaoʻao hōʻano hou.

Ua like ke kiʻikuhi penei:

Moolelo o ka Dodo IS Architecture: He Monolith Mua

I kekahi hāʻule, ua kākau ʻo Fyodor Ovchinnikov i kahi ʻatikala lōʻihi a kaulana ma kāna blog. Nui ka poʻe i hele mai i ka blog a hoʻomaka e heluhelu pono i nā mea āpau. ʻOiai e heluhelu ana kēlā me kēia poʻe i hele mai i ka ʻatikala, ua hana pono ka widget loaʻa kālā a noi i ka API i kēlā me kēia 20 kekona.

Ua kāhea ka API i kahi kaʻina hana mālama e helu ai i ka huina o nā kauoha a pau mai ka hoʻomaka ʻana o ka makahiki no nā pizzeria a pau i ke kaulahao. Hoʻokumu ʻia ka hōʻuluʻulu ʻana ma ka papa kauoha, i kaulana loa. ʻO nā keʻena kālā a pau o nā hale ʻaina wehe ʻia i kēlā manawa e hele i laila. ʻAʻole i ʻae ʻia nā kauoha. ʻAʻole i ʻae ʻia lākou mai ka pūnaewele, ʻaʻole i ʻike ʻia ma ka tracker, ʻaʻole hiki i ka luna hoʻololi ke ʻike iā lākou i kāna interface. 

ʻAʻole kēia ka moʻolelo wale nō. Ma ka hāʻule o 2015, i kēlā me kēia Pōʻalima ua koʻikoʻi ka ukana ma ka ʻōnaehana. Ua hoʻopau mākou i ka API lehulehu, a hoʻokahi manawa, pono mākou e hoʻopau i ka pūnaewele, no ka mea ʻaʻohe mea i kōkua. Aia kekahi papa inoa o nā lawelawe me kahi kauoha pani ma lalo o nā ukana kaumaha.

Mai kēia manawa, hoʻomaka kā mākou hakakā me nā ukana a no ka hoʻomau ʻana o ka ʻōnaehana (mai ka hāʻule 2015 a i ka hāʻule 2018). ʻO ia ka manawa i hiki mai ai"hāʻule nui". Eia kekahi, ua hiki mai nā hemahema i kekahi manawa, paʻakikī loa kekahi, akā hiki ke manaʻo ʻia ua hala ka manawa maʻamau o ka instability.

ʻO ka ulu wikiwiki ʻana o ka ʻoihana

No ke aha i hiki ʻole ai ke hana koke? E nānā wale i nā pakuhi ma lalo nei.

Moolelo o ka Dodo IS Architecture: He Monolith Mua

Ma 2014-2015 hoʻi i wehe ʻia ma Romania a ua hoʻomākaukau ʻia kahi wehe ma USA.

Ua ulu wikiwiki ka pūnaewele, ua wehe ʻia nā ʻāina hou, ua ʻike ʻia nā ʻano pizzeria hou, no ka laʻana, ua wehe ʻia kahi pizzeria ma ka hale ʻai. Pono kēia mau mea i ka nānā nui ʻana i ka hoʻonui ʻana i nā hana Dodo IS. Me ka ʻole o kēia mau hana a pau, me ka ʻole o ka nānā ʻana i ka lumi kuke, ka helu ʻana i nā huahana a me nā poho i ka ʻōnaehana, e hōʻike ana i ka hoʻopuka ʻana i kahi kauoha i loko o ka hale hoʻokolokolo meaʻai, ʻaʻole mākou e kamaʻilio e pili ana i ka hoʻolālā "pololei" a me ke ʻano "pololei". hoʻomohala i kēia manawa.

ʻO kekahi pilikia i ka hoʻoponopono ʻana i ka manawa kūpono o ka hoʻolālā a me ka nānā ʻana i nā pilikia ʻenehana ʻo ia ka pilikia o 2014. Ua paʻakikī nā mea e like me kēia i nā manawa e ulu ai nā hui, ʻoi aku hoʻi no kahi ʻoihana ʻōpio e like me Dodo Pizza.

Nā Haʻina wikiwiki i kōkua

Pono nā pilikia e hoʻoponopono. Ma keʻano maʻamau, hiki ke hoʻokaʻawale ʻia nā hopena i 2 mau pūʻulu:

  • ʻO nā mea wikiwiki e hoʻopau i ke ahi a hāʻawi i kahi palena liʻiliʻi o ka palekana a kūʻai mai iā mākou i manawa e hoʻololi.

  • Systemic a, no laila, lōʻihi. ʻO ka hana hou ʻana o kekahi mau modula, ka hoʻokaʻawale ʻana i kahi hale hoʻolālā monolithic i nā lawelawe ʻokoʻa (ʻo ka hapa nui o lākou ʻaʻole i micro, akā nā lawelawe macro, a aia kekahi mea e pili ana iā ia. ʻO ka hōʻike a Andrey Morevskiy). 

ʻO ka papa inoa maloʻo o nā hoʻololi wikiwiki e like me kēia:

E hoʻonui i ka haku kumu

ʻOiaʻiʻo, ʻo ka mea mua i hana ʻia e pili ana i nā ukana, ʻo ia ka hoʻonui ʻana i ka hiki o ke kikowaena. Ua hana ʻia kēia no ka ʻikepili kumu a no nā kikowaena pūnaewele. Auwe, hiki wale kēia i kahi palena, a laila lilo i mea pipiʻi loa.

Mai ka 2014, ua neʻe mākou i Azure, ua kākau pū mākou e pili ana i kēia kumuhana i kēlā manawa i ka ʻatikala "Pehea ʻo Dodo Pizza e hāʻawi ai i ka pizza me ka Microsoft Azure Cloud". Akā ma hope o ka hoʻonui ʻana i ka kikowaena no ke kumu, ua kūʻē lākou i ke kumukūʻai. 

Nā kope kumu no ka heluhelu ʻana

ʻElua kope i hana ʻia no ke kumu:

ReadReplica no na noi kuhikuhi. Hoʻohana ʻia ia no ka heluhelu ʻana i nā papa kuhikuhi, ʻano, kūlanakauhale, alanui, pizzeria, nā huahana (hoʻololi lohi ʻia ka domain), a ma kēlā mau pilina kahi e ʻae ʻia ai kahi lohi liʻiliʻi. Aia 2 o kēia mau kope, ua hōʻoia mākou i ko lākou loaʻa ʻana ma ke ʻano like me nā haku.

ReadReplica no nā noi hōʻike. He haʻahaʻa loa ka loaʻa ʻana o kēia waihona, akā hele nā ​​hōʻike a pau i laila. E hāʻawi iā lākou i nā noi koʻikoʻi no ka helu ʻana i ka ʻikepili nui, akā ʻaʻole lākou e pili i ka ʻikepili nui a me nā pilina hana. 

Hoʻokomo i loko o ke code

ʻAʻohe wahi huna ma nā wahi āpau o ke code (ma nā mea āpau). Ua alakaʻi kēia i nā noi hou aku, ʻaʻole pono mau, i ka ʻikepili i hoʻouka ʻia. ʻO nā cache ka mea mua ma ka hoʻomanaʻo a ma kahi lawelawe cache waho, ʻo ia ʻo Redis. Ua hōʻole ʻia nā mea a pau e ka manawa, ua kuhikuhi ʻia nā hoʻonohonoho i ke code.

Nā kikowaena hope he nui

Pono e hoʻonui ʻia ka hope o ka noi no ka mālama ʻana i nā haʻahaʻa hana. Pono e hana i kahi hui mai kahi iis-server. Ua hoʻonohonoho hou mākou kau noi mai ka hoʻomanaʻo ʻana iā RedisCache, kahi i hiki ai ke hana i kekahi mau kikowaena ma hope o kahi kaulike haʻahaʻa maʻalahi me ka round robin. I ka wā mua, ua hoʻohana ʻia ka Redis e like me nā caches, a laila ua māhele ʻia i mau. 

ʻO ka hopena, ua lilo ka hale hana i mea paʻakikī ...

Moolelo o ka Dodo IS Architecture: He Monolith Mua

… akā ua hoʻopau ʻia kekahi o ka ʻāʻī.

A laila pono e hana hou i nā ʻāpana i hoʻouka ʻia, a mākou i hana ai. E kamaʻilio mākou e pili ana i kēia ma ka ʻāpana aʻe.

Source: www.habr.com

Pākuʻi i ka manaʻo hoʻopuka