Noho nā waihona ma Kubernetes?

Noho nā waihona ma Kubernetes?

Ma kekahiʻano, ma ka mōʻaukala, ua māhele ʻia ka ʻoihana IT i ʻelua mau kahua hoʻomoana no kekahi kumu: ʻo ka poʻe "no" a me ka poʻe "kūʻē". Eia kekahi, hiki i ke kumuhana o nā hoʻopaʻapaʻa ke kūʻokoʻa. ʻO wai ka OS ʻoi aku ka maikaʻi: Win a Linux paha? Ma ke kelepona Android a IOS paha? Pono ʻoe e mālama i nā mea a pau i loko o ke ao a i ʻole e waiho i kahi waihona RAID anuanu a hoʻokomo i nā wili i kahi palekana? Loaʻa i ka poʻe PHP ke kuleana e kapa ʻia he poʻe papahana? ʻO kēia mau hoʻopaʻapaʻa, i kekahi manawa, he mea ola wale nō ma ke ʻano a ʻaʻohe kumu ʻē aʻe ma mua o ka hoihoi haʻuki.

ʻO ia wale nō me ka hiki ʻana mai o nā ipu a me kēia meaʻai aloha āpau me ka docker a me nā k8s conditional, ua hoʻomaka nā hoʻopaʻapaʻa "no" a "kūʻē" i ka hoʻohana ʻana i nā mana hou i nā wahi like ʻole o ka hope. (E hoʻopaʻa mua kāua, ʻoiai e hōʻike pinepine ʻia ʻo Kubernetes ma ke ʻano he mea hoʻokani pila ma kēia kūkākūkā, ʻaʻole koʻikoʻi nui ke koho ʻana i kēia mea hana. .)

A, me he mea lā, he hoʻopaʻapaʻa maʻalahi kēia ma waena o nā ʻaoʻao ʻelua o ke kālā hoʻokahi. E like me ka noʻonoʻo ʻole a me ke aloha ʻole e like me ka hakakā mau loa ma waena o Win vs Linux, kahi e noho ai ka poʻe kūpono ma kahi o ka waena. Akā i ka hihia o ka containerization, ʻaʻole maʻalahi nā mea āpau. ʻO ka maʻamau i loko o ia mau hoʻopaʻapaʻa ʻaʻohe ʻaoʻao ʻākau, akā i ka hihia o ka "hoʻohana" a i ʻole "hoʻohana ʻole" i nā pahu no ka mālama ʻana i nā ʻikepili, huli nā mea āpau i lalo. No ka mea, ma kekahi ʻano, ua pololei nā mea kākoʻo a me nā mea kūʻē i kēia ala.

ʻaoʻao mālamalama

Hiki ke wehewehe pōkole ʻia ka hoʻopaʻapaʻa ʻana o ka ʻaoʻao Light i hoʻokahi huaʻōlelo: "Aloha, 2k19 aia ma waho o ka pukaaniani!" Ua like ia me ka populism, ʻoiaʻiʻo, akā inā ʻoe e ʻimi i ke kūlana i ka kikoʻī, aia kona mau pono. E hoʻokaʻawale iā lākou i kēia manawa.

E ʻōlelo mākou he papahana pūnaewele nui kāu. Hiki ke kūkulu mua ʻia ma ke kumu o kahi microservice approach, a i ʻole i kekahi manawa i hele mai ia ma o ke ala evolutionary - ʻaʻole koʻikoʻi kēia, ʻoiaʻiʻo. Ua hoʻopuehu ʻoe i kā mākou papahana i nā microservices ʻokoʻa, hoʻonohonoho i ka orchestration, hoʻopaʻa kaulike, a me ka scaling. A i kēia manawa, me ka noʻonoʻo maʻemaʻe, inu ʻoe i kahi mojito i loko o kahi hammock i ka wā o nā hopena habra ma mua o ka hoʻāla ʻana i nā kikowaena hāʻule. Akā ma nā hana a pau pono ʻoe e kūpaʻa. ʻO ka pinepine, ʻo ka noi ponoʻī wale nō-ʻo ke code-i pahu. He aha hou aʻe kā mākou ma waho o ke code?

Pololei, data. ʻO ka puʻuwai o kēlā me kēia papahana ʻo kāna ʻikepili: hiki paha kēia i kahi DBMS maʻamau - MySQL, Postgre, MongoDB, a i ʻole ka waiho ʻana i hoʻohana ʻia no ka ʻimi ʻana (ElasticSearch), waihona waiwai kī no ka caching - no ka laʻana, redis, etc. E kamaʻilio mākou e pili ana i nā koho hoʻokō backend i ka wā e hāʻule ai ka waihona ma muli o nā nīnau i kākau maikaʻi ʻole ʻia, a ma kahi o mākou e kamaʻilio e pili ana i ka hōʻoia ʻana i ka hoʻomanawanui hewa o kēia waihona ma lalo o ka ukana o ka mea kūʻai aku. Ma hope o nā mea a pau, i ka wā e hoʻopaʻa ai mākou i kā mākou noi a ʻae iā ia e hoʻopaʻa i ka nui o nā noi e hiki mai ana, hoʻonui maoli kēia i ka ukana ma ka waihona.

ʻO kaʻoiaʻiʻo, ʻo ke kahawai no ke komo ʻana i ka waihona a me ke kikowaena kahi e holo ai i lilo i maka o ka nila i loko o kā mākou backend containerized nani. Ma ka manawa like, ʻo ke kumu nui o ka virtualization pahu pahu ʻo ia ka neʻe a me ka maʻalahi o ka hoʻolālā, e hiki ai iā mākou ke hoʻonohonoho i ka hāʻawi ʻana i nā ukana kiʻekiʻe ma waena o nā ʻōnaehana holoʻokoʻa i loaʻa iā mākou e like me ka hiki. ʻO ia hoʻi, inā ʻaʻole mākou e hoʻokomo a ʻōwili i nā mea āpau o ka ʻōnaehana ma waena o ka pūʻulu, ke hana hewa nei mākou.

ʻOi aku ka maikaʻi o ka hui ʻana ʻaʻole wale i ka noi ponoʻī, akā ʻo nā lawelawe pū kekahi no ka mālama ʻana i ka ʻikepili. Ma ka hui ʻana a me ka lawe ʻana i nā kikowaena pūnaewele e hana kūʻokoʻa a puʻunaue i ka ukana i waena o lākou i k8s, ke hoʻopau nei mākou i ka pilikia o ka synchronization data - nā manaʻo like ma nā pou, inā mākou e lawe i kekahi media a i ʻole blog platform ma ke ʻano he laʻana. I kēlā me kēia hihia, loaʻa iā mākou kahi kikowaena intra-cluster, a me ka virtual, hōʻike o ka waihona ma ke ʻano he ExternalService. ʻO ka nīnau, ʻaʻole i hui pū ʻia ka waihona - ʻo nā kikowaena pūnaewele i hoʻonohonoho ʻia i loko o ka cube e lawe i ka ʻike e pili ana i nā loli mai kā mākou ʻikepili kaua paʻa, e huli kaʻawale.

Manaʻo ʻoe i kahi hopu? Hoʻohana mākou i nā k8s a i ʻole Swarm e puʻunaue i ka ukana a pale i ka hāʻule ʻana i ka kikowaena pūnaewele nui, akā ʻaʻole mākou e hana i kēia no ka waihona. Akā inā hāʻule ka ʻikepili, a laila ʻaʻohe manaʻo o kā mākou hui pūʻulu holoʻokoʻa - he aha ka maikaʻi o nā ʻaoʻao pūnaewele ʻole e hoʻihoʻi i kahi hewa komo ʻikepili?

ʻO ia ke kumu e pono ai ka hui ʻana ʻaʻole wale i nā kikowaena pūnaewele, e like me ka hana maʻamau, akā ʻo ka ʻōnaehana waihona. Ma kēia ala wale nō e hiki ai iā mākou ke hōʻoia i kahi hoʻolālā e hana piha i ka hui hoʻokahi, akā i ka manawa like kūʻokoʻa mai kekahi i kekahi. Eia kekahi, ʻoiai inā "hāʻule" ka hapalua o kā mākou backend ma lalo o ka ukana, e ola ke koena, a ʻo ka ʻōnaehana o ka hoʻonohonoho ʻana i nā ʻikepili me kekahi i kekahi i loko o ka puʻupuʻu a me ka hiki ke hoʻopau ʻole a kau i nā pūʻulu hou e kōkua koke i ka hiki ke koi - ina he mau racks ma ke kikowaena data .

Eia kekahi, ʻo ke kumu hoʻohālike waihona i puʻunaue ʻia i loko o nā pūʻulu e hiki ai iā ʻoe ke lawe i kēia waihona i kahi e pono ai; Inā mākou e kamaʻilio e pili ana i kahi lawelawe honua, a laila he mea kūpono ʻole ke wili i kahi pūʻulu pūnaewele ma kahi o Kapalakiko a ma ka manawa like e hoʻouna i nā ʻeke i ka wā e komo ai i kahi waihona ma ka ʻāina ʻo Moscow a hoʻi.

Eia kekahi, ʻo ka containerization o ka waihona e hiki ai iā ʻoe ke kūkulu i nā mea āpau o ka ʻōnaehana ma ka pae hoʻokahi o ka abstraction. ʻO ia ka mea e hiki ai ke hoʻokele pono i kēia ʻōnaehana mai ke code, e nā mea hoʻomohala, me ka ʻole o ke komo ʻana o nā luna. Ua manaʻo nā mea hoʻomohala e pono ana kahi DBMS kaʻawale no ka subproject hou - maʻalahi! kākau i kahi faila yaml, hoʻouka iā ia i ka hui a ua pau ʻoe.

A ʻoiaʻiʻo, maʻalahi loa ka hana kūloko. E haʻi mai iaʻu, ʻehia mau manawa āu i pani ai i kou mau maka i ka wā i hoʻokomo ai kekahi hoa hui hou i kona mau lima i loko o ka waihona kaua no ka hana? ʻO ka mea ʻoiaʻiʻo, ʻo ia wale nō kāu mea a ke wili nei i kēia manawa? ʻOiaʻiʻo, he poʻe mākua mākou a pau ma ʻaneʻi, a ma kahi ʻē aʻe mākou i kahi waihona hou, a ʻoi aku ka mamao - ma hope o ka papa me nā kukama a ke kupuna wahine a me nā skis kahiko - kahi hoʻihoʻi ʻē aʻe, aia paha i loko o kahi mālama anuanu, no ka mea, ua puhi ʻia kāu keʻena i hoʻokahi manawa. Akā like nā mea a pau, ʻo kēlā me kēia hoʻolauna ʻana i kahi lālā hui hou me ke komo ʻana i ka ʻoihana kaua a, ʻoiaʻiʻo hoʻi, i ka waihona kaua he bākeke o validol no nā mea āpau a puni. ʻAe, ʻo wai ka mea ʻike iā ia, he mea hou, he lima kea paha ʻo ia? He mea weliweli, e ae mai oe.

ʻO ka containerization a, ʻoiaʻiʻo, ʻo ka topology kino i puʻunaue ʻia o ka waihona o kāu papahana e kōkua i ka pale ʻana i kēlā mau manawa hōʻoia. Mai hilinaʻi i kahi mea hou? OK! E hāʻawi iā ia i kāna pūʻulu ponoʻī e hana me ka wehe ʻana i ka ʻikepili mai nā pūʻulu ʻē aʻe - ʻo ka hoʻonohonoho ʻana wale nō me ka paʻi lima a me ka hoʻololi like ʻana o nā kī ʻelua (hoʻokahi no ke alakaʻi hui, ʻo kekahi no ka admin). A hauʻoli nā mea a pau.

A ʻo kēia ka manawa e hoʻololi ai i mau hoa kūʻē o ka hōʻuluʻulu waihona.

ʻaoʻao ʻeleʻele

Ke hoʻopaʻapaʻa ʻana i ke kumu ʻaʻole pono e hoʻopaʻa i ka waihona a hoʻomau i ka holo ʻana ma kahi kikowaena kikowaena hoʻokahi, ʻaʻole mākou e kūlou i ka ʻōlelo a nā orthodoxies a me nā ʻōlelo e like me "ua holo nā kupuna kāne i ka ʻikepili ma ka lakohana, a pēlā pū mākou!" Akā, e ho'āʻo kāua e hana i kahi kūlana e uku maoli ai ka containerization i nā ʻāpana kikoʻī.

ʻAe, hiki ke helu ʻia nā papahana e pono ai i kahi waihona ma nā manamana lima o ka lima hoʻokahi e ka mea hoʻohana mīkini wili maikaʻi loa. ʻO ka hapa nui, ʻo ka hoʻohana ʻana o k8s a i ʻole Docker Swarm ponoʻī he mea nui - ʻo ka manawa pinepine kēia mau mea hana i hoʻohana ʻia ma muli o ka hype maʻamau o nā ʻenehana a me nā ʻano o ka "mana loa" i ke kanaka o nā kāne e pana i nā mea āpau i loko o ka. nā ao a me nā ipu. ʻAe, no ka mea i kēia manawa he ʻano ia a hana nā mea a pau.

Ma ka hapa liʻiliʻi o nā hihia, hoʻohana ʻo Kubernetis a i ʻole Docker wale nō ma kahi papahana. ʻO ka pilikia ʻaʻole ʻike nā hui āpau a i ʻole nā ​​​​hui outsourcing i hoʻolimalima ʻia e mālama i ka ʻoihana o ka mea kūʻai aku i kēia. ʻOi aku ka ʻino i ka wā e kau ʻia ai nā ipu, no ka mea, ʻoi aku ka nui o ke kālā i ka mea kūʻai aku.

Ma keʻano laulā, aia ka manaʻo e hōʻeha naʻaupō ka docker / cube mafia i nā mea kūʻai aku e hoʻopuka i kēia mau pilikia. Ma hope o nā mea a pau, i mea e hana ai me nā pūʻulu, pono mākou i nā ʻenekini i hiki i kēia a hoʻomaopopo maʻamau i ka hoʻolālā ʻana o ka hopena i hoʻokō ʻia. Ua wehewehe mua mākou i kā mākou hihia me ka hoʻolaha Repubalika - ma laila mākou i aʻo ai i ka hui o ka mea kūʻai aku e hana i nā ʻoiaʻiʻo o Kubernetis, a ua māʻona nā mea a pau. A ua kūpono. ʻO ka manawa pinepine, lawe pio nā k8s "implementers" i ka waiwai o ka mea kūʻai aku - no ka mea i kēia manawa wale nō lākou e hoʻomaopopo i ka hana ʻana o nā mea āpau ma laila; ʻaʻohe loea ma ka ʻaoʻao o ka mea kūʻai.

E noʻonoʻo ʻoe ma kēia ala mākou e hoʻopuka ai ʻaʻole wale i ka ʻāpana kikowaena pūnaewele, akā ʻo ka mālama ʻana i ka waihona. Ua ʻōlelo mākou ʻo BD ka puʻuwai, a ʻo ka nalowale o ka puʻuwai he mea make ia no kekahi mea ola. I ka pōkole, ʻaʻole maikaʻi nā manaʻo. No laila, ma kahi o ka hype Kubernetis, nui nā papahana ʻaʻole pono e hoʻopilikia wale i ka uku maʻamau no AWS, e hoʻoponopono i nā pilikia āpau me ka ukana ma kā lākou pūnaewele / papahana. Akā ʻaʻole ʻoi aku ka nani o AWS, a ʻoi aku ka maikaʻi o nā hōʻikeʻike ma mua o ke kālā - akā naʻe, ma ka ʻenehana IT pū kekahi.

OK. Pono paha ka papahana i ka hui ʻana, akā inā maopopo nā mea āpau me nā noi stateless, a laila pehea e hiki ai iā mākou ke hoʻonohonoho i ka hoʻopili pūnaewele kūpono no kahi ʻikepili clustered?

Inā mākou e kamaʻilio e pili ana i kahi hoʻonā ʻenehana maʻemaʻe, ʻo ia ke ʻano o ka hoʻololi ʻana i k8s, a laila ʻo kā mākou poʻo poʻo nui ʻo ka hoʻopiʻi ʻana i ka ʻikepili i loko o kahi waihona clustered. Ua kūpaʻa mua kekahi mau DBMS i ka hāʻawi ʻana i ka ʻikepili ma waena o kā lākou mau manawa. ʻAʻole hoʻokipa maikaʻi nā mea ʻē aʻe. A ʻo ka hoʻopaʻapaʻa nui i ke koho ʻana i kahi DBMS no kā mākou papahana, ʻaʻole ia ka hiki ke hana hou me ka liʻiliʻi o nā kumu waiwai a me nā kumukūʻai ʻenehana. ʻOi loa inā ʻaʻole i hoʻolālā mua ʻia ka papahana ma ke ʻano he microservice, akā ua ulu wale ʻia i kēia kuhikuhi.

Manaʻo mākou ʻaʻohe pono e kamaʻilio e pili ana i ka wikiwiki o ka hoʻokele pūnaewele - lohi lākou. ʻO kēlā mau. ʻAʻole loaʻa iā mākou kahi manawa kūpono, inā loaʻa kekahi mea, e hoʻomaka hou i kahi hiʻohiʻona DBMS ma kahi o nā mea hou aku, no ka laʻana, mana kaʻina hana a i ʻole RAM manuahi. E holo wikiwiki mākou i ka hana o ka subsystem disk virtualized. No laila, pono e hoʻopaʻa ʻia ka DBMS i kāna mau mīkini ponoʻī e kū kokoke ana. A i ʻole pono e hoʻokaʻawale i ka hoʻokaʻawale ʻana i ka ʻikepili me ka wikiwiki no nā mea i manaʻo ʻia.

Ke hoʻomau nei i ke kumuhana o nā ʻōnaehana faila virtual: Docker Volumes, akā, ʻaʻole pilikia ka pilikia. Ma keʻano laulā, ma kahi mea e like me ka mālama ʻana i ka ʻikepili hilinaʻi lōʻihi, makemake wau e hana me nā papa hana maʻalahi loa. A ʻo ka hoʻohui ʻana i kahi papa abstraction hou mai ka FS o ka pahu i ka FS o ka mea hoʻokipa makua he pilikia ia. Akā i ka wā e hālāwai ai ka hana o ka ʻōnaehana kākoʻo containerization i nā pilikia me ka hoʻouna ʻana i ka ʻikepili ma waena o kēia mau papa, a laila he pōʻino maoli ia. I kēia manawa, ua hoʻopau ʻia ka hapa nui o nā pilikia i ʻike ʻia e ke kanaka holomua. Akā maopopo iā ʻoe, ʻoi aku ka paʻakikī o ka mīkini, ʻoi aku ka maʻalahi o ka haki.

Ma ka hoʻomaopopo ʻana i kēia mau "hoʻokūkū," ʻoi aku ka maikaʻi a me ka maʻalahi o ka mālama ʻana i ka waihona ma kahi hoʻokahi, a inā pono ʻoe e hoʻokomo i ka palapala noi, e holo ma kāna iho a ma o ka ʻīpuka hāʻawi e loaʻa i ka launa like me ka waihona, e heluhelu ʻia a kākau ʻia hoʻokahi wale nō a ma kahi hoʻokahi. ʻO kēia ala e hōʻemi i ka likelilike o nā hewa a me ka desynchronization i ka liʻiliʻi.

He aha kā mākou e alakaʻi nei? Eia kekahi, kūpono ka waihona containerization ma kahi e pono ai. ʻAʻole hiki iā ʻoe ke hoʻokomo i kahi waihona piha-app a wili iā ia me he mea lā he ʻelua mau microservices - ʻaʻole ia e hana pēlā. A pono e hoomaopopo pono ia keia.

Ma kahi o ka hoʻopuka

Inā ʻoe e kali nei i kahi hopena maopopo "e virtualize i ka ʻikepili a ʻaʻole paha," a laila e hōʻino mākou iā ʻoe: ʻaʻole ia ma aneʻi. No ka mea, i ka wā e hana ai i kahi hoʻonā ʻōnaehana, pono e alakaʻi ʻia kekahi e ke ʻano a me ka holomua, akā, ʻo ka mea mua, e ka noʻonoʻo maʻamau.

Aia nā papahana i kūpono i nā loina a me nā mea hana i hele mai me Kubernetis, a i loko o ia mau papahana aia ka maluhia ma ka liʻiliʻi ma ka ʻaoʻao hope. A aia nā papahana ʻaʻole pono ka containerization, akā he kikowaena kikowaena maʻamau, no ka mea ʻaʻole hiki iā lākou ke hoʻihoʻi hou i ke kumu hoʻohālike microservice cluster, no ka mea e hāʻule lākou.

Source: www.habr.com

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