Pehea e hiamoe maikaʻi ai ke loaʻa iā ʻoe kahi lawelawe kapua: nā ʻōlelo aʻoaʻo kumu

Pehea e hiamoe maikaʻi ai ke loaʻa iā ʻoe kahi lawelawe kapua: nā ʻōlelo aʻoaʻo kumuNALOWALE e sophiagworld

Aia i kēia ʻatikala kekahi mau hiʻohiʻona maʻamau e kōkua i nā ʻenekinia e hana me nā lawelawe nui i loaʻa i nā miliona o nā mea hoʻohana. 

Ma ka ʻike o ka mea kākau, ʻaʻole kēia he papa inoa piha, akā ʻoiaʻiʻo pono ʻōlelo aʻo. No laila, e hoʻomaka kākou.

Unuhi ʻia me ke kākoʻo Mail.ru Cloud Solutions.

Pae ʻekahi

He maʻalahi ka hoʻokō ʻana i nā ana i helu ʻia ma lalo nei akā he hopena kiʻekiʻe. Inā ʻaʻole ʻoe i hoʻāʻo iā lākou ma mua, e kahaha ʻoe i nā hoʻomaikaʻi nui.

ʻOihana e like me ke code

ʻO ka ʻāpana mua o ka ʻōlelo aʻoaʻo e hoʻokō i nā ʻōnaehana ma ke ʻano he code. 'O ia ho'i, pono e loa'a iā 'oe kahi ala programmatic e ho'olālā i ka 'oihana holo'oko'a. He mea paʻakikī ia, akā ke kamaʻilio nei mākou e pili ana i kēia code:

Ka hoʻohana ʻana i nā mīkini virtual 100

  • me Ubuntu
  • 2 GB RAM i kēlā me kēia
  • e loaʻa iā lākou kēia code
  • me keia mau palena

Hiki iā ʻoe ke hahai i nā loli i kāu ʻōnaehana a hoʻi koke iā lākou me ka hoʻohana ʻana i ka mana mana.

'Ōlelo ka mea hou i loko oʻu hiki iā ʻoe ke hoʻohana iā Kubernetes/Docker e hana i nā mea a pau i luna, a ua pololei ʻo ia.

Eia kekahi, hiki iā ʻoe ke hāʻawi i ka automation me ka hoʻohana ʻana iā Chef, Puppet a i ʻole Terraform.

Hoʻohui mau a me ka lawe ʻana

No ka hana ʻana i kahi lawelawe scalable, he mea nui ia e kūkulu a hoʻāʻo i ka pipeline no kēlā me kēia noi huki. ʻOiai inā he maʻalahi loa ka hoʻāʻo ʻana, e hōʻoia i ka hōʻuluʻulu ʻana o ke code āu e kau ai.

I kēlā me kēia manawa ma kēia pae e pane ʻoe i ka nīnau: E hōʻuluʻulu anei kaʻu hui a hele i nā hoʻokolohua, kūpono anei? E like paha kēia me kahi pā haʻahaʻa, akā hoʻonā i nā pilikia he nui.

Pehea e hiamoe maikaʻi ai ke loaʻa iā ʻoe kahi lawelawe kapua: nā ʻōlelo aʻoaʻo kumu
ʻAʻohe mea maikaʻi aʻe ma mua o ka ʻike ʻana i kēia mau ticks

No kēia ʻenehana hiki iā ʻoe ke loiloi iā Github, CircleCI a i ʻole Jenkins.

Nā Mea Kaulike

No laila, makemake mākou e holo i kahi mea kaulike e hoʻihoʻi i ke kaʻa a hōʻoia i ka hoʻokau like ʻana ma nā nodes āpau a i ʻole e hoʻomau ka lawelawe i ka wā o ka hāʻule ʻole:

Pehea e hiamoe maikaʻi ai ke loaʻa iā ʻoe kahi lawelawe kapua: nā ʻōlelo aʻoaʻo kumu
He hana maikaʻi ka puʻunaue ukana ma ka puʻunaue ʻana i nā kaʻa. ʻO ka hoʻomaʻamaʻa maikaʻi loa ʻo ka overbalance i ʻole e loaʻa iā ʻoe kahi kuhi hewa.

ʻO ka maʻamau, hoʻonohonoho ʻia nā mea kaulike hoʻouka i ke ao āu e hoʻohana ai.

RayID, correlation ID a i ʻole UUID no nā noi

Ua ʻike paha ʻoe i kahi hewa noi me kahi memo e like me kēia: "Ua hewa kekahi mea. E mālama i kēia id a hoʻouna i kā mākou hui kākoʻo"?

Pehea e hiamoe maikaʻi ai ke loaʻa iā ʻoe kahi lawelawe kapua: nā ʻōlelo aʻoaʻo kumu
ʻO kahi mea hōʻike kūʻokoʻa, ID correlation, RayID, a i ʻole kekahi o nā ʻano like ʻole, he ʻike kūʻokoʻa e hiki ai iā ʻoe ke hahai i kahi noi i loko o kona ola. ʻAe kēia iā ʻoe e hahai i ke ala noi holoʻokoʻa ma nā moʻolelo.

Pehea e hiamoe maikaʻi ai ke loaʻa iā ʻoe kahi lawelawe kapua: nā ʻōlelo aʻoaʻo kumu
Noi ka mea hoʻohana i ka ʻōnaehana A, a laila hoʻopili ʻo A iā B, nāna e hoʻopili iā C, mālama iā ia ma X, a laila hoʻihoʻi ʻia ke noi iā A.

Inā ʻoe e hoʻopili mamao aku i nā mīkini virtual a hoʻāʻo e ʻimi i ke ala noi (a hoʻoponopono lima i nā kelepona e hana ʻia ana), e pupule ʻoe. ʻO ka loaʻa ʻana o kahi mea hōʻike kūʻokoʻa e maʻalahi ke ola. ʻO kēia kekahi o nā mea maʻalahi hiki iā ʻoe ke hana e mālama i ka manawa i ka ulu ʻana o kāu lawelawe.

ʻIla waena

ʻOi aku ka paʻakikī o ka ʻōlelo aʻo ma mua o nā mea ma mua, akā ʻo nā mea hana pono e maʻalahi ka hana, e hāʻawi ana i ka hoʻihoʻi ʻana i ka hoʻopukapuka ʻana no nā ʻoihana liʻiliʻi a me nā ʻoihana liʻiliʻi.

logging kikowaena

Hoʻomaikaʻi! Ua hoʻonoho ʻoe i nā mīkini virtual 100. I ka lā aʻe, hele mai ka CEO a hoʻopiʻi i kahi hewa i loaʻa iā ia i ka wā e hoʻāʻo ai i ka lawelawe. Hōʻike ʻo ia i ka ID pili a mākou i kamaʻilio ai ma luna, akā pono ʻoe e nānā i nā lāʻau o nā mīkini 100 e ʻike i ka mea i hoʻokumu i ka ulia. A pono e ʻike ʻia ma mua o ka hōʻike ʻana o ka lā ʻapōpō.

ʻOiai he mea leʻaleʻa kēia, ʻoi aku ka maikaʻi o ka hōʻoia ʻana iā ʻoe ka hiki ke huli i nā makasina a pau ma kahi hoʻokahi. Ua hoʻoholo wau i ka pilikia o ka hoʻonohonoho ʻana i nā lāʻau me ka hoʻohana ʻana i ka hana i kūkulu ʻia o ka waihona ELK: kākoʻo ia i ka hōʻiliʻili lāʻau huli. E kōkua maoli kēia i ka hoʻoponopono ʻana i ka pilikia o ka loaʻa ʻana o kahi puke pai kikoʻī. Ma ke ʻano he bonus, hiki iā ʻoe ke hana i nā pakuhi a me nā mea leʻaleʻa ʻē aʻe e like me ia.

Pehea e hiamoe maikaʻi ai ke loaʻa iā ʻoe kahi lawelawe kapua: nā ʻōlelo aʻoaʻo kumu
ELK hoʻopaʻa hana

Nā mea mālama mālama

I kēia manawa ke holo nei kāu lawelawe, pono ʻoe e hōʻoia i ka holo mālie. ʻO ke ala maikaʻi loa e hana ai i kēia, ʻo ia ka holo ʻana i kekahi nā ʻelele, e hana like ana a nānā i ka hana a ua hana ʻia nā hana maʻamau.

I kēia manawa e nānā ʻoe i kēlā maikaʻi ka holo ʻana a hana maikaʻi.

No nā papahana liʻiliʻi a liʻiliʻi, paipai wau iā Postman no ka nānā ʻana a me ka palapala ʻana i nā API. Akā ma ka laulā, makemake wale ʻoe e hōʻoia i kahi ala e ʻike ai i ka wā i puka mai ai kahi outage a e hoʻomaopopo ʻia i ka manawa kūpono.

ʻO ka hoʻonui ʻana ma muli o ka ukana

He mea maʻalahi loa. Inā loaʻa iā ʻoe kahi noi lawelawe VM a ke kokoke mai nei i ka 80% hoʻohana hoʻomanaʻo, hiki iā ʻoe ke hoʻonui i kāna mau kumuwaiwai a hoʻohui i nā VM hou i ka hui. ʻOi aku ka maikaʻi o ka hoʻokō ʻana i kēia mau hana no ka hoʻololi ʻana i ka mana elastic ma lalo o ka ukana. Akā, pono ʻoe e makaʻala i ka nui o ke kālā āu e hoʻolilo ai a kau i nā palena kūpono.

Pehea e hiamoe maikaʻi ai ke loaʻa iā ʻoe kahi lawelawe kapua: nā ʻōlelo aʻoaʻo kumu
Me ka hapa nui o nā lawelawe kapuaʻi, hiki iā ʻoe ke hoʻonohonoho iā ia i autoscale me ka hoʻohana ʻana i nā kikowaena hou aʻe a i ʻole nā ​​kikowaena ikaika.

Pūnaehana hoʻokolohua

ʻO kahi ala maikaʻi e hoʻopuka palekana ai i nā mea hou e hiki ke hoʻāʻo i kahi mea no 1% o nā mea hoʻohana no hoʻokahi hola. ʻOiaʻiʻo, ua ʻike ʻoe i nā ʻano hana i ka hana. No ka laʻana, hōʻike ʻo Facebook i nā ʻāpana o ka lehulehu i kahi kala ʻokoʻa a hoʻololi paha i ka nui font e ʻike i ka ʻike ʻana o nā mea hoʻohana i nā loli. Kapa ʻia kēia hoʻokolohua A/B.

ʻO ka hoʻokuʻu ʻana i kahi hiʻohiʻona hou hiki ke hoʻomaka ma ke ʻano he hoʻokolohua a laila hoʻoholo pehea e hoʻokuʻu ai. Loaʻa iā ʻoe ka hiki ke "hoʻomanaʻo" a hoʻololi paha i ka hoʻonohonoho ma ka lele e pili ana i ka hana e hoʻohaʻahaʻa ai i kāu lawelawe.

ʻIke kiʻekiʻe

Eia nā ʻōlelo aʻoaʻo paʻakikī loa e hoʻokō. Pono paha ʻoe i nā kumuwaiwai hou aʻe, no laila e paʻakikī ka ʻoihana liʻiliʻi a i ʻole ka nui o ka hoʻokele ʻana i kēia.

ʻO nā hoʻolālā uliuli-'ōmaʻomaʻo

ʻO kēia kaʻu i kapa ai ʻo "Erlang" ala o ka wehe ʻana. Ua hoʻohana nui ʻia ʻo Erlang i ka wā i ʻike ʻia ai nā hui kelepona. Hoʻomaka ka hoʻohana ʻana i nā softswitch e hoʻokele i nā kelepona kelepona. ʻO ke kumu nui o ka polokalamu ma kēia mau hoʻololi, ʻaʻole ia e haʻalele i nā kelepona i ka wā e hoʻonui ai i ka ʻōnaehana. He ala maikaʻi ʻo Erlang e hoʻouka ai i kahi module hou me ka ʻole o ka haki ʻana i ka mea ma mua.

Aia kēia ʻanuʻu i ka loaʻa ʻana o kahi mea kaulike haʻahaʻa. E noʻonoʻo ʻoe ua loaʻa iā ʻoe ka mana N o kāu polokalamu, a laila makemake ʻoe e kau i ka mana N+1. 

ʻOʻoe hiki iā mākou E ho'ōki wale i ka lawelawe a ʻōwili i ka mana hou i ka manawa e hana ai no kāu mea hoʻohana a loaʻa i kahi manawa hoʻomaha. Akā, inā paha ua loaʻa iā ʻoe ʻoiaʻiʻo nā kūlana SLA koʻikoʻi. No laila, ʻo SLA 99,99% hiki iā ʻoe ke hele i waho wale e 52 mau minuke i kēlā me kēia makahiki.

Inā makemake ʻoe e hoʻokō i kēlā mau hōʻailona, ​​pono ʻoe i ʻelua hoʻolālā i ka manawa like: 

  • ka mea i keia manawa (N);
  • mana hou (N+1). 

E haʻi aku ʻoe i ka mea kaulike haʻahaʻa e hoʻihoʻi hou i kahi pākēneka o ke kaʻa i ka mana hou (N+1) ʻoiai ʻoe e nānā ikaika ana i nā regressions.

Pehea e hiamoe maikaʻi ai ke loaʻa iā ʻoe kahi lawelawe kapua: nā ʻōlelo aʻoaʻo kumu
Aia iā mākou kahi hoʻolālā ʻōmaʻomaʻo N e hana maikaʻi. Ke hoʻāʻo nei mākou e neʻe i ka mana hou o kēia hoʻolālā

Hoʻouna mua mākou i kahi hoʻokolohua liʻiliʻi loa e ʻike inā hana kā mākou N+1 me ka liʻiliʻi o nā kaʻa:

Pehea e hiamoe maikaʻi ai ke loaʻa iā ʻoe kahi lawelawe kapua: nā ʻōlelo aʻoaʻo kumu
ʻO ka hope, loaʻa iā mākou kahi pūʻulu o nā loiloi automated a mākou e holo ai a hiki i ka pau ʻana o kā mākou kau ʻana. Inā ʻoe loa loa akahele, hiki iā ʻoe ke mālama i kāu hoʻolālā N mau loa no ka rollback wikiwiki i ka hihia o ka regression maikaʻi ʻole:

Pehea e hiamoe maikaʻi ai ke loaʻa iā ʻoe kahi lawelawe kapua: nā ʻōlelo aʻoaʻo kumu
Inā makemake ʻoe e hele i kahi pae kiʻekiʻe aʻe, e hoʻokuʻu i nā mea a pau i loko o ka hoʻolālā uliuli-'ōmaʻomaʻo e holo aunoa.

ʻIke anomaly a me ka hoʻēmi ʻakomi

Hāʻawi ʻia i loaʻa iā ʻoe ke kikowaena kikowaena a me ka hōʻiliʻili lāʻau maikaʻi, hiki iā ʻoe ke hoʻonohonoho i nā pahuhopu kiʻekiʻe. No ka laʻana, wānana mua i nā hemahema. Hoʻopili ʻia nā hana ma nā mākaʻikaʻi a me nā lāʻau a ua kūkulu ʻia nā kiʻi like ʻole - a hiki iā ʻoe ke wānana mua i ka mea e hewa ai:

Pehea e hiamoe maikaʻi ai ke loaʻa iā ʻoe kahi lawelawe kapua: nā ʻōlelo aʻoaʻo kumu
Ke ʻike ʻia nā anomalies, hoʻomaka ʻoe e nānā i kekahi o nā hōʻailona i hāʻawi ʻia e ka lawelawe. No ka laʻana, hiki i ka spike i ka ukana CPU ke hōʻike i ka hāʻule ʻana o kahi pahu paʻakikī, aʻo ka spike o nā noi e hōʻike paha he pono ʻoe e hoʻonui. ʻO kēia ʻano ʻikepili helu e hiki ai iā ʻoe ke hoʻoikaika i ka lawelawe.

Me kēia mau ʻike, hiki iā ʻoe ke hoʻonui i kēlā me kēia ʻāpana a hoʻololi i nā ʻano o nā mīkini, nā ʻikepili, nā pilina a me nā kumuwaiwai ʻē aʻe.

ʻo ia wale nō!

ʻO kēia papa inoa o nā mea nui e mālama iā ʻoe i nā pilikia he nui inā ʻoe e hāpai i kahi lawelawe kapua.

Ke kono nei ka mea kākau o ka ʻatikala kumu i ka poʻe heluhelu e haʻalele i kā lākou manaʻo a hana i nā loli. Hāʻawi ʻia ka ʻatikala ma ke ʻano he open source, huki noi a ka mea kākau ʻae ma Github.

He aha hou aʻe e heluhelu ai ma ke kumuhana:

  1. E hele a me ka CPU caches
  2. ʻO nā Kubernetes i ka ʻuhane o ka pōā me kahi hoʻohālike no ka hoʻokō
  3. ʻO kā mākou kahawai a puni Kubernetes ma Telegram

Source: www.habr.com

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