Aloha kākou! He nūhou maikaʻi kā mākou, hoʻomaka hou ʻo OTUS i ka papa i Iune
Inā ʻike ʻoe i kēia moʻolelo microservices me ka ʻole o ka pōʻaiapili, e kala ʻia ʻoe no ka noʻonoʻo ʻana he mea ʻano ʻē. ʻO ka hoʻokaʻawale ʻana i kahi noi i nā ʻāpana i hoʻopili ʻia e kahi pūnaewele ʻo ia ke ʻano o ka hoʻohui ʻana i nā ʻano hana hoʻomanawanui hewa paʻakikī i ka ʻōnaehana puʻunaue.
ʻOiai e pili ana kēia ala i ka hoʻokaʻawale ʻana i nā lawelawe kūʻokoʻa he nui, ʻoi aku ka pahuhopu hope ma mua o ka holo ʻana i kēlā mau lawelawe ma nā mīkini like ʻole. Ke kamaʻilio nei mākou ma ʻaneʻi e pili ana i ka launa pū ʻana me ka honua o waho, ka mea i puʻunaue ʻia i kona ʻano. ʻAʻole ma ke ʻano ʻenehana, akā ma ke ʻano o kahi kaiaola e pili ana i nā poʻe he nui, nā hui, nā papahana, a ʻo kēlā me kēia ʻāpana e hana i kāna hana ma kekahi ʻano a i ʻole.
ʻO nā ʻoihana, no ka laʻana, he pūʻulu o nā ʻōnaehana puʻupuʻu e kōkua pū i ka hoʻokō ʻana i kekahi pahuhopu. Ua haʻalele mākou i kēia ʻoiaʻiʻo no nā makahiki he nui, e hoʻāʻo nei e hoʻokō i ka hoʻohui ʻia e nā hoʻololi FTP a i ʻole nā mea hana hoʻohui ʻoihana, ʻoiai ke kālele ʻana i kā mākou mau pahuhopu kaʻawale. Akā me ka hiki ʻana mai o nā lawelawe, ua loli nā mea a pau. Ua kōkua nā lawelawe iā mākou e nānā ma waho aʻe o ka honua a ʻike i kahi honua o nā papahana pili e hana pū ana. Eia naʻe, i mea e hana maikaʻi ai, pono e ʻike a hoʻolālā i ʻelua mau honua ʻokoʻa: ʻo ka honua waho, kahi e noho ai mākou i kahi kaiaola o nā lawelawe ʻē aʻe he nui, a me ko mākou honua pilikino, kahi e noho aliʻi wale ai mākou.
He ʻokoʻa kēlā ʻano honua puʻupuʻu mai ka honua a mākou i ulu ai a maʻa mau. ʻAʻole kū i ka hoʻohewa nā kumu o ke kūkulu ʻana i kahi hoʻolālā monolithic kuʻuna. No laila, ʻoi aku ka maikaʻi o kēia mau ʻōnaehana ma mua o ka hana ʻana i kahi kiʻi papa keʻokeʻo maikaʻi a i ʻole kahi hōʻoia maikaʻi o ka manaʻo. ʻO ka manaʻo e hana maikaʻi kēlā ʻōnaehana no ka manawa lōʻihi. ʻO ka mea pōmaikaʻi, ua puni nā lawelawe no ka manawa lōʻihi, ʻoiai he ʻokoʻa ke ʻano.
No laila i kēia lā e nānā mākou i ke ʻano o ka loli ʻana o nā lula, no ke aha mākou e noʻonoʻo hou ai i kā mākou ala i nā lawelawe a me nā ʻikepili a lākou e hāʻawi ai i kekahi i kekahi, a no ke aha mākou e pono ai i kahi mea hana ʻokoʻa loa no ia.
ʻAʻole lilo ʻo Encapsulation i hoaaloha nou
Hiki i nā Microservices ke hana kūʻokoʻa kekahi i kekahi. ʻO kēia waiwai ka mea i hāʻawi iā lākou i ka waiwai nui loa. Hāʻawi kēia waiwai like i nā lawelawe e hoʻonui a ulu. ʻAʻole nui loa ma ke ʻano o ka hoʻonui ʻana i nā quadrillions o nā mea hoʻohana a i ʻole nā petabytes o ka ʻikepili (ʻoiai hiki iā lākou ke kōkua pū ma ʻaneʻi), akā ma ke ʻano o ka hoʻonui ʻana i ka poʻe e ulu mau ana nā hui a me nā hui.
Eia naʻe, ʻo ke kūʻokoʻa he pahi kaua ʻelua. ʻO ia hoʻi, hiki i ka lawelawe pono ke milo maʻalahi a kūlohelohe. Akā inā hoʻokō ʻia kahi hana i loko o kahi lawelawe e koi ana i kahi lawelawe ʻē aʻe e komo, a laila hoʻopau mākou i ka hoʻololi ʻana i nā lawelawe ʻelua kokoke i ka manawa like. I loko o kahi monolith, maʻalahi kēia hana, hana wale ʻoe i kahi hoʻololi a hoʻouna iā ia e hoʻokuʻu, akā i ke ʻano o ka synchronization o nā lawelawe kūʻokoʻa, e nui aʻe nā pilikia. ʻO ka hui pū ʻana ma waena o nā hui a me nā pōʻai hoʻokuʻu e hoʻopau i ka loli.
Ma ke ʻano o ke ala maʻamau, e hoʻāʻo wale lākou e pale i nā hoʻololi hoʻonāukiuki i ka hopena, e hoʻokaʻawale i ka hana ma waena o nā lawelawe. Hiki i ka lawelawe kau inoa hoʻokahi ke lilo i kumu hoʻohālike maikaʻi ma aneʻi. He kuleana i wehewehe maikaʻi ʻia e hoʻokaʻawale iā ia mai nā lawelawe ʻē aʻe. ʻO kēia hoʻokaʻawale akaka ʻo ia hoʻi, i loko o kahi honua o ka hoʻololi wikiwiki ʻana i nā koi no nā lawelawe a puni ia, ʻaʻole paha e loli ka SSO. Aia i loko o kahi pōʻaiapili palena ʻole.
ʻO ka pilikia ma ka honua maoli, ʻaʻole hiki i nā lawelawe ʻoihana ke mālama i ka hoʻokaʻawale maʻemaʻe o nā kuleana i nā manawa āpau. No ka laʻana, ʻoi aku ka hana o nā lawelawe ʻoihana like me ka ʻikepili e hele mai ana mai nā lawelawe like ʻole. Inā he hale kūʻai pūnaewele ʻoe, e hoʻohana ana i ke kahe kauoha, ka waihona huahana, a i ʻole ka ʻike mea hoʻohana e lilo i koi no ka nui o kāu mau lawelawe. Pono kēlā me kēia lawelawe e komo i kēia ʻikepili i mea e hana ai.
Hoʻohana ka hapa nui o nā lawelawe ʻoihana i ke kahawai ʻikepili like, no laila e hui pū ʻia kā lākou hana.
No laila hiki mākou i kahi mea nui e pono ke kamaʻilio e pili ana. ʻOiai e hana maikaʻi ana nā lawelawe no nā ʻāpana ʻenehana e hana nui ana i kahi kaʻawale, ʻo ka hapa nui o nā lawelawe ʻoihana e hoʻopau i ka pili paʻa loa.
ʻIkepili Dichotomy
Loaʻa paha nā ala e pili ana i ka lawelawe, akā ʻaʻole liʻiliʻi ka ʻike e pili ana i ka hoʻololi ʻana i nā ʻikepili nui ma waena o nā lawelawe.
ʻO ka pilikia nui, ʻaʻole hiki ke hoʻokaʻawale ʻia ka ʻikepili a me nā lawelawe. Ma kekahiʻaoʻao, hoʻoikaika ka encapsulation iā mākou e hūnā i nāʻikepili i hiki ke hoʻokaʻawaleʻia nā lawelawe mai kekahi i kekahi a hoʻoikaika i ko lākou ulu a me nā loli hou. Ma ka ʻaoʻao ʻē aʻe, pono mākou e puʻunaue a lanakila wale ma luna o ka ʻikepili kaʻana like, e like me nā mea ʻē aʻe. E pili ana ia i ka hiki ke hoʻomaka koke i ka hana, e like me ka manuahi e like me nā ʻōnaehana ʻike ʻē aʻe.
Eia naʻe, liʻiliʻi ka pili o nā ʻōnaehana ʻike me ka encapsulation. ʻOiaʻiʻo, ʻo ia ke ʻano ʻē aʻe. Hana nā waihona i nā mea a pau e hiki ai ke hāʻawi i ka ʻike i ka ʻikepili a lākou e mālama ai. Hele mai lākou me kahi interface declarative ikaika e hiki ai iā ʻoe ke hoʻololi i ka ʻikepili e like me kou makemake. He mea nui ia hana ma ke kahua o ka noiʻi mua, akā ʻaʻole no ka mālama ʻana i ka ulu ʻana o ka paʻakikī o kahi lawelawe e ulu mau nei.
A eia kahi pilikia e puka mai nei. Kūʻē. Dichotomy. Ma hope o nā mea a pau, pili nā ʻōnaehana ʻike i ka hāʻawi ʻana i ka ʻikepili, a ʻo nā lawelawe e pili ana i ka hūnā.
ʻO kēia mau ikaika ʻelua he kumu. Kākoʻo lākou i ka hapa nui o kā mākou hana, e hoʻokūkū mau nei i ka mana kiʻekiʻe ma nā ʻōnaehana a mākou e kūkulu ai.
Ke ulu a ulu nā ʻōnaehana lawelawe, ʻike mākou i nā hōʻike like ʻole o ka hopena o ka dichotomy data. E ulu paha ka lawelawe lawelawe e hāʻawi i nā hiʻohiʻona hou aʻe a hoʻomaka e like me kahi waihona homegrown maikaʻi loa, a i ʻole e hōʻeha mākou a hoʻokō i kekahi ala e unuhi a hoʻoneʻe paha i nā datasets holoʻokoʻa i ka nui mai ka lawelawe i ka lawelawe.
Ma ka huli ʻana, ʻo ka hana ʻana i kahi mea e like me kahi waihona homebrew nani e alakaʻi i kahi lehulehu o nā pilikia. ʻAʻole mākou e hele i nā kikoʻī o ka mea weliweli waihona waihona, e ʻōlelo wale kākou, he ʻenekinia waiwai nui a me ka hana
ʻOi aku ka hewa, hoʻonui ka nui o ka ʻikepili i nā pilikia me nā palena lawelawe. Aia ka ʻikepili maʻamau i loko o ka lawelawe, ʻoi aku ka paʻakikī o ke kikowaena a ʻoi aku ka paʻakikī o ka hoʻohui ʻana i nā pūʻulu ʻikepili e hele mai ana mai nā lawelawe like ʻole.
ʻO ke ala ʻē aʻe o ka unuhi ʻana a me ka neʻe ʻana i nā ʻikepili holoʻokoʻa he mau pilikia ponoʻī nō hoʻi. ʻO kahi ala maʻamau i kēia nīnau me he mea lā ʻo ka hoʻihoʻi wale ʻana a mālama i ka ʻikepili holoʻokoʻa, a laila mālama ia ma ka ʻāina i kēlā me kēia lawelawe ʻai.
ʻO ka pilikia, ʻo ka wehewehe ʻana o nā lawelawe like ʻole i ka ʻikepili a lākou e ʻai ai. Aia kēia ʻikepili i nā manawa a pau. Hoʻololi ʻia lākou a hana ʻia ma ka ʻāina. ʻAʻole koke lākou e hoʻopau i kekahi mea e pili ana i ka ʻikepili i ke kumu.
ʻOi aku ka hoʻololi ʻana o nā kope, ʻoi aku ka nui o ka ʻikepili i ka manawa.
ʻOi aku ka maikaʻi, paʻakikī ke hoʻoponopono ʻana i ia ʻikepili i ka nānā ʻana (
No ka loaʻa ʻana o kahi hopena i kēia pilikia ʻikepili maʻamau, pono ʻoe e noʻonoʻo ʻokoʻa. Pono lākou e lilo i mau mea papa mua i nā hale hana a mākou e kūkulu ai.
ʻO ka pilikia, ʻaʻole pili ka hoʻokokoke ʻana i kēia lā, no ka mea, ʻaʻole i hāʻawi ka lawelawe lawelawe, ʻaʻole ka memo, a me ka Shared Database i kahi hopena maikaʻi no ka hana ʻana me ka ʻikepili waho. ʻAʻole kūpono nā kikowaena lawelawe no ka hoʻololi ʻana i ka ʻikepili ma kēlā me kēia ʻano. Hoʻoneʻe ka memo i ka ʻikepili akā ʻaʻole mālama i kona mōʻaukala, no laila e pōʻino ka ʻikepili i ka manawa. Hoʻopili nui ʻia ʻo Shared Databases ma kahi kikoʻī, kahi e kāohi nei i ka holomua. Paʻa ʻole mākou i kahi pōʻai o ka hāʻule ʻana o ka ʻikepili:
pōʻaiapili hāʻule ʻikepili
Flows: kahi hoʻokaʻawale i ka ʻikepili a me nā lawelawe
Ma ke kūpono, pono mākou e hoʻololi i ke ʻano o ka lawelawe ʻana o nā lawelawe me ka ʻikepili kaʻana like. I kēia manawa, holo kekahi ala i loko o ka dichotomy i ʻōlelo ʻia ma mua, no ka mea, ʻaʻohe lepo kilokilo hiki ke kāpīpī nui ʻia ma luna a nalowale. Eia naʻe, hiki iā mākou ke noʻonoʻo hou i ka pilikia a hiki i kahi hoʻoholo.
Hōʻike kēia kuʻikahi i kahi pae o ka centralization. Hiki iā mākou ke hoʻohana pono i ka mīkini logging puʻupuʻu e like me ka hāʻawi ʻana i nā kahawai hilinaʻi, scalable. I kēia manawa, makemake mākou i nā lawelawe e hiki ke hui a holo i kēia mau ʻāpana like, akā makemake mākou e pale i nā lawelawe kikowaena kikowaena paʻakikī e hana i kēia kaʻina hana. No laila, ʻo ka koho maikaʻi loa ke kūkulu ʻana i ka hoʻoili streaming i kēlā me kēia lawelawe mea kūʻai aku. ʻAe kēia i nā lawelawe e hoʻohui i nā pūʻulu ʻikepili mai nā kumu like ʻole a hana pū me lākou ma ke ala e pono ai lākou.
ʻO kahi ala e hoʻokō ai i kēia ala ma o ka hoʻohana ʻana i kahi platform streaming. Nui nā koho, akā i kēia lā e noʻonoʻo mākou iā Kafka, ʻoiai ke hoʻohana nei i kāna Stateful Stream Processing e hiki ai iā mākou ke hoʻoponopono pono i ka pilikia i hōʻike ʻia.
ʻO ka hoʻohana ʻana i ka mīkini logging i hāʻawi ʻia e hiki iā mākou ke hahai i ke ala i hahau ʻia a hoʻohana i ka memo e hana pū ai
Inā kuleana ka mea kūʻai aku no ka hoʻopaʻa inoa ʻana, ʻaʻole ka ʻōnaehana memo maʻamau, hiki iā ʻoe ke hoʻohana i nā hiʻohiʻona hou. Hiki i ka lawe ʻana ke hoʻonui i ka linearly kokoke e like me kahi ʻōnaehana waihona puʻupuʻu. Hiki ke mālama ʻia ka ʻikepili i loko o nā lāʻau no ka manawa lōʻihi, no laila ʻaʻole i loaʻa iā mākou ka memo wale nō, akā, kahi waihona o ka ʻike. Hiki ke hoʻopaʻa ʻia me ka makaʻu ʻole i ka mokuʻāina like ʻole.
Hiki iā ʻoe ke hoʻohana i ka stateful stream processing mechanism e hoʻohui i nā mea hana waihona declarative i kāu mau lawelawe ʻai. He manaʻo koʻikoʻi kēia. ʻOiai ka lōʻihi o ka mālama ʻana o ka ʻikepili i nā kahawai kaʻana i hiki ke ʻike ʻia e nā lawelawe āpau, ʻo ka hōʻuluʻulu a me ka hana ʻana i hana ʻia e ka lawelawe. Hoʻokaʻawale ʻia lākou i loko o kahi pōʻaiapili palena ʻole.
E hoʻopau i ka dichotomy data ma ka hoʻokaʻawale ʻana i ke kahawai mokuʻāina immutable. A laila hoʻohui i kēia hana i kēlā me kēia lawelawe me ka hoʻohana ʻana i ka Stateful Stream Processing.
No laila, inā pono kāu lawelawe e hana me nā kauoha, kahi palapala huahana, kahi hale kūʻai, e loaʻa iā ia ke komo piha: ʻo ʻoe wale nō e hoʻoholo i ka ʻikepili e hui pū ai, kahi e hoʻoponopono ai a pehea e loli ai i ka manawa. ʻOiai ke kaʻana like ʻana o ka ʻikepili, ua hoʻokaʻawale loa ʻia ka hana ʻana me ia. Hana ʻia i loko o kēlā me kēia lawelawe, i kahi honua kahi e hele ai nā mea āpau e like me kāu mau lula.
Kaʻana like i ka ʻikepili me ka hōʻole ʻole i kona kūpaʻa. Hoʻopili i kahi hana, ʻaʻole kahi kumu, i kēlā me kēia lawelawe e pono ai.
No laila, pono e hoʻoneʻe ʻia ka ʻikepili i ka nui. I kekahi manawa, pono ka lawelawe i ka ʻikepili mōʻaukala kūloko i ka mīkini waihona koho. ʻO ka hoʻopunipuni ka mea hiki ke hōʻoiaʻiʻo ʻia, inā pono, hiki ke hoʻihoʻi ʻia kahi kope mai ke kumu ma o ka hoʻopili ʻana i ka mīkini logging mahele. Hana maikaʻi nā mea hoʻohui ma Kafka i kēia.
No laila, ʻo ke ala i kūkākūkā ʻia i kēia lā he nui nā pono:
- Hoʻohana ʻia ka ʻikepili ma ke ʻano o nā kahawai i hiki ke mālama ʻia i loko o nā lāʻau no ka manawa lōʻihi, a ʻo ke ʻano hana no ka hana ʻana me ka ʻikepili i hoʻopaʻa ʻia i paʻa ʻia i kēlā me kēia pōʻaiapili, e hiki ai i nā lawelawe ke hana maʻalahi a wikiwiki. Ma kēia ala, hiki ke kaulike ka dichotomy o ka ʻikepili.
- Hiki ke hoʻohui maʻalahi i nā ʻikepili mai nā lawelawe like ʻole i nā pūʻulu. Hoʻomaʻamaʻa kēia i ka pilina me ka ʻikepili kaʻana a hoʻopau i ka pono e mālama i nā ʻikepili kūloko i ka waihona.
- ʻO Stateful Stream Processing wale nō ka hūnā i ka ʻikepili, a ʻo nā moʻolelo maʻamau ke kumu o ka ʻoiaʻiʻo, no laila ʻaʻole nui ka pilikia o ka palaho ʻikepili i ka manawa.
- Ma ko lākou kumu, nā lawelawe i hoʻoili ʻia i ka ʻikepili, ʻo ia hoʻi ʻoiai ka ulu mau o ka nui o ka ʻikepili, hiki i nā lawelawe ke pane koke i nā hanana ʻoihana.
- Hāʻule nā pilikia scalability ma luna o ka mea kūʻai aku, ʻaʻole nā lawelawe. Hoʻemi nui kēia i ka paʻakikī o nā lawelawe kākau, ʻoiai ʻaʻohe pono e noʻonoʻo e pili ana i ka scalability.
- ʻAʻole pono ka hoʻohui ʻana i nā lawelawe hou e hoʻololi i nā mea kahiko, no laila e maʻalahi ka hoʻohui ʻana i nā lawelawe hou.
E like me kāu e ʻike ai, ʻoi aku ia ma mua o ka REST. Ua loaʻa iā mākou kahi pūʻulu o nā mea hana e hiki ai iā ʻoe ke hana me ka ʻikepili kaʻana i kahi ala decentralized.
ʻAʻole i hōʻike ʻia nā mea āpau ma ka ʻatikala o kēia lā. Pono mākou e noʻonoʻo pehea e kaulike ai ma waena o ka paradigm noi-pane a me ka paradigm i alakaʻi ʻia e ka hanana. Akā e hana mākou i kēia manawa aʻe. Aia nā kumuhana e pono ai ʻoe e ʻike maikaʻi, no ka laʻana, no ke aha i maikaʻi ai ka Stateful Stream Processing. E kamaʻilio mākou e pili ana i kēia ma ka ʻatikala ʻekolu. A aia kekahi mau hana ikaika ʻē aʻe i hiki iā mākou ke hoʻohana inā mākou e hoʻohana iā lākou, no ka laʻana,
Akā i kēia manawa, e hoʻomanaʻo wale i kēia: ʻo ka data dichotomy kahi ikaika a mākou e kū nei i ke kūkulu ʻana i nā lawelawe ʻoihana. A pono kākou e hoʻomanaʻo i kēia. ʻO ka hoʻopunipuni e hoʻohuli i nā mea āpau ma luna o kona poʻo a hoʻomaka i ka mālama ʻana i ka ʻikepili kaʻana like me nā mea papa mua. Hāʻawi ʻo Stateful Stream Processing i kahi kuʻikahi kūʻokoʻa no kēia. Hōʻalo ia i ka "God Components" i hoʻopaʻa i ka holomua. Eia kekahi, hāʻawi ia i ka agility, scalability, a me ka resiliency o ka data streaming pipelines a hoʻohui iā lākou i kēlā me kēia lawelawe. No laila, hiki iā mākou ke nānā aku i ke kahawai nui o ka ʻike e hiki ai i kekahi lawelawe ke hoʻopili a hana pū me kāna ʻikepili. ʻO kēia ka mea e ʻoi aku ka maʻalahi o nā lawelawe, hiki ke hoʻololi a kūʻokoʻa. No laila, ʻaʻole lākou e nānā maikaʻi ma nā papa keʻokeʻo a i ka wā e hoʻāʻo ai i nā kuhiakau, akā hana pū kekahi a hoʻomohala no nā makahiki.
Source: www.habr.com