Mae Snapchat yn adnabyddus ymhlith tweens a phobl ifanc yn eu harddegau. Mae'n debyg eich bod chi dros 25 oed os na allwch chi ddarganfod sut mae'n gweithio. Mae Snapchat, un o'r cymwysiadau cyfryngau cymdeithasol mwyaf poblogaidd, yn darparu'r union beth maen nhw ei eisiau i blant a phobl ifanc: dull hawdd o rannu digwyddiadau cyffredin tra hefyd yn gwneud iddyn nhw ymddangos yn cŵl.
Yn wahanol i Facebook a Twitter, sy'n cofnodi ac yn cyhoeddi popeth a wnewch, mae Snapchat yn cyflogi negeseuon sydd i fod i ddiflannu (gweler sut nad ydyn nhw).
Mae yna lawer am Snapchat, ac os ydych chi'n ddatblygwr mae hyd yn oed yn fwy. Felly, bydd y swydd hon yn rhoi golwg lefel uchel i chi o Snapchat dylunio system a llawer mwy o fewnwelediadau.
Cyflwyniad
Mae Snapchat yn seiliedig ar yr Unol Daleithiau rhwydweithio cymdeithasol ap sy'n caniatáu i ddefnyddwyr gysylltu ar unwaith, rhannu delweddau, a mwy.
- Mae terfyn amser o 24 awr i negeseuon a delweddau (neu snaps). Yn annog pobl i rannu eu straeon mewn grwpiau.
- Mae Snap Map yn galluogi defnyddwyr i weld ar fap ble mae eu ffrindiau.
- Mae atgofion yn atgoffa defnyddwyr o luniau y gwnaethant eu cadw neu eu rhannu flwyddyn yn ddiweddarach.
- Mae Snapchat yn hynod boblogaidd gyda chenedlaethau iau, yn enwedig pobl ifanc yn eu harddegau. Mae 319 miliwn o ddefnyddwyr gweithredol ar yr ap, ac anfonir 5.4 biliwn o gipluniau bob dydd.
Termau Dylunio Pwysig
Pensaernïaeth Fonolithig - Gelwir cymhwysiad un haen sy'n gweithredu'n annibynnol ar gymwysiadau eraill yn monolith (pensaernïaeth monolithig). Mae monolith wedi'i gynllunio i berfformio a thrin yr holl weithgareddau sydd eu hangen i gwblhau tasg. Mae'r cais yn cyflawni'r holl swyddogaethau o'r dechrau i'r diwedd.
Microservices – Mae'n begynol gyferbyn â monolithau. Microservices yn ddull pensaernïol sy'n trefnu cais fel casgliad o wasanaethau. Defnyddir y gwasanaethau hyn i reoli sawl agwedd ar raglen. Mae cwsmer yn gosod archeb, mae gweinydd yn ei gymryd ac yn ei ddosbarthu, ac mae cogydd yn ei baratoi. Yn yr enghraifft hon, mae pob cydran yn gweithredu'n annibynnol ac ar wahân i'r lleill; nid oes neb yn gwybod yn union beth mae'r lleill yn ei wneud, ac nid oes gan neb fynediad at yr un wybodaeth.
JSON: Mae'n fformat sy'n seiliedig ar destun y gellir ei ddefnyddio i arddangos gwrthrychau JavaScript, llythrennol, araeau a data. Bwriedir i'r fformat testun hwn fod yn syml i'w ddarllen a'i ysgrifennu, yn ogystal â bod yn ddealladwy gan feddalwedd. Defnyddir JSON yn gyffredin i drosglwyddo data a gwybodaeth rhwng gweinyddwyr a chymwysiadau ar-lein.
Cerddorfa: Gelwir y dechneg o awtomeiddio llawer o weithrediadau yn offeryniaeth. Mae'r swyddi hyn yn cynnwys cyfluniad system gyfrifiadurol a meddalwedd, cydgysylltu a gweinyddu.
Drwy ddirprwy: Mae dirprwy yn gweithredu fel cyswllt rhwng cleient sy'n chwilio am adnodd a'r gweinydd sy'n ei ddarparu.
rhwyll: Mae rhwyll gwasanaeth yn batrwm pensaernïaeth meddalwedd sy'n ychwanegu haen at haen seilwaith i ganiatáu cyfathrebu rheoledig, gweladwy a diogel rhwng gwasanaethau trwy ddirprwy.
Dylunio Lefel Uchel
Problemau Monolithig
Tarddodd Snapchat fel monolith cwmwl yn seiliedig ar y Google App Engine. Fodd bynnag, wrth i'r rhaglen dyfu mewn poblogrwydd ac ennill mwy o ddefnyddwyr a data, daeth graddadwyedd yn broblem.
Yn ogystal, gyda radiws ffrwydrad enfawr o fewn y monolith, roedd aflonyddwch ar draws y system yn fwy posibl. Diffiniwyd un o broblemau Snapchat fel “trasiedi tir comin,” lle'r oedd nodweddion yn cystadlu am fynediad i adnoddau; roedd nodweddion yn llwytho ar amser lansio ap, gan ganiatáu i rai nodweddion lwytho'n gyflymach ond i'r lleill lwytho'n arafach.
Gofynnodd peirianwyr hefyd am welededd clir, gwahaniad, a pherchnogaeth o'u cydrannau o safbwynt datblygu, fel y gallai'r gwasanaeth fod yn hyblyg ac effeithlon.
Trawsnewid
Wrth i Snapchat ehangu, sylweddolodd y cwmni fod angen iddo dorri i lawr ei seilwaith monolithig yn ddarnau llai, mwy effeithlon. Er mwyn darparu llai o hwyrni, penderfynodd y sefydliad ddatblygu dyluniad yn seiliedig ar ficrowasanaethau.
I gyflawni'r nodau hynny, dewisodd Snapchat ddiweddaru ei feddalwedd gan ddefnyddio Amazon DynamoDB, gwasanaeth cronfa ddata graddadwy NoSQL. Llwyddodd y cwmni i leihau hwyrni canolrif 20% o ganlyniad i'w ymdrechion.
Ailysgrifennwyd yr ap yn nifer o gymwysiadau llai gan y gorfforaeth. Dechreuodd Snapchat gyda nifer o gymwysiadau, gan gynnwys camera, sgwrs, atgofion, golygu lluniau, defnyddio cynnwys, a map. Er bod integreiddio'r rhaglenni hyn i un monolith yn gyfleus i ddefnyddwyr, roedd yn broblem dechnegol ddifrifol o ran cynnal perfformiad da.
Ar gyfer ailysgrifennu, sefydlodd y gorfforaeth lawer o reolau sylfaenol. Peidiwch â rhaglwytho; dylai pob nodwedd fod yn ap ei hun, a dylai fod yn gyflym. Ataliodd Snapchat addasiadau mewn sawl man i alluogi'r ailysgrifennu, gan ei gwneud yn dasg dechnegol yn unig.
Integreiddio nodweddion ychwanegol
Mae gan ap camera Snapchat lensys, hidlwyr, bitmojis, a'r gallu i ychwanegu animeiddiadau realiti estynedig, ymhlith pethau eraill. Mae ap sgwrsio Snapchat hefyd yn caniatáu i ddefnyddwyr storio ffotograffau, arbed sgyrsiau, ychwanegu emoticons, a mwy.
Mae map Snapchat, ymhlith pethau eraill, yn caniatáu ichi fonitro ffrindiau os ydynt am i chi wneud hynny. Mae atgofion, golygu lluniau, a defnydd cynnwys i gyd yn apiau Snapchat ar wahân gyda'u galluoedd unigryw.
Mae atgofion yn caniatáu ichi storio neu addasu ffotograffau neu fideos i'w defnyddio'n ddiweddarach, yn ogystal â'u huwchlwytho neu eu hanfon. Gall defnyddwyr hefyd ddefnyddio golygu lluniau i dorri ffilmiau, ychwanegu testun, ychwanegu sticeri, a mwy.
Mae defnydd cynnwys allanol Snapchat yn cyfeirio at yr hyn y mae'n ei ddangos i ddefnyddwyr yn seiliedig ar ystod o baramedrau.
Microservices
Roedd y rhaglen yn dibynnu'n helaeth ar JSON i gyflawni ymholiadau rhwydwaith ar y pryd. Fodd bynnag, roedd dosrannu JSON yn cymryd llawer o amser ac yn aneffeithlon. Defnyddiodd Snapchat API rheoli rhwydwaith canolog i guddio'r defnydd o JSON fel manylyn gweithredu i fynd i'r afael â'r broblem hon.
Mae microwasanaethau yn cyflwyno heriau rheoli cyflwr cymwysiadau, cyfathrebu gwasanaeth, a rheoli methiant. Defnyddiodd Snapchat dechnolegau ffynhonnell agored fel Temporal i oresgyn anawsterau cerddorfaol er mwyn adeiladu system gref a dibynadwy.
O ganlyniad, penderfynodd y sefydliad ddefnyddio patrwm dylunio rhwyll gwasanaeth. Defnyddiodd Snapchat Envoy, offeryn ffynhonnell agored arall sy'n gweithredu fel dirprwy, i gyflawni'r patrwm hwn. Roedd Cennad yn rheoli llif traffig y gwasanaeth drwy'r seilwaith, gan roi gwelededd i ddatblygwyr i anawsterau posibl.
Creodd Snapchat ap mewnol o'r enw Switsfwrdd o fewn y rhwyll gwasanaeth. Roedd y switsfwrdd yn gweithredu fel panel rheoli ar gyfer gwasanaethau Snap, gan alluogi defnyddwyr i symud traffig, rheoli dibyniaethau gwasanaeth (nodwedd sy'n caniatáu i un gwasanaeth gael ei reoli yn dibynnu ar gyflwr gwasanaethau eraill), a draenio rhanbarthau.
Er mwyn symleiddio cymhlethdod ffurfweddiadau posibl o fewn gwasanaethau, defnyddiwyd Switsfwrdd yn lle datgelu'r API Envoy cyfan. Mae gan Snap rwydwaith mewnol a rhanbarthol cyffredin ar gyfer ei ficrowasanaethau diolch i'r rhwyll gwasanaeth.
Gallai gwasanaethau yn yr un rhanbarth gysylltu â'i gilydd heb ddefnyddio'r Rhyngrwyd cyhoeddus, ac ni allai unrhyw draffig rhwydwaith allanol gyfathrebu â rhannau rhwydwaith mewnol.
Dim ond y Pyrth fyddai'n cael eu hawdurdodi i amlygu eu hunain i'r rhyngrwyd am resymau diogelwch. Gallai pyrth yr API, er enghraifft, fod yn ddrysau blaen yn hawdd, gan brosesu ceisiadau gan gleientiaid/defnyddwyr a'u llwybro ynghyd â'r rhwydwaith.
Porth Rhwydwaith ac API
Daw pob ymholiad gan y cleient Snapchat trwy API Gateway. Mae'n defnyddio'r un ddelwedd Envoy ac yn cysylltu â'r un Awyren Reoli â'n microwasanaethau mewnol. Mae ein Plane Rheoli yn ein galluogi i alluogi hidlwyr Cenhadon arferol.
Mae systemau dilysu Snapchat, yn ogystal â'n technolegau cyfyngu ar gyfraddau a gollwng llwyth, yn cael eu trin gan yr hidlwyr hyn. Mae Cennad yn defnyddio'r Rhwyll Gwasanaeth i gyfeirio ceisiadau at y microwasanaeth perthnasol ar ôl i'r gadwyn hidlo gael ei chwblhau.
Casgliad
Mae porth API Snapchat yn llwybrau traffig allanol i swyddogaethau niferus yr ap. Mae ceisiadau defnyddwyr i addasu cyflwr cyfluniad yn cael eu rheoli gan weinyddion, sydd wedyn darparu data a gwybodaeth yn ôl i wasanaethau niferus yr ap.
Yn gyffredinol, gellir cymharu dyluniad presennol Snapchat â sawl rhaglen sy'n rhedeg ar un system weithredu, sef yr app Snapchat yn yr achos hwn. Ceisiais yn galed iawn i roi trosolwg lefel uchel i chi o ddyluniad system Snapchat. Rwy'n gobeithio ei fod yn ddefnyddiol i chi.
Gadael ymateb