Snapchat është i njohur në mesin e të rinjve dhe adoleshentëve. Ju ndoshta jeni mbi 25 nëse nuk mund ta kuptoni se si funksionon. Snapchat, një nga aplikacionet më të njohura të mediave sociale, u ofron fëmijëve dhe adoleshentëve pikërisht atë që duan: një metodë e thjeshtë për të ndarë dukuritë e zakonshme, duke i bërë ata të duken të lezetshëm.
Ndryshe nga Facebook dhe Twitter, të cilët regjistrojnë dhe publikojnë gjithçka që bëni, Snapchat përdor mesazhe që supozohet të zhduken (shihni se si nuk e bëjnë).
Ka shumë për Snapchat, dhe nëse jeni një zhvillues, është edhe më shumë. Pra, ky postim do t'ju japë një pamje të nivelit të lartë të Snapchat dizajni i sistemit dhe shumë më tepër njohuri.
Prezantimi
Snapchat është një bazë në SHBA social networking aplikacion që lejon përdoruesit të lidhen menjëherë, të ndajnë imazhe dhe më shumë.
- Mesazhet dhe imazhet (ose fotot) kanë një afat kohor 24-orësh. Inkurajon njerëzit të ndajnë historitë e tyre në grupe.
- Snap Map i lejon përdoruesit të shohin në një hartë se ku janë miqtë e tyre.
- Kujtimet u kujtojnë përdoruesve fotot që ata ruajtën ose shpërndanë një vit më vonë.
- Snapchat është jashtëzakonisht popullor me gjeneratat e reja, veçanërisht adoleshentët. Ka 319 milionë përdorues aktivë në aplikacion dhe 5.4 miliardë fotografi dërgohen çdo ditë.
Kushtet e rëndësishme të projektimit
Arkitektura monolitike – Një aplikacion me një nivel që funksionon në mënyrë të pavarur nga aplikacionet e tjera njihet si monolit (arkitektura monolitike). Një monolit është krijuar për të kryer dhe trajtuar të gjitha aktivitetet e nevojshme për të përfunduar një detyrë. Aplikacioni kryen të gjitha funksionet nga fillimi në fund.
mikro Services – Është e kundërta polare e monoliteve. mikro Services është një qasje arkitekturore që organizon një aplikacion si një koleksion shërbimesh. Këto shërbime përdoren për të kontrolluar shumë aspekte të një aplikacioni. Një klient bën një porosi, një kamerier e merr dhe e dorëzon dhe një kuzhinier e përgatit. Në këtë shembull, çdo komponent funksionon në mënyrë të pavarur dhe veçmas nga të tjerët; askush nuk e di saktësisht se çfarë po bëjnë të tjerët dhe askush nuk ka akses në të njëjtin informacion.
JSON: Është një format i bazuar në tekst që mund të përdoret për të shfaqur objekte JavaScript, fjalë për fjalë, vargje dhe të dhëna. Ky format i bazuar në tekst synohet të jetë i thjeshtë për t'u lexuar dhe shkruar, si dhe i tretshëm nga softueri. JSON përdoret zakonisht për të transferuar të dhëna dhe informacione ndërmjet serverëve dhe aplikacioneve online.
orkestrim: Teknika e automatizimit të shumë operacioneve njihet si orkestrimi. Këto punë përfshijnë konfigurimin, koordinimin dhe administrimin e sistemit kompjuterik dhe softuerit.
Prokurë: Një përfaqësues vepron si një ndërmjetës midis një klienti që kërkon një burim dhe serverit që e ofron atë.
Rrjetë: Një rrjetë shërbimi është një model i arkitekturës softuerike që shton një shtresë në një shtresë infrastrukture për të lejuar komunikim të rregulluar, të vëzhgueshëm dhe të sigurt ndërmjet shërbimeve përmes përfaqësuesit.
Dizajn i nivelit të lartë
Problemet monolitike
Snapchat filloi si një monolit i bazuar në cloud i bazuar në Google App Engine. Megjithatë, ndërsa programi u rrit në popullaritet dhe fitoi më shumë përdorues dhe të dhëna, shkallëzueshmëria u bë një problem.
Për më tepër, me një rreze të madhe shpërthimi brenda monolitit, shqetësimet në të gjithë sistemin ishin më të mundshme. Një nga problemet e Snapchat u përcaktua si një "tragjedi e të përbashkëtave", në të cilën veçoritë konkurronin për akses në burime; veçoritë po ngarkoheshin në kohën e nisjes së aplikacionit, duke lejuar që disa veçori të ngarkoheshin më shpejt, por të tjerat të ngarkoheshin më ngadalë.
Inxhinierët gjithashtu kërkuan dukshmëri të qartë, ndarje dhe pronësi të komponentëve të tyre nga pikëpamja e zhvillimit, në mënyrë që shërbimi të mund të ishte fleksibël dhe efikas.
Transformim
Ndërsa Snapchat u zgjerua, firma kuptoi se duhej të ndante infrastrukturën e saj monolitike në pjesë më të vogla dhe më efikase. Për të siguruar vonesë të reduktuar, organizata vendosi të zhvillojë një dizajn të bazuar në mikroshërbime.
Për të përmbushur këto qëllime, Snapchat zgjodhi të përditësojë softuerin e tij duke përdorur Amazon DynamoDB, një shërbim i shkallëzuar i bazës së të dhënave NoSQL. Firma ishte në gjendje të reduktonte vonesën mesatare me 20% si rezultat i përpjekjeve të saj.
Aplikacioni u rishkrua në shumë aplikacione më të vogla nga korporata. Snapchat filloi me aplikacione të shumta, duke përfshirë një aparat fotografik, chat, kujtime, redaktimin e fotografive, konsumin e përmbajtjes dhe një hartë. Megjithëse integrimi i këtyre programeve në një monolit të vetëm ishte i përshtatshëm për konsumatorët, ai paraqiste një problem të rëndë teknik në drejtim të ruajtjes së performancës së mirë.
Për një rishkrim, korporata vendosi shumë rregulla bazë. Mos e ngarkoni paraprakisht; çdo veçori duhet të jetë aplikacioni i vet dhe duhet të jetë i shpejtë. Snapchat ndaloi modifikimet në disa vende për të mundësuar rishkrimin, duke e bërë atë rreptësisht një detyrë teknike.
Integrimi i veçorive shtesë
Aplikacioni i kamerës së Snapchat ka lente, filtra, bitmoji dhe aftësinë për të shtuar animacione të realitetit të shtuar, ndër të tjera. Aplikacioni i bisedës së Snapchat gjithashtu i lejon përdoruesit të ruajnë fotografi, të ruajnë bisedat, të shtojnë emoticon dhe më shumë.
Harta e Snapchat, ndër të tjera, ju lejon të monitoroni miqtë nëse ata dëshirojnë. Kujtimet, redaktimi i fotografive dhe konsumi i përmbajtjes janë të gjitha aplikacione të veçanta Snapchat me aftësitë e tyre unike.
Kujtimet ju lejojnë të ruani ose modifikoni fotografi ose video për përdorim të mëvonshëm, si dhe t'i ngarkoni ose dërgoni ato. Përdoruesit mund të përdorin gjithashtu redaktimin e fotografive për të prerë filma, për të shtuar tekst, për të shtuar ngjitëse dhe më shumë.
Konsumi i përmbajtjes së jashtme të Snapchat-it i referohet asaj që u tregon përdoruesve bazuar në një sërë parametrash.
mikro Services
Programi varej shumë nga JSON për të kryer pyetje në rrjet në atë kohë. Megjithatë, analizimi i JSON-it kërkonte kohë dhe joefikas. Snapchat përdori një API të centralizuar të menaxhimit të rrjetit për të maskuar përdorimin e JSON si një detaj implementimi për të trajtuar këtë problem.
Mikroshërbimet prezantojnë sfidat e menaxhimit të gjendjes së aplikacionit, komunikimit të shërbimit dhe menaxhimit të dështimit. Snapchat përdori teknologji me burim të hapur si Temporal për të kapërcyer vështirësitë e orkestrimit në mënyrë që të ndërtonte një sistem të fortë dhe të besueshëm.
Si rezultat, organizata vendosi të përdorë një model të dizajnit të rrjetës së shërbimit. Snapchat përdori Envoy, një tjetër mjet me burim të hapur që vepron si një përfaqësues, për të arritur këtë model. Envoy menaxhoi rrjedhën e trafikut të shërbimit nëpërmjet infrastrukturës, duke u dhënë zhvilluesve shikueshmëri ndaj vështirësive të mundshme.
Snapchat krijoi një aplikacion të brendshëm të quajtur Switchboard brenda rrjetës së shërbimit. Switchboard shërbeu si një panel kontrolli për shërbimet e Snap, duke i lejuar përdoruesit të zhvendosin trafikun, të menaxhojnë varësitë e shërbimit (një funksion që lejon menaxhimin e një shërbimi në varësi të gjendjes së të tjerëve) dhe zbrazjen e rajoneve.
Për të thjeshtuar kompleksitetin e konfigurimeve të mundshme brenda shërbimeve, Switchboard u përdor në vend që të ekspozonte të gjithë API-në e Envoy. Snap ka një rrjet të përbashkët të brendshëm dhe rajonal për mikroshërbimet e tij falë rrjetës së shërbimit.
Shërbimet brenda të njëjtit rajon mund të lidhen me njëri-tjetrin pa përdorur internetin publik dhe asnjë trafik i jashtëm i rrjetit nuk mund të komunikojë me pjesët e brendshme të rrjetit.
Vetëm Gateways do të autorizoheshin të ekspozoheshin ndaj internetit për arsye sigurie. Portat API, për shembull, mund të shërbejnë lehtësisht si dyer të përparme, duke përpunuar kërkesat nga klientët/përdoruesit dhe duke i drejtuar ato së bashku me rrjetin.
Porta e rrjetit dhe API
Të gjitha pyetjet nga klienti Snapchat vijnë përmes API Gateway. Ai përdor të njëjtin imazh të Envoy dhe lidhet me të njëjtin plan kontrolli si mikroshërbimet tona të brendshme. Plani ynë i kontrollit na lejon të aktivizojmë filtrat e personalizuar të Envoy.
Sistemet e vërtetimit të Snapchat-it, si dhe teknologjitë tona të kufizimit të normës dhe uljes së ngarkesës, trajtohen nga këta filtra. Envoy përdor rrjetën e shërbimit për të drejtuar kërkesat në mikroshërbimin përkatës pasi të përfundojë zinxhiri i filtrit.
Përfundim
Porta API e Snapchat drejton trafikun e jashtëm drejt funksionaliteteve të shumta të aplikacionit. Kërkesat e përdoruesve për të modifikuar gjendjet e konfigurimit menaxhohen nga serverët, të cilët më pas japin të dhëna dhe informacione për shërbimet e shumta të aplikacionit.
Në përgjithësi, dizajni aktual i Snapchat mund të krahasohet me disa programe që funksionojnë në një sistem të vetëm operativ, që në këtë rast është aplikacioni Snapchat. U përpoqa shumë për t'ju ofruar një përmbledhje të nivelit të lartë të dizajnit të sistemit Snapchat. Shpresoj ta keni gjetur të dobishme.
Lini një Përgjigju