Hoʻolālā Pūnaehana Pūnaehana a me nā ʻōnaehana: ʻO ke kiʻi nui a me ke alakaʻi kumu waiwai

Aloha mai e nā hoa hana.

I kēia lā ke hāʻawi aku nei mākou no kou noʻonoʻo ʻana i kahi unuhi o kahi ʻatikala a Tugberk Ugurlu, nāna i hoʻomaka e wehewehe i nā kumu o ka hoʻolālā ʻana i nā ʻōnaehana polokalamu hou. Eia ka ʻōlelo a ka mea kākau e pili ana iā ia iho ma ka hōʻuluʻulu ʻana:

Hoʻolālā Pūnaehana Pūnaehana a me nā ʻōnaehana: ʻO ke kiʻi nui a me ke alakaʻi kumu waiwai
No ka mea hiki ʻole ke uhi ʻia i loko o kahi ʻatikala habro kahi kumuhana koʻikoʻi e like me nā hiʻohiʻona hoʻolālā + hoʻolālā hoʻolālā e like me 2019, ʻaʻole mākou e paipai i ka kikokikona a Mr. Inā makemake ʻoe, e hoʻopuka mākou i kahi kikokikona kūikawā ʻoi loa e pili ana i ka hoʻolālā ʻana o nā ʻōnaehana puʻupuʻu.

Hoʻolālā Pūnaehana Pūnaehana a me nā ʻōnaehana: ʻO ke kiʻi nui a me ke alakaʻi kumu waiwai

Kūpā ʻia Isaac Smith mai Unsplash

Inā ʻaʻole ʻoe i alo i nā pilikia e like me ka hoʻolālā ʻana i kahi ʻōnaehana polokalamu mai ka wā ʻōpala, a laila i ka hoʻomaka ʻana i ia hana, i kekahi manawa ʻaʻole maopopo kahi e hoʻomaka ai. Ke manaʻoʻiʻo nei au e pono mua ʻoe e huki i nā palena i loaʻa iā ʻoe kahi manaʻo hilinaʻi a ʻoi aʻe paha i ka mea āu e hoʻolālā ai, a laila ʻōwili i kou mau lima a hana i loko o kēlā mau palena. Ma ke ʻano he hoʻomaka, hiki iā ʻoe ke lawe i kahi huahana a i ʻole lawelawe (ʻo kahi āu e makemake nui ai) a noʻonoʻo pehea e hoʻokō ai. Mahalo paha ʻoe i ka maʻalahi o kēia huahana, a me ka nui o ka paʻakikī i loko. Mai poina: maʻalahi - maʻamau paʻakikī, a maikaʻi kēlā.

Manaʻo wau ʻo ka ʻōlelo aʻo maikaʻi loa e hiki iaʻu ke hāʻawi aku i kekahi e hoʻomaka ana e hoʻolālā i kahi ʻōnaehana ʻo ia kēia: mai hana i kekahi manaʻo! Mai ka hoʻomaka ʻana, pono ʻoe e wehewehe i nā ʻike i ʻike ʻia e pili ana i kēia ʻōnaehana a me nā mea i manaʻo ʻia e pili ana me ia. Eia kekahi mau nīnau maikaʻi e nīnau e kōkua iā ʻoe e hoʻomaka me kāu hoʻolālā:

  • He aha ka pilikia a mākou e hoʻoholo nei?
  • He aha ka helu kiʻekiʻe o nā mea hoʻohana e launa pū me kā mākou ʻōnaehana?
  • He aha nā ʻano o ka kākau ʻana a me ka heluhelu ʻana i ka ʻikepili a mākou e hoʻohana ai?
  • He aha nā hihia hemahema i manaʻo ʻia, pehea mākou e hana ai iā lākou?
  • He aha nā manaʻolana no ka paʻa ʻana o ka ʻōnaehana a me ka loaʻa?
  • Pono ʻoe e noʻonoʻo i nā koi e pili ana i ka hōʻoia waho a me ka hoʻoponopono i ka wā e hana ai?
  • He aha nā ʻano ʻikepili koʻikoʻi a mākou e mālama ai?

He mau nīnau liʻiliʻi kēia i pono iaʻu a me nā hui aʻu i komo ai i nā makahiki o ka hana ʻoihana. Inā ʻike ʻoe i nā pane i kēia mau nīnau (a me nā mea ʻē aʻe e pili ana i ka pōʻaiapili āu e hana ai), a laila hiki iā ʻoe ke komo mālie i nā kikoʻī loea o ka pilikia.

E hoʻonoho i ka pae mua

He aha kaʻu manaʻo ma ka "baseline" ma aneʻi? ʻOiaʻiʻo, i ko mākou manawa, ʻo ka hapa nui o nā pilikia i ka ʻoihana polokalamu "hiki" ke hoʻoponopono ʻia me ka hoʻohana ʻana i nā ʻano hana a me nā ʻenehana. No laila, ma ka hoʻokele ʻana i kēia ʻāina, loaʻa iā ʻoe kahi poʻo i ka wā e kū ai i nā pilikia a kekahi e hoʻoponopono i mua ou. Mai poina ua kākau ʻia nā papahana e hoʻoponopono i nā pilikia ʻoihana a me nā mea hoʻohana, no laila ke hoʻoikaika nei mākou e hoʻoponopono i ka pilikia ma ke ala pololei a maʻalahi (mai ka manaʻo o ka mea hoʻohana). No ke aha he mea nui kēia e hoʻomanaʻo? Malia paha i kāu ʻōnaehana hoʻonohonoho makemake ʻoe e ʻimi i nā hoʻonā kūʻokoʻa no nā pilikia āpau, no ka mea, ke manaʻo nei ʻoe, "he aha ke ʻano o ka mea papahana inā wau e hahai i nā kumu ma nā wahi āpau"? I ka ʻoiaʻiʻo, Ke hoʻoholo nei ke akamai ma ʻaneʻi e pili ana i kahi a me ka mea e hana ai. ʻOiaʻiʻo, pono kēlā me kēia o mākou e hoʻoponopono i nā pilikia kūʻokoʻa i kēlā me kēia manawa, he paʻakikī maoli kēlā me kēia. Eia naʻe, inā i wehewehe pono ʻia ko mākou pae mua, a laila ʻike mākou i ka mea e hoʻolilo ai i ko mākou ikaika: e ʻimi ana i nā koho i mākaukau no ka hoʻoponopono ʻana i ka pilikia i waiho ʻia i mua o mākou, a i ʻole ke aʻo hou ʻana a loaʻa ka ʻike hohonu.

Manaʻo wau ua hiki iaʻu ke hōʻoiaʻiʻo iā ʻoe inā ʻike maopopo ka loea i ke ʻano o ka ʻāpana hoʻolālā o kekahi mau ʻōnaehana polokalamu kupanaha, a laila pono kēia ʻike no ka hoʻomaʻamaʻa ʻana i ke ʻano o ka mea kākau a hoʻomohala i kahi kumu paʻa i kēia kahua.

ʻAe, ma hea e hoʻomaka ai? U Donna Martina Aia kahi waihona ma GitHub i kapa ʻia system-design-primer, kahi e hiki ai iā ʻoe ke aʻo pehea e hoʻolālā ai i nā ʻōnaehana nui, a me ka hoʻomākaukau ʻana no nā nīnauele e pili ana i kēia kumuhana. He ʻāpana ka waihona me nā laʻana hale hana maoli, kahi, ma ke ʻano, e noʻonoʻo ʻia pehea lākou e hoʻokokoke ai i ka hoʻolālā ʻana o kā lākou ʻōnaehana kekahi mau hui kaulanae laʻa me Twitter, Uber, etc.

Eia naʻe, ma mua o ka neʻe ʻana i kēia mea, e nānā pono kākou i nā pilikia hoʻolālā koʻikoʻi a mākou e kū nei i ka hana. He mea koʻikoʻi kēia no ka mea pono ʻoe e wehewehe i nā ʻano he nui o ka pilikia paʻakikī a me nā ʻano he nui, a laila e hoʻoponopono iā ia i loko o ke ʻano o nā lula i mana i loko o kahi ʻōnaehana i hāʻawi ʻia. Jackson Gabbard, he limahana Facebook mua, i kākau 50 mau minuke wikiō e pili ana i nā nīnauele hoʻolālā ʻōnaehana, kahi i hōʻike ai ʻo ia i kāna ʻike ponoʻī no ka nānā ʻana i nā haneli o nā mea noi. ʻOiai ke nānā nui nei ka wikiō i ka hoʻolālā ʻōnaehana nui a me nā pae hoʻokō kūleʻa i mea nui i ka wā e ʻimi ai i kahi moho no ia kūlana, e lilo mau ana ia i kumu waiwai piha i nā mea nui loa i ka hoʻolālā ʻana i nā ʻōnaehana. Manaʻo wau hōʻuluʻulu manaʻo keia wikiō.

E kūkulu i ka ʻike e pili ana i ka mālama ʻana a me ka hoʻihoʻi ʻana i ka ʻikepili

ʻO ka maʻamau, ʻo kāu hoʻoholo e pili ana i kāu mālama ʻana a kiʻi hou i kāu ʻikepili no ka wā lōʻihi he hopena koʻikoʻi i ka hana ʻōnaehana. No laila, pono ʻoe e hoʻomaopopo mua i nā ʻano kākau a heluhelu i manaʻo ʻia o kāu ʻōnaehana. A laila pono ʻoe e loiloi i kēia mau hōʻailona a hana i nā koho ma muli o nā loiloi i hana ʻia. Eia nō naʻe, hiki iā ʻoe ke hoʻokō pono i kēia hana inā ʻoe e hoʻomaopopo i nā ʻōnaehana mālama ʻikepili i loaʻa. Ma ke kumu, hōʻike kēia i ka ʻike paʻa e pili ana i koho waihona.

Hiki ke noʻonoʻo ʻia nā waihona ʻikepili e like me nā hale ʻikepili i hiki ke hoʻonui a paʻa. No laila, pono ʻoe e ʻike i ka ʻikepili i ke koho ʻana i kahi waihona kikoʻī. ʻo kahi laʻana, Ho'ōla he kikowaena hoʻonohonoho ʻikepili e kākoʻo ana i nā ʻano waiwai like ʻole. Hāʻawi ia iā ʻoe e hana me nā hale ʻikepili e like me nā papa inoa a me nā hoʻonohonoho, a heluhelu i ka ʻikepili me ka hoʻohana ʻana i nā algorithms kaulana, no ka laʻana, LRU, ka hoʻonohonoho ʻana i ia hana ma kahi ʻano paʻa a hiki ke loaʻa.

Hoʻolālā Pūnaehana Pūnaehana a me nā ʻōnaehana: ʻO ke kiʻi nui a me ke alakaʻi kumu waiwai

Kūpā ʻia Samuel Zeller mai Unsplash

Ke loaʻa iā ʻoe ka ʻike kūpono o nā ʻano waihona waihona ʻikepili, e neʻe i ke aʻo ʻana i ka kūlike a me ka loaʻa ʻana o ka ʻikepili. ʻO ka mea mua, pono ʻoe e hoʻomaopopo CAP theorem ma ka liʻiliʻi loa ma nā ʻōlelo ākea, a laila e hoʻolalelale i kēia ʻike ma ka nānā pono ʻana i nā kumu i hoʻokumu ʻia kūlike и hiki ke komo. Ma kēia ala, e hoʻomohala ʻoe i ka ʻike o ke kahua a hoʻomaopopo ʻoe ʻo ka heluhelu ʻana a me ke kākau ʻana i ka ʻikepili he ʻelua pilikia like ʻole, kēlā me kēia me kona mau pilikia kūʻokoʻa. Hoʻopili ʻia me kekahi mau hiʻohiʻona kūlike a me ka loaʻa, hiki iā ʻoe ke hoʻonui nui i ka hana ʻōnaehana ʻoiai e hōʻoia ana i ka holo ʻana o ka ʻikepili i kāu mau noi.

ʻO ka hope, e hoʻopau i ke kamaʻilio e pili ana i nā pilikia mālama ʻikepili, pono mākou e haʻi i ka caching. Pono e holo like ma ka mea kūʻai aku a me ke kikowaena? He aha ka ʻikepili i loko o kāu huna huna? A no ke aha? Pehea ʻoe e hoʻonohonoho ai i ka hōʻole ʻana i ka cache? E hana mau ia, i kekahi mau manawa? Inā ʻae, ehia mau manawa? Manaʻo wau e hoʻomaka e aʻo i kēia mau kumuhana me pauku aʻe ke kumu hoʻolālā ʻōnaehana i ʻōlelo ʻia ma luna.

Nā Kūlana Kūkākūkā

Aia nā ʻōnaehana i nā ʻāpana like ʻole; he mau kaʻina hana like ʻole kēia e holo ana i loko o ka node kino like ʻole, a i ʻole nā ​​mīkini ʻokoʻa e holo ana ma nā ʻāpana like ʻole o kāu pūnaewele. He pilikino paha kekahi o kēia mau kumuwaiwai i loko o kāu pūnaewele, akā pono nā mea ʻē aʻe i ka lehulehu a wehe ʻia i nā mea kūʻai aku e komo iā lākou mai waho.

Pono e hōʻoia i ka kamaʻilio ʻana o kēia mau kumuwaiwai me kekahi, a me ka hoʻololi ʻana o ka ʻike ma waena o ka ʻōnaehana holoʻokoʻa a me ka honua o waho. Ma ke ʻano o ka hoʻolālā ʻana o nā ʻōnaehana, eia hou mākou e kū nei i kahi hoʻonohonoho o nā pilikia hou a kū hoʻokahi. E ʻike kākou pehea e pono ai lākou kahe hana asynchronous, a heaha ka pLoaʻa nā ʻano ʻano kamaʻilio like ʻole.

Hoʻolālā Pūnaehana Pūnaehana a me nā ʻōnaehana: ʻO ke kiʻi nui a me ke alakaʻi kumu waiwai

Kūpā ʻia Tony Stoddard mai Unsplash

I ka hoʻonohonoho ʻana i ke kamaʻilio me ka honua o waho, he mea nui loa ia palekana, ʻo ka hoʻolako ʻana e pono e mālama pono a hoʻoikaika ʻia.

Māhele pili

ʻAʻole maopopo iaʻu ʻo ka hoʻokomo ʻana i kēia kumuhana i kahi ʻāpana ʻokoʻa e manaʻo ʻia he kūpono i nā mea a pau. Eia naʻe, e hōʻike aku au i kēia manaʻo i nā kikoʻī ma aneʻi, a ke manaʻoʻiʻo nei au ua wehewehe pololei ʻia nā mea i loko o kēia ʻāpana e ka huaʻōlelo "pili hoʻohui".

Hoʻokumu ʻia nā ʻōnaehana ma ka hoʻopili pono ʻana i nā ʻāpana he nui, a ua hoʻonohonoho pinepine ʻia kā lākou kamaʻilio ʻana me kekahi i ke kumu o nā protocols i hoʻokumu ʻia, no ka laʻana, TCP a me UDP. Eia nō naʻe, ʻaʻole lawa kēia mau protocols e hoʻokō i nā pono āpau o nā ʻōnaehana hou, i hana pinepine ʻia ma lalo o ka ukana kiʻekiʻe a hilinaʻi nui hoʻi i nā pono o ka mea hoʻohana. Pono pinepine e ʻimi i nā ala e puʻunaue ai i nā pilina e hoʻokō ai i nā ukana kiʻekiʻe ma ka ʻōnaehana.

Hoʻokumu ʻia kēia māhele ma luna o ka mea kaulana ʻōnaehana inoa inoa (DNS). Hāʻawi ia ʻōnaehana i ka hoʻololi ʻana i ka inoa domain e like me ke kaupaona ʻana a puni ke ala e kōkua ai i ka puʻunaue ʻana i ka ukana.

Kaulike hoʻouka He mea koʻikoʻi ia, a ʻo kēlā me kēia ʻōnaehana pūnaewele nui a mākou e kamaʻilio nei i kēia lā aia ma hope o hoʻokahi a ʻoi aku paha nā mea kaulike ukana. Kōkua nā mea kaulike hoʻoili i ka hāʻawi ʻana i nā noi o nā mea kūʻai aku ma nā manawa he nui. Loaʻa nā mea kaulike i nā lako lako a me nā lako polokalamu, akā naʻe, i ka hoʻomaʻamaʻa, ʻoi aku ka nui o ka hana ʻana i nā polokalamu, no ka laʻana. HAProxy и ELB. Hoʻololi i nā proxies ʻano like loa ka manaʻo me nā mea kaulike hoʻouka, ʻoiai aia ka laulā ma waena o ka mua a me ka lua ʻokoʻa ʻokoʻa. Pono e noʻonoʻo ʻia kēia mau ʻokoʻa i ka hoʻolālā ʻana i kahi ʻōnaehana e pili ana i kāu mau pono.

Pono ʻoe e ʻike e pili ana nā pūnaewele hoʻolaha maʻiʻo (CDN). ʻO ka CDN kahi pūnaewele puni honua o nā kikowaena proxy e hāʻawi ana i ka ʻike mai nā node e pili kokoke ana i kahi mea hoʻohana kikoʻī. ʻOi aku ka maikaʻi o nā CDN inā hana ʻoe me nā faila static i kākau ʻia ma JavaScript, CSS a me HTML. Eia kekahi, ʻo nā lawelawe kapuaʻi e hāʻawi ana i nā luna kaʻa he mea maʻamau i kēia lā, no ka laʻana, Luna Hoʻokele ʻo Azure, hāʻawi iā ʻoe i ka hoʻolaha honua a hoʻemi i ka latency i ka wā e hana ai me ka ʻike ikaika. Eia naʻe, hoʻohana maʻamau ia mau lawelawe i nā hihia kahi āu e hana ai me nā lawelawe pūnaewele stateless.

E kamaʻilio kākou e pili ana i ka loiloi pāʻoihana. Ka hoʻonohonoho ʻana i ka loiloi ʻoihana, nā kahe hana a me nā ʻāpana

No laila, hiki iā mākou ke kūkākūkā i nā ʻano infrastructural like ʻole o ka ʻōnaehana. ʻO ka mea nui, ʻaʻole noʻonoʻo ka mea hoʻohana i kēia mau mea āpau o kāu ʻōnaehana a, ʻoiaʻiʻo, ʻaʻole mālama iki iā lākou. Makemake ka mea hoʻohana i ke ʻano o ka launa pū ʻana me kāu ʻōnaehana, nā mea e hiki ke hoʻokō ʻia ma ka hana ʻana i kēia, a pehea hoʻi e hoʻokō ai ka ʻōnaehana i nā kauoha mea hoʻohana, pehea a pehea e hana ai me ka ʻikepili mea hoʻohana.

E like me ka manaʻo o kēia ʻatikala, e kamaʻilio wau e pili ana i ka hoʻolālā polokalamu a me ka hoʻolālā ʻōnaehana. No laila, ʻaʻole wau i hoʻolālā e uhi i nā ʻōnaehana hoʻolālā polokalamu e wehewehe i ka hana ʻana o nā ʻāpana polokalamu. Eia naʻe, ʻoi aku ka nui o koʻu noʻonoʻo ʻana iā ia, ʻoi aku ka nui o koʻu manaʻo i ka laina ma waena o nā ʻōnaehana hoʻolālā polokalamu a me nā hiʻohiʻona hoʻolālā he pohō loa, a ua pili pono nā manaʻo ʻelua. E laʻana kākou hoʻopaʻa inoa hanana (kahi hanana hanana). Ke hoʻohana ʻoe i kēia ʻano hoʻolālā, pili ia i nā ʻāpana āpau o kāu ʻōnaehana: ka mālama ʻana i ka ʻikepili no ka wā lōʻihi, ke kiʻekiʻe o ke kūlike i hoʻopaʻa ʻia i kāu ʻōnaehana, ke ʻano o nā mea i loko, etc., etc. No laila, ua hoʻoholo wau e haʻi i kekahi mau hiʻohiʻona hoʻolālā e pili pono ana i ka loiloi ʻoihana. ʻOiai e kaupalena kēia ʻatikala iā ia iho i kahi papa inoa maʻalahi, paipai wau iā ʻoe e kamaʻāina me ia a noʻonoʻo i nā manaʻo e pili ana i kēia mau hiʻohiʻona. Eia nō ʻoe:

ʻO nā ala hui

ʻAʻole paha ʻoe e ʻike iā ʻoe iho ma kahi papahana ma ke ʻano he mea komo wale nō ke kuleana no ke kaʻina hana hoʻolālā ʻōnaehana. Ma kahi ʻē aʻe, pono paha ʻoe e launa pū me nā hoa hana e hana ana ma loko a ma waho o kāu hana. I kēia hihia, pono paha ʻoe e loiloi i nā ʻenehana ʻenehana i koho ʻia me nā hoa hana, ʻike i nā pono ʻoihana a hoʻomaopopo i ka maikaʻi o ka hoʻohālikelike ʻana i nā hana.

Hoʻolālā Pūnaehana Pūnaehana a me nā ʻōnaehana: ʻO ke kiʻi nui a me ke alakaʻi kumu waiwai

Kūpā ʻia Kaleidico mai Unsplash

ʻO ka hana mua, ʻo ia ka hoʻomohala ʻana i ka ʻike pololei a kaʻana like i ka pahuhopu ʻoihana āu e hoʻāʻo nei e hoʻokō a me nā ʻāpana neʻe āu e hana ai. ʻO nā ʻenehana hoʻohālike pūʻulu, ʻoi aku nā hanana ʻino (event storming) kōkua i ka wikiwiki nui i kēia kaʻina hana a hoʻonui i kou kūlana lanakila. Hiki ke hana ʻia kēia hana ma mua a ma hope paha o kāu hoʻolālā ʻana palena o kāu mau lawelawe, a laila e hoʻohonu i ka wā e oʻo ai ka hua. Ma muli o ke kiʻekiʻe o ka kūlike e hoʻokō ʻia ma aneʻi, hiki iā ʻoe ke hoʻolālā ʻōlelo maʻamau no ka pōʻaiapili palena ʻia āu e hana ai. Ke pono ʻoe e kamaʻilio e pili ana i ka hoʻolālā ʻana o kāu ʻōnaehana, ʻike paha ʻoe he pono ia kumu hoʻohālike C4, manaoia Simon Brown, ʻoi aku ka nui inā pono ʻoe e hoʻomaopopo i ka nui o kāu e hele ai i nā kikoʻī o ka pilikia, e nānā ana i nā mea āu e makemake ai e kamaʻilio.

Aia paha kekahi ʻenehana oʻo ma kēia kumuhana ʻaʻole i emi iki ka maikaʻi ma mua o ka Domain Driven Design. Eia nō naʻe, hoʻi mākou i ka hoʻomaopopo ʻana i ke kumuhana, no laila ka ʻike a me ka ʻike ma ke kula Hoʻolālā Hoʻolālā Domain pono ia oe.

Source: www.habr.com

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