Snapchat oso ezaguna da nerabeen eta nerabeen artean. Ziurrenik 25 urtetik gora izango zara nola funtzionatzen duen asmatzen ez baduzu. Snapchat-ek, sare sozialen aplikazio ezagunenetako batek, haur eta nerabeei nahi dutena eskaintzen die: gertaera arruntak partekatzeko metodo erraza eta politak ager daitezen.
Egiten duzun guztia grabatu eta argitaratzen duten Facebookek eta Twitterrek ez bezala, Snapchatek desagertu behar diren mezuak erabiltzen ditu (ikusi nola ez).
Snapchat-i buruz asko dago, eta garatzailea bazara, are gehiago. Beraz, mezu honek Snapchat-en goi-mailako ikuspegia emango dizu sistemaren diseinua eta askoz informazio gehiago.
Sarrera
Snapchat AEBetako bat da gizarte sarea erabiltzaileei berehala konektatzeko, irudiak partekatzeko eta abar egiteko aukera ematen dien aplikazioa.
- Mezuek eta irudiek (edo argazkiek) 24 orduko denbora-muga dute. Jendea bere istorioak taldeetan partekatzera bultzatzen du.
- Snap Map-ek erabiltzaileei beren lagunak non dauden mapa batean ikusteko aukera ematen die.
- Oroitzapenek urtebete geroago gorde edo partekatu dituzten argazkiak gogorarazten dizkie erabiltzaileei.
- Snapchat oso ezaguna da belaunaldi gazteen artean, batez ere nerabeen artean. 319 milioi erabiltzaile aktibo daude aplikazioan, eta egunero 5.4 mila milioi argazki bidaltzen dira.
Diseinu-baldintza garrantzitsuak
Arkitektura monolitikoa – Beste aplikazioetatik independentean funtzionatzen duen maila bakarreko aplikazio bati monolito gisa ezagutzen da (arkitektura monolitikoa). Monolito bat zeregin bat burutzeko beharrezkoak diren jarduera guztiak egiteko eta kudeatzeko diseinatuta dago. Aplikazioak funtzio guztiak betetzen ditu hasieratik amaierara.
mikro Zerbitzuak – Monolitoen kontrako polarra da. mikro Zerbitzuak aplikazio bat zerbitzuen bilduma gisa antolatzen duen ikuspegi arkitektonikoa da. Zerbitzu hauek aplikazio baten alderdi asko kontrolatzeko erabiltzen dira. Bezero batek eskaera bat egiten du, zerbitzari batek hartu eta entregatzen du, eta sukaldari batek prestatzen du. Adibide honetan, osagai bakoitzak modu independentean eta bereizita funtzionatzen du; inork ez daki zehazki zer egiten ari diren besteak, eta inork ez du informazio bera eskuratzeko.
JSON: Testuan oinarritutako formatu bat da, JavaScript objektuak, literalak, matrizeak eta datuak bistaratzeko erabil daitekeena. Testuan oinarritutako formatu hau irakurtzeko eta idazteko erraza izan nahi da, baita softwarearen bidez digeritzekoa ere. JSON zerbitzarien eta lineako aplikazioen artean datuak eta informazioa transferitzeko erabiltzen da normalean.
Orchestration: Eragiketa asko automatizatzeko teknikari orkestrazioa deritzo. Lan horiek sistema informatikoen eta softwarearen konfigurazioa, koordinazioa eta administrazioa dira.
Proxy: Proxy batek baliabide bat bilatzen duen bezero baten eta hura ematen duen zerbitzariaren arteko bitartekari gisa funtzionatzen du.
Malla: Zerbitzu-sare bat software-arkitektura-eredu bat da, azpiegitura-geruza bati geruza bat gehitzen diona zerbitzuen arteko komunikazio arautua, behagarria eta segurua ahalbidetzeko proxy bidez.
Goi-mailako diseinua
Arazo monolitikoak
Snapchat hodeian oinarritutako monolito gisa sortu zen, Google App Engine-n oinarrituta. Hala ere, programak ospea hazi eta erabiltzaile eta datu gehiago irabazi ahala, eskalagarritasuna arazo bihurtu zen.
Gainera, monolitoaren barruan leherketa-erradio handi batekin, sistema osoan asaldurak posibleagoak ziren. Snapchat-en arazoetako bat “komunen tragedia” gisa definitu zen, non ezaugarriak baliabideak eskuratzeko lehian zeuden; Ezaugarriak aplikazioa abiarazteko orduan kargatzen ari ziren, funtzio jakin batzuk azkarrago kargatzeko, baina beste batzuk motelago kargatzeko.
Era berean, ingeniariek beren osagaien ikusgarritasun, bereizketa eta jabetza argia bilatzen zuten garapenaren ikuspegitik, zerbitzua malgua eta eraginkorra izan zedin.
Eraldaketa
Snapchat hedatu ahala, enpresak bere azpiegitura monolitikoa zati txikiago eta eraginkorragoetan zatitu behar zuela konturatu zen. Latentzia murriztua emateko, erakundeak mikrozerbitzuetan oinarritutako diseinua garatzea erabaki zuen.
Helburu horiek betetzeko, Snapchatek bere softwarea eguneratzea aukeratu zuen Amazon DynamoDB erabiliz, NoSQL datu-base zerbitzu eskalagarria. Enpresak latentziaren mediana % 20 murriztu ahal izan zuen bere ahaleginen ondorioz.
Aplikazioa aplikazio txikiago askotan berridatzi zuen korporazioak. Snapchat aplikazio ugarirekin hasi zen, besteak beste, kamera bat, txata, oroitzapenak, irudien edizioa, edukien kontsumoa eta mapa bat. Programa hauek monolito bakarrean integratzea kontsumitzaileentzat komenigarria zen arren, arazo tekniko larria planteatzen zuen errendimendu ona mantentzeko.
Berridazketa baterako, korporazioak oinarrizko arau asko ezarri zituen. Ez aurrekargatu; Ezaugarri bakoitzak bere aplikazioa izan behar du, eta azkarra izan behar du. Snapchat-ek aldaketak geldiarazi zituen hainbat lekutan berridazketa gaitzeko, zeregin tekniko zorrozki bihurtuz.
Ezaugarri osagarrien integrazioa
Snapchat-en kamera aplikazioak lenteak, iragazkiak, bitmojiak eta errealitate areagotuko animazioak gehitzeko aukera ditu, besteak beste. Snapchat-en txat-aplikazioari esker, erabiltzaileek argazkiak gordetzeko, hitzaldiak gordetzeko, emotikonoak gehitzeko eta abar ere ahalbidetzen dute.
Snapchat-en mapak, besteak beste, lagunen jarraipena egiteko aukera ematen du nahi baduzu. Oroitzapenak, argazkien edizioa eta edukien kontsumoa Snapchat aplikazio bereiziak dira beren gaitasun bereziekin.
Memoriek argazkiak edo bideoak gordetzeko edo aldatzeko aukera ematen dute gero erabiltzeko, baita horiek igo edo bidaltzeko ere. Erabiltzaileek argazkien edizioa ere erabil dezakete filmak mozteko, testua gehitzeko, pegatinak gehitzeko eta abar.
Snapchat-en kanpoko edukien kontsumoak erabiltzaileei erakusten dienari egiten dio erreferentzia parametro sorta batean oinarrituta.
mikro Zerbitzuak
Programa JSON-en araberakoa zen garai hartan sareko kontsultak egiteko. Hala ere, JSON analizatzea denbora asko eta eraginkorra izan zen. Snapchat-ek sare-kudeaketako API zentralizatu bat erabili zuen JSON-ren erabilera ezkutatzeko inplementazio xehetasun gisa arazo honi aurre egiteko.
Mikrozerbitzuek aplikazioen egoeraren kudeaketaren, zerbitzuen komunikazioaren eta hutsegiteen kudeaketaren erronkak aurkezten dituzte. Snapchatek kode irekiko teknologiak erabili zituen Temporal bezalako orkestrazio zailtasunak gainditzeko, sistema sendo eta fidagarria eraikitzeko.
Ondorioz, erakundeak zerbitzu sarearen diseinu eredua erabiltzea erabaki zuen. Snapchat-ek Envoy erabili zuen, proxy gisa jarduten duen kode irekiko beste tresna bat, eredu hori lortzeko. Envoy-ek zerbitzu-trafikoaren fluxua kudeatu zuen azpiegituraren bidez, garatzaileei balizko zailtasunen ikusgarritasuna emanez.
Snapchat-ek Switchboard izeneko barne aplikazio bat sortu zuen zerbitzu sarearen barruan. Switchboard Snap-en zerbitzuen kontrol-panel gisa balio zuen, erabiltzaileek trafikoa aldatzeko, zerbitzuen mendekotasunak kudeatzeko (zerbitzu bat besteen egoeraren arabera kudeatzeko aukera ematen duen funtzioa) eta eskualdeak husteko aukera emanez.
Zerbitzuen barruan konfigurazio potentzialen konplexutasuna errazteko, Switchboard erabili zen Envoy API osoa agerian utzi beharrean. Snap-ek barneko eta eskualdeko sare komun bat du bere mikrozerbitzuetarako zerbitzu sareari esker.
Eskualde bereko zerbitzuak elkarren artean konekta litezke Internet publikoa erabili gabe, eta kanpoko sareko trafikorik ezin da sare barruko zatiekin komunikatu.
Gateway-ek bakarrik izango lukete baimena Interneten erakusteko segurtasun arrazoiengatik. API atebideek, adibidez, erraz balio dezakete sarrerako ate gisa, bezero/erabiltzaileen eskaerak prozesatzeko eta sarearekin batera bideratzeko.
Sarea eta API Gateway
Snapchat bezeroaren kontsulta guztiak API Gateway bidez datoz. Envoy-en irudi bera erabiltzen du eta gure barneko mikrozerbitzuen Kontrol-plano berdinera konektatzen da. Gure Kontrol Hegazkinak Envoy iragazki pertsonalizatuak gaitzeko aukera ematen digu.
Snapchat-en autentifikazio-sistemak, baita gure tasa mugatzeko eta karga kentzeko teknologiak ere, iragazki hauek kudeatzen dituzte. Envoy-ek Service Mesh erabiltzen du eskaerak dagokion mikrozerbitzura bideratzeko, iragazki-katea osatu ondoren.
Ondorioa
Snapchat-en API atebideak kanpoko trafikoa aplikazioaren funtzionalitate askotara bideratzen du. Erabiltzaileen konfigurazio-egoerak aldatzeko eskaerak zerbitzariek kudeatzen dituzte, eta gero datuak eman eta informazioa aplikazioaren zerbitzu ugarietara itzuli.
Oro har, Snapchat-en egungo diseinua sistema eragile bakarrean exekutatzen diren hainbat programekin aldera daiteke, hau da, kasu honetan Snapchat aplikazioa. Oso gogor saiatu naiz Snapchat sistemaren diseinuaren goi-mailako ikuspegi orokorra eskaintzen. Espero dut erabilgarria izatea.
Utzi erantzun bat