5 Nā Kuʻuna Manaʻo maʻamau no ke kūkulu ʻana i nā polokalamu Cloud-Native

Hana ʻia nā noi "Cloud native" a i ʻole "cloud" maʻalahi e hana i nā ʻōnaehana kapuaʻi. Kūkulu ʻia lākou ma ke ʻano he pūʻulu o nā microservice i hoʻopili ʻia i hoʻopili ʻia i loko o nā ipu, a laila e hoʻokele ʻia e kahi kahua ao. Hoʻomākaukau ʻia ia mau noi no nā hāʻule ma ke ʻano maʻamau, ʻo ia ka mea e hana hilinaʻi lākou a me ka nui a hiki i ka wā o ka hāʻule ʻana o ka pae ʻōnaehana koʻikoʻi. ʻO ka ʻaoʻao ʻē aʻe o ke kālā ka hoʻonohonoho ʻana i nā palena (ʻaelike) i kau ʻia e ke ao kapuaʻi i nā noi pahu i hiki ke hoʻokele maʻalahi iā lākou.

5 Nā Kuʻuna Manaʻo maʻamau no ke kūkulu ʻana i nā polokalamu Cloud-Native

ʻOiai e ʻike piha ana i ka pono a me ke koʻikoʻi o ka neʻe ʻana i nā noi ma luna o ke ao, ʻaʻole maopopo ka nui o nā hui kahi e hoʻomaka ai. Ma kēia pou, e nānā mākou i kekahi mau loina, inā e hahai ʻia i ka hoʻomohala ʻana i nā noi containerized, e ʻae iā ʻoe e ʻike i ka hiki o nā kapuaʻi kapuaʻi a hoʻokō i ka hana hilinaʻi a me ka hoʻonui ʻana i nā noi i ka wā o nā hemahema koʻikoʻi ma ka ʻenehana IT. pae. ʻO ka pahuhopu nui o nā loina i hōʻike ʻia ma ʻaneʻi, ʻo ia ke aʻo ʻana i ke kūkulu ʻana i nā noi i hiki ke hoʻokele aunoa ʻia e nā paepae kapua e like me Kubernetes.

Nā Kumu Hoʻolālā Pūnaehana

Ma ka honua papahana, pili nā loina i nā lula maʻamau e pono ke hahai ʻia i ka wā e hoʻomohala ai i nā polokalamu. Hiki ke hoʻohana ʻia i ka wā e hana ai me kekahi ʻōlelo papahana. Loaʻa i kēlā me kēia kumukānāwai kāna mau pahuhopu, nā mea hana e hoʻokō ai i nā maʻamau a me nā hana. Aia kekahi mau kumu kumu no ka hana ʻana i nā polokalamu kiʻekiʻe, kahi e kahe ai nā mea ʻē aʻe a pau. Eia kekahi mau laʻana o nā loina kumu.

  • ka honi ana (E mālama maʻalahi, naʻaupō) - mai paʻakikī;
  • maloo (Mai hana hou ia oe iho) - mai hana hou oe ia oe iho;
  • ʻO YAGNI (ʻAʻole pono ʻoe iā ia) - mai hana i kahi mea pono ʻole;
  • Ia SoC Hoʻokaʻawale i nā manaʻo - kaʻana like i nā kuleana.

E like me kāu e ʻike ai, ʻaʻole i hoʻonohonoho kēia mau loina i nā lula kikoʻī, akā pili i ka ʻāpana o nā mea i kapa ʻia ʻo ka noʻonoʻo maʻamau e pili ana i ka ʻike kūpono, i kaʻana like ʻia e nā mea hoʻomohala he nui a lākou e kuhikuhi mau ai.
Eia hou, aia HOLOMINA - He hoʻonohonoho o nā kumu mua ʻelima o ka hoʻolālā ʻana a me ka hoʻolālā ʻana, i hoʻokumu ʻia e Robert Martin. Loaʻa ʻo SOLID i nā loina ākea, wehe ʻole, hoʻohui ʻia—ke hoʻopili pū ʻia—e kōkua i ka hana ʻana i nā ʻōnaehana polokalamu maikaʻi aʻe a mālama maikaʻi iā lākou no ka wā lōʻihi.

Aia nā loina SOLID i ke kahua o OOP a ua hoʻokumu ʻia ma ka ʻōlelo o ia mau manaʻo a me nā manaʻo e like me nā papa, nā pilina a me ka hoʻoilina. Ma ka hoʻohālikelike, hiki ke hana ʻia nā loina hoʻomohala no nā noi ao, ʻo ka mea kumu wale nō ma aneʻi ʻaʻole ia he papa, akā he ipu. Ma ka hahai ʻana i kēia mau loina, hiki iā ʻoe ke hana i nā noi containerized i ʻoi aku ka maikaʻi o ka hoʻokō ʻana i nā pahuhopu a me nā pahuhopu o nā paepae ao e like me Kubernetes.

ʻO nā ipu kapuaʻi: ​​ke ala ʻo Red Hat

I kēia lā, aneane hiki ke hoʻopili maʻalahi nā noi i loko o nā pahu. Akā, no ka hoʻomaʻamaʻa pono ʻana o nā noi i loko o kahi paepae kapuaʻi e like me Kubernetes, pono ka hoʻoikaika ʻana.
ʻO ke kumu o nā manaʻo i hōʻike ʻia ma lalo nei ʻo ke ʻano hana ʻO ka ʻumikūmālua-Factor App a me nā hana ʻē aʻe he nui e pili ana i nā ʻano like ʻole o ke kūkulu ʻana i nā noi pūnaewele, mai ka hoʻokele code source a hiki i nā kumu hoʻohālike. ʻO nā loina i wehewehe ʻia e pili wale ana i ka hoʻomohala ʻana i nā noi containerized i kūkulu ʻia ma luna o nā microservices a hoʻolālā ʻia no nā paepae kapuaʻi e like me Kubernetes. ʻO ka mea maʻamau i kā mākou kūkākūkā ʻana ʻo ke kiʻi pahu, a ʻo ka manawa holo pahu pahu pahu pahu pahu hoʻokani pila. ʻO ka pahuhopu o nā loina i manaʻo ʻia, ʻo ia ka hana ʻana i nā ipu no ka hoʻonohonoho ʻana, ka scaling, a me ka nānā ʻana i nā hana e hiki ke hoʻomaʻamaʻa ʻia ma ka hapa nui o nā kahua orchestration. Hōʻike ʻia nā loina ma ke ʻano kikoʻī.

Kuʻuna Manaʻo Hoʻokahi (SCP)

ʻO kēia kumukānāwai ma nā ʻano he nui e like me ka Single Responsibility Principle. SRP), ʻo ia kahi ʻāpana o ka SOLID set a ʻōlelo ʻia he kuleana hoʻokahi o kēlā me kēia mea, a pono e hoʻopili piha ʻia kēlā kuleana i loko o kahi papa. ʻO ka manaʻo o SRP, ʻo kēlā me kēia kuleana ke kumu o ka hoʻololi ʻana, a pono hoʻokahi wale nō kumu no ka loli.

Ma SCP, hoʻohana mākou i ka huaʻōlelo "manaʻo" ma kahi o ka huaʻōlelo "kuleana" e hōʻike i ka pae kiʻekiʻe o ka abstraction a me ke kumu ākea o kahi pahu i hoʻohālikelike ʻia me kahi papa OOP. A inā ʻo ka pahuhopu o SRP he kumu hoʻokahi wale nō no ka hoʻololi ʻana, a laila ma hope o SCP ka makemake e hoʻonui i ka hiki ke hoʻohana hou a pani i nā ipu. Ma ka hahai ʻana i ka SRP a me ka hana ʻana i kahi pahu e hoʻoponopono ai i kahi pilikia hoʻokahi a hana ʻia ma ke ʻano holoʻokoʻa holoʻokoʻa, hoʻonui ʻoe i ka manawa o ka hoʻohana hou ʻana i kēlā kiʻi pahu i nā ʻano noiʻi like ʻole.

Wahi a ka loina SCP e hoʻoponopono kēlā me kēia pahu i hoʻokahi pilikia a hana maikaʻi. Eia kekahi, ʻoi aku ka maʻalahi o ka SCP i loko o ka honua ipu ma mua o ka SRP i ka honua OOP, no ka mea e holo mau ana nā ipu i hoʻokahi kaʻina hana, a ʻo ka hapa nui o ka manawa e hoʻoponopono ai kēia kaʻina hana i hoʻokahi hana.

Inā pono ka pahu microservice e hoʻoponopono i kekahi mau pilikia i ka manawa hoʻokahi, a laila hiki ke hoʻokaʻawale ʻia i loko o nā pahu hana hoʻokahi a hoʻohui ʻia i loko o hoʻokahi pod (kahi ʻāpana o ka hoʻolaha ʻana o ka pahu pahu) me ka hoʻohana ʻana i ka sidecar a me ka pahu init. Eia hou, ua maʻalahi ka SCP e hoʻololi i kahi pahu kahiko (e like me ke kikowaena pūnaewele a i ʻole ka mea kūʻai leka uila) me kahi mea hou e hoʻoponopono ai i ka pilikia like akā ua hoʻonui i ka hana a i ʻole nā ​​unahi maikaʻi.

5 Nā Kuʻuna Manaʻo maʻamau no ke kūkulu ʻana i nā polokalamu Cloud-Native

Kuʻuna ʻIke Kiʻekiʻe (HOP)

Ke hoʻohana ʻia nā ipu e like me ke ala i hui pū ʻia e hoʻopili a holo i nā noi, mālama ʻia nā noi ponoʻī e like me kahi pahu ʻeleʻele. Eia naʻe, inā he mau ipu kapuaʻi kēia, a laila pono lākou e hāʻawi i nā API kūikawā i ka wā holo e nānā i ke olakino o nā ipu a, inā pono, e hana i nā hana kūpono. Inā ʻaʻole kēia, ʻaʻole hiki ke hoʻohui i ka automation o ka hoʻonui ʻana i nā ipu a me ka hoʻokele ʻana i ko lākou ola pōʻaiapuni, ʻo ia hoʻi, e hoʻonui i ka paʻa a me ka hoʻohana ʻana o ka ʻōnaehana polokalamu.

5 Nā Kuʻuna Manaʻo maʻamau no ke kūkulu ʻana i nā polokalamu Cloud-Native
I ka hoʻomaʻamaʻa, pono e loaʻa i kahi noi pahu pahu, ma ka liʻiliʻi loa, he API no nā ʻano loiloi olakino: nā hoʻokolohua ola a me nā hoʻāʻo mākaukau. Inā koi ka palapala noi e hana hou aku, pono ia e hāʻawi i nā ala ʻē aʻe e nānā ai i kona kūlana. No ka laʻana, e hoʻopaʻa inoa i nā hanana koʻikoʻi ma o STDERR a me STDOUT no ka hōʻuluʻulu lāʻau me Fluentd, Logstash a me nā mea hana like ʻole. A me ka hoʻohui pū ʻana me ka tracing a me nā waihona hōʻiliʻili metric, e like me OpenTracing, Prometheus, etc.

Ma keʻano laulā, hiki ke mālama ʻia ka noi ma ke ʻano he pahu ʻeleʻele, akā pono e hāʻawi ʻia me nā API a pau e pono ai ke kahua no ka nānā ʻana a mālama iā ia i ke ala maikaʻi loa.

Kuʻuna Kūlike o ke Kaʻina Ola (LCP)

ʻO ka LCP ke kūʻē i ka HOP. ʻOiai e ʻōlelo ana ʻo HOP e hōʻike ka ipu i nā API heluhelu i ka paepae, koi ʻo LCP i ka noi e hiki ke ʻae i ka ʻike mai ka paepae. Eia kekahi, ʻaʻole pono e loaʻa i ka pahu nā hanana wale nō, akā hoʻololi pū kekahi, ʻo ia hoʻi, e pane aku iā lākou. No laila ka inoa o ka loina, hiki ke noʻonoʻo ʻia he koi e hāʻawi i ka paepae me ke kākau ʻana i nā API.

5 Nā Kuʻuna Manaʻo maʻamau no ke kūkulu ʻana i nā polokalamu Cloud-Native
Loaʻa i nā paepae nā ʻano hanana like ʻole e kōkua i ka mālama ʻana i ke ola o kahi pahu. Akā aia i ka noi ponoʻī e hoʻoholo i ka mea o lākou e ʻike a pehea e hana ai.

Ua maopopo he mea nui kekahi mau hanana ma mua o nā mea ʻē aʻe. No ka laʻana, inā ʻaʻole ʻae maikaʻi ka palapala noi i ka pōʻino, pono ia e ʻae i ka hōʻailona: hoʻopau i nā memo (SIGTERM) a hoʻomaka i kāna hana hoʻopau me ka wikiwiki e hopu i ka hōʻailona: pepehi (SIGKILL) e hiki mai ana ma hope o SIGTERM.

Eia hou, hiki i nā hanana e like me PostStart a me PreStop ke lilo i mea nui i ke ola o kahi noi. No ka laʻana, ma hope o ka hoʻomaka ʻana i kahi palapala noi, pono paha ia i kahi manawa pumehana ma mua o ka pane ʻana i nā noi. A i ʻole e hoʻokuʻu ka palapala noi i nā kumuwaiwai ma kekahi ala kūikawā ke pani ʻia.

Ke Kumu Hoʻololi Kiʻi (IIP)

Ua ʻae ʻia ʻaʻole e hoʻololi ʻia nā noi containerized ma hope o ke kūkulu ʻia ʻana, ʻoiai inā e holo ʻia lākou ma nā ʻano like ʻole. Pono kēia i ka pono e hoʻopuka i waho o ka mālama ʻana i ka ʻikepili i ka wā holo (ma nā huaʻōlelo ʻē aʻe, e hoʻohana i nā mea hana waho no kēia) a e hilinaʻi i waho, nā hoʻonohonoho kikoʻī runtime, ma mua o ka hoʻololi ʻana a i ʻole ka hana ʻana i nā pahu kūʻokoʻa no kēlā me kēia kaiapuni. Ma hope o nā hoʻololi i ka noi, pono ke kūkulu hou ʻia ke kiʻi pahu a kau ʻia i nā wahi āpau i hoʻohana ʻia. Ma ke ala, i ka wā e hoʻokele ai i nā ʻōnaehana IT, hoʻohana ʻia kahi loina like, i ʻike ʻia ʻo ke kumu o ka immutability o nā kikowaena a me nā ʻōnaehana.

ʻO ka pahuhopu o IIP ka pale ʻana i ka hana ʻana i nā kiʻi pahu kaʻawale no nā kaiapuni runtime like ʻole a me ka hoʻohana ʻana i ke kiʻi like ma nā wahi a pau me ka hoʻonohonoho ʻokoʻa kūpono. Ma muli o kēia kumumanaʻo e hiki ai iā ʻoe ke hoʻokō i nā hana koʻikoʻi mai ka manaʻo o ka automation o nā ʻōnaehana kapua e like me ka roll-back a me ka roll-forward o nā hoʻonui noi.

5 Nā Kuʻuna Manaʻo maʻamau no ke kūkulu ʻana i nā polokalamu Cloud-Native

Ka Manaʻo Hoʻopau Hana (PDP)

ʻO kekahi o nā hiʻohiʻona koʻikoʻi o ka ipu ʻo ia ka ephemerality: he mea maʻalahi ke hana a maʻalahi ka hoʻopau ʻana i kahi laʻana, no laila hiki ke maʻalahi ke hoʻololi ʻia me kekahi manawa i kēlā me kēia manawa. Nui nā kumu no ka hoʻololi ʻana: ʻaʻole o ka hoʻāʻo ʻana i ka lawelawe, ka hoʻonui ʻana i ka noi, ka hoʻololi ʻana i kahi host ʻē aʻe, ka pau ʻana o nā kumuwaiwai platform, a i ʻole nā ​​kūlana ʻē aʻe.

5 Nā Kuʻuna Manaʻo maʻamau no ke kūkulu ʻana i nā polokalamu Cloud-Native
ʻO ka hopena, pono e mālama nā noi containerized i ko lākou mokuʻāina me ka hoʻohana ʻana i kekahi mau ala o waho, a i ʻole e hoʻohana i nā papahana hoʻolaha kūloko me ka redundancy no kēia. Eia kekahi, pono e hoʻomaka koke ka noi a pani koke, a mākaukau no ka hiki ʻole o ka lako lako.

ʻO kahi hana e kōkua ai i ka hoʻokō ʻana i kēia kumumanaʻo, ʻo ia ka mālama ʻana i nā ipu liʻiliʻi. Hiki i nā kaiapuni ao ke koho maʻalahi i kahi hoʻokipa e hoʻomaka ai i kahi laʻana pahu, no laila ʻoi aku ka liʻiliʻi o ka ipu, ʻoi aku ka wikiwiki o ka hoʻomaka ʻana - e kope wale ʻo ia i ka host host ma luna o ka pūnaewele wikiwiki.

Manaʻo hoʻopaʻa pono (S-CP)

Wahi a kēia kumumanaʻo, i ka pae hui, hoʻokomo ʻia nā mea pono āpau i loko o ka ipu. Pono e kūkulu ʻia ka pahu ma ka manaʻo he kernel Linux maʻemaʻe wale nō ka ʻōnaehana, no laila pono e hoʻokomo ʻia nā hale waihona puke pono a pau i loko o ka pahu ponoʻī. Pono e loaʻa nā mea e like me ka manawa holo no ka ʻōlelo hoʻonohonoho pili, ka paepae noi (inā pono), a me nā mea hilinaʻi ʻē aʻe e koi ʻia i ka wā e holo ana ka noi pahu.

5 Nā Kuʻuna Manaʻo maʻamau no ke kūkulu ʻana i nā polokalamu Cloud-Native

Hana ʻia nā ʻokoʻa no nā hoʻonohonoho ʻokoʻa mai ke kaiapuni a i ke kaiapuni a pono e hāʻawi ʻia i ka wā holo, no ka laʻana ma o Kubernetes ConfigMap.

Hiki i kekahi palapala noi ke hoʻokomo i kekahi mau mea i hoʻopaʻa ʻia, no ka laʻana, kahi pahu DBMS ʻokoʻa i loko o kahi noi pūnaewele pahu. Wahi a ka manaʻo S-CP, ʻaʻole pono e hoʻohui ʻia kēia mau pahu i hoʻokahi, akā pono e hana ʻia i loko o ka pahu DBMS nā mea āpau e pono ai no ka hana ʻana o ka waihona, a ʻo ka pahu noi pūnaewele aia nā mea āpau e pono ai no ka hana o ka pūnaewele. palapala noi, ke kikowaena pūnaewele like . ʻO ka hopena, i ka wā holo, e hilinaʻi ka pahu noi pūnaewele i ka pahu DBMS a loaʻa iā ia e like me ka mea e pono ai.

Kuʻuna Hoʻopaʻa Hoʻokele (RCP)

Hōʻike ka manaʻo S-CP i ke ʻano o ke kūkulu ʻia ʻana o ka ipu a me ke ʻano o ke kiʻi binary. Akā ʻaʻole kahi pahu he "pahu ʻeleʻele" hoʻokahi wale nō hiʻohiʻona - ka nui o ka faila. I ka wā o ka hoʻokō ʻana, lawe ka pahu i nā ʻāpana ʻē aʻe: ka nui o ka hoʻomanaʻo i hoʻohana ʻia, ka manawa CPU, a me nā kumuwaiwai ʻē aʻe.

5 Nā Kuʻuna Manaʻo maʻamau no ke kūkulu ʻana i nā polokalamu Cloud-Native
A eia ka manaʻo o ka RCP e hiki mai ana, e like me ka mea e pono ai ka pahu e hoʻopau i kāna mau koi no nā kumuwaiwai ʻōnaehana a hoʻoili iā lākou i ke kahua. Me nā kiʻi punawai o kēlā me kēia pahu (pehea ka nui o ka CPU, ka hoʻomanaʻo, ka pūnaewele, a me nā kumuwaiwai disk e pono ai), hiki i ka paepae ke hoʻokō pono i ka hoʻonohonoho ʻana a me ka autoscaling, hoʻokele i ka hiki IT, a mālama i nā pae SLA no nā ipu.

Ma waho aʻe o ka hoʻokō ʻana i nā koi waiwai o ka ipu, he mea nui hoʻi i ka noi ʻaʻole e hele ma waho o kona mau palena ponoʻī. A i ʻole, i ka wā e loaʻa ai kahi haʻahaʻa kumu, ʻoi aku ka maikaʻi o ka paepae e hoʻokomo iā ia i ka papa inoa o nā noi e pono e hoʻopau a neʻe paha.

Ke kamaʻilio mākou e pili ana i ke ao-mua, ke kamaʻilio nei mākou i ke ʻano o kā mākou hana.
Ma luna aʻe, ua hoʻokumu mākou i kekahi mau loina maʻamau i hoʻonohonoho i ke kumu kumu no ke kūkulu ʻana i nā noi pahu kiʻekiʻe no nā kaiapuni ao.

E hoʻomaopopo i ka hoʻohui ʻana i kēia mau loina maʻamau, pono ʻoe i nā ʻano hana holomua hou a me nā ʻenehana no ka hana ʻana me nā ipu. Eia kekahi, loaʻa iā mākou kekahi mau manaʻo pōkole i ʻoi aku ka kikoʻī a pono e hoʻopili ʻia (a ʻaʻole hoʻohana ʻia) ma muli o ke kūlana:

Webinar ma ka mana hou o OpenShift Container Platform - 4
Iune 11 ma 11.00

He aha kāu e aʻo ai:

  • Hiki ke hoʻololi ʻia ʻo Red Hat Enterprise Linux CoreOS
  • Mesh lawelawe OpenShift
  • Kaʻina hana
  • Knative framework

Source: www.habr.com

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