Snapchat hè ben cunnisciuta trà e adolescenti è l'adulescenti. Probabilmente avete più di 25 se ùn pudete micca capisce cumu funziona. Snapchat, una di l'applicazioni di e social media più populari, furnisce i zitelli è l'adulescenti esattamente ciò chì volenu: un metudu faciule per sparte l'occurrence ordinarie, mentre chì ancu li fa sembranu cool.
A cuntrariu di Facebook è Twitter, chì registranu è publicheghjanu tuttu ciò chì fate, Snapchat impiega messagi chì sò supposti svanisce (vede cumu ùn anu micca).
Ci hè assai di Snapchat, è sè vo site un sviluppatore hè ancu di più. Cusì, stu postu vi derà una vista altu livellu di Snapchat cuncepimentu di u sistema è assai più insights.
I MUVRINI
Snapchat hè una basa di i Stati Uniti rete suciale app chì permette à l'utilizatori di cunnette immediatamente, sparte l'imaghjini, è più.
- I missaghji è l'imaghjini (o snaps) anu un limitu di 24 ore. Incuragisce a ghjente à sparte e so storie in gruppi.
- Snap Map permette à l'utilizatori di vede nantu à una mappa induve sò i so amichi.
- I ricordi ricordanu à l'utilizatori e foto chì anu salvatu o spartutu un annu dopu.
- Snapchat hè assai populari cù e generazioni più ghjovani, in particulare l'adulescenti. Ci sò 319 milioni di utilizatori attivi nantu à l'app, è 5.4 miliardi di scatti sò mandati ogni ghjornu.
Termini di cuncepimentu impurtanti
Architettura monolitica - Una applicazione à un livellu chì opera indipindentamente da altre applicazioni hè cunnisciuta cum'è monolitu (architettura monolitica). Un monolitu hè cuncepitu per fà è gestisce tutte l'attività necessarie per cumpiendu un compitu. L'applicazione svolge tutte e funzioni da u principiu à a fine.
Microservices - Hè polare oppostu à i monoliti. Microservices hè un approcciu architettonicu chì urganizeghja una applicazione cum'è una cullizzioni di servizii. Sti servizii sò usati per cuntrullà parechji aspetti di una applicazione. Un cliente fa un ordine, un cameriere a piglia è a consegna, è un chef a prepara. In questu esempiu, ogni cumpunente funziona indipindente è separatamente da l'altri; nimu ùn sà esattamente ciò chì l'altri facenu, è nimu hà accessu à a listessa infurmazione.
JSON: Hè un furmatu basatu in testu chì pò esse usatu per vede l'uggetti JavaScript, litterali, arrays è dati. Stu furmatu basatu in testu hè distinatu à esse simplice per leghje è scrive, è ancu esse digeribile da u software. JSON hè comunmente utilizatu per trasfiriri dati è informazioni trà i servitori è l'applicazioni in linea.
Orchestration: A tecnica di automatizà parechje operazioni hè cunnisciuta cum'è orchestrazione. Questi travaglii includenu sistema di computer è cunfigurazione di software, coordinazione è amministrazione.
Proxy: Un proxy agisce cum'è un intermediariu trà un cliente chì cerca una risorsa è u servitore chì a furnisce.
Mesh: Una rete di serviziu hè un mudellu di architettura di software chì aghjunghje una capa à una capa di infrastruttura per permette una cumunicazione regulata, osservabile è sicura trà i servizii per mezu di proxy.
Disegnu di altu livellu
Prublemi monoliticu
Snapchat hè urigginatu cum'è un monolitu basatu in nuvola basatu in Google App Engine. Tuttavia, cum'è u prugramma hà crisciutu in pupularità è hà guadagnatu più utilizatori è dati, a scalabilità hè diventata un prublema.
Inoltre, cù un raghju di splusione enormu in u monolitu, i disturbi in tuttu u sistema eranu più pussibuli. Unu di i prublemi di Snapchat hè statu definitu cum'è una "tragedia di i cumuni", in quale e funzioni cumpetenu per l'accessu à e risorse; e funzioni sò state caricate à u tempu di lanciu di l'app, chì permettenu à certe funzioni di carica più veloce, ma l'altri di carica più lentamente.
L'ingegneri anu ancu cercatu una visibilità chjara, a separazione è a pruprietà di i so cumpunenti da u puntu di vista di u sviluppu, in modu chì u serviziu puderia esse flessibile è efficiente.
Mutazioni
Quandu Snapchat s'allargava, l'impresa hà capitu chì avia bisognu di scumpressà a so infrastruttura monolitica in pezzi più chjuchi è più efficaci. Per furnisce una latenza diminuita, l'urganizazione hà decisu di sviluppà un disignu basatu in microservizi.
Per cumpiendu quelli scopi, Snapchat hà sceltu per aghjurnà u so software utilizendu Amazon DynamoDB, un serviziu di basa di dati NoSQL scalabile. L'impresa hà sappiutu riduce a latenza mediana di 20% per via di i so sforzi.
L'app hè stata riscritta in numerose applicazioni più chjuche da a corporazione. Snapchat hà cuminciatu cù numerose applicazioni, cumprese una camera, chat, ricordi, edizione di stampa, cunsumu di cuntenutu è una mappa. Ancu se l'integrazione di sti prugrammi in un unicu monolitu era cunvene per i cunsumatori, hà postu un prublema tecnicu severu in quantu à mantene un bonu rendimentu.
Per una riscrittura, a corporazione hà stabilitu assai reguli di basa. Ùn precaricate; ogni funzione deve esse a so propria app, è deve esse prestu. Snapchat hà cessatu e mudificazioni in parechji posti per attivà a riscrittura, facendu strettu un compitu tecnicu.
Integrazione di funzioni supplementari
L'app di càmera di Snapchat hà lenti, filtri, bitmojis, è a capacità di aghjunghje animazioni di realtà aumentata, frà altre cose. L'app di chat di Snapchat permette ancu à l'utilizatori di almacenà e fotografie, salvà e conversazioni, aghjunghje emoticons è più.
A mappa di Snapchat, frà altre cose, permette di monitorà i amichi s'ellu vulete. I ricordi, l'editura di foto è u cunsumu di cuntenutu sò tutti apps Snapchat separati cù e so capacità uniche.
I ricordi permettenu di almacenà o mudificà e fotografie o video per un usu più tardi, è ancu di caricali o di mandà. L'utilizatori ponu ancu aduprà l'editazione di stampa per cutà filmi, aghjunghje testu, aghjunghje stickers, è più.
U cunsumu di cuntenutu esternu di Snapchat si riferisce à ciò chì mostra l'utilizatori basatu nantu à una serie di parametri.
Microservices
U prugramma dipendeva largamente da JSON per eseguisce dumande di rete à u mumentu. Tuttavia, l'analisi di JSON richiedeva tempu è inefficiente. Snapchat hà utilizatu una API di gestione di a rete centralizzata per maschera l'usu di JSON cum'è un dettagliu di implementazione per affruntà stu prublema.
I microservizi presentanu e sfide di a gestione di u statu di l'applicazione, a cumunicazione di serviziu è a gestione di fallimentu. Snapchat hà utilizatu tecnulugia open-source cum'è Temporal per superà e difficultà d'orchestrazione in modu di custruisce un sistema forte è affidabile.
In u risultatu, l'urganizazione hà decisu d'utilizà un mudellu di design di rete di serviziu. Snapchat hà utilizatu Envoy, un altru strumentu open-source chì agisce cum'è un proxy, per ottene stu mudellu. L'Envoy hà gestitu u flussu di u trafficu di serviziu per via di l'infrastruttura, dendu à i sviluppatori visibilità in e pussibuli difficultà.
Snapchat hà creatu una app interna chjamata Switchboard in a rete di serviziu. Switchboard hà servitu cum'è un pannellu di cuntrollu per i servizii di Snap, chì permette à l'utilizatori di trasfurmà u trafficu, gestisce e dipendenze di u serviziu (una funzione chì permette à un serviziu di gestisce dipende da a cundizione di l'altri), è drenà e regioni.
Per simplificà a cumplessità di e cunfigurazioni putenziali in i servizii, Switchboard hè stata utilizata invece di espose tutta l'API Envoy. Snap hà una reta cumuna interna è regiunale per i so microservizi grazia à a rete di serviziu.
I servizii in a listessa regione puderanu cunnetta cù l'altri senza utilizà l'Internet publicu, è nisun trafficu di rete esterna puderia cumunicà cù e parti di a rete interna.
Solu i Gateways seranu autorizati à espose à Internet per ragioni di sicurezza. I gateway API, per esempiu, puderanu serve facilmente cum'è porte di fronte, processendu e richieste da i clienti / utilizatori è l'indirizzanu cù a reta.
Network & API Gateway
Tutte e dumande da u cliente Snapchat venenu attraversu API Gateway. Utiliza a stessa maghjina di l'Envoy è cunnetta à u listessu pianu di cuntrollu cum'è i nostri microservizi interni. U nostru pianu di cuntrollu ci permette di attivà i filtri Envoy persunalizati.
I sistemi di autentificazione di Snapchat, cum'è i nostri tecnulugii di limitazione di tariffu è di scaricamentu di carica, sò trattati da questi filtri. Envoy usa u Service Mesh per indirizzà e dumande à u microserviziu pertinente dopu chì a catena di filtru hè cumpleta.
cunchiusioni
A porta di l'API di Snapchat dirige u trafficu esternu à e parechje funziunalità di l'app. E dumande di l'utilizatori per mudificà i stati di cunfigurazione sò gestiti da i servitori, chì allora furnisce dati è infurmazione torna à i numerosi servizii di l'app.
In generale, u disignu attuale di Snapchat pò esse paragunatu à parechji prugrammi chì funzionanu nantu à un sistema upirativu unicu, chì in questu casu hè l'app Snapchat. Aghju pruvatu assai duru per furnisce una visione d'altu livellu di u disignu di u sistema Snapchat. Spergu chì avete trovu utile.
Lascia un Audiolibro