Снапцхат је добро познат међу тинејџерима и тинејџерима. Вероватно имате више од 25 година ако не можете да схватите како то функционише. Снапцхат, једна од најпопуларнијих апликација за друштвене мреже, пружа деци и адолесцентима управо оно што желе: једноставан метод за дељење уобичајених појава, а истовремено их чини цоол.
За разлику од Фејсбука и Твитера, који бележе и објављују све што радите, Снапцхат користи поруке које би требало да нестану (погледајте како не раде).
Има много тога о Снапцхату, а ако сте програмер, то је још више. Дакле, овај пост ће вам дати поглед на Снапцхат на високом нивоу дизајн система и много више увида.
увод
Снапцхат је са седиштем у САД друштвене мреже апликација која омогућава корисницима да се одмах повежу, деле слике и још много тога.
- Поруке и слике (или снимке) имају временско ограничење од 24 сата. Подстиче људе да поделе своје приче у групама.
- Снап Мап омогућава корисницима да виде на мапи где су њихови пријатељи.
- Сећања подсећају кориснике на фотографије које су сачували или поделили годину дана касније.
- Снапцхат је изузетно популаран међу млађим генерацијама, посебно тинејџерима. Апликација има 319 милиона активних корисника, а сваког дана се пошаље 5.4 милијарде снимака.
Важни услови дизајна
Монолитна архитектура – Једнослојна апликација која ради независно од других апликација позната је као монолит (монолитна архитектура). Монолит је дизајниран за обављање и руковање свим активностима потребним за завршетак задатка. Апликација обавља све функције од почетка до краја.
Микросервиси – Поларна супротност монолита. Микросервиси је архитектонски приступ који организује апликацију као колекцију услуга. Ове услуге се користе за контролу многих аспеката апликације. Купац наручује, конобар је узима и испоручује, а кувар припрема. У овом примеру, свака компонента функционише независно и одвојено од осталих; нико не зна тачно шта други раде, и нико нема приступ истим информацијама.
ЈСОН: То је формат заснован на тексту који се може користити за приказ ЈаваСцрипт објеката, литерала, низова и података. Овај текстуални формат је намењен да буде једноставан за читање и писање, као и да буде пробављив помоћу софтвера. ЈСОН се обично користи за пренос података и информација између сервера и онлајн апликација.
Оркестрација: Техника аутоматизације многих операција позната је као оркестрација. Ови послови укључују конфигурацију рачунарског система и софтвера, координацију и администрацију.
заступник: Прокси служи као посредник између клијента који тражи ресурс и сервера који га обезбеђује.
Мрежа: Сервисна мрежа је образац софтверске архитектуре који додаје слој инфраструктурном слоју како би омогућио регулисану, видљиву и безбедну комуникацију између услуга преко проксија.
Дизајн високог нивоа
Монолитни проблеми
Снапцхат је настао као монолит заснован на облаку заснован на Гоогле Апп Енгине-у. Међутим, како је програм растао у популарности и добијао више корисника и података, скалабилност је постала проблем.
Поред тога, са огромним радијусом експлозије унутар монолита, поремећаји у целом систему су били могући. Један од Снапцхатових проблема је дефинисан као „трагедија општег добра“, у којој су се карактеристике такмичиле за приступ ресурсима; функције су се учитавале у време покретања апликације, омогућавајући одређеним функцијама да се учитавају брже, али другим да се учитавају спорије.
Инжењери су такође тражили јасну видљивост, раздвајање и власништво над њиховим компонентама са становишта развоја, тако да услуга може бити флексибилна и ефикасна.
Трансформација
Како се Снапцхат ширио, компанија је схватила да треба да разбије своју монолитну инфраструктуру на мање, ефикасније делове. Да би обезбедила смањено кашњење, организација је одлучила да развије дизајн заснован на микроуслугама.
Да би испунио те циљеве, Снапцхат је одлучио да ажурира свој софтвер користећи Амазон ДинамоДБ, скалабилну услугу базе података НоСКЛ. Фирма је успела да смањи средње кашњење за 20% као резултат својих напора.
Корпорација је апликацију преписала у бројне мање апликације. Снапцхат је почео са бројним апликацијама, укључујући камеру, ћаскање, успомене, уређивање слика, потрошњу садржаја и мапу. Иако је интеграција ових програма у један монолит била згодна за потрошаче, представљала је озбиљан технички проблем у смислу одржавања добрих перформанси.
За поновно писање, корпорација је успоставила многа основна правила. Немојте унапред учитавати; свака функција треба да буде сопствена апликација и треба да буде брза. Снапцхат је зауставио модификације на неколико места како би омогућио поновно писање, чинећи то искључиво техничким задатком.
Интеграција додатних функција
Снапцхат-ова апликација за камеру има сочива, филтере, битмоџије и могућност додавања анимација проширене стварности, између осталог. Снапцхат-ова апликација за ћаскање такође омогућава корисницима да чувају фотографије, чувају разговоре, додају емотиконе и још много тога.
Снапцхатова мапа, између осталог, омогућава вам да надгледате пријатеље ако то желе. Сећања, уређивање фотографија и потрошња садржаја су одвојене Снапцхат апликације са својим јединственим могућностима.
Меморије вам омогућавају да сачувате или измените фотографије или видео записе за каснију употребу, као и да их отпремите или пошаљете. Корисници такође могу да користе уређивање слика за резање филмова, додавање текста, налепница и још много тога.
Снапцхат-ова екстерна потрошња садржаја односи се на оно што приказује корисницима на основу низа параметара.
Микросервиси
Програм је у великој мери зависио од ЈСОН-а за обављање мрежних упита у то време. Међутим, рашчлањивање ЈСОН-а је било дуготрајно и неефикасно. Снапцхат је користио централизовани АПИ за управљање мрежом да маскира употребу ЈСОН-а као детаља имплементације за решавање овог проблема.
Микросервис уводе изазове управљања стањем апликације, сервисне комуникације и управљања грешком. Снапцхат је користио технологије отвореног кода као што је Темпорал да би превазишао потешкоће у оркестрацији како би изградио снажан и поуздан систем.
Као резултат тога, организација је одлучила да користи образац дизајна сервисне мреже. Снапцхат је користио Енвои, још један алат отвореног кода који делује као прокси, да би постигао овај образац. Енвои је управљао протоком услужног саобраћаја преко инфраструктуре, дајући програмерима увид у потенцијалне потешкоће.
Снапцхат је направио интерну апликацију под називом Свитцхбоард у оквиру сервисне мреже. Централа је служила као контролна табла за Снап-ове услуге, омогућавајући корисницима да мењају саобраћај, управљају зависношћу од услуга (функција која омогућава да се једним сервисом управља у зависности од стања других) и одводе регионе.
Да би се поједноставила сложеност потенцијалних конфигурација унутар услуга, коришћен је Свитцхбоард уместо да се изложи цео Енвои АПИ. Снап има заједничку интерну и регионалну мрежу за своје микросервисе захваљујући мрежи услуга.
Услуге унутар истог региона могу да се повежу једна са другом без коришћења јавног Интернета, а спољни мрежни саобраћај не може да комуницира са унутрашњим деловима мреже.
Само би гејтвеји били овлашћени да се излажу интернету из безбедносних разлога. АПИ капије, на пример, могу лако да служе као улазна врата, обрађујући захтеве клијената/корисника и рутирајући их заједно са мрежом.
Мрежа и АПИ мрежни пролаз
Сви упити од Снапцхат клијента долазе преко АПИ Гатеваи-а. Користи исту Енвои слику и повезује се на исту контролну раван као наше интерне микросервисе. Наш Цонтрол Плане нам омогућава да омогућимо прилагођене филтере Енвои.
Ови филтери управљају Снапцхатовим системима за аутентификацију, као и нашим технологијама за ограничавање брзине и смањење оптерећења. Изасланик користи сервисну мрежу за усмеравање захтева до релевантне микросервисе након што је ланац филтера завршен.
Zakljucak
Снапцхат АПИ мрежни пролаз усмерава спољни саобраћај на многе функције апликације. Захтевима корисника за измену стања конфигурације управљају сервери, који затим пружи податке и информације назад у бројне услуге апликације.
Све у свему, садашњи дизајн Снапцхата може се упоредити са неколико програма који раде на једном оперативном систему, што је у овом случају апликација Снапцхат. Веома сам се трудио да вам пружим преглед на високом нивоу дизајна Снапцхат система. Надам се да вам је било корисно.
Ostavite komentar