Snapchat imadziwika bwino pakati pa achinyamata ndi achinyamata. Mwinamwake muli pamwamba pa 25 ngati simungathe kudziwa momwe zimagwirira ntchito. Snapchat, imodzi mwamapulogalamu odziwika kwambiri pazama TV, imapatsa ana ndi achinyamata zomwe akufuna: njira yosavuta yogawana zomwe zimachitika wamba ndikupangitsa kuti aziwoneka bwino.
Mosiyana ndi Facebook ndi Twitter, zomwe zimalemba ndikusindikiza zonse zomwe mumachita, Snapchat amagwiritsa ntchito mauthenga omwe akuyenera kutha (onani momwe samachitira).
Pali zambiri za Snapchat, ndipo ngati ndinu wopanga mapulogalamu ndizochulukirapo. Chifukwa chake, positi iyi ikupatsani mawonekedwe apamwamba a Snapchat dongosolo dongosolo ndi zidziwitso zambiri.
Introduction
Snapchat ndi yochokera ku US malo ochezera a pa Intaneti app yomwe imalola ogwiritsa ntchito kulumikizana nthawi yomweyo, kugawana zithunzi, ndi zina zambiri.
- Mauthenga ndi zithunzi (kapena zojambulidwa) zili ndi malire a maola 24. Amalimbikitsa anthu kugawana nkhani zawo m'magulu.
- Mapu a Snap amalola ogwiritsa ntchito kuwona pamapu pomwe anzawo ali.
- Zokumbukira zimakumbutsa ogwiritsa ntchito zithunzi zomwe adasunga kapena kugawana patatha chaka.
- Snapchat ndi yotchuka kwambiri ndi mibadwo yachichepere, makamaka achinyamata. Pali ogwiritsa ntchito 319 miliyoni pa pulogalamuyi, ndipo zithunzi 5.4 biliyoni zimatumizidwa tsiku lililonse.
Malamulo Ofunika Opangira
Zomangamanga za Monolithic - Ntchito yokhala ndi gawo limodzi yomwe imagwira ntchito mosadalira ntchito zina imadziwika kuti monolith (zomangamanga za monolithic). Monolith idapangidwa kuti igwire ndikusamalira ntchito zonse zofunika kuti amalize ntchito. Pulogalamuyi imagwira ntchito zonse kuyambira koyambira mpaka kumapeto.
Ma Microservices - Ndi polar yosiyana ndi monoliths. Ma Microservices ndi njira yomanga yomwe imakonza ntchito ngati gulu la ntchito. Ntchitozi zimagwiritsidwa ntchito kuwongolera mbali zambiri za pulogalamuyo. Wogula amaika oda, woperekera zakudya amatenga ndi kubweretsa, ndipo wophika amakonza. Muchitsanzo ichi, chigawo chilichonse chimagwira ntchito palokha komanso mosiyana ndi ena; palibe amene akudziwa zomwe ena akuchita, ndipo palibe amene angadziwe zomwezo.
JSON: Ndi mtundu wa malemba womwe ungagwiritsidwe ntchito posonyeza zinthu za JavaScript, literals, arrays, ndi data. Mawonekedwe ozikidwa palembawa adapangidwa kuti azikhala osavuta kuwerenga ndi kulemba, komanso kuti azitha kugayidwa ndi mapulogalamu. JSON imagwiritsidwa ntchito kwambiri kusamutsa deta ndi zidziwitso pakati pa maseva ndi mapulogalamu apa intaneti.
Kumasulira: Njira yopangira ntchito zambiri imadziwika kuti orchestration. Ntchito izi zikuphatikiza makina apakompyuta ndi kasinthidwe ka mapulogalamu, kugwirizanitsa, ndi kuyang'anira.
Proxy: Woyimira wothandizira amakhala ngati njira pakati pa kasitomala kufunafuna chida ndi seva yomwe imapereka.
thumba: Service mesh ndi dongosolo la kamangidwe ka mapulogalamu kamene kamawonjezera nsanjika pagawo la zomangamanga kuti athe kulumikizana mokhazikika, kuwonetseredwa, komanso kotetezedwa pakati pa mautumiki kudzera pa proxy.
Mapangidwe Apamwamba
Mavuto a Monolithic
Snapchat idayamba ngati monolith yozikidwa pamtambo kutengera Google App Engine. Komabe, pamene pulogalamuyi idakula ndikutchuka ndikupeza ogwiritsa ntchito ambiri ndi data, scalability idakhala vuto.
Kuonjezera apo, ndi kuphulika kwakukulu mkati mwa monolith, kusokonezeka kwa dongosolo lonse kunali kotheka. Limodzi mwamavuto a Snapchat limatanthauzidwa ngati "tsoka la commons," momwe zinthu zimapikisana kuti zitheke; Zinthu zinali kutsegulidwa panthawi yotsegulira pulogalamu, zomwe zimalola kuti zinthu zina zizitsegula mwachangu koma zina kuti zizitsitsa pang'onopang'ono.
Amisiri adafunanso kuwonekera momveka bwino, kulekanitsa, ndi umwini wa zigawo zawo kuchokera pachitukuko, kuti ntchitoyo ikhale yosinthika komanso yothandiza.
Transformation
Pomwe Snapchat idakula, kampaniyo idazindikira kuti ikufunika kugwetsa zida zake za monolithic kukhala zidutswa zing'onozing'ono, zogwira mtima kwambiri. Pofuna kupereka kuchepa kwa latency, bungweli lidaganiza zopanga mapangidwe opangira ma microservices.
Kuti akwaniritse zolingazo, Snapchat adasankha kusintha mapulogalamu ake pogwiritsa ntchito Amazon DynamoDB, ntchito yowopsa ya NoSQL database. Kampaniyo inatha kuchepetsa latency yapakati ndi 20% chifukwa cha zoyesayesa zake.
Pulogalamuyi idalembedwanso m'mapulogalamu ang'onoang'ono angapo ndi bungwe. Snapchat idayamba ndi mapulogalamu ambiri, kuphatikiza kamera, macheza, kukumbukira, kusintha zithunzi, kugwiritsa ntchito zomwe zili, komanso mapu. Ngakhale kuphatikiza mapulogalamuwa kukhala monolith imodzi kunali koyenera kwa ogula, zidabweretsa vuto lalikulu laukadaulo pankhani yosunga magwiridwe antchito abwino.
Kuti alembenso, kampaniyo idakhazikitsa malamulo ambiri. Osatsitsanso; mbali iliyonse iyenera kukhala pulogalamu yakeyake, ndipo ikhale yachangu. Snapchat adayimitsa zosintha m'malo angapo kuti alembenso, ndikupangitsa kuti ikhale ntchito yaukadaulo.
Zowonjezera zina kuphatikiza
Pulogalamu ya kamera ya Snapchat ili ndi magalasi, zosefera, bitmojis, komanso kuthekera kowonjezera makanema ojambula pawokha, pakati pazinthu zina. Mapulogalamu ochezera a Snapchat amalolanso ogwiritsa ntchito kusunga zithunzi, kusunga zokambirana, kuwonjezera zithunzi, ndi zina zambiri.
Mapu a Snapchat, mwa zina, amakupatsani mwayi wowunika anzanu ngati akufuna. Zokumbukira, kusintha zithunzi, ndi kugwiritsa ntchito zinthu zonse ndi mapulogalamu apadera a Snapchat omwe ali ndi luso lapadera.
Zokumbukira zimakulolani kusunga kapena kusintha zithunzi kapena makanema kuti mudzagwiritse ntchito pambuyo pake, komanso kuziyika kapena kuzitumiza. Ogwiritsa ntchito amathanso kugwiritsa ntchito kusintha kwazithunzi kudula makanema, kuwonjezera zolemba, kuwonjezera zomata, ndi zina zambiri.
Kugwiritsa ntchito kunja kwa Snapchat kumatanthawuza zomwe zimawonetsa ogwiritsa ntchito kutengera magawo osiyanasiyana.
Ma Microservices
Pulogalamuyi idadalira kwambiri JSON kuti achite mafunso pa intaneti panthawiyo. Komabe, kuyika JSON kunali kowononga nthawi komanso kosathandiza. Snapchat adagwiritsa ntchito API yoyang'anira maukonde apakati kuti asagwiritse ntchito JSON ngati tsatanetsatane wothana ndi vutoli.
Microservices imayambitsa zovuta za kasamalidwe ka boma, kulumikizana kwautumiki, ndi kasamalidwe kakulephera. Snapchat adagwiritsa ntchito matekinoloje otseguka ngati Temporal kuthana ndi zovuta za orchest kuti apange dongosolo lolimba komanso lodalirika.
Zotsatira zake, bungweli lidaganiza zogwiritsa ntchito ma mesh design pattern. Snapchat adagwiritsa ntchito Envoy, chida china chotseguka chomwe chimagwira ntchito ngati projekiti, kuti akwaniritse izi. Evoy adayendetsa kayendetsedwe ka kayendetsedwe ka ntchito kudzera muzomangamanga, zomwe zimapangitsa kuti otukula awonekere pazovuta zomwe zingachitike.
Snapchat adapanga pulogalamu yamkati yotchedwa Switchboard mkati mwa mesh yautumiki. Switchboard idakhala ngati gulu lowongolera ntchito za Snap, kulola ogwiritsa ntchito kusintha kuchuluka kwa magalimoto, kuyang'anira kudalira kwautumiki (chinthu chomwe chimalola kuti ntchito imodzi isamalidwe kutengera momwe ena alili), ndikutsitsa zigawo.
Kuti muchepetse zovuta zomwe zingasinthidwe mkati mwa mautumiki, Switchboard idagwiritsidwa ntchito m'malo mowulula Envoy API yonse. Snap ili ndi netiweki yodziwika bwino yamkati ndi yachigawo pama microservices ake chifukwa cha ma mesh.
Ntchito zomwe zili m'dera lomwelo zimatha kulumikizana wina ndi mnzake popanda kugwiritsa ntchito intaneti yapagulu, ndipo palibe maukonde akunja omwe amatha kulumikizana ndi magawo amkati mwamaneti.
Ma Gateways okha ndi omwe angaloledwe kudziwonetsa okha pa intaneti pazifukwa zachitetezo. Zipata za API, mwachitsanzo, zitha kukhala zitseko zakutsogolo, kukonza zopempha kuchokera kwa makasitomala / ogwiritsa ntchito ndikuziwongolera limodzi ndi netiweki.
Network & API Gateway
Mafunso onse ochokera kwa kasitomala wa Snapchat amabwera kudzera pa API Gateway. Imagwiritsa ntchito chithunzi chofanana cha Evoy ndikulumikizana ndi Ndege yoyang'anira yomweyo monga ma microservices athu amkati. Ndege Yathu Yoyang'anira imatilola kuti tithandizire zosefera za Envoy.
Makina otsimikizira a Snapchat, komanso matekinoloje athu ochepetsera komanso kuchepetsa katundu, amayendetsedwa ndi zosefera izi. Mtumiki amagwiritsa ntchito Service Mesh kuti apereke zopempha ku microservice yoyenera pambuyo poti zosefera zatha.
Kutsiliza
Snapchat's API pachipata njira magalimoto kunja kwa app ntchito zambiri. Zopempha za ogwiritsa ntchito kuti zisinthe masinthidwe zimayendetsedwa ndi maseva, omwe ndiye kupereka deta ndi zambiri zobwerera kuzinthu zambiri za pulogalamuyi.
Ponseponse, mapangidwe apano a Snapchat angafanane ndi mapulogalamu angapo omwe akuyenda pa pulogalamu imodzi yokha, yomwe pakadali pano ndi pulogalamu ya Snapchat. Ndinayesetsa kwambiri kuti ndikupatseni chithunzithunzi chapamwamba cha mapangidwe a Snapchat system. Ndikukhulupirira kuti mwapeza zothandiza.
Siyani Mumakonda