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

Aloha, habr. Wehe ʻia ke kākau inoa no kahi kahawai papa hou i kēia manawa ma OTUS "Kōnaehana Pūnaewele". Ma ka pō o ka hoʻomaka ʻana o ka papa, makemake wau e kaʻana like me ʻoe i kaʻu ʻatikala kumu.

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.

He wahi moʻolelo

Inā ʻoe e hoʻāʻo e nīnau i nā mea hoʻomohala: "No ke aha mākou e pono ai i nā microservices?", E loaʻa iā ʻoe nā ʻano pane like ʻole. E lohe ʻoe i ka hoʻomaikaʻi ʻana o nā microservices i ka scalability, e maʻalahi ka hoʻomaopopo ʻana i ke code, hoʻomaikaʻi i ka hoʻomanawanui hewa, a i kekahi manawa e lohe ʻoe e ʻae lākou iā ʻoe e "hoʻomaʻemaʻe i kāu code." E nānā kākou i ka mōʻaukala e hoʻomaopopo i ke kumu o ka puka ʻana mai o nā microservices.

I ka pōkole, ua kū mai nā microservices i kā mākou ʻike i kēia manawa: i ka makahiki 2011, ʻo James Lewis, ka nānā ʻana i ka hana o nā ʻoihana like ʻole, ua huki i ka manaʻo i ka puka ʻana mai o kahi ʻano "micro-app" hou, nāna i hoʻomaikaʻi i ka SOA ma ke ʻano o ka wikiwiki ʻana i ka hoʻolaha ʻana. lawelawe. Ma hope aʻe, i ka makahiki 2012, ma kahi hui hoʻolālā, ua kapa hou ʻia ke kumu i ka microservice. No laila, ʻo ka pahuhopu mua o ka hoʻokomo ʻana i nā microservices e hoʻomaikaʻi i ka mea kaulana manawa.

Aia nā Microservices i ka nalu hype ma 2015. Wahi a kekahi mau haʻawina, ʻaʻole i pau kahi hālāwai kūkā me ka ʻole o kahi hōʻike e pili ana i ke kumuhana o microservices. Eia kekahi, ua hoʻolaʻa wale ʻia kekahi mau hālāwai kūkā i nā microservices. I kēia mau lā, nui nā papahana e hoʻomaka e hoʻohana i kēia ʻano hoʻolālā, a inā loaʻa i ka papahana nā toni o ka code legacy, a laila ke hoʻokō ʻia nei ka neʻe ʻana i microservices.

ʻOiai nā mea a pau i luna, hiki i kahi helu liʻiliʻi o nā mea hoʻomohala ke wehewehe i ka manaʻo o ka "microservice". Akā e kamaʻilio mākou e pili ana i kēia ma hope iki ...

Monolith

ʻO ke ʻano hoʻolālā e hoʻohālikelike i nā microservices ʻo ia ka monolith (a i ʻole āpau-i-hoʻokahi). ʻAʻole kūpono paha ka haʻi ʻana i ke ʻano o ka monolith, no laila e hoʻopaʻa inoa wau i nā hemahema o kēia ʻano hoʻolālā, ka mea i hoʻomaka i ka hoʻomohala hou ʻana o nā ʻano hoʻolālā: ka nui, ka hoʻohui ʻana, ka deployment, scalability, reliability and rigidity. Ma lalo nei ke manaʻo nei au e nānā kaʻawale i kēlā me kēia hemahema.

ka nui

Nui loa ka monolith. A kamaʻilio maʻamau me kahi waihona waihona nui loa. Nui loa ka palapala noi no ka hoʻomaopopo ʻana o ka mea hoʻomohala. ʻO ka poʻe i hoʻohana nui i ka manawa e hana ai i kēia code hiki ke hana maikaʻi me ka monolith, ʻoiai e hoʻomaka ana ka poʻe hoʻomaka i ka manawa nui e hoʻāʻo e ʻike i ka monolith a ʻaʻohe mea hōʻoia e ʻike lākou. ʻO ka mea maʻamau, i ka wā e hana ai me kahi monolith, aia mau kekahi poʻe "conditional" i ʻike i ka monolith a ʻoi aku ka maikaʻi a paʻi i nā lima o nā mea hoʻomohala hou i loko o hoʻokahi makahiki a me ka hapa. ʻO ka mea maʻamau, ʻo ia ke kūlana kūlana he wahi hoʻokahi o ka hemahema, a hiki i kona haʻalele ʻana ke alakaʻi i ka make o ka monolith.

Hoʻohui

ʻO ka monolith he "pōpō nui o ka lepo", nā hoʻololi e hiki ai ke alakaʻi i nā hopena i manaʻo ʻole ʻia. Ma ka hoʻololi ʻana i kahi wahi, hiki iā ʻoe ke hōʻino i ka monolith ma kahi ʻē aʻe (ʻo ia hoʻi "ua ʻoki ʻoe i kou pepeiao, *@ hāʻule"). ʻO kēia ma muli o keʻano o nā mea i loko o ka monolith he paʻakikī loa a,ʻo ka mea nui loa, nā pilina piliʻole.

Hoʻonoho

ʻO ka hoʻolālāʻana i kahi monolith, ma muli o nā pilina paʻakikī ma waena o kāna mau mea, he hana lōʻihi me kāna hana pono'ī. ʻAʻole i hoʻopaʻa ʻia kēlā ʻano hana maʻamau a hāʻawi ʻia ma ka "waha."

Scalability

Hiki i nā modules Monolith ke kū'ē i nā pono waiwai, e koi ana i ka ʻae ʻana e hana ʻia ma ke ʻano o ka lako. E noʻonoʻo e loaʻa iā ʻoe kahi monolith me nā lawelawe A a me B. Ke koi nei ʻo Service A i ka nui o ka paʻa paʻa, a ke koi nei ka lawelawe B ma RAM. I kēia hihia, ʻo ka mīkini kahi i kau ʻia ai ka monolith pono e kākoʻo i nā koi o nā lawelawe ʻelua, a i ʻole pono ʻoe e hoʻopau i kekahi o nā lawelawe me ka lima.

ʻO kekahi laʻana (ʻoi aku ka maʻamau): ʻoi aku ka kaulana o ka lawelawe A ma mua o ka lawelawe B, no laila makemake ʻoe e loaʻa nā lawelawe 100 A, a me 10 mau lawelawe B. Eia hou, ʻelua mau koho: inā mākou e kau aku i 100 monoliths piha, a i ʻole ma kekahi mau manawa. pono e ho'opau lima 'ia nā lawelawe B.

Pono

Ma muli o ka hui pū ʻana o nā lawelawe āpau, inā hāʻule ka monolith, a laila hāʻule nā ​​lawelawe āpau i ka manawa hoʻokahi. I ka ʻoiaʻiʻo, ʻaʻole maikaʻi loa kēia, ma ka liʻiliʻi ʻaʻole e loaʻa nā hapa hapa i kahi ʻōnaehana puʻupuʻu, akā ma ka ʻaoʻao ʻē aʻe, ma muli o kahi bug i ka hana i hoʻohana ʻia e 0.001% o nā mea hoʻohana, hiki iā ʻoe ke nalowale i nā mea hoʻohana a pau. o kāu pūnaewele.

Inertia

Ma muli o ka nui o ka monolith, paʻakikī ke hoʻololi i nā ʻenehana hou. ʻO ka hopena, he hana kaʻawale ka mālama ʻana i kēlā poʻokela. ʻO ka ʻenehana ʻenehana i koho ʻia i ka hoʻomaka ʻana o kahi papahana hiki ke lilo i poloka e keakea ana i ka hoʻomohala ʻana o ka huahana.

hopena

I ka manawa aʻe e kamaʻilio mākou e pili ana i ka hoʻāʻo ʻana o nā kānaka e hoʻoponopono i kēia mau pilikia ma ka neʻe ʻana i nā ʻāpana a me SOA.

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

E heluhelu hou:

Source: www.habr.com

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