Snapchat huwa magħruf sew fost it-tweens u l-adoloxxenti. Int probabilment 'il fuq minn 25 jekk ma tistax tifhem kif taħdem. Snapchat, waħda mill-applikazzjonijiet tal-midja soċjali l-aktar popolari, tipprovdi lit-tfal u l-adolexxenti eżattament dak li jridu: metodu faċli biex jaqsmu okkorrenzi ordinarji filwaqt li jagħmluhom jidhru jibred.
B'differenza minn Facebook u Twitter, li jirreġistraw u jippubblikaw dak kollu li tagħmel, Snapchat jimpjega messaġġi li suppost jisparixxu (ara kif ma jħallux).
Hemm ħafna dwar Snapchat, u jekk inti żviluppatur huwa saħansitra aktar. Allura, din il-kariga se tagħtik ħarsa ta 'livell għoli ta' Snapchat disinn tas-sistema u ħafna aktar għarfien.
introduzzjoni
Snapchat huwa bbażat fl-Istati Uniti netwerking soċjali app li tippermetti lill-utenti jikkonnettjaw immedjatament, jaqsmu immaġini, u aktar.
- Messaġġi u stampi (jew snaps) għandhom limitu ta' żmien ta' 24 siegħa. Iħeġġeġ lin-nies jaqsmu l-istejjer tagħhom fi gruppi.
- Snap Map tippermetti lill-utenti jaraw fuq mappa fejn jinsabu l-ħbieb tagħhom.
- Il-memorji jfakkru lill-utenti dwar ritratti li ssejvjaw jew qasmu sena wara.
- Snapchat huwa popolari ħafna mal-ġenerazzjonijiet iżgħar, speċjalment iż-żagħżagħ. Hemm 319-il miljun utent attiv fuq l-app, u 5.4 biljun snaps jintbagħtu kuljum.
Termini Importanti tad-Disinn
Arkitettura Monolitika – Applikazzjoni b'saffi wieħed li topera indipendentement minn applikazzjonijiet oħra hija magħrufa bħala monolith (arkitettura monolitika). Monolith huwa ddisinjat biex iwettaq u jimmaniġġja l-attivitajiet kollha meħtieġa biex jitlesta kompitu. L-applikazzjoni twettaq il-funzjonijiet kollha mill-bidu sat-tmiem.
Mikroservizzi – Huwa polari oppost ta 'monoliths. Mikroservizzi huwa approċċ arkitettoniku li jorganizza applikazzjoni bħala ġabra ta 'servizzi. Dawn is-servizzi jintużaw biex jikkontrollaw ħafna aspetti ta' applikazzjoni. Klijent jagħmel ordni, wejter jeħodha u jagħtiha, u chef jippreparaha. F'dan l-eżempju, kull komponent jiffunzjona b'mod indipendenti u separatament mill-oħrajn; ħadd ma jaf eżatt x'qed jagħmlu l-oħrajn, u ħadd ma għandu aċċess għall-istess informazzjoni.
JSON: Huwa format ibbażat fuq test li jista 'jintuża biex jintwerew oġġetti JavaScript, letterali, arrays, u data. Dan il-format ibbażat fuq it-test huwa maħsub biex ikun sempliċi biex jinqara u jinkiteb, kif ukoll ikun diġeribbli minn softwer. JSON huwa komunement użat biex jittrasferixxi data u informazzjoni bejn servers u applikazzjonijiet online.
Orkestrazzjoni: It-teknika ta 'awtomatizzazzjoni ta' ħafna operazzjonijiet hija magħrufa bħala orkestrazzjoni. Dawn l-impjiegi jinkludu sistema tal-kompjuter u konfigurazzjoni tas-softwer, koordinazzjoni, u amministrazzjoni.
Proxy: Prokura jaġixxi bħala mezz bejn klijent li jfittex riżors u s-server li jipprovdiha.
Malji: Malja tas-servizz hija mudell ta' arkitettura tas-softwer li żżid saff ma' saff ta' infrastruttura biex tippermetti komunikazzjoni regolata, osservabbli u sigura bejn is-servizzi permezz ta' prokura.
Disinn ta 'Livell Għoli
Problemi Monolitiċi
Snapchat oriġina bħala monolith ibbażat fuq sħab ibbażat fuq Google App Engine. Madankollu, hekk kif il-programm kiber fil-popolarità u kiseb aktar utenti u data, l-iskalabbiltà saret kwistjoni.
Barra minn hekk, b'raġġ ta 'splużjoni enormi fi ħdan il-monolith, disturbi fis-sistema kollha kienu aktar possibbli. Waħda mill-problemi ta 'Snapchat kienet definita bħala "traġedja tal-komuni", li fiha l-karatteristiċi kkompetew għall-aċċess għar-riżorsi; karatteristiċi kienu qed jitgħabbew fil-ħin tat-tnedija tal-app, li jippermettu li ċerti karatteristiċi jitgħabbew aktar malajr iżda l-oħrajn jitgħabbew aktar bil-mod.
L-inġiniera fittxew ukoll viżibilità ċara, separazzjoni u sjieda tal-komponenti tagħhom mil-lat tal-iżvilupp, sabiex is-servizz ikun flessibbli u effiċjenti.
Trasformazzjoni
Hekk kif Snapchat kibret, id-ditta induna li kellha bżonn tkisser l-infrastruttura monolitika tagħha f’biċċiet iżgħar u aktar effiċjenti. Sabiex tipprovdi latenza mnaqqsa, l-organizzazzjoni ddeċidiet li tiżviluppa disinn ibbażat fuq mikroservizzi.
Biex tilħaq dawk l-għanijiet, Snapchat għażlet li taġġorna s-softwer tagħha billi tuża Amazon DynamoDB, servizz ta' database NoSQL skalabbli. Id-ditta setgħet tnaqqas il-latenza medjana b'20% bħala riżultat tal-isforzi tagħha.
L-app ġiet miktuba mill-ġdid f'bosta applikazzjonijiet iżgħar mill-korporazzjoni. Snapchat beda b'bosta applikazzjonijiet, inklużi kamera, chat, memorji, editjar ta 'stampa, konsum ta' kontenut, u mappa. Għalkemm l-integrazzjoni ta 'dawn il-programmi f'monolitu wieħed kienet konvenjenti għall-konsumaturi, hija ħolqot kwistjoni teknika severa f'termini ta' żamma ta 'prestazzjoni tajba.
Għal kitba mill-ġdid, il-korporazzjoni stabbiliet ħafna regoli bażiċi. M'għandekx preload; kull karatteristika għandha tkun l-app tagħha stess, u għandha tkun malajr. Snapchat waqqaf il-modifiki f'diversi postijiet biex jippermetti l-kitba mill-ġdid, u għamilha strettament kompitu tekniku.
Integrazzjoni ta 'karatteristiċi addizzjonali
L-app tal-kamera ta’ Snapchat għandha lentijiet, filtri, bitmojis, u l-abbiltà li żżid animazzjonijiet ta’ realtà miżjuda, fost affarijiet oħra. L-app taċ-chat ta’ Snapchat tippermetti wkoll lill-utenti jaħżnu ritratti, jiffrankaw taħditiet, iżidu emoticons, u aktar.
Il-mappa ta 'Snapchat, fost affarijiet oħra, tippermettilek tissorvelja sħabi jekk iriduk. Il-memorji, l-editjar tar-ritratti, u l-konsum tal-kontenut huma kollha apps Snapchat separati bil-kapaċitajiet uniċi tagħhom.
Il-memorji jippermettulek taħżen jew timmodifika ritratti jew vidjows għal użu aktar tard, kif ukoll ittella jew tibgħathom. L-utenti jistgħu wkoll jużaw l-editjar tal-istampi biex jaqtgħu films, iżidu test, iżidu stikers, u aktar.
Il-konsum tal-kontenut estern ta 'Snapchat jirreferi għal dak li juri lill-utenti abbażi ta' firxa ta 'parametri.
Mikroservizzi
Il-programm kien jiddependi b'mod estensiv fuq JSON biex iwettaq mistoqsijiet tan-netwerk dak iż-żmien. Madankollu, l-analiżi tal-JSON kienet tieħu ħafna ħin u ineffiċjenti. Snapchat uża API ċentralizzata ta' ġestjoni tan-netwerk biex jaħbi l-użu ta' JSON bħala dettall ta' implimentazzjoni biex tittratta din il-problema.
Il-mikroservizzi jintroduċu l-isfidi tal-ġestjoni tal-istat tal-applikazzjoni, il-komunikazzjoni tas-servizz, u l-ġestjoni tal-fallimenti. Snapchat uża teknoloġiji open-source bħal Temporal biex jegħleb id-diffikultajiet tal-orkestrazzjoni sabiex jibni sistema b'saħħitha u affidabbli.
Bħala riżultat, l-organizzazzjoni ddeċidiet li tuża mudell tad-disinn tal-malji tas-servizz. Snapchat uża Envoy, għodda open-source oħra li taġixxi bħala prokura, biex tikseb dan il-mudell. Envoy mexxa l-fluss tat-traffiku tas-servizz permezz tal-infrastruttura, u ta lill-iżviluppaturi viżibilità f'diffikultajiet potenzjali.
Snapchat ħoloq app interna msejħa Switchboard fi ħdan il-malja tas-servizz. Switchboard serva bħala pannell tal-kontroll għas-servizzi ta 'Snap, li jippermetti lill-utenti jaqilbu t-traffiku, jimmaniġġjaw id-dipendenzi tas-servizz (karatteristika li tippermetti li servizz wieħed jiġi mmaniġġjat dipendenti fuq il-kundizzjoni ta' oħrajn), u drain reġjuni.
Biex tiġi ssimplifikata l-kumplessità tal-konfigurazzjonijiet potenzjali fi ħdan is-servizzi, Switchboard ġie utilizzat minflok ma jesponi l-API Envoy kollu. Snap għandu netwerk intern u reġjonali komuni għall-mikroservizzi tiegħu grazzi għall-malja tas-servizz.
Is-servizzi ġewwa l-istess reġjun jistgħu jgħaqqdu ma' xulxin mingħajr ma jużaw l-Internet pubbliku, u l-ebda traffiku ta' netwerk estern ma jista' jikkomunika ma' partijiet interni tan-netwerk.
Il-Gateways biss ikunu awtorizzati jesponu lilhom infushom għall-internet għal raġunijiet ta' sigurtà. Il-gateways tal-API, pereżempju, jistgħu faċilment iservu bħala bibien ta' quddiem, jipproċessaw talbiet minn klijenti/utenti u jmexxuhom flimkien man-netwerk.
Netwerk u API Gateway
Il-mistoqsijiet kollha mill-klijent Snapchat jiġu permezz tal-API Gateway. Juża l-istess immaġni tal-Envoy u jgħaqqad mal-istess Pjan ta’ Kontroll bħall-mikroservizzi interni tagħna. Il-Pjan ta' Kontroll tagħna jippermettilna nippermettu filtri personalizzati tal-Envoy.
Is-sistemi ta' awtentikazzjoni ta' Snapchat, kif ukoll it-teknoloġiji tagħna li jillimitaw ir-rata u li jitfgħu t-tagħbija, huma ttrattati minn dawn il-filtri. L-Envoy juża s-Service Mesh biex jgħaddi t-talbiet lejn il-mikroservizz rilevanti wara li titlesta l-katina tal-filtru.
konklużjoni
Il-gateway tal-API ta' Snapchat iwassal it-traffiku estern għall-ħafna funzjonalitajiet tal-app. It-talbiet tal-utenti biex jimmodifikaw l-istati tal-konfigurazzjoni huma ġestiti minn servers, li mbagħad jipprovdu data u informazzjoni lura għas-servizzi numerużi tal-app.
B'mod ġenerali, id-disinn preżenti ta 'Snapchat jista' jitqabbel ma 'diversi programmi li jaħdmu fuq sistema operattiva waħda, li f'dan il-każ hija l-app Snapchat. I ppruvajt ħafna biex nipprovdulek ħarsa ġenerali ta 'livell għoli tad-disinn tas-sistema Snapchat. Nispera li sibtu utli.
Ħalli Irrispondi