ʻ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.
ʻ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.
- 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
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ā:
Ka laʻana o kahi hoʻolālā no 4 mau mea ʻōlelo
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
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
- 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ā.
ʻO ka mea nui, ʻo kēia kahi ʻōwili a puni ka waihona
ʻ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.
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.
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
- 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
Mālama ʻia ka ʻike like i loko
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
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 (
ʻ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.
ʻ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 (
— 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
Source: www.habr.com