4 ʻenehana, 7000 mau kikowaena a me hoʻokahi maʻi maʻi honua

Aloha, Habr! Ke hāʻawi aku nei au iā ʻoe i kahi unuhi o ka ʻatikala "4 Engineers, 7000 Servers, a me hoʻokahi maʻi maʻi honua" na Adib Daw.

Inā ʻaʻole e haʻalulu iki kēlā poʻomanaʻo i kou iwi kuamoʻo, pono ʻoe e lele i ka paukū aʻe a i ʻole e kipa i kā mākou ʻaoʻao i hoʻolaʻa ʻia ʻoihana ma ka ʻoihana - makemake mākou e kamaʻilio.

ʻO wai mākou?

He hui mākou o 4 penguins makemake i ke kākau ʻana i nā code a me ka hana pū ʻana me ka lako. I ko mākou manawa manawaleʻa, kuleana mākou no ka hoʻolalelale ʻana, mālama ʻana a me ka hana ʻana i nā ʻauwaʻa ʻoi aku ma mua o 7000 mau kikowaena kino e holo ana i Linux, kahele ʻia ma waena o 3 mau kikowaena data like ʻole ma ʻAmelika Hui Pū ʻIa.

Ua loaʻa iā mākou ka manawa kūpono e hana i kēia 10 km mai nā pūnaewele, mai ka ʻoluʻolu o kā mākou keʻena ponoʻī, aia kahi kaʻa pōkole mai ke kahakai ma ke Kai Mediterranean.

Nā pilikia o ka pālākiō

ʻOiai he mea kūpono no ka hoʻomaka ʻana e hoʻomaka ma ka hoʻokipa ʻana i kāna ʻoihana i ke ao ma muli o ka haʻahaʻa haʻahaʻa haʻahaʻa, ua hoʻoholo mākou ma Outbrain e hoʻohana i kā mākou mau kikowaena. Ua hana mākou i kēia no ka mea ʻoi aku ka nui o nā kumukūʻai o ka ʻenehana kapuaʻi ma mua o nā kumukūʻai o ka hana ʻana i kā mākou lako ponoʻī i loaʻa i nā kikowaena ʻikepili ma hope o ka hoʻomohala ʻana i kekahi pae. Eia kekahi, hāʻawi kāu kikowaena i ka pae kiʻekiʻe o ka mana a me ka hoʻoponopono pilikia.

Ke ulu nei mākou, kokoke mau nā pilikia. Eia kekahi, hele pinepine lākou i nā hui. Pono ka hoʻokele ola o ka server i ka hoʻomaikaʻi mau ʻana iā ia iho i hiki ke hana pono i ka pōʻaiapili o ka piʻi wikiwiki o ka helu o nā kikowaena. ʻO nā ala polokalamu no ka hoʻokele ʻana i nā pūʻulu kikowaena ma nā kikowaena data e lilo i mea paʻakikī. ʻO ka ʻike, hoʻoponopono ʻana, a me ka hoʻēmi ʻana i nā hemahema i ka wā e hālāwai ai i nā kūlana QoS e lilo i mea o ka juggling i nā ʻano ʻano like ʻole o nā lako, nā ʻano hana like ʻole, ka hoʻomaikaʻi ʻana i nā lā palena, a me nā mea maikaʻi ʻē aʻe ʻaʻole makemake kekahi e hopohopo.

E haku i kāu mau Domain

No ka hoʻoponopono ʻana i ka nui o kēia mau pilikia, ua wāwahi mākou i ke ola o ka server ma Outbrain i loko o kāna mau mea nui a kapa ʻia lākou he mau kikowaena. No ka laʻana, uhi kekahi ʻaoʻao i nā pono lako, uhi kekahi i ka logistic e pili ana i ka pōʻai ola o ka waihona, a ʻo ke kolu e uhi i nā kamaʻilio me nā limahana kahua. Aia kekahi e pili ana i ka nānā ʻana i ka hāmeʻa, akā ʻaʻole mākou e wehewehe i nā helu āpau. ʻO kā mākou pahuhopu e aʻo a wehewehe i nā kāʻei kapu i hiki ke unuhi ʻia me ka hoʻohana ʻana i ke code. Ke hoʻomohala ʻia kahi abstraction hana, e hoʻoneʻe ʻia i kahi kaʻina hana lima i kau ʻia, hoʻāʻo ʻia a hoʻomaʻemaʻe ʻia. ʻO ka mea hope loa, ua hoʻonohonoho ʻia ke kikowaena e hoʻohui pū me nā kāʻei kapu ʻē aʻe ma o nā API, e hana ana i kahi ʻōnaehana holoʻokoʻa holoʻokoʻa, ikaika, a me ka ulu mau ʻana o ka ʻōnaehana ola kino e hiki ke hoʻoili ʻia, hoʻāʻo ʻia a nānā ʻia. E like me kā mākou ʻōnaehana hana ʻē aʻe.

ʻO ka hoʻohana ʻana i kēia ala i hiki iā mākou ke hoʻoponopono pololei i nā pilikia he nui - ma ka hana ʻana i nā mea hana a me ka automation.

Pono Domain

ʻOiai ʻo ka leka uila a me nā pāpalapala he ala kūpono e hoʻokō ai i ka noi i nā lā mua, ʻaʻole ia he hopena kūleʻa, ʻoi aku ka nui o ka helu o nā kikowaena a me ka nui o nā noi e hiki mai ana i kahi pae. No ka hoʻonohonoho maikaʻi ʻana a hoʻonohonoho mua i nā noi e hiki mai ana i mua o ka hoʻonui wikiwiki ʻana, pono mākou e hoʻohana i kahi ʻōnaehana tikiki hiki ke hāʻawi:

  • Hiki ke hoʻopilikino i ka ʻike o nā kahua kūpono wale nō (maʻalahi)
  • Hāmama nā API (hiki ke hoʻonui ʻia)
  • ʻIke ʻia e kā mākou hui (hoʻomaopopo ʻia)
  • Hoʻohui ʻia me kā mākou kaʻina hana i loaʻa (unified)

Ma muli o ko mākou hoʻohana ʻana iā Jira e hoʻokele i kā mākou sprints a me nā hana kūloko, ua hoʻoholo mākou e hana i kahi papahana ʻē aʻe e kōkua i kā mākou mea kūʻai aku e hoʻouna i nā tiketi a hahai i kā lākou hopena. ʻO ka hoʻohana ʻana iā Jira no nā noi e hiki mai ana a no ka hoʻokele ʻana i nā hana kūloko i hiki iā mākou ke hana i kahi papa Kanban hoʻokahi e ʻae iā mākou e nānā i nā kaʻina hana āpau. ʻIke wale kā mākou "mea kūʻai" i nā noi no nā lako, me ka ʻole o ka ʻimi ʻana i nā kikoʻī liʻiliʻi o nā hana hou (e like me ka hoʻomaikaʻi ʻana i nā mea hana, hoʻoponopono ʻana i nā pōpoki).

4 ʻenehana, 7000 mau kikowaena a me hoʻokahi maʻi maʻi honua
Papa Kanban ma Jira

Ma ke ʻano he bonus, ʻo ka ʻike ʻana i nā queues a me nā mea nui i kēia manawa i hiki i nā mea āpau ke hoʻomaopopo i "kahi i loko o ka pila" kahi noi kūikawā a me ka mea ma mua. Ua ʻae kēia i nā mea nona ka hoʻopaʻa ʻana i kā lākou mau noi ponoʻī me ka ʻole e hoʻokaʻaʻike mai iā mākou. Kauō a ʻo ia nō. Ua ʻae ia iā mākou e nānā a loiloi i kā mākou SLA e like me nā ʻano noi e pili ana i nā metric i hana ʻia ma Jira.

Lako Paahana Ola

E ho'āʻo e noʻonoʻo i ka paʻakikī o ka hoʻokele ʻana i nā lako i hoʻohana ʻia i kēlā me kēia rack server. ʻO ka mea ʻoi aku ka maikaʻi o ka hiki ke hoʻoneʻe ʻia nā ʻāpana he nui (RAM, ROM) mai ka hale kūʻai aku i ka lumi kikowaena a hoʻi. Hāʻule lākou a kākau ʻia a hoʻihoʻi ʻia i ka mea hoʻolako no ka hoʻololi/hoʻoponopono. Pono e haʻi ʻia kēia mau mea āpau i nā limahana lawelawe colocation e pili ana i ka mālama kino ʻana o nā mea hana. No ka hoʻoponopono ʻana i kēia mau pilikia, hana mākou i kahi mea hana kūloko i kapa ʻia ʻo Floppy. ʻO kāna hana:

  • Ka mālama ʻana i nā kamaʻilio me nā limahana kahua, ka hui ʻana o nā ʻike āpau;
  • Hoʻohou i ka ʻikepili "warehouse" ma hope o kēlā me kēia hana mālama pono a hōʻoia ʻia.

ʻIke ʻia ka hale kūʻai me ka hoʻohana ʻana iā Grafana, a mākou e hoʻohana ai e hoʻolālā i kā mākou metric āpau. No laila, hoʻohana mākou i ka mea hana like no ka nānā ʻana i ka hale kūʻai a no nā pono hana ʻē aʻe.

4 ʻenehana, 7000 mau kikowaena a me hoʻokahi maʻi maʻi honuaʻO ka papa hoʻomalu o nā lako hale kūʻai ma Grafana

No nā polokalamu kikowaena i lalo o ka palapala hōʻoia, hoʻohana mākou i kahi mea hana ʻē aʻe a mākou i kapa ai ʻo Dispatcher. ʻO ia:

  • E hōʻiliʻili i nā log system;
  • Hoʻopuka i nā hōʻike ma ke ʻano i koi ʻia e ka mea kūʻai aku;
  • Hana i kahi noi mai ka mea kūʻai aku ma o API;
  • Loaʻa a mālama i ka ʻike noi no ka nānā hou ʻana i kona holomua.

Ke ʻae ʻia kā mākou koi (maʻamau i loko o nā hola ʻoihana), hoʻouna ʻia ka ʻāpana ʻokoʻa i ke kikowaena data kūpono a ʻae ʻia e nā limahana.

4 ʻenehana, 7000 mau kikowaena a me hoʻokahi maʻi maʻi honua
Hoʻopuka ʻo Jenkins console

Kahua Kūkākūkā

No ka hoʻomau ʻana i ka ulu wikiwiki o kā mākou ʻoihana, e koi ana i ka hiki ke hoʻonui mau, pono mākou e hoʻololi i ke ʻano o kā mākou hana me nā loea loea i nā kikowaena data kūloko. Inā ʻo ka hoʻonui mua ʻana i ke kūʻai ʻana i nā kikowaena hou, a laila ma hope o kahi papahana hoʻohui (e pili ana i ka hoʻololi ʻana iā Kubernetes) ua lilo ia i mea ʻokoʻa loa. ʻO kā mākou hoʻololi ʻana mai ka "hoʻohui ʻana i nā racks" i "nā kikowaena repurposing."

ʻO ka hoʻohana ʻana i kahi ala hou e pono ai i nā mea hana hou e hiki ai ke launa pū me nā limahana kikowaena data. Pono kēia mau mea hana i:

  • Ka maʻalahi;
  • ʻO ke kūʻokoʻa;
  • Ka pono;
  • Kūpono.

Pono mākou e haʻalele iā mākou iho mai ke kaulahao a kūkulu i ka hana i hiki i nā ʻenehana ke hana pololei me nā lako kikowaena. Me ka ʻole o kā mākou hana ʻana a me ka hāpai ʻole ʻana i kēia mau pilikia āpau e pili ana i ka hana, nā hola hana, nā lako lako, etc.

No ka hoʻokō ʻana i kēia, ua hoʻokomo mākou i nā iPads i kēlā me kēia kikowaena data. Ma hope o ka hoʻopili ʻana i ke kikowaena, e hana ʻia kēia:

  • Ke hōʻoia nei ka mea hana pono kēia kikowaena i kekahi hana;
  • Ua pani ʻia nā noi e holo ana ma ke kikowaena (inā pono);
  • Hoʻopuka ʻia kahi ʻōkuhi hana ma kahi kahawai Slack e wehewehe ana i nā ʻanuʻu e pono ai;
  • I ka pau ʻana o ka hana, nānā ka hāmeʻa i ka pololei o ke kūlana hope o ke kikowaena;
  • Hoʻomaka hou i nā noi inā pono.

Eia kekahi, ua hoʻomākaukau pū mākou i kahi bot Slack e kōkua i ka ʻenehana. Mahalo i ka nui o nā mana (e hoʻonui mau ana mākou i ka hana), ua maʻalahi ka bot i kā lākou hana, a ua maʻalahi ko mākou ola. Ma kēia ala mākou i hoʻomaikaʻi ai i ka hapa nui o ke kaʻina hana o ka repurposing a me ka mālama ʻana i nā kikowaena, e hoʻopau iā mākou iho mai ke kaʻina hana.

4 ʻenehana, 7000 mau kikowaena a me hoʻokahi maʻi maʻi honua
ʻO iPad ma kekahi o kā mākou mau kikowaena data

Lako Paa Lako

ʻO ka hoʻonui pono ʻana i kā mākou kikowaena kikowaena data e pono ai ka ʻike maikaʻi i kēlā me kēia ʻāpana, no ka laʻana:

  • Ka ʻike ʻana i ka hemahema o ka lako
  • Nā mokuʻāina kikowaena (ʻeleu, hoʻokipa, zombie, etc.)
  • Ke Mana Mana
  • Mana paʻa
  • ʻIkepili no kēia ʻoihana holoʻokoʻa

Hāʻawi kā mākou hāʻina iā mākou e hoʻoholo e pili ana i ka pehea, kahi a me ka wā e kūʻai ai i nā lako, i kekahi manawa ma mua o ka pono maoli. Eia kekahi, ma ka hoʻoholo ʻana i ke kiʻekiʻe o ka ukana ma nā lako like ʻole, ua hiki iā mākou ke hoʻokō i ka hoʻokaʻawale waiwai maikaʻi. ʻO ka mea nui, ka hoʻohana ikehu. Hiki iā mākou ke hoʻoholo i kēia manawa e pili ana i ke kau ʻana o kahi kikowaena ma mua o ka hoʻokomo ʻia ʻana i loko o ka pahu a hoʻopili ʻia i kahi kumu mana, i loko o kona ola ʻana a hiki i kona hoʻomaha ʻana.

4 ʻenehana, 7000 mau kikowaena a me hoʻokahi maʻi maʻi honua
ʻO ka Energy Dashboard ma Grafana

A laila ua puka mai ʻo COVID-19 ...

Hoʻokumu kā mākou hui i nā ʻenehana e hoʻoikaika i nā hui media a me nā mea hoʻopuka pūnaewele e kōkua i ka poʻe kipa e ʻimi i nā ʻike pili, nā huahana a me nā lawelawe i makemake nui iā lākou. Hoʻolālā ʻia kā mākou ʻoihana e lawelawe i nā kaʻa i hana ʻia ke hoʻokuʻu ʻia kekahi mau nūhou hoihoi.

ʻO ka hoʻolaha nui ʻana o ka media e pili ana iā COVID-19, i hui pū ʻia me ka piʻi ʻana o ke kaʻa, ʻo ia ka mea e pono ai mākou e aʻo pehea e hoʻokō ai i kēia mau pilikia. Eia kekahi, pono e hana ʻia kēia mau mea i ka wā pilikia honua, i ka wā i hoʻopau ʻia ai nā kaulahao lako a aia ka hapa nui o nā limahana ma ka home.

Akā, e like me kā mākou i ʻōlelo ai, ua manaʻo mua kā mākou kumu hoʻohālike:

  • ʻO nā mea hana i loko o kā mākou mau kikowaena ʻikepili, no ka hapa nui, hiki ʻole ke loaʻa iā mākou;
  •  Hana mākou i nā hana kino a pau ma kahi mamao;
  • Hana ʻia ka hana me ka asynchronously, autonomously a ma ke ʻano nui;
  • Hoʻokō mākou i ka noi no nā mea hana e hoʻohana ana i ke ʻano "kūkulu mai nā ʻāpana" ma mua o ke kūʻai ʻana i nā mea hana hou;
  • Loaʻa iā mākou kahi hale kūʻai e hiki ai iā mākou ke hana i kahi mea hou, ʻaʻole hoʻokō wale i ka hoʻoponopono maʻamau.

No laila, ʻaʻole liʻiliʻi ka hopena o nā kaohi o ka honua i kaohi ʻana i nā hui he nui i kā lākou mau kikowaena data, a no nā ʻāpana ʻokoʻa a me nā kikowaena, ʻae, ua hoʻāʻo mākou e hōʻoia i ka hana paʻa o nā mea hana. Akā ua hana ʻia kēia me ka manaʻo o ka pale ʻana i nā hanana hiki ke ʻike koke ʻia ʻaʻole i loaʻa kekahi ʻāpana o ka lako. Ua hōʻoia mākou ua hoʻopiha ʻia kā mākou waihona me ka ʻole o ka manaʻo e hoʻokō i nā koi o kēia manawa.

I ka hōʻuluʻuluʻana, makemake wau e'ōlelo i kā mākou hana i ka hana ma kaʻoihana kikowaenaʻikepili e hōʻoiaʻiʻo ana e hiki ke hoʻohana i nā loina o ka hoʻolālā code maikaʻi i ka hoʻokele kino o kahi kikowaena data. A e ʻike paha ʻoe i ka hoihoi.

Ka ʻĀina: nā ʻōlelo

Source: www.habr.com

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