Ua kaulana ʻo Snapchat ma waena o nā ʻōpio a me nā ʻōpio. Aia paha ʻoe ma luna o 25 inā ʻaʻole hiki iā ʻoe ke ʻike pehea e hana ai. Hāʻawi ʻo Snapchat, kekahi o nā noi pūnaewele media kaulana loa, i nā keiki a me nā ʻōpio i ka mea a lākou e makemake ai: kahi ala maʻalahi e kaʻana like i nā hanana maʻamau a ʻo ka hoʻomaʻamaʻa ʻana iā lākou.
ʻAʻole like me Facebook a me Twitter, nāna e hoʻopaʻa a hoʻolaha i nā mea a pau āu e hana ai, hoʻohana ʻo Snapchat i nā memo i manaʻo ʻia e nalowale (e ʻike pehea ʻaʻole lākou).
Nui nā mea e pili ana iā Snapchat, a inā he mea hoʻomohala ʻoe, ʻoi aku ka nui. No laila, e hāʻawi kēia pou iā ʻoe i kahi ʻike kiʻekiʻe o Snapchat hoʻolālā ʻōnaehana a me nā ʻike hou aku.
Introduction
ʻO Snapchat kahi ʻAmelika nohona kūkākūkā app e hiki ai i nā mea hoʻohana ke hoʻopili koke, kaʻana like i nā kiʻi, a me nā mea hou aku.
- ʻO nā memo a me nā kiʻi (a i ʻole nā paʻi) he 24-hola ka palena manawa. Paipai i nā kānaka e kaʻana like i kā lākou mau moʻolelo ma nā hui.
- Hiki iā Snap Map ke ʻike i nā mea hoʻohana ma ka palapala ʻāina i kahi o kā lākou mau hoaaloha.
- Hoʻomanaʻo nā hoʻomanaʻo i nā mea hoʻohana i nā kiʻi a lākou i mālama ai a kaʻana like paha i hoʻokahi makahiki ma hope.
- Ua kaulana loa ʻo Snapchat i nā hanauna ʻōpio, ʻoi aku ka ʻōpio. Aia he 319 miliona mau mea hoʻohana ikaika ma ka app, a he 5.4 biliona paʻi i hoʻouna ʻia i kēlā me kēia lā.
ʻŌlelo Hoʻolālā Nui
Hoʻolālā Monolithic - ʻO kahi noi hoʻokahi papa e hana kūʻokoʻa i nā noi ʻē aʻe i ʻike ʻia he monolith (monolithic architecture). Hoʻolālā ʻia kahi monolith e hana a mālama i nā hana āpau e pono ai e hoʻopau i kahi hana. Hana ka palapala noi i nā hana a pau mai ka hoʻomaka a i ka hopena.
Nā Microservices – He polar e kū pono ana i nā monoliths. Nā Microservices he hana hoʻolālā e hoʻonohonoho i kahi noi ma ke ʻano he hōʻiliʻili o nā lawelawe. Hoʻohana ʻia kēia mau lawelawe e hoʻomalu i nā ʻano he nui o kahi noi. Hoʻouna ka mea kūʻai i kahi kauoha, lawe ka mea lawelawe a hāʻawi iā ia, a hoʻomākaukau ka mea kuke. Ma kēia laʻana, hana kaʻawale kēlā me kēia ʻāpana mai nā mea ʻē aʻe; ʻaʻohe mea i ʻike pono i ka hana a nā poʻe ʻē aʻe, a ʻaʻohe mea i loaʻa i ka ʻike like.
JSON: He ʻano kikokikona i hiki ke hoʻohana ʻia e hōʻike i nā mea JavaScript, literals, arrays, a me ka ʻikepili. ʻO kēia ʻano kikokikona i manaʻo ʻia e maʻalahi i ka heluhelu a me ke kākau ʻana, me ka maʻalahi hoʻi e ka polokalamu. Hoʻohana pinepine ʻia ʻo JSON e hoʻoili i ka ʻikepili a me ka ʻike ma waena o nā kikowaena a me nā noi pūnaewele.
Orchestration: Ua ʻike ʻia ke ʻano o ka hoʻomaʻamaʻa ʻana i nā hana he nui he orchestration. Aia kēia mau hana i ka ʻōnaehana kamepiula a me ka hoʻonohonoho polokalamu, hoʻonohonoho, a me ka hoʻokele.
hope: Ke hana nei kahi mea koho ma ke ʻano he mea hele ma waena o ka mea kūʻai aku e ʻimi ana i kahi kumuwaiwai a me ke kikowaena nāna e hāʻawi.
hei: ʻO ka mesh lawelawe he kumu hoʻolālā polokalamu e hoʻohui i kahi papa i kahi papa hana e ʻae i ke kamaʻilio hoʻoponopono ʻia, ʻike ʻia, a paʻa hoʻi ma waena o nā lawelawe ma o ka proxy.
Hoʻolālā Kiʻekiʻe
Nā pilikia monolithic
Hoʻokumu ʻia ʻo Snapchat ma ke ʻano he monolith i hoʻokumu ʻia ma luna o ka Google App Engine. Eia naʻe, i ka ulu ʻana o ka papahana i ka kaulana a loaʻa i nā mea hoʻohana a me nā ʻikepili, ua lilo ka scalability i mea pilikia.
Eia kekahi, me ka radius pahū nui i loko o ka monolith, hiki ke hoʻopilikia ʻia ka ʻōnaehana ākea. ʻO kekahi o nā pilikia o Snapchat i wehewehe ʻia he "pōʻino o ka lehulehu," kahi i hoʻokūkū ai nā hiʻohiʻona no ka loaʻa ʻana o nā kumuwaiwai; E hoʻouka ana nā hiʻohiʻona i ka manawa hoʻomaka o ka app, e ʻae ana i kekahi mau hiʻohiʻona e hoʻouka wikiwiki a ʻoi aku ka lohi o nā mea ʻē aʻe.
Ua ʻimi pū nā ʻenekinia i ka ʻike maopopo, ka hoʻokaʻawale ʻana, a me ke kuleana o kā lākou mau ʻāpana mai kahi hiʻohiʻona hoʻomohala, i hiki ai i ka lawelawe ke maʻalahi a maikaʻi.
loli
I ka hoʻonui ʻia ʻana o Snapchat, ʻike ka paʻa he pono e wāwahi i kāna ʻoihana monolithic i nā ʻāpana liʻiliʻi a ʻoi aku ka maikaʻi. I mea e hoʻemi ai i ka latency, ua hoʻoholo ka hui e hoʻomohala i kahi hoʻolālā microservices.
No ka hoʻokō ʻana i kēlā mau pahuhopu, ua koho ʻo Snapchat e hōʻano hou i kāna polokalamu me ka hoʻohana ʻana iā Amazon DynamoDB, kahi lawelawe ʻikepili NoSQL scalable. Ua hiki i ka paʻa ke hōʻemi i ka latency median e 20% ma muli o kāna mau hoʻoikaika ʻana.
Ua kākau hou ʻia ka app i nā noi liʻiliʻi he nui e ka hui. Hoʻomaka ʻo Snapchat me nā noi he nui, me kahi kamera, kamaʻilio, hoʻomanaʻo, hoʻoponopono kiʻi, hoʻohana ʻike, a me kahi palapala ʻāina. ʻOiai ʻo ka hoʻohui ʻana i kēia mau papahana i kahi monolith hoʻokahi he mea maʻalahi ia no nā mea kūʻai aku, ua loaʻa i kahi pilikia ʻenehana koʻikoʻi e pili ana i ka mālama ʻana i ka hana maikaʻi.
No ke kākau hou ʻana, ua hoʻokumu ka ʻoihana i nā lula kumu. Mai hoʻouka mua; pono kēlā me kēia hiʻohiʻona i kāna polokalamu ponoʻī, a pono e wikiwiki. Hoʻopau ʻo Snapchat i nā hoʻololi ʻana ma nā wahi he nui e hiki ai ke kākau hou ʻana, e lilo ana ia i hana ʻenehana.
Hoʻohui hou i nā hiʻohiʻona
Aia nā lens, kānana, bitmojis, a me ka hiki ke hoʻohui i nā animation hoʻonui ʻia ʻo Snapchat, ma waena o nā mea ʻē aʻe. Hāʻawi ka polokalamu kamaʻilio Snapchat i nā mea hoʻohana e mālama i nā kiʻi, mālama i nā kamaʻilio, hoʻohui i nā emoticon, a me nā mea hou aku.
ʻO ka palapala ʻāina ʻo Snapchat, ma waena o nā mea ʻē aʻe, hiki iā ʻoe ke nānā i nā hoaaloha inā makemake lākou iā ʻoe. ʻO nā hoʻomanaʻo, hoʻoponopono kiʻi, a me ka hoʻohana ʻana i ka ʻike he mau polokalamu Snapchat kaʻawale me ko lākou mau mana kūʻokoʻa.
ʻAe nā hoʻomanaʻo iā ʻoe e mālama a hoʻololi i nā kiʻi a i ʻole nā wikiō no ka hoʻohana ʻana ma hope, a me ka hoʻouka ʻana a hoʻouna ʻana iā lākou. Hiki i nā mea hoʻohana ke hoʻohana i ka hoʻoponopono kiʻi e ʻoki i nā kiʻiʻoniʻoni, hoʻohui i nā kikokikona, hoʻohui i nā mea hoʻopili, a me nā mea hou aku.
ʻO ka hoʻohana ʻana i waho o Snapchat e pili ana i ka mea e hōʻike ai i nā mea hoʻohana e pili ana i kahi ʻano o nā ʻāpana.
Nā Microservices
Ua hilinaʻi nui ka papahana iā JSON e hana i nā nīnau pūnaewele i kēlā manawa. Eia nō naʻe, ʻo ka parsing JSON he manawa hoʻopau a ʻaʻole pono. Ua hoʻohana ʻo Snapchat i kahi API hoʻokele kikowaena kikowaena e uhi i ka hoʻohana ʻana o JSON ma ke ʻano he kikoʻī hoʻokō e hoʻoponopono i kēia pilikia.
Hoʻopuka nā Microservices i nā pilikia o ka hoʻokele mokuʻāina noi, kamaʻilio lawelawe, a me ka hoʻokele hemahema. Ua hoʻohana ʻo Snapchat i nā ʻenehana open-source e like me Temporal e lanakila ai i nā pilikia orchestration i mea e kūkulu ai i kahi ʻōnaehana ikaika a hilinaʻi.
ʻO ka hopena, ua hoʻoholo ka hui e hoʻohana i kahi ʻano hoʻolālā mesh lawelawe. Ua hoʻohana ʻo Snapchat iā Envoy, kahi mea hana open-source e hana ma ke ʻano he koho, e hoʻokō i kēia ʻano. Ua mālama ʻo Envoy i ka holo ʻana o nā lawelawe lawelawe ma o ka ʻoihana, e hāʻawi ana i nā mea hoʻomohala i ka ʻike i nā pilikia pilikia.
Ua hana ʻo Snapchat i kahi polokalamu kūloko i kapa ʻia ʻo Switchboard i loko o ka mesh lawelawe. Ua lawelawe ʻo Switchboard ma ke ʻano he papa hoʻomalu no nā lawelawe a Snap, e ʻae i nā mea hoʻohana e hoʻololi i ke kaʻa, hoʻokele i nā hilinaʻi lawelawe (kahi hiʻohiʻona e hiki ai ke hoʻokele ʻia kahi lawelawe ma muli o ke kūlana o nā mea ʻē aʻe), a me nā wahi hoʻokahe.
No ka maʻalahi o ka paʻakikī o nā hoʻonohonoho kūpono i loko o nā lawelawe, ua hoʻohana ʻia ʻo Switchboard ma kahi o ka wehe ʻana i ka API Envoy holoʻokoʻa. Loaʻa iā Snap kahi pūnaewele kūloko a me ka ʻāpana no kāna microservices mahalo i ka mesh lawelawe.
Hiki i nā lawelawe i loko o ka ʻāina like ke hoʻopili kekahi i kekahi me ka hoʻohana ʻole ʻana i ka Pūnaewele lehulehu, a ʻaʻole hiki ke kamaʻilio me nā ʻāpana pūnaewele o waho.
ʻO nā Gateways wale nō e ʻae ʻia e hōʻike iā lākou iho i ka pūnaewele no nā kumu palekana. ʻO nā ʻīpuka API, no ka laʻana, hiki ke maʻalahi ma ke ʻano he mau puka mua, ka hoʻoponopono ʻana i nā noi mai nā mea kūʻai aku/mea hoʻohana a me ka hoʻokele ʻana iā lākou me ka pūnaewele.
Pūnaehana a me ka puka API
Loaʻa nā nīnau a pau mai ka mea kūʻai mai Snapchat ma o ka API Gateway. Hoʻohana ʻo ia i ke kiʻi Envoy like a pili i ka Plane Control like me kā mākou microservices kūloko. Hāʻawi kā mākou Plane Control iā mākou e hiki ai i nā kānana Envoy maʻamau.
Hoʻohana ʻia nā ʻōnaehana hōʻoia o Snapchat, a me kā mākou ʻenehana palena palena a me ka hoʻokahe ukana, e kēia mau kānana. Hoʻohana ʻo Envoy i ka Service Mesh e hoʻokele i nā noi i ka microservice kūpono ma hope o ka pau ʻana o ke kaulahao kānana.
Panina
ʻO ka ʻīpuka API o Snapchat ke ala i nā kaʻa waho i nā hana he nui o ka app. ʻO nā noi a nā mea hoʻohana e hoʻololi i nā mokuʻāina hoʻonohonoho e mālama ʻia e nā kikowaena, a laila hāʻawi i ka ʻikepili a me ka ʻike e hoʻi i nā lawelawe he nui o ka app.
Ma ke ʻano holoʻokoʻa, hiki ke hoʻohālikelike ʻia ka hoʻolālā o Snapchat i kēia manawa me kekahi mau papahana e holo ana ma ka ʻōnaehana hana hoʻokahi, ʻo ia ka Snapchat app. Ua ho'āʻo nui wau e hāʻawi iā ʻoe i kahi hiʻohiʻona kiʻekiʻe o ka hoʻolālā ʻōnaehana Snapchat. Manaʻo wau ua loaʻa iā ʻoe he mea pono.
Waiho i ka Reply