Microservices - kahi pahū hui ʻana o nā mana

Aloha, Habr! Ke hoike aku nei au i kou noonoo unuhi a ka mea kākau o ka ʻatikala Microservices - Hoʻohuihui ʻia o nā ʻano.
Microservices - kahi pahū hui ʻana o nā mana
I ka manawa e neʻe mālie ai ka honua IT i nā microservices a me nā mea hana e like me Kubernetes, hoʻokahi wale nō pilikia e ʻike nui ʻia. ʻO kēia pilikia - pahū huikau nā mana microservice. Eia nō naʻe, ke manaʻoʻiʻo nei ke kaiāulu IT ʻoi aku ka maikaʻi o ke kūlana o kēia manawa "Dependency hell" ka hanauna mua o ka ʻenehana. Eia naʻe, he pilikia paʻakikī loa ka hoʻololi ʻana i nā microservices. ʻO kekahi hōʻike o kēia hiki ke ʻatikala like "E hoʻihoʻi mai iaʻu i kaʻu monolith".

Inā ʻaʻole maopopo ʻoe i ka pilikia ma ka heluhelu ʻana i kēia kikokikona, e wehewehe wau. E ʻōlelo kākou he 10 mau microservice kāu huahana. I kēia manawa, e manaʻo mākou ua hoʻokuʻu ʻia ka mana hou no kēlā me kēia microservices. ʻO 1 wale nō ka mana - Manaʻo wau e hiki iā mākou ke ʻae he ʻoiaʻiʻo loa kēia. Eia naʻe, e nānā hou kākou i kā mākou huahana. Me hoʻokahi wale nō mana hou o kēlā me kēia ʻāpana, ua loaʻa iā mākou i kēia manawa he 1^2 - a i ʻole 10 mau hoʻololi o ke ʻano o kā mākou huahana e haku ʻia.

Inā loaʻa kekahi kuhihewa, e ʻae mai iaʻu e wāwahi i ka makemakika. No laila, loaʻa iā mākou he 10 microservices, loaʻa kēlā me kēia i hoʻokahi mea hou. ʻO ia hoʻi, loaʻa iā mākou 2 mau mana kūpono no kēlā me kēia microservice (ʻo ka mea kahiko a i ʻole ka mea hou). I kēia manawa, no kēlā me kēia ʻāpana huahana, hiki iā mākou ke hoʻohana i kekahi o kēia mau mana ʻelua. ʻO ka makemakika, ua like ia me ka loaʻa ʻana o ka helu binary o 10 mau huahelu. No ka laʻana, e ʻōlelo kākou ʻo 1 ka mana hou, a ʻo 0 ka mana kahiko - a laila hiki ke kuhikuhi ʻia kahi permutation hiki ke hōʻike ʻia ʻo 1001000000 - kahi i hōʻano hou ʻia nā ʻāpana 1 a me 4, a ʻo nā mea ʻē aʻe a pau ʻaʻole. Mai ka makemakika ʻike mākou he 10-helu helu binary hiki ke loaʻa nā waiwai 2^10 a i ʻole 1024. ʻO ia hoʻi, ua hōʻoia mākou i ka nui o ka helu a mākou e hana nei.

E hoʻomau hou i kā mākou noʻonoʻo - he aha ka hopena inā loaʻa iā mākou 100 microservices a loaʻa i kēlā me kēia me 10 mau mana? ʻAʻole ʻoluʻolu ke kūlana holoʻokoʻa - loaʻa iā mākou i kēia manawa he 10^100 permutations - he helu nui ia. Eia naʻe, makemake au e lepili i kēia kūlana ma kēia ʻano, no ka mea, ʻaʻole mākou e hūnā hou ma hope o nā huaʻōlelo e like me "kubernetes", akā ke kū nei i ka pilikia e like me ia.

No ke aha i hoihoi nui ai au i kēia pilikia? ʻO kahi hapa no ka mea, ua hana mua mākou i ka honua o NLP a me AI, ua kūkākūkā mākou i ka pilikia o ka pahū combinatorial ma kahi o 5-6 mau makahiki i hala. Ma kahi o nā mana i loaʻa iā mākou nā huaʻōlelo pākahi, a ma kahi o nā huahana ua loaʻa iā mākou nā huaʻōlelo a me nā paukū. A ʻoiai ʻo nā pilikia o NLP a me AI e hoʻomau ʻole ʻia, pono e ʻae ʻia ua holomua ka holomua i nā makahiki i hala. (i koʻu manaʻo, hiki ke holomuaоʻOi aku ka maikaʻi inā hoʻemi iki ka poʻe o ka ʻoihana i ke aʻo ʻana i ka mīkini a ʻoi aku ka liʻiliʻi i nā ʻenehana ʻē aʻe - akā aia kēia ma waho o ke kumuhana).

E hoʻi kākou i ka honua o DevOps a me microservices. Ke alo nei mākou i kahi pilikia nui, e hoʻomaʻamaʻa ana me he ʻelepani i ka Kunstkamera - no ka mea, ʻo kaʻu mea e lohe pinepine ai ʻo ia "e lawe wale i nā kubernetes a me ka hoʻokele, a e maikaʻi nā mea āpau!" Akā ʻaʻole, ʻaʻole maikaʻi nā mea a pau ke waiho ʻia nā mea a pau. Eia kekahi, ʻaʻole i ʻae ʻia kahi hopena analytical i kēia pilikia ma muli o kona paʻakikī. E like me ka NLP, pono mākou e hoʻokokoke mua i kēia pilikia ma ka hōʻemi ʻana i ka ʻimi hulina-i kēia hihia, ma ka hoʻopau ʻana i nā permutations kahiko.

ʻO kekahi o nā mea e kōkua ai ʻo ia kekahi mea aʻu i kākau ai i ka makahiki i hala e pili ana i ka pono e mālama i kahi ʻokoʻa liʻiliʻi ma waena o nā mana i kau ʻia no nā mea kūʻai aku. He mea nui nō hoʻi e hoʻomaopopo i ke kaʻina hana CI/CD i hoʻolālā maikaʻi ʻia e kōkua nui i ka hōʻemi ʻana i nā ʻano like ʻole. Eia naʻe, ʻaʻole maikaʻi ke kūlana o kēia manawa me CI/CD no ka hoʻoponopono ʻana i ka pilikia o ka hoʻololi ʻana me ka ʻole o nā mea hana hou no ka helu helu a me nā ʻāpana.

ʻO ka mea e pono ai mākou he ʻōnaehana hoʻokolohua ma ka pae hoʻohui, kahi e hiki ai iā mākou ke hoʻoholo i ke kumu pilikia no kēlā me kēia ʻāpana, a loaʻa pū kekahi kaʻina hana no ka hoʻomaikaʻi ʻana i nā ʻāpana like ʻole a me ka hoʻāʻo ʻana me ka ʻole o ka mea hoʻohana.

ʻO ia ʻōnaehana hoʻokolohua e like me kēia:

  1. Kākau nā mea hoʻomohala i nā hoʻokolohua (he pae koʻikoʻi kēia - no ka mea inā ʻaʻole ʻaʻohe o mākou loiloi loiloi - ua like ia me ka hōʻailona ʻana i ka ʻikepili i ka aʻo mīkini).
  2. Loaʻa i kēlā me kēia ʻāpana (papahana) kāna ʻōnaehana CI ponoʻī - ua hoʻomohala maikaʻi ʻia kēia kaʻina hana, a ua hoʻoholo nui ʻia ka pilikia o ka hana ʻana i kahi ʻōnaehana CI no kahi ʻāpana hoʻokahi.
  3. ʻO ka "smart integration system" e hōʻiliʻili i nā hopena o nā ʻōnaehana CI like ʻole a hōʻuluʻulu i nā papahana ʻāpana i ka huahana hope, holo i ka hoʻāʻo ʻana a hoʻopaʻa hope i ke ala pōkole loa i ka loaʻa ʻana o ka hana huahana i makemake ʻia e pili ana i nā ʻāpana a me nā kumu pilikia. Inā ʻaʻole hiki ke hōʻano hou, hoʻolaha kēia ʻōnaehana i nā mea hoʻomohala e pili ana i nā ʻāpana i loaʻa a ʻo wai o lākou ke kumu o ka hewa. Eia hou, he mea koʻikoʻi ka ʻōnaehana hoʻāʻo ma ʻaneʻi - no ka mea, hoʻohana ka ʻōnaehana hoʻohui i nā hoʻokolohua ma ke ʻano he loiloi loiloi.
  4. Pūnaehana CD, a laila loaʻa i ka ʻikepili mai ka Pūnaehana Hoʻohui Smart a hoʻokō pololei i ka hoʻonui. Hoʻopau kēia pae i ka pōʻai.

No ka hōʻuluʻulu ʻana, noʻu kekahi o nā pilikia nui i kēia manawa ʻo ka nele o ia ʻano "Smart Integration System" e hoʻopili ai i nā ʻāpana like ʻole i kahi huahana a no laila e ʻae iā ʻoe e nānā i ke ʻano o ka hui ʻana o ka huahana holoʻokoʻa. E hoihoi au i nā manaʻo o ke kaiāulu e pili ana i kēia (spoiler - Ke hana nei au i kahi papahana ʻO Reliza, hiki ke lilo i ʻōnaehana hoʻohui akamai).

ʻO kahi mea hope aʻu e makemake ai e haʻi aku ʻo ia, iaʻu, ʻaʻole ʻae ʻia kahi monolith no kekahi papahana ʻoi aku ka nui. Noʻu, ʻo ka hoʻāʻo ʻana e wikiwiki i ka manawa hoʻokō a me ka maikaʻi o ka hoʻomohala ʻana ma o ka hoʻi ʻana i kahi monolith ke kumu o ka kānalua nui. ʻO ka mea mua, he pilikia like ka monolith o ka hoʻokele ʻana i nā ʻāpana - i waena o nā hale waihona puke i loaʻa iā ia, akā naʻe, ʻaʻole ʻike ʻia kēia mau mea āpau a hōʻike mua iā ia iho i ka manawa i hoʻohana ʻia e nā mea hoʻomohala. ʻO ka hopena o ka pilikia monolith ka hiki ʻole ke hoʻololi i ke code - a me ka wikiwiki o ka ulu ʻana.

Hoʻonui ka Microservices i ke kūlana, akā ke kū nei ka hale hana microservice i ka pilikia o ka pahū combinatorial i ka pae hoʻohui. ʻAe, ma ka laulā, ua hoʻoneʻe mākou i ka pilikia like mai ka pae hoʻomohala i ka pae hoʻohui. Eia nō naʻe, i koʻu manaʻo, ke alakaʻi nei ka microservices i nā hopena maikaʻi aʻe, a ʻoi aku ka wikiwiki o nā kime i nā hopena (ma muli paha o ka emi ʻana o ka nui o ka ʻāpana hoʻomohala - a i ʻole. nui pūʻulu). Eia naʻe, ʻo ka neʻe ʻana mai ka monolith i ka microservices ʻaʻole i hoʻomaikaʻi maikaʻi i ke kaʻina hana - ʻo ka hui pū ʻana o nā mana microservice he pilikia nui, a he nui kā mākou hiki ke hoʻomaikaʻi i ke kūlana ke hoʻoponopono mākou.

Source: www.habr.com

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