E hoʻomohala i kahi kahua wikiō i nā lā 90

ʻO kēia pūnāwai i loaʻa iā mākou i nā kūlana hauʻoli loa. Ma muli o ka maʻi maʻi, ua maopopo ka pono o kā mākou mau hālāwai kauwela e neʻe ma ka pūnaewele. A i mea e alakaʻi maikaʻi ai iā lākou ma ka pūnaewele, ʻaʻole i kūpono nā polokalamu lako polokalamu i mākaukau no mākou; pono mākou e kākau i kā mākou iho. A he ʻekolu mahina mākou e hana ai i kēia.

Ua maopopo ia he ekolu mahina. Akā mai waho mai ʻaʻole maopopo loa: he aha kahi kahua hālāwai kūkā pūnaewele? He aha nā ʻāpana? No laila, i ka hope o nā hālāwai kūkā DevOops kauwela, ua nīnau au i ka poʻe i kuleana no kēia hana:

  • ʻO Nikolay Molchanov - ka luna ʻenehana o JUG Ru Group;
  • ʻO Vladimir Krasilshchik kahi polokalamu Java pragmatic e hana ana ma ke kua hope (hiki iā ʻoe ke ʻike i kāna mau hōʻike ma kā mākou mau hālāwai Java);
  • ʻO Artyom Nikonov ke kuleana o kā mākou wikiō wikiō.

Ma ke ala, ma nā hālāwai hoʻoilo-hoʻoilo e hoʻohana mākou i kahi ʻano i hoʻomaikaʻi ʻia o ka paepae like - no laila nui nā mea heluhelu habra e lilo i mea hoʻohana.

E hoʻomohala i kahi kahua wikiō i nā lā 90

ʻO ke kiʻi holoʻokoʻa

— He aha ke ʻano o ka hui?

Nikolay Molchanov: Loaʻa iā mākou kahi mea loiloi, mea hoʻolālā, mea hoʻāʻo, ʻekolu mau hope mua, a me kahi hope hope. A, ʻoiaʻiʻo, he loea T-shaped!

— Pehea ke ʻano o ke kaʻina hana ma ka laulā?

Nikolay: A hiki i ka waena o Malaki, ʻaʻohe mea i mākaukau no ka pūnaewele. A i ka lā Malaki 15, ua hoʻomaka ka carousel pūnaewele holoʻokoʻa e wili. Hoʻonohonoho mākou i kekahi mau waihona, hoʻolālā, kūkākūkā i ka hoʻolālā kumu a hana i nā mea āpau i ʻekolu mahina.

ʻO kēia, ʻoiaʻiʻo, ua hele i nā pae maʻamau o ka hoʻolālā, ka hoʻolālā, ke koho ʻana i nā hiʻohiʻona, ke koho balota ʻana i kēlā mau hiʻohiʻona, nā kulekele no kēlā mau hiʻohiʻona, kā lākou hoʻolālā, hoʻomohala, hoʻāʻo. ʻO ka hopena, ma Iune 6, ua ʻōwili mākou i nā mea āpau i ka hana. TechTrain. He 90 mau lā no nā mea a pau.

- Ua hoʻokō anei mākou i ka mea a mākou i hana ai?

Nikolay: No ka mea ke komo nei mākou i ka ʻaha kūkā DevOops ma ka pūnaewele, ʻo ia ka mea i hana. ʻO wau ponoʻī i ka mea nui: E lawe mai au i nā mea kūʻai aku i kahi mea hana e hiki ai iā lākou ke hana i kahi hālāwai kūkā pūnaewele.

ʻO kēia ka paʻakikī: hāʻawi iā mākou i mea hana e hiki ai iā mākou ke hoʻolaha i kā mākou mau ʻaha kūkā i nā mea paʻa tiketi.

Ua hoʻokaʻawale ʻia nā hoʻolālā āpau i kekahi mau pae, a ua māhele ʻia nā hiʻohiʻona āpau (ma kahi o 30 honua) i 4 mau ʻāpana:

  • a mākou e hana maoli ai (ʻaʻole hiki iā mākou ke ola me ka ʻole o lākou),
  • a mākou e hana ai i ka lua,
  • ʻaʻole mākou e hana,
  • a ʻaʻole loa mākou e hana.

Hana mākou i nā hiʻohiʻona a pau mai nā māhele mua ʻelua.

— Ua ʻike au ua hana ʻia he 600 mau pilikia JIRA. I loko o ʻekolu mahina, ua hana ʻoe i 13 microservices, a ke manaʻo nei au ua kākau ʻia lākou ʻaʻole ma Java wale nō. Ua hoʻohana ʻoe i nā ʻenehana like ʻole, loaʻa iā ʻoe ʻelua mau pūʻulu Kubernetes i ʻekolu mau wahi loaʻa a me 5 mau kahawai RTMP ma Amazon.

E nānā kaʻawale i kēlā me kēia ʻāpana o ka ʻōnaehana.

Ke kahe ana

— E hoʻomaka kākou me ka loaʻa ʻana o kahi kiʻi wikiō, a hoʻouna ʻia i kekahi mau lawelawe. Artyom, e haʻi mai iā mākou pehea e hiki mai ai kēia streaming?

Artyom Nikonov: ʻO kā mākou papahana maʻamau e like me kēia: kiʻi mai ke kāmela -> kā mākou lumi hoʻomalu -> kikowaena RTMP kūloko -> Amazon -> mea hoʻokani wikiō. Nā kikoʻī hou aku kakau no ia mea ma Habré i Iune.

Ma keʻano laulā, ʻelua mau ala honua e hana ai i kēia: ma ka ʻenehana a i ʻole ma muli o nā hoʻonā polokalamu. Ua koho mākou i ke ala polokalamu no ka mea ʻoi aku ka maʻalahi i ka hihia o nā ʻōlelo mamao. ʻAʻole hiki i nā manawa a pau ke lawe i ka lako i kahi mea haʻiʻōlelo ma kahi ʻāina ʻē, akā ʻoi aku ka maʻalahi o ka hāʻawi ʻana i nā polokalamu i ka mea haʻi'ōlelo.

Mai ka manaʻo lako, loaʻa iā mākou kekahi helu o nā kāmela (i loko o kā mākou studio a me nā mea ʻōlelo mamao), kahi helu o nā mana mamao ma ke keena, a i kekahi manawa pono e hoʻoponopono ʻia ma lalo o ka papaʻaina i ka wā o ka hoʻolaha.

Hoʻokomo nā hōʻailona mai kēia mau mea hana i nā kamepiula me nā kāleka hopu, kāleka hoʻokomo/puka, a me nā kāleka kani. Ma laila ua hui pū ʻia nā hōʻailona a hui pū ʻia i nā hoʻolālā:

E hoʻomohala i kahi kahua wikiō i nā lā 90
Ka laʻana o kahi hoʻolālā no 4 mau mea ʻōlelo

E hoʻomohala i kahi kahua wikiō i nā lā 90
Ka laʻana o kahi hoʻolālā no 4 mau mea ʻōlelo

Eia kekahi, hāʻawi ʻia ka hoʻolaha hoʻomau me ke kōkua o ʻekolu kamepiula: hoʻokahi mīkini nui a ʻelua mau mea hana. ʻO ka kamepiula mua e hōʻiliʻili i ka hōʻike mua, ʻo ka lua - ka hoʻomaha, ka mua - ka hōʻike aʻe, ka lua - ka hoʻomaha aʻe, a pēlā aku. A hui ka mīkini nui i ka mua me ka lua.

Hoʻokumu kēia i kahi ʻano triangle, a inā hāʻule kekahi o kēia mau nodes, hiki iā mākou ke hoʻomau i ka hāʻawi ʻana i nā ʻike i nā mea kūʻai aku me ka nele o ka maikaʻi. Ua loaʻa iā mākou kahi kūlana. I ka pule mua o nā ʻaha kūkā, hoʻoponopono mākou i hoʻokahi mīkini, hoʻohuli a hoʻopau. Me he mea lā, hauʻoli ka poʻe i ko mākou kūpaʻa.

A laila, hele nā ​​kahawai mai nā kamepiula i kahi kikowaena kūloko, nona nā hana ʻelua: ala i nā kahawai RTMP a me nā hoʻopaʻa waihona. No laila, loaʻa iā mākou nā helu helu he nui. Hoʻouna ʻia nā kahawai wikiō i ka ʻāpana o kā mākou ʻōnaehana i kūkulu ʻia ma nā lawelawe Amazon SaaS. Hoʻohana mākou MediaLive:,S3, CloudFront.

Nikolay: He aha ka hana ma laila ma mua o ka hiki ʻana o ke wikiō i ka lehulehu? Pono ʻoe e ʻoki i kekahi ʻano, ʻeā?

Artyom: Hoʻopili mākou i ka wikiō ma kā mākou ʻaoʻao a hoʻouna iā ia i MediaLive. Hoʻomaka mākou i nā transcoders ma laila. Hoʻololi lākou i nā wikiō i ka manawa maoli i loko o nā ʻōlelo hoʻoholo i hiki i nā kānaka ke nānā iā lākou ma kā lākou kelepona, ma o ka Pūnaewele maikaʻi ʻole ma ka ʻāina, a pēlā aku. A laila ʻoki ʻia kēia mau kahawai nā ʻāpana, penei ka hana o ka protocol HLS. Hoʻouna mākou i kahi papa inoa i ka mua i loaʻa nā kuhikuhi i kēia mau ʻāpana.

- Ke hoʻohana nei mākou i ka hoʻonā 1080p?

Artyom: ʻO ka laulā o kā mākou wikiō e like me 1080p - 1920 pixels, a ʻoi aku ka liʻiliʻi o ke kiʻekiʻe, ʻoi aku ka lōʻihi o ke kiʻi - aia nā kumu no kēia.

Mea pāʻani

— Ua wehewehe ʻo Artyom i ke komo ʻana o ke wikiō i loko o nā kahawai, pehea e puʻunaue ʻia ai i loko o nā papa pāʻani like ʻole no nā ʻōkuhi pale like ʻole, ʻoki ʻia i loko o nā ʻāpana a komo i ka mea pāʻani. E Kolya, e haʻi mai iaʻu i ke ʻano o kēia mea pāʻani, pehea e hoʻopau ai i ke kahawai, no ke aha ʻo HLS?

Nikolay: Loaʻa iā mākou kahi mea pāʻani e hiki i nā mea nānā ʻaha kūkā a pau ke nānā.

E hoʻomohala i kahi kahua wikiō i nā lā 90

ʻO ka mea nui, ʻo kēia kahi ʻōwili a puni ka waihona hls.js, kahi i kākau ʻia ai nā mea pāʻani he nui. Akā makemake mākou i nā hana kikoʻī loa: hoʻihoʻi a hōʻailona i kahi o ke kanaka, he aha ka hōʻike āna e nānā nei. Pono mākou i kā mākou hoʻonohonoho ponoʻī, nā ʻano logo āpau a me nā mea ʻē aʻe i kūkulu ʻia me mākou. No laila, ua hoʻoholo mākou e kākau i kā mākou hale waihona puke ponoʻī (kahi ʻōwili ma luna o HLS) a hoʻokomo iā ia ma ka pūnaewele.

ʻO kēia ka hana aʻa, no laila ua hoʻokō mua ʻia. A laila ulu aʻela nā mea a puni.

ʻO kaʻoiaʻiʻo, ma o ka ʻae ʻana, loaʻa i ka mea pāʻani mai ka backend kahi playlist me nā loulou i nā chunks i hoʻopili ʻia me ka manawa a me ka maikaʻi, hoʻoiho i nā mea pono a hōʻike iā lākou i ka mea hoʻohana, e hana ana i kekahi "magic" ma ke ala.

E hoʻomohala i kahi kahua wikiō i nā lā 90
Laʻana laina manawa

- Ua kūkulu ʻia kahi pihi i loko o ka mea pāʻani e hōʻike i kahi manawa o nā hōʻike a pau...

Nikolay: ʻAe, ua hoʻoponopono koke mākou i ka pilikia o ka hoʻokele mea hoʻohana. I ka waena o ʻApelila, ua hoʻoholo mākou ʻaʻole mākou e hoʻolaha i kēlā me kēia o kā mākou mau ʻaha kūkā ma kahi pūnaewele ʻokoʻa, akā e hoʻohui i nā mea āpau i hoʻokahi. No laila hiki i nā mea hoʻohana tiketi Full Pass ke hoʻololi manuahi ma waena o nā hālāwai kūkā like ʻole: nā hoʻolaha ola a me nā hoʻopaʻa ʻana o nā mea i hala.

A i mea e maʻalahi ai i nā mea hoʻohana ke hoʻokele i ke kahawai o kēia manawa a hoʻololi i waena o nā mele, ua hoʻoholo mākou e hana i kahi pihi "Hoʻolaha holoʻokoʻa" a me nā kāleka hōʻike ākea no ka hoʻololi ʻana ma waena o nā mele a me nā hōʻike. Aia ka mana keyboard.

— Aia kekahi pilikia ʻenehana me kēia?

Nikolay: Loaʻa iā lākou kahi pahu ʻōwili kahi i kaha ʻia ai nā wahi hoʻomaka o nā hōʻike like ʻole.

— I ka hopena, ua hoʻokō anei ʻoe i kēia mau hōʻailona ma ka papa ʻōwili ma mua o ka hana ʻana o YouTube i kahi mea like?

Artyom: Loaʻa iā lākou i ka beta ia manawa. Me he mea lā he hiʻohiʻona paʻakikī kēia no ka mea ua hoʻāʻo ʻia lākou me nā mea hoʻohana i ka makahiki i hala. A i kēia manawa ua hiki ke kūʻai aku.

Nikolay: Akā, ua loaʻa iā mākou ke kūʻai wikiwiki aku. ʻO kaʻoiaʻiʻo, ma hope o kēia hiʻohiʻona maʻalahi he nui ka backend, frontend, helu a me ka makemakika i loko o ka mea pāʻani.

Kaumua

— E noʻonoʻo kākou pehea e hiki ai kēia ʻike a mākou e hōʻike ai (kāleka haʻiʻōlelo, nā mea haʻiʻōlelo, pūnaewele, papa manawa) i ka hopena mua?

ʻO Vladimir Krasilshchik: Loaʻa iā mākou nā ʻōnaehana IT kūloko. Aia kahi ʻōnaehana e hoʻokomo ʻia ai nā hōʻike a pau a me nā mea haʻiʻōlelo. Aia ke kaʻina hana e komo ai ka mea haʻiʻōlelo i ka ʻaha kūkā. Hoʻouna ka mea haʻi'ōlelo i kahi noi, hopu ka ʻōnaehana, a laila aia kahi pipeline e like me ka mea i hana ʻia ai ka hōʻike.

E hoʻomohala i kahi kahua wikiō i nā lā 90
Penei ka ʻike ʻana o ka mea haʻiʻōlelo i ka paipu

ʻO kēia ʻōnaehana ko mākou kūkulu kūloko.

A laila, pono ʻoe e kūkulu i kahi papahana mai nā hōʻike pilikino. E like me kāu e ʻike ai, he pilikia NP-paʻakikī kēia, akā hoʻoponopono mākou i kekahi. No ka hana ʻana i kēia, hoʻomaka mākou i kahi ʻāpana ʻē aʻe e hoʻohua ai i kahi papahana a hoʻouka iā ia i ka lawelawe kapuaʻi ʻaoʻao ʻekolu ʻo Contentful. Ma laila, ua like nā mea a pau me kahi papaʻaina i loko o nā lā o ka hālāwai kūkā, i nā lā he mau manawa manawa, a ma nā slot he mau hōʻike, hoʻomaha a me nā hana kākoʻo. No laila aia ka ʻike a mākou e ʻike ai ma kahi lawelawe ʻaoʻao ʻekolu. A ʻo ka hana ka lawe ʻana i ka pūnaewele.

Me he mea lā he ʻaoʻao wale nō ka pūnaewele me kahi mea pāʻani, ʻaʻohe mea paʻakikī ma aneʻi. ʻAʻole naʻe. ʻO ka ʻaoʻao hope ma hope o kēia ʻaoʻao e hele i ka Contentful, loaʻa ka papahana mai laila mai, hana i kekahi mau mea a hoʻouna i ka frontend. Ke hoʻohana nei i kahi pilina pūnaewele, i hana ʻia e kēlā me kēia mea kūʻai aku o kā mākou kahua, hoʻouna mākou iā ia i kahi mea hou i ka papa kuhikuhi mai ka hope a i ka hope.

ʻO ka hihia maoli: ua hoʻololi ka mea haʻiʻōlelo i nā hana i ka wā o ka hālāwai kūkā. Pono mākou e hoʻololi i kāna hōʻailona ʻoihana hana. Pehea e hana ai kēia mai ka hope? Hoʻouna ʻia kahi mea hou i nā mea kūʻai aku a pau ma o ka websocket, a laila hoʻihoʻi hou ka frontend i ka timeline. Hana ʻia kēia mau mea a pau. ʻO ka hui pū ʻana o ka lawelawe kapuaʻi a me kekahi o kā mākou mau ʻāpana e hāʻawi iā mākou i ka manawa e hana ai i kēia ʻike āpau a hāʻawi iā ia i mua.

Nikolay: He mea nui e wehewehe ma aneʻi ʻaʻole kā mākou pūnaewele he palapala SPA maʻamau. ʻO kēia kahi pūnaewele i hoʻokumu ʻia, hoʻololi ʻia a me kahi SPA. ʻIke maoli ʻo Google i kēia pūnaewele ma ke ʻano he HTML. He maikaʻi kēia no SEO a no ka hāʻawi ʻana i nā ʻike i ka mea hoʻohana. ʻAʻole ia e kali no 1,5 megabytes o JavaScript e hoʻouka ma mua o ka ʻike ʻana i ka ʻaoʻao, ʻike koke ʻo ia i ka ʻaoʻao i unuhi mua ʻia, a manaʻo ʻoe i kēlā me kēia manawa ke hoʻololi ʻoe i ka hōʻike. Hana nā mea a pau i ka hapalua kekona, no ka mea, ua mākaukau ka ʻike a kau ʻia ma kahi kūpono.

— E kahakii kakou i ka laina ma lalo o na mea a pau i luna ma ka helu ana i na enehana. Ua ʻōlelo ʻo Tyoma he 5 kā mākou kahawai Amazon, a hāʻawi mākou i ke wikiō a me ke kani ma laila. Loaʻa iā mākou nā palapala bash ma laila, hoʻohana mākou iā lākou e hoʻomaka a hoʻonohonoho ...

Artyom: Hana ʻia kēia ma o ka AWS API, he nui nā lawelawe ʻaoʻao ʻenehana ma laila. Māhele mākou i kā mākou mau kuleana i hāʻawi aku au i Kapua, a lawe nā mea hoʻomohala mua a me hope mai laila mai. Loaʻa iā mākou kahi helu o kā mākou paʻa ponoʻī e hoʻomaʻamaʻa i ka hoʻolālā o ka ʻike, a laila mākou e hana ai ma 4K, etc. No ka paʻa loa o nā lā palena, ua hana mākou ma AWS.

- A laila hele kēia mau mea i ka mea pāʻani me ka hoʻohana ʻana i ka ʻōnaehana backend. Loaʻa iā mākou TypeScript, React, Next.JS i kā mākou mea pāʻani. A ma ka ʻaoʻao hope he nui nā lawelawe ma C #, Java, Spring Boot a me Node.js. Hoʻohana ʻia kēia me nā Kubernetes me ka hoʻohana ʻana i ka ʻōnaehana Yandex.Cloud.

Makemake au e hoʻomaopopo i ka wā e pono ai au e ʻike i ka paepae, ua maʻalahi ia: aia nā waihona āpau ma GitLab, ua kapa ʻia nā mea āpau, ua kākau ʻia nā hoʻokolohua, aia nā palapala. ʻO ia hoʻi, ma ke ʻano pilikia, mālama lākou i ia mau mea.

Nā Kāohi ʻoihana a me nā ʻikepili

- Hoʻolālā mākou i nā mea hoʻohana 10 e pili ana i nā koi ʻoihana. ʻO ka manawa kēia e kamaʻilio e pili ana i nā kaohi ʻoihana i loaʻa iā mākou. Pono mākou e hōʻoia i ka hana kiʻekiʻe, e hōʻoia i ka mālama ʻana i ke kānāwai no ka mālama ʻana i ka ʻikepili pilikino. A he aha hou aʻe?

Nikolay: I ka hoʻomaka, hoʻomaka mākou mai nā koi wikiō. ʻO ka mea nui loa ka hāʻawi ʻana i ka mālama wikiō a puni ka honua no ka lawe wikiwiki ʻana i ka mea kūʻai. ʻO nā mea ʻē aʻe e pili ana i ka hoʻonā 1080p, a me ka rewind, ʻaʻole i hoʻokō nā mea ʻē aʻe i ke ʻano ola. Ma hope ua hoʻohui mākou i ka hiki ke hiki i ka wikiwiki 2x, me kāna kōkua hiki iā ʻoe ke "hopu" me ke ola a hoʻomau i ka nānā ʻana i ka hālāwai kūkā i ka manawa maoli. A ma ke ala, ua ʻike ʻia ka hana hōʻailona timeline. Eia kekahi, pono mākou e hoʻomanawanui a kū i ka ukana o 10 mau pilina. Mai kahi ʻaoʻao hope, ʻo kēia ma kahi o 000 mau pilina i hoʻonui ʻia e 10 mau noi no kēlā me kēia ʻaoʻao hōʻano hou. A ʻo kēia ka 000 RPS/sec. He wahi liʻiliʻi.

— Aia kekahi mau koi ʻē aʻe no ka "hōʻikeʻike virtual" me nā kūʻai pūnaewele o nā hoa?

Nikolay: ʻAe, pono e hana ʻia kēia me ka wikiwiki a ma ke ao holoʻokoʻa. Loaʻa iā mākou he 10 mau hui hoa no kēlā me kēia hālāwai kūkā, a pono lākou a pau e hoʻopau i hoʻokahi pule a ʻelua paha. Eia naʻe, ʻokoʻa iki kā lākou ʻike ma ka ʻano. Akā, ua hana ʻia kekahi ʻenekini mamana e hōʻuluʻulu i kēia mau ʻaoʻao ma ka lele, me ka ʻole o ke komo ʻana i ka hoʻomohala hou.

— Aia nō nā koi no ka ʻikepili o ka nānā ʻana i ka manawa maoli a me nā helu. ʻIke wau e hoʻohana mākou iā Prometheus no kēia, akā e haʻi iā mākou i nā kikoʻī hou aku: he aha nā koi a mākou e hālāwai ai no ka analytics, a pehea e hoʻokō ʻia ai kēia?

Nikolay: I ka wā mua, loaʻa iā mākou nā koi kūʻai no ka hōʻiliʻili ʻana no ka hoʻāʻo ʻana A/B a me ka ʻohi ʻana i ka ʻike i mea e hoʻomaopopo ai pehea e hāʻawi ai i ka ʻike maikaʻi loa i ka mea kūʻai aku i ka wā e hiki mai ana. Aia kekahi mau koi no kekahi mau loiloi e pili ana i nā hana hoa a me nā ʻikepili āu e ʻike ai (e kipa i ka counter). ʻOhi ʻia nā ʻike āpau i ka manawa maoli.

Hiki iā mākou ke hāʻawi i kēia ʻike ma ke ʻano i hui pū ʻia a hiki i nā mea haʻiʻōlelo: ehia ka poʻe e nānā ana iā ʻoe i kekahi manawa. I ka manawa like, no ka hoʻokō ʻana i ke Kānāwai Federal 152, ʻaʻole ʻike ʻia kāu moʻokāki pilikino a me kāu ʻikepili pilikino ma kekahi ʻano.

Ua loaʻa i ka paepae nā mea kūʻai aku a me kā mākou metric no ke ana ʻana i ka hana mea hoʻohana i ka manawa maoli (nāna i nānā i ka lua o ka hōʻike) i mea e kūkulu ai i nā kiʻi o ka hele ʻana i nā hōʻike. Ma muli o kēia ʻikepili, ke hana ʻia nei ka noiʻi e hoʻomaikaʻi ai i nā ʻaha kūkā e hiki mai ana.

Hoʻopunipuni

— Loaʻa iā mākou nā hana anti-fraud?

Nikolay: Ma muli o ka paʻa o ka manawa mai kahi ʻoihana ʻoihana, ʻaʻole i hoʻonohonoho mua ʻia ka hana e kāohi koke i nā pilina pono ʻole. Inā komo nā mea hoʻohana ʻelua ma lalo o ka moʻokāki hoʻokahi, hiki iā lākou ke ʻike i ka ʻike. Akā ʻike mākou i ka nui o nā manaʻo like ʻole mai kahi moʻolelo. A ua pāpā mākou i kekahi mau mea hōʻino ʻino.

Vladimir: No kāna hōʻaiʻē, ua hoʻomaopopo kekahi o nā mea hoʻohana i pāpā ʻia i ke kumu o kēia. Hele mai ʻo ia, mihi a hoʻohiki e kūʻai i tiketi.

— No kēia mau mea a pau, pono ʻoe e ʻimi pono i nā mea hoʻohana a pau mai ke komo ʻana a i waho, e ʻike mau i kā lākou hana. Pehea e hana ai kēia ʻōnaehana?

Vladimir: Makemake au e kamaʻilio e pili ana i nā ʻikepili a me nā ʻikepili, a laila mākou e loiloi ai no ka kūleʻa o ka hōʻike a i ʻole hiki ke hāʻawi i nā hoa. Hoʻopili ʻia nā mea kūʻai a pau ma o kahi pilina pūnaewele i kahi pūʻulu hope. Kū i laila hazelcast. Hoʻouna kēlā me kēia mea kūʻai i kēlā me kēia manawa i kāna hana a me ke mele āna e nānā nei. A laila hoʻohui ʻia kēia ʻike me ka hoʻohana ʻana i nā hana Hazelcast wikiwiki a hoʻihoʻi ʻia i ka poʻe a pau e nānā i kēia mau mele. ʻIke mākou ma ke kihi i ka nui o nā poʻe me mākou i kēia manawa.

E hoʻomohala i kahi kahua wikiō i nā lā 90

Mālama ʻia ka ʻike like i loko Mongo a hele i kā mākou lokoʻikepili, kahi e loaʻa ai iā mākou ka manawa kūpono e kūkulu i kahi pakuhi hoihoi. Ua kū mai ka nīnau: ehia mau mea hoʻohana kū hoʻokahi i nānā i kēia hōʻike? Hele mākou i ʻO Postgres, aia na ping o ka poe a pau i hele mai ma ka id o keia hoike. Ua hōʻiliʻili mākou i nā mea kūʻokoʻa, a i kēia manawa hiki iā mākou ke hoʻomaopopo.

Nikolay: Akā i ka manawa like, loaʻa iā mākou ka ʻikepili manawa maoli mai Prometheus. Hoʻonohonoho ʻia e kūʻē i nā lawelawe Kubernetes āpau, kūʻē iā Kubernetes ponoʻī. ʻOhi loa ia i nā mea āpau, a me Grafana hiki iā mākou ke kūkulu i nā kiʻi i ka manawa maoli.

Vladimir: Ma ka lima hoʻokahi, hoʻoiho mākou i kēia no ka hana OLAP hou. A no OLTP, hoʻoiho ka noi i ka mea holoʻokoʻa iā Prometheus, Grafana a hui pū nā kiʻi!

- ʻO kēia ka hihia i ka hui ʻana o nā pakuhi.

Nā hoʻololi hoʻoikaika kino

- E haʻi mai iā mākou pehea e hoʻololi ʻia ai nā loli ikaika: inā ua kāpae ʻia ka hōʻike 6 mau minuke ma mua o ka hoʻomaka ʻana, he aha ke kaulahao o nā hana? ʻO wai ka paipu hana?

Vladimir: He kūlana loa ka pipeline. Nui nā mea hiki. ʻO ka mea mua, ua hana ka papahana papahana a hoʻololi i ka papahana. Hoʻouka ʻia ka papahana i hoʻololi ʻia i Contentful. Ma hope o ka hoʻomaopopo ʻana o ke kua i nā loli no kēia ʻaha kūkā ma Contentful, lawe iā ia a kūkulu hou. ʻOhi ʻia nā mea a pau a hoʻouna ʻia ma o websocket.

ʻO ka lua o ka hiki, i ka wā e hana ai nā mea a pau i ka wikiwiki: hoʻololi ka mea hoʻoponopono i ka ʻike ma Contentful (ka loulou i Telegram, hōʻike ʻōlelo, a me nā mea ʻē aʻe) a hana like ka loina like me ka manawa mua.

Nikolay: Hana nā mea a pau me ka hōʻoluʻolu ʻole i ka ʻaoʻao. Hoʻololi maikaʻi ʻia nā hoʻololi āpau no ka mea kūʻai aku. Pela no ka hoololi ana i na hoike. Ke hiki mai ka manawa, hoʻololi ka hōʻike a me ka interface.

Vladimir: Eia kekahi, aia nā ʻoki manawa no ka hoʻomaka ʻana o nā hōʻike ma ka palena manawa. I kinohi, aohe mea. A inā ʻoe e kau i kāu ʻiole ma luna o ka ʻulaʻula, a laila ma kekahi manawa, mahalo i ka luna hoʻolaha, e ʻike ʻia nā ʻoki. Hoʻonohonoho ka luna hoʻokele i ka hoʻomaka kūpono o ka hoʻolaha, koho ka hope i kēia hoʻololi, helu i ka manawa hoʻomaka a me ka hopena o nā hōʻike holoʻokoʻa holoʻokoʻa e like me ka papa kuhikuhi o ka hālāwai kūkā, hoʻouna i kā mākou mea kūʻai aku, a huki ka mea pāʻani i nā ʻoki. I kēia manawa hiki i ka mea hoʻohana ke hoʻokele maʻalahi i ka hoʻomaka a me ka hopena o ka hōʻike. He ʻoihana koʻikoʻi koʻikoʻi, kūpono loa a pono. ʻAʻole ʻoe e hoʻopau manawa i ka ʻimi ʻana i ka manawa hoʻomaka maoli no ka hōʻike. A ke hana mākou i kahi ʻike, he mea kupanaha loa ia.

Hoʻolaha

- Makemake wau e nīnau e pili ana i ka hoʻolaha. Ua hoʻohana nui ʻo Kolya a me ka hui i ka hoʻomaka ʻana e hoʻonohonoho i nā ʻōnaehana holoʻokoʻa e wehe ai nā mea āpau no mākou. E haʻi mai iaʻu, no ke aha ia mea?

Nikolay: Mai kahi ʻike loea, ua loaʻa iā mākou kahi koi no ka huahana e like me ka abstract e like me ka hiki mai kekahi mea kūʻai aku. E hele mai i AWS e hana i nā palapala Terraform mai AWS, a i ʻole mai Yandex, a i ʻole Azure, etc. ʻaʻole i kūpono. Pono mākou e neʻe i kahi i kekahi manawa.

No nā pule mua ʻekolu mākou e ʻimi mau nei i kahi ala e hana maikaʻi ai kēia. ʻO ka hopena, ua hiki mai mākou i ka hopena ʻo Kubernetes i kēia hihia ʻo kā mākou mea āpau, no ka mea e ʻae iā mākou e hana i nā lawelawe hoʻonui ʻana, auto-rollout, a loaʻa i nā lawelawe āpau mai ka pahu. Ma keʻano maʻamau, pono e aʻo ʻia nā lawelawe āpau e hana pū me Kubernetes, Docker, a pono pū ka hui.

Loaʻa iā mākou ʻelua hui. Ho'āʻo a hana. Ua like loa lākou ma ke ʻano o ka ʻenehana a me nā hoʻonohonoho. Hoʻokomo mākou i nā ʻōnaehana ma ke ʻano he code. Hoʻopili ʻia nā lawelawe āpau i ʻekolu kaiapuni mai nā lālā hiʻohiʻona, nā lālā kumu, nā lālā hoʻāʻo, a me GitLab me ka hoʻohana ʻana i kahi pipeline aunoa. Hoʻohui nui ʻia kēia i GitLab, hoʻohui nui ʻia me Elastic, Prometheus.

Loaʻa iā mākou ka manawa kūpono e wikiwiki (no ka hope i loko o 10 mau minuke, no ka frontend i loko o 5 mau minuke) e hoʻololi i nā hoʻololi i kēlā me kēia kaiapuni me nā hoʻokolohua āpau, hoʻohui, holo i nā hoʻokolohua hana, hoʻohui hoʻohui i ke kaiapuni, a hoʻāʻo pū me nā hoʻāʻo ukana ma kahi ʻano hoʻāʻo e like me ka mea a mākou e makemake ai e loaʻa i ka hana.

E pili ana i nā hoʻokolohua

— Hoʻāʻo ʻoe i nā mea āpau, paʻakikī ke manaʻoʻiʻo i kāu kākau ʻana i nā mea āpau. Hiki iā ʻoe ke haʻi iā mākou e pili ana i nā hoʻāʻo hope: pehea ka nui o nā mea āpau i uhi ʻia, he aha nā hoʻokolohua?

Vladimir: Ua kākau ʻia ʻelua ʻano hoʻokolohua. ʻO ka mua he mau hoʻāʻo ʻāpana. E hoʻokiʻekiʻe i ka pae hoʻāʻo o ka noi puna a pau a me ka hoʻokumu i loko Nā pahu hoʻāʻo. He ho'āʻo kēia o nā hiʻohiʻona ʻoihana kiʻekiʻe loa. ʻAʻole au e hoʻāʻo i nā hana. Hoʻāʻo wale mākou i kekahi mau mea nui. Eia kekahi laʻana, pono i ka ho'āʻo, ua hoʻohālikeʻia ke kaʻina hana o ke komoʻana i kahi mea hoʻohana, ke noi a kēia mea hoʻohana no nā tiketi i kahi e hiki ai iā ia ke hele, a me kahi noi no ke komoʻana e nānā i ke kahawai. Akaka loa nā hiʻohiʻona mea hoʻohana.

Hoʻokō ʻia ka mea like i ka mea i kapa ʻia nā hoʻokolohua hoʻohui, e holo maoli ana ma ke kaiapuni. ʻO ka ʻoiaʻiʻo, i ka wā e ʻōwili ʻia ai ka hoʻopuka hou ʻana i ka hana, ke holo nei nā hiʻohiʻona kumu maoli i ka hana. ʻO ka inoa like, ke noi ʻana i nā tiketi, ke noi ʻana i ke komo ʻana i CloudFront, e nānā ana e pili pono ana ke kahawai me kaʻu mau ʻae, e nānā ana i ka interface o ke alakaʻi.

I kēia manawa loaʻa iaʻu ma kahi o 70 mau hoʻāʻo ʻāpana a ma kahi o 40 mau hoʻokolohua hoʻohui ma luna o ka moku. Ua kokoke loa ka uhi i ka 95%. ʻO kēia no nā mea ʻāpana, liʻiliʻi no nā mea hoʻohui, ʻaʻole pono nui. Ke noʻonoʻo nei i ka pāhana e pili ana i nā ʻano hana code a pau, he hōʻailona maikaʻi loa kēia. ʻAʻohe ala ʻē aʻe e hana ai i kā mākou hana i loko o ʻekolu mahina. No ka mea, inā mākou e hoʻāʻo lima me ka hāʻawi ʻana i nā hiʻohiʻona i kā mākou mea hoʻāʻo, a e ʻike ʻo ia i nā pōpoki a hoʻihoʻi mai iā mākou no ka hoʻoponopono ʻana, a laila lōʻihi loa kēia huakaʻi kaʻapuni e debug i ke code, a ʻaʻole mākou e hālāwai i nā manawa pau.

Nikolay: Ma keʻano maʻamau, e hoʻokō i kahi regression ma ka paepae holoʻokoʻa i ka wā e hoʻololi ai i kekahi hana, pono ʻoe e noho a poke i nā wahi āpau no nā lā ʻelua.

Vladimir: No laila, he lanakila nui ia i koʻu manaʻo ʻana i kahi hiʻohiʻona, ʻōlelo wau he 4 mau lā no nā peni maʻalahi ʻelua a me 1 websocket, ʻae ʻo Kolya. Ua maʻa mua ʻo ia i ka ʻoiaʻiʻo o kēia mau lā 4 e komo i nā ʻano hoʻokolohua 2, a laila, ʻoi aku ka maikaʻi, e hana.

Nikolay: Loaʻa iaʻu nā hoʻokolohua 140 i kākau ʻia: ʻāpana + hana, e hana like ana. Hoʻāʻo ʻia nā hiʻohiʻona like a pau i ka hana ʻana, i ka hoʻāʻo, a me ka hana ʻana. Ua hoʻohui hou mākou i nā hoʻāʻo UI maʻamau. Ma kēia ala mākou e uhi ai i ka hana maʻamau i hiki ke hāʻule.

Vladimir: ʻOiaʻiʻo, pono e kamaʻilio e pili ana i nā hoʻokolohua hoʻouka. Pono e ho'āʻo i ka paepae ma lalo o kahi ukana kokoke i ka mea maoli i mea e hoʻomaopopo ai i ke ʻano o nā mea āpau, nā mea e hana nei me Rabbit, nā mea e hana nei me nā JVM, pehea ka nui o ka hoʻomanaʻo e pono ai.

— ʻAʻole maopopo iaʻu inā e hoʻāʻo nei mākou i kekahi mea ma ka ʻaoʻao kahawai, akā hoʻomanaʻo wau aia nā pilikia me nā transcoders i ka wā i hui ai mākou. Ua hoʻāʻo mākou i nā kahawai?

Artyom: Ua hoʻāʻo ʻia. Hoʻonohonoho i nā hālāwai. I ka hoʻonohonoho ʻana i nā hui, aia ma kahi o 2300 mau tiketi JIRA. He mau mea maʻamau wale nō kēia i hana ʻia e ka poʻe e hana i nā hui. Lawe mākou i nā ʻāpana o ka paepae ma kahi ʻaoʻao ʻokoʻa no nā hui, i mālama ʻia e Kirill Tolkachev (talkkv).

ʻO kaʻoiaʻiʻo, ʻaʻohe pilikia nui. ʻO kekahi mau manawa i loaʻa iā mākou ka hoʻopaʻa ʻana i nā pōpoki ma CloudFront, ua hoʻoponopono wikiwiki mākou - ua hoʻoponopono hou mākou i nā kulekele. Ua ʻoi aku ka nui o nā pōpoki i loko o nā kānaka, i nā ʻōnaehana streaming ma ka pūnaewele.

I ka wā o nā ʻaha kūkā, pono wau e kākau i kekahi mau mea kūʻai aku i mea e uhi ai i nā lako a me nā lawelawe. I kekahi mau wahi, pono iaʻu e hana i kaʻu mau paikikala ponoʻī no ka pono o nā ana. ʻAʻole maikaʻi loa ka honua o AV (leo-wikiō) - loaʻa iā ʻoe kekahi ʻano "API" o nā lako i hiki ʻole iā ʻoe ke hoʻohuli. A he mamao loa ia mai ka ʻoiaʻiʻo e hiki iā ʻoe ke kiʻi i ka ʻike āu e pono ai. He lohi loa nā mea kūʻai lako lako, a aneane hiki ʻole ke loaʻa ka mea āu e makemake ai mai iā lākou. Ma ka huina he 100 mau ʻāpana lako, ʻaʻole lākou e hoʻihoʻi i kāu mea e pono ai, a kākau ʻoe i nā mea kūʻai aku ʻē aʻe, mahalo i hiki iā ʻoe ke hoʻopau i ka ʻōnaehana.

Kākoʻo

- Ke hoʻomanaʻo nei au pehea ma mua o ka hoʻomaka ʻana o nā ʻaha kūkā, ua kūʻai mākou i nā mea hana hou.

Artyom: Ua kūʻai mākou i nā lolouila, laptops, a me nā ʻeke pākahi. I kēia manawa hiki iā mākou ke ola me ka ʻole o ka uila no 40 mau minuke. I ka mahina o Iune, ua nui ka hekili ma St. Petersburg - no laila ua ʻeleʻele mākou. I ka manawa like, hele mai nā mea hoʻolako iā mākou me nā loulou optical mai nā wahi like ʻole. He 40 mau minuke kēia o ke kūkulu ʻana i ka wā haʻahaʻa, kahi e loaʻa ai nā kukui, kani, nā kamera, a me nā mea ʻē aʻe.

— He moʻolelo like kā mākou me ka Pūnaewele. I loko o ke keʻena kahi i loaʻa ai kā mākou mau studio, ua huki mākou i kahi ʻupena ʻino ma waena o nā papahele.

Artyom: Loaʻa iā mākou he 20 Gbit fiber ma waena o nā papahele. Ma kahi o ka papahele, aia ma kahi optics, ma kahi ʻaʻohe optics, akā naʻe he liʻiliʻi nā kahawai ma mua o nā gigabit - holo mākou i ke wikiō ma waena o nā ala o ka hālāwai kūkā. Ma keʻano laulā, maʻalahi ka hana ʻana ma kāu ʻoihana ponoʻī; hiki ʻole iā ʻoe ke hana i kēia ma nā hālāwai kūkā ma nā pūnaewele.

— Ma mua o koʻu hana ʻana ma ka hui ʻo JUG Ru, ʻike wau i ka hoʻonohonoho ʻana o nā lumi lako ma nā ʻaha kūkā offline i ka pō, aia kahi mākaʻikaʻi nui me nā metric āpau āu e kūkulu ai ma Grafana. I kēia manawa aia kekahi lumi keʻena nui kahi e noho ai ka hui hoʻomohala, kahi i ka wā o ka ʻaha kūkā e hoʻoponopono ai i kekahi mau pōpoki a hoʻomohala i nā hiʻohiʻona. I ka manawa like, aia kahi ʻōnaehana nānā i hōʻike ʻia ma kahi pale nui. Noho ʻo Artyom, Kolya a me nā kāne ʻē aʻe a hōʻoia i ka hāʻule ʻole a hana maikaʻi.

ʻO ka ʻike a me nā pilikia

— Ua ʻōlelo maikaʻi ʻoe e pili ana i ka ʻoiaʻiʻo e kahe ana mākou me Amazon, aia kahi mea pāʻani me ka pūnaewele, ua kākau ʻia nā mea āpau ma nā ʻōlelo papahana like ʻole, hāʻawi ʻia ka hoʻomanawanui hewa a me nā koi ʻoihana ʻē aʻe, me kahi moʻokāki pilikino i kākoʻo ʻia no nā hui kānāwai a kanaka, a hiki iā mākou ke hoʻohui pū me kekahi me ka hoʻohana ʻana iā OAuth 2.0, aia kahi anti-fraud, mea hoʻohana i ka pale ʻana. Hiki iā mākou ke hoʻololi i nā loli no ka mea ua hana maikaʻi mākou, a ua hoʻāʻo ʻia.

Makemake au e ʻike i nā mea ʻino i pili i ka hoʻomaka ʻana i kahi mea. Ua loaʻa kekahi mau ʻano ʻano ʻē aʻe i ka wā e hoʻomohala ai ʻoe i kahi backend, frontend, kahi mea pupule i huli ʻia a ʻaʻole maopopo ʻoe i ka mea e hana ai me ia?

Vladimir: Me he mea lā ua hana ʻia kēia i nā mahina ʻekolu i hala iho nei. Nā lā āpau. E like me kāu e ʻike ai, ua huki ʻia koʻu lauoho a pau.

E hoʻomohala i kahi kahua wikiō i nā lā 90
ʻO Vladimir Krasilshchik ma hope o 3 mau mahina, i ka wā i puka ai kekahi ʻano pāʻani a ʻaʻohe mea i maopopo i ka mea e hana ai me ia.

I kēlā me kēia lā aia kekahi mea e like me kēia, i ka wā e lawe ai ʻoe a haehae i kou lauoho, a ʻike paha ʻaʻohe mea ʻē aʻe, a ʻo ʻoe wale nō ke hana. ʻO kā mākou hanana nui mua ʻo TechTrain. Ma ka lā 6 o Iune i ka hola 2 a.m. ʻaʻole mākou i ʻōwili i ke kaiapuni hana, ua ʻōwili ʻia ʻo Kolya. A ʻaʻole i hana ka moʻokāki pilikino ma ke ʻano he kikowaena mana e hoʻohana ana iā OAuth2.0. Ua hoʻololi mākou iā ia i mea hoʻolako OAuth2.0 e hoʻopili i ka paepae iā ia. Ua hana au no 18 mau hola pololei, nānā au i ke kamepiula a ʻaʻole ʻike i kekahi mea, ʻaʻole maopopo iaʻu ke kumu o ka hana ʻole ʻana, a nānā ʻo Kolya i kaʻu code ma kahi mamao, ʻimi i kahi bug i ka hoʻonohonoho Spring. , loaʻa, a hana ka LC, a ma ka hana pū kekahi.

Nikolay: A hoʻokahi hola ma mua o TechTrain ua hoʻokuʻu ʻia.

Nui nā hōkū i hoʻonohonoho ʻia ma ʻaneʻi. Laki loa mākou no ka mea he hui nui kā mākou, a ua hoʻoikaika ʻia nā mea a pau e ka manaʻo e hana ma ka pūnaewele. ʻO kēia mau mahina ʻekolu ua alakaʻi ʻia mākou e ka ʻoiaʻiʻo ua "hana mākou i YouTube." ʻAʻole au iʻae iaʻu iho e haehae i koʻu lauoho, akā ua haʻi aku i nā mea a pau e hana nā mea a pau, no ka mea,ʻoiaʻiʻo, ua heluʻia nā mea a pau i ka wā ma mua.

E pili ana i ka hana

— Hiki iā ʻoe ke haʻi mai iaʻu i ka nui o ka poʻe ma ka pūnaewele ma ke ala hoʻokahi? Ua pilikia paha ka hana?

Nikolay: ʻAʻohe pilikia o ka hana, e like me kā mākou i ʻōlelo ai. ʻO ka nui o ka poʻe i hele i hoʻokahi hōʻike he 1300 poʻe, aia ma Heisenbug.

— Aia kekahi pilikia me ka nānā ʻana i ka ʻāina? A hiki ke loaʻa kahi wehewehe ʻenehana me nā kiʻi o ke ʻano o ka hana ʻana?

Nikolay: E hana mākou i ʻatikala e pili ana i kēia ma hope.

Hiki iā ʻoe ke debug i nā kahawai kūloko. I ka hoʻomaka ʻana o nā ʻaha kūkā, ua maʻalahi ia, no ka mea, ua ʻike ʻia nā kahawai hana e hiki iā mākou ke nānā i nā manawa āpau.

Vladimir: E like me kaʻu i hoʻomaopopo ai, hana nā mea hoʻomohala mua i ka ʻāina me ka hoʻomāʻewaʻewa, a laila, ʻoiai ʻo ka manawa e ʻōwili ai i nā devs i mua he pōkole (5 mau minuke), ʻaʻohe pilikia me ka nānā ʻana i nā mea e hana nei me nā palapala hōʻoia.

- Hoʻāʻo ʻia nā mea āpau a hoʻopau ʻia, ʻoiai ma ka ʻāina. ʻO ke ʻano kēia e kākau mākou i kahi ʻatikala me nā hiʻohiʻona ʻenehana āpau, e hōʻike iā ʻoe, e haʻi iā ʻoe i nā mea āpau me nā kiʻi, pehea ia.

Vladimir: Hiki iā ʻoe ke lawe a hana hou.

- I loko o 3 mahina.

ʻO ka hopena

— ʻO nā mea a pau i wehewehe pū ʻia he kani maikaʻi, me ka noʻonoʻo ʻana ua hana ʻia e kahi hui liʻiliʻi i loko o ʻekolu mahina.

Nikolay: ʻAʻole hiki i kahi hui nui ke hana i kēia. Akā, hiki i kahi hui liʻiliʻi o ka poʻe e kamaʻilio kokoke a maikaʻi kekahi i kekahi a hiki ke hana i kahi kuʻikahi. ʻAʻohe o lākou kūʻē, ua hana ʻia ka hale hana i nā lā ʻelua, ua hoʻopau ʻia a ʻaʻole i loli maoli. Loaʻa ka hoʻomaʻamaʻa koʻikoʻi o nā koi ʻoihana e hiki mai ana e pili ana i ka hōʻiliʻili ʻana i nā noi hiʻohiʻona a me nā loli.

— He aha kāu papa inoa o nā hana hou aʻe i ka wā i hoʻokō ʻia ai nā hālāwai kauwela?

Nikolay: No ka laʻana, hōʻaiʻē. Nā laina kolo ma ke wikiō, nā pop-ups ma kekahi mau wahi o ke wikiō e pili ana i ka ʻike i hōʻike ʻia. No ka laʻana, makemake ka mea haʻiʻōlelo e nīnau i ka lehulehu, a puka mai kahi koho balota ma ka pale, e hoʻi i hope ma muli o nā hopena koho i ka mea haʻiʻōlelo ponoʻī. ʻO kekahi ʻano hana kaiapili ma ke ʻano o nā makemake, nā puʻuwai, nā helu o ka hōʻike i ka wā o ka hōʻike ponoʻī, i hiki iā ʻoe ke hoʻopiha i nā manaʻo i ka manawa kūpono me ka hoʻohuli ʻole ʻia e nā palapala manaʻo. I ka wā mua e like me kēia.

A hoʻohui pū i ka paepae holoʻokoʻa, koe wale no ka streaming a me ka hālāwai kūkā, kahi mokuʻāina ma hope o ka hālāwai kūkā. ʻO kēia nā papa inoa (me nā mea i hōʻuluʻulu ʻia e nā mea hoʻohana), malia paha nā ʻike mai nā hālāwai kūkā i hala, hoʻohui ʻia, hōʻailona ʻia, hiki i ka mea hoʻohana, a loaʻa nō hoʻi no ka nānā ʻana ma kā mākou pūnaewele (live.jugru.org).

— E nā kāne, mahalo nui iā ʻoukou no kāu mau pane!

Inā i waena o ka poʻe heluhelu aia kekahi poʻe i hele i kā mākou mau hālāwai kauwela, e ʻoluʻolu e kaʻana like i kāu mau manaʻo o ka mea pāʻani a hoʻolaha. He aha ka mea maʻalahi, he aha ka mea i hoʻonāukiuki iā ʻoe, he aha kāu makemake e ʻike i ka wā e hiki mai ana?

Inā makemake ʻoe i ka paepae a makemake ʻoe e ʻike iā ia "i ke kaua", hoʻohana hou mākou iā ia ma kā mākou nā hālāwai hāʻule-hoʻoilo. Loaʻa ka laulā holoʻokoʻa o ia mau mea, no laila aia kahi mea kūpono iā ʻoe.

Source: www.habr.com

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