E hoʻihoʻi mai iaʻu i kaʻu monolith

Me he mea lā aia ke kiʻekiʻe o ka hype no nā microservices ma hope o mākou. ʻAʻole mākou heluhelu hou i nā pou i nā manawa he nui i ka pule "Pehea wau i neʻe ai i kaʻu monolith i nā lawelawe 150." I kēia manawa ke lohe nei au i nā manaʻo noʻonoʻo maʻamau: "ʻAʻole wau inaina i ka monolith, mālama wale wau i ka pono." Ua ʻike mākou i kekahi mau neʻe ʻana mai microservices hoʻi i ka monolith. Ke neʻe nei mai kahi noi nui i nā lawelawe liʻiliʻi he nui, pono ʻoe e hoʻoponopono i nā pilikia hou. E papa inoa mākou iā lākou e like me ka hiki.

Hoʻonohonoho: mai ke kemika kumu a i ka mechanics quantum

ʻO ka hoʻonohonoho ʻana i kahi waihona kumu a me ka noi me kahi kaʻina hana hope he hana maʻalahi. Hoʻopuka wau i ka readme ma Github - a pinepine i loko o hoʻokahi hola, ʻelua mau hola i ka hapa nui, hana nā mea āpau a hoʻomaka wau i kahi papahana hou. ʻO ka hoʻohui ʻana a me ka holo ʻana i ke code, ma ka liʻiliʻi loa no ke kaiapuni mua, hana ʻia i ka lā hoʻokahi. Akā inā mākou e komo i nā microservices, ʻoi aku ka manawa o ka hoʻomaka mua ʻana. ʻAe, i kēia manawa ua loaʻa iā mākou ʻo Docker me ka orchestration a me kahi hui o nā mīkini K8, akā no ka mea hoʻohana polokalamu novice ʻoi aku ka paʻakikī o kēia mau mea. No nā poʻe ʻōpio he nui kēia, he mea kaumaha maoli nō ia.

ʻAʻole maʻalahi ka ʻōnaehana e hoʻomaopopo

E noʻonoʻo kākou i ko kākou ʻōpio no kekahi manawa. Me nā noi monolithic, inā i loaʻa kahi hewa, ua maʻalahi ka nānā ʻana i lalo a neʻe koke i ka debugging. I kēia manawa, loaʻa iā mākou kahi lawelawe e kamaʻilio nei me kahi lawelawe ʻē aʻe e kau ana i kekahi mea ma luna o kahi kaʻa leka e hana ana i kahi lawelawe ʻē aʻe—a laila aia kahi hewa. Pono mākou e hoʻohui i kēia mau ʻāpana a pau e ʻike i ka lawelawe ʻana o Service A i ka mana 11, a ke kali nei ʻo Service E no ka mana 12. He ʻokoʻa loa kēia mai kaʻu log consolidated maʻamau: pono e hoʻohana i kahi kikowaena interactive / debugger e hele. ma o ke kaʻina hana ʻanuʻu. Ua paʻakikī loa ka hoʻopau ʻana a me ka hoʻomaopopo ʻana.

Inā ʻaʻole hiki ke hoʻopau ʻia, malia paha e hoʻāʻo mākou iā lākou

ʻO ka hoʻohui mau ʻana a me ka hoʻomohala mau ʻana ke lilo nei i mea maʻamau. ʻO ka hapa nui o nā polokalamu hou aʻu i ʻike ai e hana a holo i nā hoʻokolohua me kēlā me kēia hoʻokuʻu hou a koi i nā hoʻokolohua e lawe a nānā ʻia ma mua o ke kau inoa ʻana. He mau kaʻina hana maikaʻi kēia ʻaʻole pono e haʻalele ʻia a he loli nui no nā ʻoihana he nui. Akā i kēia manawa, e hoʻāʻo maoli i ka lawelawe, pono wau e huki i kahi mana hana piha o kaʻu noi. E hoʻomanaʻo i kēlā ʻenekini hou me ka hui K8 o nā lawelawe 150? ʻAe, i kēia manawa e aʻo mākou i kā mākou ʻōnaehana CI pehea e lawe ai i kēia mau ʻōnaehana āpau e hōʻoia i ka hana maoli ʻana o nā mea āpau. He hoʻoikaika nui paha kēia, no laila e hoʻāʻo wale mākou i kēlā me kēia ʻāpana i kahi kaʻawale: Manaʻo wau ua lawa kā mākou specs, maʻemaʻe nā API, a kaʻawale ka lawelawe ʻole a ʻaʻole pili i nā poʻe ʻē aʻe.

He kumu maikaʻi nā kuʻikahi a pau. Akau?

Nui nā kumu e neʻe ai i nā microservices. Ua ʻike au i kēia hana no ka maʻalahi, no nā hui scaling, no ka hana, e hāʻawi i ka hoʻomau maikaʻi. Akā i ka ʻoiaʻiʻo, ua hoʻolilo mākou i mau makahiki i nā mea hana a me nā hana e hoʻomohala ai i nā monoliths e hoʻomau nei e ulu. Hana wau me nā poʻe loea i nā ʻenehana like ʻole. Ke kamaʻilio pinepine nei mākou e pili ana i ka scaling no ka mea e holo lākou i nā palena o hoʻokahi node database Postgres. ʻO ka hapa nui o nā kamaʻilio e pili ana hōkeo ʻikepili.

Akā, makemake mau au i ke aʻo ʻana e pili ana i kā lākou hoʻolālā. He aha ka pae o ka hoʻololi ʻana i nā lawelawe micro? He mea hoihoi ka ʻike ʻana i nā mea ʻenekinia hou aʻe e ʻōlelo ana ua hauʻoli lākou i kā lākou noi monolithic. Nui nā poʻe e pōmaikaʻi mai nā microservices, a ʻoi aku ka nui o nā pōmaikaʻi ma mua o nā puʻupuʻu i ke ala neʻe. Akā iā ʻoe iho, e ʻoluʻolu e hāʻawi mai iaʻu i kaʻu noi monolithic, kahi wahi ma kahakai - a hauʻoli loa wau.

Source: www.habr.com

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