Snapchat yog qhov paub zoo ntawm cov tweens thiab cov hluas. Tej zaum koj yuav siab dua 25 yog tias koj tsis paub tias nws ua haujlwm li cas. Snapchat, yog ib daim ntawv thov kev sib raug zoo tshaj plaws, muab cov menyuam yaus thiab cov tub ntxhais hluas raws nraim qhov lawv xav tau: ib txoj hauv kev yooj yim los qhia cov xwm txheej tshwm sim thaum tseem ua rau lawv zoo li txias.
Tsis zoo li Facebook thiab Twitter, uas sau thiab tshaj tawm txhua yam koj ua, Snapchat ntiav cov lus uas yuav tsum ploj mus (saib yuav ua li cas lawv tsis ua).
Muaj ntau ntau txog Snapchat, thiab yog tias koj yog tus tsim tawm nws tseem ntau dua. Yog li, cov ntawv tshaj tawm no yuav muab rau koj saib qib siab ntawm Snapchat kev tsim qauv thiab ntau ntxiv kev nkag siab.
Introduction
Snapchat yog US-based social networking app uas cia cov neeg siv txuas tam sim ntawd, sib qhia cov duab, thiab ntau dua.
- Cov lus thiab cov duab (lossis snaps) muaj lub sijhawm 24-teev txwv. Txhawb kom tib neeg qhia lawv cov dab neeg hauv pab pawg.
- Snap Map tso cai rau cov neeg siv pom ntawm daim duab qhia chaw uas lawv cov phooj ywg nyob.
- Nco nco cov neeg siv cov duab uas lawv tau khaws tseg lossis sib koom ib xyoos tom qab.
- Snapchat yog qhov nrov heev nrog cov tub ntxhais hluas, tshwj xeeb tshaj yog cov hluas. Muaj 319 lab cov neeg siv nquag ntawm lub app, thiab 5.4 billion snaps raug xa tawm txhua hnub.
Cov ntsiab lus tseem ceeb tsim
Monolithic Architecture - Daim ntawv thov ib-qib uas ua haujlwm ntawm nws tus kheej ntawm lwm cov ntawv thov hu ua monolith (monolithic architecture). Lub monolith yog tsim los ua thiab ua txhua yam haujlwm uas yuav tsum tau ua kom tiav ib txoj haujlwm. Daim ntawv thov ua txhua yam haujlwm txij thaum pib mus txog thaum xaus.
Microservices - Nws polar opposite ntawm monoliths. Microservices yog ib txoj hauv kev tsim vaj tsev uas npaj ib daim ntawv thov raws li kev sau cov kev pabcuam. Cov kev pabcuam no yog siv los tswj ntau yam ntawm daim ntawv thov. Tus neeg siv khoom muab qhov kev txiav txim, tus neeg tos txais yuav thiab xa nws, thiab tus kws ua zaub mov npaj nws. Hauv qhov piv txwv no, txhua yam khoom siv ua haujlwm ntawm nws tus kheej thiab sib cais los ntawm lwm tus; tsis muaj leej twg paub qhov tseeb ntawm lwm tus ua, thiab tsis muaj leej twg nkag tau rau tib cov ntaub ntawv.
JSON: Nws yog ib hom ntawv nyeem uas tuaj yeem siv los tso saib JavaScript cov khoom, cov ntawv sau, arrays, thiab cov ntaub ntawv. Hom ntawv nyeem no yog tsim los ua kom yooj yim rau kev nyeem thiab sau ntawv, nrog rau kev zom zaub mov los ntawm software. JSON feem ntau yog siv los hloov cov ntaub ntawv thiab cov ntaub ntawv ntawm cov servers thiab cov ntawv thov online.
Orchestration: Cov txheej txheem ntawm automating ntau txoj haujlwm yog hu ua orchestration. Cov haujlwm no suav nrog kev siv computer thiab software teeb tsa, kev sib koom tes, thiab kev tswj hwm.
tso cai: Tus neeg sawv cev ua haujlwm raws li kev sib txuas ntawm tus neeg siv khoom nrhiav cov peev txheej thiab cov neeg rau zaub mov uas muab rau nws.
ntxaij: Ib qho kev pabcuam mesh yog software architecture qauv uas ntxiv txheej txheej rau txheej txheej txheej txheej kom tso cai rau kev tswj hwm, saib xyuas, thiab kev sib txuas lus ruaj ntseg ntawm cov kev pabcuam los ntawm lub npe.
High-Level Tsim
Teeb meem Monolithic
Snapchat originated raws li huab-based monolith raws li Google App Engine. Txawm li cas los xij, raws li qhov kev zov me nyuam loj hlob hauv kev muaj koob meej thiab tau txais ntau tus neeg siv thiab cov ntaub ntawv, scalability tau dhau los ua qhov teeb meem.
Tsis tas li ntawd, nrog lub vojvoog tawg loj hauv lub monolith, qhov kev cuam tshuam thoob plaws hauv lub cev tau ua tau ntau dua. Ib qho ntawm Snapchat cov teeb meem tau txhais tias yog "kev txom nyem ntawm cov neeg sib tw," uas cov yam ntxwv sib tw rau kev nkag mus rau cov peev txheej; nta tau thauj khoom ntawm lub sijhawm tso tawm app, tso cai rau qee yam nta kom thauj tau sai dua tab sis lwm tus kom thauj khoom qeeb dua.
Cov kws tshaj lij kuj tau nrhiav kev pom meej meej, kev sib cais, thiab kev ua tswv cuab ntawm lawv cov khoom los ntawm txoj kev loj hlob, kom cov kev pabcuam tuaj yeem hloov pauv thiab ua haujlwm tau zoo.
transformation
Raws li Snapchat nthuav dav, lub tuam txhab pom tau tias nws yuav tsum tau rhuav tshem nws cov txheej txheem monolithic rau hauv me me, ua haujlwm tau zoo dua. Txhawm rau kom txo qis latency, lub koom haum txiav txim siab los tsim ib qho kev tsim microservices.
Txhawm rau ua tiav cov hom phiaj no, Snapchat tau xaiv los hloov kho nws cov software siv Amazon DynamoDB, qhov kev pabcuam NoSQL scalable. Lub tuam txhab muaj peev xwm txo qis nruab nrab latency los ntawm 20% raws li nws cov kev siv zog.
Lub app tau rov sau rau hauv ntau daim ntawv thov me me los ntawm lub tuam txhab. Snapchat pib nrog ntau daim ntawv thov, suav nrog lub koob yees duab, sib tham, nco, kho duab, cov ntsiab lus noj, thiab daim ntawv qhia. Txawm hais tias kev koom ua ke cov kev pabcuam no rau hauv ib qho monolith yooj yim rau cov neeg siv khoom, nws ua rau muaj teeb meem loj heev ntawm kev tswj xyuas kev ua haujlwm zoo.
Rau kev sau dua tshiab, lub tuam txhab tau tsim ntau txoj cai hauv av. Tsis txhob preload; txhua qhov tshwj xeeb yuav tsum yog nws tus kheej app, thiab nws yuav tsum ceev. Snapchat tau tso tseg kev hloov kho hauv ntau qhov chaw los pab kom rov sau dua, ua rau nws nruj me ntsis ua haujlwm.
Ntxiv nta kev koom ua ke
Snapchat lub koob yees duab app muaj lo ntsiab muag, cov ntxaij lim dej, bitmojis, thiab muaj peev xwm ntxiv augmented reality animations, thiab lwm yam. Snapchat's chat app kuj tso cai rau cov neeg siv khaws cov duab, txuag kev sib tham, ntxiv emoticons, thiab ntau dua.
Snapchat daim ntawv qhia, ntawm lwm yam, tso cai rau koj los saib xyuas cov phooj ywg yog lawv xav kom koj. Nco, kev kho duab, thiab cov ntsiab lus noj yog txhua yam cais Snapchat apps nrog lawv lub peev xwm tshwj xeeb.
Kev nco tso cai rau koj khaws lossis hloov kho cov duab lossis yeeb yaj kiab rau kev siv tom qab, nrog rau upload lossis xa lawv. Cov neeg siv kuj tuaj yeem siv cov duab kho kom raug txiav cov yeeb yaj kiab, ntxiv cov ntawv, ntxiv cov ntawv nplaum, thiab lwm yam.
Snapchat cov ntsiab lus sab nraud noj yog hais txog qhov nws qhia cov neeg siv raws li ntau yam ntawm cov tsis.
Microservices
Qhov kev zov me nyuam tau nyob ntawm JSON los ua cov lus nug hauv network thaum lub sijhawm. Txawm li cas los xij, kev txheeb xyuas JSON tau siv sijhawm ntev thiab tsis muaj txiaj ntsig. Snapchat siv lub hauv paus kev tswj hwm network API los npog qhov kev siv JSON raws li kev nthuav dav siv los daws qhov teeb meem no.
Microservices qhia txog cov teeb meem ntawm daim ntawv thov kev tswj hwm lub xeev, kev sib txuas lus kev pabcuam, thiab kev tswj tsis tau. Snapchat siv cov thev naus laus zis qhib xws li Temporal los kov yeej cov teeb meem kev teeb tsa txhawm rau tsim kom muaj lub zog muaj zog thiab vam khom.
Yog li ntawd, lub koom haum txiav txim siab siv cov kev pabcuam mesh tsim qauv. Snapchat siv Envoy, lwm lub cuab yeej qhib uas ua raws li tus neeg sawv cev, kom ua tiav cov qauv no. Tus neeg sawv cev tswj hwm kev khiav ntawm kev pabcuam kev khiav tsheb los ntawm kev tsim kho vaj tse, muab cov neeg tsim khoom pom kev rau cov teeb meem nyuaj.
Snapchat tsim ib qho app sab hauv hu ua Switchboard nyob rau hauv cov kev pabcuam mesh. Switchboard tau txais kev pabcuam raws li kev tswj hwm rau Snap cov kev pabcuam, tso cai rau cov neeg siv hloov tsheb, tswj cov kev pabcuam kev vam meej (ib yam uas tso cai rau ib qho kev pabcuam los tswj hwm nyob ntawm lwm tus), thiab ntws cov cheeb tsam.
Txhawm rau ua kom yooj yim qhov nyuaj ntawm kev teeb tsa muaj peev xwm hauv cov kev pabcuam, Switchboard tau siv tsis yog nthuav tawm tag nrho Envoy API. Snap muaj ib qho kev sib koom ua ke hauv cheeb tsam thiab hauv cheeb tsam rau nws cov microservices ua tsaug rau cov kev pabcuam mesh.
Cov kev pabcuam hauv tib cheeb tsam tuaj yeem txuas nrog ib leeg yam tsis siv pej xeem Is Taws Nem, thiab tsis muaj kev sib txuas lus sab nraud tuaj yeem sib txuas lus nrog cov khoom hauv network.
Tsuas yog Gateways yuav raug tso cai los nthuav tawm lawv tus kheej hauv internet rau kev nyab xeeb. API gateways, piv txwv li, tuaj yeem yooj yim ua lub qhov rooj, ua kev thov los ntawm cov neeg siv khoom / cov neeg siv thiab xa lawv nrog rau lub network.
Network & API Gateway
Txhua cov lus nug los ntawm Snapchat tus neeg siv khoom los ntawm API Gateway. Nws siv tib daim duab Envoy thiab txuas mus rau tib lub Dav Hlau Tswjhwm raws li peb cov microservices sab hauv. Peb Lub Tuam Txhab Tswjhwm tso cai rau peb ua kom muaj kev cai Envoy lim.
Snapchat's authentication systems, nrog rau peb tus nqi txwv thiab thauj cov thev naus laus zis, tau ua haujlwm los ntawm cov lim dej no. Envoy siv Cov Kev Pabcuam Mesh txhawm rau xa cov lus thov mus rau microservice cuam tshuam tom qab cov saw hlau ua tiav.
xaus
Snapchat's API qhov rooj nkag mus rau sab nraud rau lub app ntau yam haujlwm. Cov neeg siv cov lus thov los hloov kho configuration xeev yog tswj los ntawm servers, uas tom qab ntawd muab cov ntaub ntawv thiab cov ntaub ntawv rov qab mus rau lub app ntau cov kev pabcuam.
Zuag qhia tag nrho, Snapchat tus tsim tam sim no yuav raug muab piv rau ntau cov kev pabcuam uas khiav ntawm ib qho kev khiav haujlwm, uas nyob rau hauv rooj plaub no yog Snapchat app. Kuv sim nyuaj heev los muab koj cov ntsiab lus siab ntawm Snapchat system tsim. Kuv vam tias koj pom nws muaj txiaj ntsig.
Sau ntawv cia Ncua