Ke koho ʻana i ke ʻano hana hale (mahele 2)

Aloha, Habr. I kēia lā ke hoʻomau nei au i nā puke paʻi aʻu i kākau kūikawā ai no ka hoʻomaka ʻana o kahi kahawai hou o ka papa. "Kōnaehana Pūnaewele".

Hōʻike

ʻO ke koho ʻana i ke ʻano hana hale kekahi o nā hoʻoholo ʻenehana kumu i ke kūkulu ʻana i kahi ʻōnaehana ʻike. Ma kēia pūʻulu ʻatikala, manaʻo wau e kālailai i nā ʻano hana hale kaulana loa no ke kūkulu ʻana i nā noi a pane i ka nīnau no ka manawa hea ke ʻano hana hale i makemake nui ʻia. I ke kaʻina o ka hōʻike ʻana, e hoʻāʻo wau e huki i kahi kaulahao loiloi e wehewehe ana i ka hoʻomohala ʻana o nā ʻano hoʻolālā mai nā monoliths a i nā microservices.

В manawa hope loa Ua hana mākou me ka monolith a hiki i ka hopena he nui nā pilikia o ka monolith: ka nui, ka hoʻohui ʻana, ka waiho ʻana, ka scalability, ka hilinaʻi a me ka rigidity.

I kēia manawa, manaʻo wau e kamaʻilio e pili ana i nā hiki ke hoʻonohonoho i kahi ʻōnaehana ma ke ʻano he hoʻonohonoho o nā modules / hale waihona puke (component-oriented architecture) a i ʻole nā ​​​​lawelawe (service-oriented architecture).

ʻO ka hoʻolālā hoʻonohonoho ʻāpana

Hoʻokomo ʻia ka hoʻolālā ʻana i nā mea hoʻohana i ka hoʻokō ʻana i kahi ʻōnaehana ma ke ʻano he pūʻulu o nā ʻāpana i hiki ke hoʻohana ʻia i nā papahana o kēia manawa a me ka wā e hiki mai ana. I ka wā e wāwahi ai i kahi ʻōnaehana i nā ʻāpana, e noʻonoʻo ʻia kēia mau mea: hiki ke hoʻohana hou ʻia, hiki ke hoʻololi, kūʻokoʻa pōʻaiapili, extensibility, encapsulation a me ke kūʻokoʻa.

Me ka hoʻohana pono ʻana i nā ʻāpana, ua hoʻopau ʻia ka pilikia o ka "pōpoe nui o ka lepo" (nui nui + hui pū kiʻekiʻe), a ʻo nā ʻāpana ponoʻī hiki ke lilo i mau ʻāpana hui (modules, hale waihona puke) a me nā ʻāpana hoʻolaha (lawelawe). ʻAʻole paʻa mau ʻia nā ʻāpana hoʻolālā i ke kaʻina hana: no ka laʻana, ua hoʻonohonoho pū ʻia kahi noi pūnaewele a me kahi waihona.

ʻO ka pinepine, hoʻomohala ʻia nā monoliths e like me kahi hoʻonohonoho o nā modula. Ke alakaʻi nei kēia ala i ka hoʻomohala kūʻokoʻa, akā mau nā pilikia o ka scaling kūʻokoʻa a me ka hoʻolaha ʻana, ka hoʻomanawanui hewa a me ke kūʻokoʻa mai ka ʻenehana holoʻokoʻa. ʻO ia ke kumu he ʻāpana kūʻokoʻa ka module.

ʻO ka pilikia nui loa me kēlā monolith, ʻo ka hoʻokaʻawale ʻana i nā modula he kūpono maoli a hiki ke maʻalahi ʻia e nā mea hoʻomohala. Hiki ke ʻike ʻia kahi module koʻikoʻi, e huli mālie ana i kahi ʻōpala, ulu ka pakuhi o nā hilinaʻi ma waena o nā modules, a pēlā aku. I mea e pale aku ai i kēlā mau pilikia, pono e hoʻokō ʻia ka hoʻomohala ʻana e kahi hui ʻoi loa, a i ʻole ma lalo o ke alakaʻi ʻana o kahi "architect" e hana nei i ka loiloi code manawa piha a paʻi i nā lima o nā mea hoʻomohala e hōʻino i ke ʻano loiloi.

ʻO ka monolith "kūpono" he pūʻulu o nā modula i hoʻokaʻawale ʻia, e nānā kēlā me kēia i kāna waihona ponoʻī.

hale hoʻolālā lawelawe

Inā manaʻo ʻia e hoʻonohonoho ʻia ka ʻōnaehana ma ke ʻano o kahi hoʻonohonoho o nā lawelawe, a laila ke kamaʻilio nei mākou e pili ana i kahi hoʻolālā lawelawe lawelawe. ʻO kāna mau loina ka mea hoʻohana-centric application interoperability, ka hoʻohana hou ʻana i ka lawelawe ʻoihana, ke kūʻokoʻa hoʻopaʻa ʻenehana, a me ka autonomy (kūʻokoʻa evolution, scalability, a me ka deployment).

Hoʻoponopono ka hana hoʻolālā lawelawe (SOA = service oriented architecture) i nā pilikia a pau i ʻike ʻia o kahi monolith: hoʻokahi wale nō lawelawe i hoʻopili ʻia ke hoʻololi ʻia, a kākoʻo kahi API i wehewehe maikaʻi ʻia i ka encapsulation maikaʻi o nā ʻāpana.

Akā ʻaʻole maʻalahi nā mea a pau: Hoʻokumu ʻo SOA i nā pilikia hou. Ua ʻoi aku ke kumukūʻai o nā kelepona mamao ma mua o nā kelepona kūloko, a ʻo ka hāʻawi hou ʻana i nā kuleana ma waena o nā ʻāpana ua lilo i ʻoi aku ka nui o ke kumukūʻai.

Ma ke ala,ʻo ka hiki ke hoʻolālā kūʻokoʻa he mea nui loa ia o ka lawelawe. Inā pono e hoʻopili pū ʻia nā lawelawe a i ʻole, i kekahi kaʻina, a laila ʻaʻole hiki ke manaʻo ʻia ka ʻōnaehana lawelawe lawelawe. I kēia hihia, kamaʻilio lākou e pili ana i kahi monolith i hoʻokaʻawale ʻia (i manaʻo ʻia he anti-pattern ʻaʻole wale mai ka manaʻo o SOA, akā mai ka manaʻo o ka microservice architecture).

Kākoʻo maikaʻi ʻia ka hale hoʻolālā lawelawe e ke kaiāulu a me nā mea kūʻai aku. Hōʻike kēia i ka loaʻa ʻana o nā papa he nui a me nā palapala hōʻoia, nā ʻano hoʻolālā maikaʻi. ʻO ka mea hope loa, no ka laʻana, ke kaʻa kaʻa lawelawe ʻoihana kaulana (ESB = enterprise service bus). Ma ka manawa like, he ukana ʻo ESB mai nā mea kūʻai aku; ʻaʻole pono e hoʻohana ʻia ma SOA.

Ua piʻi ka kaulana o ka hoʻolālā lawelawe lawelawe ma kahi o 2008, ma hope o ka hoʻomaka ʻana e emi iho, a ua lilo i mea nui loa ma hope o ka hiki ʻana mai o nā microservices (~ 2015).

hopena

Ma hope o ko mākou kūkākūkā ʻana i nā hiki ke hoʻonohonoho i nā ʻōnaehana ʻike ma ke ʻano o nā lawelawe a me nā modules, ke manaʻo nei au e neʻe hope i nā kumu o ka hoʻolālā microservice a e nānā pono i ka ʻokoʻa ma waena o ka hoʻolālā microservice a me ka hoʻolālā lawelawe lawelawe ma ka ʻāpana aʻe.

Ke koho ʻana i ke ʻano hana hale (mahele 2)

Source: www.habr.com

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