Bab lan Paragraf[Singidaken][Tampilake]
Snapchat kondhang ing antarane remaja lan remaja. Sampeyan mbokmenawa luwih saka 25 yen sampeyan ora ngerti cara kerjane. Snapchat, salah sawijining aplikasi media sosial sing paling populer, nyedhiyakake bocah lan remaja persis apa sing dikarepake: cara sing gampang kanggo nuduhake kedadeyan biasa lan uga nggawe dheweke katon keren.
Ora kaya Facebook lan Twitter, sing ngrekam lan nerbitake kabeh sing sampeyan lakoni, Snapchat nggunakake pesen sing mesthine bakal ilang (ndeleng kepiye ora).
Ana akeh babagan Snapchat, lan yen sampeyan dadi pangembang, luwih akeh. Dadi, kirim iki bakal menehi tampilan tingkat dhuwur saka Snapchat desain sistem lan luwih akeh wawasan.
Pambuka
Snapchat minangka basis AS jejaring sosial app sing ngidini pangguna langsung nyambung, nuduhake gambar, lan liya-liyane.
- Pesen lan gambar (utawa snaps) duwe watesan wektu 24 jam. Nyengkuyung wong kanggo nuduhake crita ing kelompok.
- Snap Map ngidini pangguna kanggo ndeleng ing peta ngendi kanca-kanca.
- Kenangan ngelingake pangguna babagan foto sing disimpen utawa dituduhake setahun mengko.
- Snapchat banget populer karo generasi enom, utamane remaja. Ana 319 yuta pangguna aktif ing app, lan 5.4 milyar snaps dikirim saben dina.
Katentuan Desain Penting
Arsitektur Monolitik – Aplikasi siji-tier sing makaryakke independen saka aplikasi liyane dikenal minangka monolith (arsitektur monolithic). Monolith dirancang kanggo nindakake lan nangani kabeh aktivitas sing dibutuhake kanggo ngrampungake tugas. Aplikasi nindakake kabeh fungsi saka wiwitan nganti pungkasan.
Microservices - Iku polar ngelawan saka monoliths. Microservices minangka pendekatan arsitektur sing ngatur aplikasi minangka kumpulan layanan. Layanan iki digunakake kanggo ngontrol akeh aspek saka aplikasi. Pelanggan menehi pesenan, pelayan njupuk lan ngirim, lan koki nyiapake. Ing conto iki, saben komponèn fungsi independen lan kapisah saka liyane; ora ana sing ngerti persis apa sing ditindakake wong liya, lan ora ana sing duwe akses menyang informasi sing padha.
JSON: Iku format basis teks sing bisa digunakake kanggo nampilake obyek JavaScript, literal, larik, lan data. Format adhedhasar teks iki dimaksudake supaya gampang diwaca lan ditulis, uga bisa dicerna dening piranti lunak. JSON umume digunakake kanggo nransfer data lan informasi antarane server lan aplikasi online.
Orchestrasi: Teknik ngotomatisasi akeh operasi dikenal minangka orkestrasi. Pakaryan kasebut kalebu konfigurasi sistem komputer lan piranti lunak, koordinasi, lan administrasi.
proxy: A proxy tumindak minangka Go-antarane antarane klien looking for a sumber lan server sing nyedhiyani.
bolong: Bolong layanan minangka pola arsitektur piranti lunak sing nambah lapisan menyang lapisan infrastruktur kanggo ngidini komunikasi sing diatur, diamati, lan aman antarane layanan liwat proxy.
Desain Tingkat Dhuwur
Masalah Monolitik
Snapchat asale minangka monolit berbasis awan adhedhasar Google App Engine. Nanging, nalika program kasebut dadi populer lan entuk luwih akeh pangguna lan data, skalabilitas dadi masalah.
Kajaba iku, kanthi radius bledosan sing gedhe banget ing monolit, gangguan ing saindenging sistem luwih bisa kedadeyan. Salah siji masalah Snapchat ditetepake minangka "tragedi saka commons," kang fitur kompetisi kanggo akses kanggo sumber daya; fitur dimuat ing wektu peluncuran app, ngidini fitur tartamtu mbukak luwih cepet nanging liyane mbukak luwih alon.
Insinyur uga nggoleki visibilitas sing jelas, pamisahan, lan kepemilikan komponen saka sudut pandang pangembangan, supaya layanan kasebut bisa fleksibel lan efisien.
transformasi
Nalika Snapchat ngembangake, perusahaan kasebut ngerti yen kudu ngrusak infrastruktur monolitik dadi potongan sing luwih cilik lan luwih efisien. Kanggo nyedhiyakake latensi sing suda, organisasi mutusake kanggo ngembangake desain adhedhasar layanan mikro.
Kanggo nggayuh tujuan kasebut, Snapchat milih nganyari piranti lunak nggunakake Amazon DynamoDB, layanan basis data NoSQL sing bisa diukur. Perusahaan kasebut bisa nyuda latensi median nganti 20% minangka asil saka upaya kasebut.
Aplikasi kasebut ditulis maneh dadi pirang-pirang aplikasi cilik dening perusahaan kasebut. Snapchat diwiwiti kanthi akeh aplikasi, kalebu kamera, obrolan, kenangan, nyunting gambar, konsumsi konten, lan peta. Sanajan nggabungake program kasebut dadi monolit tunggal trep kanggo para konsumen, iki nyebabake masalah teknis sing abot babagan njaga kinerja sing apik.
Kanggo nulis ulang, perusahaan nggawe akeh aturan dhasar. Aja preload; saben fitur kudu app dhewe, lan iku kudu cepet. Snapchat mungkasi modifikasi ing sawetara panggonan kanggo ngaktifake nulis ulang, dadi tugas teknis.
Integrasi fitur tambahan
Aplikasi kamera Snapchat nduweni lensa, saringan, bitmojis, lan kemampuan kanggo nambah animasi realitas ditambah, lan liya-liyane. Aplikasi chatting Snapchat uga ngidini pangguna nyimpen foto, nyimpen obrolan, nambah emoticon, lan liya-liyane.
Peta Snapchat, antara liya, ngidini sampeyan ngawasi kanca yen pengin. Kenangan, nyunting foto, lan konsumsi konten kabeh aplikasi Snapchat sing kapisah kanthi kemampuan unik.
Kenangan ngidini sampeyan nyimpen utawa ngowahi foto utawa video kanggo digunakake mengko, uga ngunggah utawa ngirim. Pangguna uga bisa nggunakake editing gambar kanggo motong film, nambah teks, nambah stiker, lan liya-liyane.
Konsumsi konten eksternal Snapchat nuduhake apa sing dituduhake pangguna adhedhasar sawetara paramèter.
Microservices
Program kasebut gumantung banget marang JSON kanggo nindakake pitakon jaringan ing wektu kasebut. Nanging, parsing JSON butuh wektu lan ora efisien. Snapchat nggunakake API manajemen jaringan terpusat kanggo nutupi panggunaan JSON minangka detail implementasine kanggo ngatasi masalah iki.
Microservices ngenalake tantangan manajemen negara aplikasi, komunikasi layanan, lan manajemen kegagalan. Snapchat nggunakake teknologi open-source kaya Temporal kanggo ngatasi kesulitan orkestrasi supaya bisa mbangun sistem sing kuwat lan bisa dipercaya.
Akibaté, organisasi mutusake nggunakake pola desain bolong layanan. Snapchat nggunakake Envoy, alat open-source liyane sing tumindak minangka proxy, kanggo entuk pola iki. Utusan ngatur aliran lalu lintas layanan liwat infrastruktur, menehi pangembang visibilitas menyang potensial kangelan.
Snapchat nggawe aplikasi internal sing diarani Switchboard ing bolong layanan. Switchboard dadi panel kontrol kanggo layanan Snap, ngidini pangguna ngalih lalu lintas, ngatur dependensi layanan (fitur sing ngidini siji layanan bisa diatur gumantung ing kahanan wong liya), lan wilayah saluran.
Kanggo nyederhanakake kerumitan konfigurasi potensial ing layanan, Switchboard digunakake tinimbang mbabarake kabeh Envoy API. Snap nduweni jaringan internal lan regional sing umum kanggo layanan mikro amarga bolong layanan.
Layanan ing wilayah sing padha bisa nyambungake siji liyane tanpa nggunakake Internet umum, lan ora ana lalu lintas jaringan eksternal sing bisa komunikasi karo bagean jaringan internal.
Mung Gateway sing bakal diwenehi wewenang kanggo mbukak internet amarga alasan keamanan. Gerbang API, umpamane, bisa uga gampang dadi lawang ngarep, ngolah panjaluk saka klien / pangguna lan nuntun dheweke bebarengan karo jaringan.
Jaringan & API Gateway
Kabeh pitakon saka klien Snapchat teka liwat API Gateway. Iki nggunakake gambar Utusan sing padha lan nyambung menyang Control Plane sing padha karo layanan mikro internal. Pesawat Kontrol ngidini kita ngaktifake saringan Utusan khusus.
Sistem otentikasi Snapchat, uga teknologi mbatesi tarif lan nyuda beban, ditangani dening saringan kasebut. Utusan nggunakake Service Mesh kanggo nuntun panjalukan menyang layanan mikro sing relevan sawise rantai panyaring rampung.
kesimpulan
Gerbang API Snapchat ngarahake lalu lintas eksternal menyang akeh fungsi app. Panjalukan pangguna kanggo ngowahi negara konfigurasi dikelola dening server, sing banjur nyedhiyakake data lan informasi bali menyang akeh layanan app.
Sakabèhé, desain Snapchat saiki bisa dibandhingake karo sawetara program sing mlaku ing sistem operasi siji, sing ing kasus iki yaiku aplikasi Snapchat. Aku nyoba banget kanggo menehi sampeyan ringkesan tingkat dhuwur babagan desain sistem Snapchat. Mugi sampeyan nemokake iku migunani.
Ninggalake a Reply