સ્નેપચેટ ટ્વિન્સ અને કિશોરોમાં જાણીતું છે. જો તમે સમજી શકતા નથી કે તે કેવી રીતે કાર્ય કરે છે તો તમે કદાચ 25 વર્ષથી ઉપર છો. Snapchat, સૌથી વધુ લોકપ્રિય સોશિયલ મીડિયા એપ્લિકેશન્સમાંની એક, બાળકો અને કિશોરોને તેઓ જે જોઈએ છે તે બરાબર પ્રદાન કરે છે: સામાન્ય ઘટનાઓને શેર કરવાની એક સરળ પદ્ધતિ જ્યારે તેમને સરસ દેખાય છે.
ફેસબુક અને ટ્વિટરથી વિપરીત, જે તમે કરો છો તે બધું રેકોર્ડ અને પ્રકાશિત કરે છે, Snapchat એવા સંદેશાઓનો ઉપયોગ કરે છે જે અદૃશ્ય થઈ જવાના છે (જુઓ કે તેઓ કેવી રીતે નથી થતા).
સ્નેપચેટ વિશે ઘણું બધું છે, અને જો તમે ડેવલપર છો તો તે વધુ છે. તેથી, આ પોસ્ટ તમને સ્નેપચેટનું ઉચ્ચ સ્તરીય દૃશ્ય આપશે સિસ્ટમ ડિઝાઇન અને ઘણી વધુ આંતરદૃષ્ટિ.
પરિચય
Snapchat એ યુએસ સ્થિત છે સામાજિક નેટવર્કિંગ એપ્લિકેશન જે વપરાશકર્તાઓને તરત જ કનેક્ટ કરવા, છબીઓ શેર કરવા અને વધુ કરવા દે છે.
- સંદેશાઓ અને છબીઓ (અથવા સ્નેપ્સ) માટે 24-કલાકની સમય મર્યાદા હોય છે. લોકોને તેમની વાર્તાઓ જૂથોમાં શેર કરવા પ્રોત્સાહિત કરે છે.
- Snap Map વપરાશકર્તાઓને તેમના મિત્રો ક્યાં છે તે નકશા પર જોવાની મંજૂરી આપે છે.
- યાદો વપરાશકર્તાઓને એક વર્ષ પછી સાચવેલા અથવા શેર કરેલા ફોટાની યાદ અપાવે છે.
- Snapchat એ યુવા પેઢીઓ, ખાસ કરીને કિશોરો સાથે અત્યંત લોકપ્રિય છે. એપ્લિકેશન પર 319 મિલિયન સક્રિય વપરાશકર્તાઓ છે, અને દરરોજ 5.4 અબજ સ્નેપ મોકલવામાં આવે છે.
મહત્વપૂર્ણ ડિઝાઇન શરતો
મોનોલિથિક આર્કિટેક્ચર - સિંગલ-ટાયર્ડ એપ્લિકેશન જે અન્ય એપ્લિકેશનોથી સ્વતંત્ર રીતે કાર્ય કરે છે તેને મોનોલિથ (મોનોલિથિક આર્કિટેક્ચર) તરીકે ઓળખવામાં આવે છે. એક મોનોલિથ કાર્ય પૂર્ણ કરવા માટે જરૂરી તમામ પ્રવૃત્તિઓ કરવા અને હેન્ડલ કરવા માટે રચાયેલ છે. એપ્લિકેશન શરૂઆતથી અંત સુધી તમામ કાર્યો કરે છે.
માઇક્રો સર્વિસીસ - તે મોનોલિથની વિરુદ્ધ ધ્રુવીય છે. માઇક્રો સર્વિસીસ એ એક આર્કિટેક્ચરલ અભિગમ છે જે સેવાઓના સંગ્રહ તરીકે એપ્લિકેશનનું આયોજન કરે છે. આ સેવાઓનો ઉપયોગ એપ્લિકેશનના ઘણા પાસાઓને નિયંત્રિત કરવા માટે થાય છે. ગ્રાહક ઓર્ડર આપે છે, વેઈટર તે લે છે અને તેને પહોંચાડે છે, અને રસોઇયા તેને તૈયાર કરે છે. આ ઉદાહરણમાં, દરેક ઘટક સ્વતંત્ર રીતે અને અન્યથી અલગ રીતે કાર્ય કરે છે; અન્ય લોકો શું કરી રહ્યા છે તે કોઈને બરાબર ખબર નથી, અને કોઈની પાસે સમાન માહિતીની ઍક્સેસ નથી.
JSON: તે એક ટેક્સ્ટ-આધારિત ફોર્મેટ છે જેનો ઉપયોગ JavaScript ઑબ્જેક્ટ્સ, લિટરલ્સ, એરે અને ડેટાને પ્રદર્શિત કરવા માટે થઈ શકે છે. આ ટેક્સ્ટ-આધારિત ફોર્મેટ વાંચવા અને લખવા માટે સરળ તેમજ સોફ્ટવેર દ્વારા સુપાચ્ય હોવાનો હેતુ છે. JSON નો ઉપયોગ સામાન્ય રીતે સર્વર્સ અને ઑનલાઇન એપ્લિકેશનો વચ્ચે ડેટા અને માહિતીને સ્થાનાંતરિત કરવા માટે થાય છે.
ઓર્કેસ્ટ્રેશન: અનેક કામગીરીને સ્વચાલિત કરવાની તકનીકને ઓર્કેસ્ટ્રેશન તરીકે ઓળખવામાં આવે છે. આ નોકરીઓમાં કમ્પ્યુટર સિસ્ટમ અને સોફ્ટવેર ગોઠવણી, સંકલન અને વહીવટનો સમાવેશ થાય છે.
પ્રોક્સી: પ્રોક્સી સંસાધનની શોધમાં રહેલા ક્લાયન્ટ અને તેને પ્રદાન કરતા સર્વર વચ્ચેના ગો-બિટ્વિન તરીકે કામ કરે છે.
મેશ: સર્વિસ મેશ એ સોફ્ટવેર આર્કિટેક્ચર પેટર્ન છે જે પ્રોક્સી દ્વારા સેવાઓ વચ્ચે નિયમન, અવલોકનક્ષમ અને સુરક્ષિત સંચારને મંજૂરી આપવા માટે ઇન્ફ્રાસ્ટ્રક્ચર સ્તરમાં એક સ્તર ઉમેરે છે.
ઉચ્ચ-સ્તરની ડિઝાઇન
મોનોલિથિક સમસ્યાઓ
Google App Engine પર આધારિત ક્લાઉડ-આધારિત મોનોલિથ તરીકે સ્નેપચેટનો ઉદ્દભવ થયો છે. જો કે, પ્રોગ્રામની લોકપ્રિયતામાં વધારો થયો અને વધુ વપરાશકર્તાઓ અને ડેટા મેળવ્યો, માપનીયતા એક મુદ્દો બની ગયો.
વધુમાં, મોનોલિથની અંદર એક વિશાળ વિસ્ફોટ ત્રિજ્યા સાથે, સિસ્ટમ-વ્યાપી ખલેલ વધુ શક્ય હતી. સ્નેપચેટની સમસ્યાઓ પૈકીની એકને "કોમન્સની દુર્ઘટના" તરીકે વ્યાખ્યાયિત કરવામાં આવી હતી, જેમાં સુવિધાઓ સંસાધનોની ઍક્સેસ માટે સ્પર્ધા કરે છે; એપ લોન્ચ સમયે ફીચર્સ લોડ થઈ રહ્યા હતા, જે અમુક ફીચર્સ ઝડપી લોડ થવા દે છે પરંતુ અન્ય ધીમી લોડ થાય છે.
એન્જિનિયરોએ વિકાસના દૃષ્ટિકોણથી તેમના ઘટકોની સ્પષ્ટ દૃશ્યતા, વિભાજન અને માલિકી પણ માંગી હતી, જેથી સેવા લવચીક અને કાર્યક્ષમ બની શકે.
ટ્રાન્સફોર્મેશન
જેમ જેમ સ્નેપચેટનું વિસ્તરણ થયું તેમ, પેઢીને સમજાયું કે તેને તેના મોનોલિથિક ઈન્ફ્રાસ્ટ્રક્ચરને નાના, વધુ કાર્યક્ષમ ભાગોમાં તોડવાની જરૂર છે. ઓછી વિલંબતા પ્રદાન કરવા માટે, સંસ્થાએ માઇક્રોસર્વિસિસ આધારિત ડિઝાઇન વિકસાવવાનું નક્કી કર્યું.
તે ધ્યેયો પૂરા કરવા માટે, Snapchat Amazon DynamoDB નો ઉપયોગ કરીને તેના સોફ્ટવેરને અપડેટ કરવાનું પસંદ કર્યું, જે એક સ્કેલેબલ NoSQL ડેટાબેઝ સેવા છે. તેના પ્રયત્નોના પરિણામે પેઢી 20% દ્વારા મધ્ય વિલંબિતતા ઘટાડવામાં સક્ષમ હતી.
કોર્પોરેશન દ્વારા એપ્લિકેશનને અસંખ્ય નાની એપ્લિકેશનોમાં ફરીથી લખવામાં આવી હતી. કૅમેરા, ચેટ, યાદો, ચિત્ર સંપાદન, સામગ્રી વપરાશ અને નકશા સહિત અસંખ્ય એપ્લિકેશનો સાથે સ્નેપચેટની શરૂઆત થઈ. જો કે આ પ્રોગ્રામ્સને સિંગલ મોનોલિથમાં એકીકૃત કરવું ગ્રાહકો માટે અનુકૂળ હતું, તે સારી કામગીરી જાળવવાના સંદર્ભમાં ગંભીર તકનીકી સમસ્યા ઊભી કરે છે.
પુનઃલેખન માટે, કોર્પોરેશને ઘણા મૂળભૂત નિયમો સ્થાપિત કર્યા. પ્રીલોડ કરશો નહીં; દરેક સુવિધા તેની પોતાની એપ્લિકેશન હોવી જોઈએ અને તે ઝડપી હોવી જોઈએ. સ્નેપચેટે પુનઃલેખનને સક્ષમ કરવા માટે ઘણી જગ્યાએ ફેરફારો અટકાવ્યા છે, જે તેને સખત રીતે તકનીકી કાર્ય બનાવે છે.
વધારાના લક્ષણો એકીકરણ
Snapchat ની કૅમેરા ઍપમાં અન્ય વસ્તુઓની સાથે લેન્સ, ફિલ્ટર્સ, બિટમોજીસ અને ઑગમેન્ટેડ રિયાલિટી એનિમેશન ઉમેરવાની ક્ષમતા છે. સ્નેપચેટની ચેટ એપ્લિકેશન વપરાશકર્તાઓને ફોટોગ્રાફ્સ સંગ્રહિત કરવા, વાર્તાલાપ સાચવવા, ઇમોટિકોન્સ ઉમેરવા અને વધુ કરવાની મંજૂરી આપે છે.
સ્નેપચેટનો નકશો, અન્ય વસ્તુઓની સાથે, જો મિત્રો તમને ઇચ્છે તો તેનું નિરીક્ષણ કરવાની મંજૂરી આપે છે. યાદગીરીઓ, ફોટો એડિટિંગ અને સામગ્રીનો વપરાશ તેમની અનન્ય ક્ષમતાઓ સાથેની બધી અલગ Snapchat એપ્લિકેશન છે.
સ્મૃતિઓ તમને પછીના ઉપયોગ માટે ફોટોગ્રાફ્સ અથવા વિડિયોને સંગ્રહિત અથવા સંશોધિત કરવાની તેમજ તેને અપલોડ અથવા મોકલવાની મંજૂરી આપે છે. વપરાશકર્તાઓ ફિલ્મો કાપવા, ટેક્સ્ટ ઉમેરવા, સ્ટીકરો ઉમેરવા અને વધુ માટે ચિત્ર સંપાદનનો પણ ઉપયોગ કરી શકે છે.
Snapchat ની બાહ્ય સામગ્રીનો વપરાશ તે પરિમાણોની શ્રેણીના આધારે વપરાશકર્તાઓને શું બતાવે છે તેનો સંદર્ભ આપે છે.
માઇક્રો સર્વિસીસ
તે સમયે નેટવર્ક ક્વેરી કરવા માટે પ્રોગ્રામ JSON પર વ્યાપકપણે નિર્ભર હતો. જો કે, JSON પાર્સિંગ સમય માંગી લેતું અને બિનકાર્યક્ષમ હતું. આ સમસ્યાનો સામનો કરવા માટે અમલીકરણની વિગતો તરીકે JSON ના ઉપયોગને માસ્ક કરવા માટે Snapchat એ કેન્દ્રિય નેટવર્ક મેનેજમેન્ટ API નો ઉપયોગ કર્યો.
માઇક્રોસર્વિસ એપ્લીકેશન સ્ટેટ મેનેજમેન્ટ, સર્વિસ કોમ્યુનિકેશન અને નિષ્ફળતા મેનેજમેન્ટના પડકારોનો પરિચય આપે છે. Snapchat એ મજબૂત અને ભરોસાપાત્ર સિસ્ટમ બનાવવા માટે ઓર્કેસ્ટ્રેશનની મુશ્કેલીઓને દૂર કરવા ટેમ્પોરલ જેવી ઓપન-સોર્સ તકનીકોનો ઉપયોગ કર્યો.
પરિણામે, સંસ્થાએ સેવા મેશ ડિઝાઇન પેટર્નનો ઉપયોગ કરવાનું નક્કી કર્યું. સ્નેપચેટે આ પેટર્નને હાંસલ કરવા માટે એન્વોય, અન્ય ઓપન-સોર્સ ટૂલનો ઉપયોગ કર્યો જે પ્રોક્સી તરીકે કાર્ય કરે છે. દૂત ઇન્ફ્રાસ્ટ્રક્ચર દ્વારા સેવા ટ્રાફિકના પ્રવાહનું સંચાલન કરે છે, વિકાસકર્તાઓને સંભવિત મુશ્કેલીઓમાં દૃશ્યતા આપે છે.
Snapchat એ સર્વિસ મેશની અંદર સ્વિચબોર્ડ નામની આંતરિક એપ્લિકેશન બનાવી છે. Snap ની સેવાઓ માટે સ્વિચબોર્ડ નિયંત્રણ પેનલ તરીકે સેવા આપે છે, જે વપરાશકર્તાઓને ટ્રાફિકને સ્થાનાંતરિત કરવા, સેવા નિર્ભરતાઓનું સંચાલન કરવાની મંજૂરી આપે છે (એક વિશેષતા જે એક સેવાને અન્યની સ્થિતિ પર આધાર રાખીને સંચાલિત કરવાની મંજૂરી આપે છે), અને વિસ્તારોને દૂર કરે છે.
સેવાઓમાં સંભવિત રૂપરેખાંકનોની જટિલતાને સરળ બનાવવા માટે, સમગ્ર એન્વોય API ને બહાર લાવવાને બદલે સ્વિચબોર્ડનો ઉપયોગ કરવામાં આવ્યો હતો. સર્વિસ મેશને કારણે Snap તેની માઇક્રોસર્વિસિસ માટે સામાન્ય આંતરિક અને પ્રાદેશિક નેટવર્ક ધરાવે છે.
સમાન પ્રદેશની અંદરની સેવાઓ જાહેર ઈન્ટરનેટનો ઉપયોગ કર્યા વિના એકબીજા સાથે કનેક્ટ થઈ શકે છે, અને કોઈપણ બાહ્ય નેટવર્ક ટ્રાફિક આંતરિક નેટવર્ક ભાગો સાથે વાતચીત કરી શકતું નથી.
સુરક્ષાના કારણોસર માત્ર ગેટવેઝને જ ઈન્ટરનેટ સામે આવવા માટે અધિકૃત કરવામાં આવશે. API ગેટવે, ઉદાહરણ તરીકે, આસાનીથી આગળના દરવાજા તરીકે સેવા આપી શકે છે, ક્લાયંટ/વપરાશકર્તાઓની વિનંતીઓ પર પ્રક્રિયા કરી શકે છે અને નેટવર્ક સાથે તેમને રૂટીંગ કરી શકે છે.
નેટવર્ક અને API ગેટવે
Snapchat ક્લાયન્ટની તમામ ક્વેરી API ગેટવે દ્વારા આવે છે. તે એ જ એન્વોય ઇમેજનો ઉપયોગ કરે છે અને તે જ કંટ્રોલ પ્લેન સાથે અમારી આંતરિક માઇક્રોસેવાઓ સાથે જોડાય છે. અમારું કંટ્રોલ પ્લેન અમને કસ્ટમ એન્વોય ફિલ્ટર્સને સક્ષમ કરવાની મંજૂરી આપે છે.
Snapchat ની ઓથેન્ટિકેશન સિસ્ટમ્સ, તેમજ અમારી રેટ લિમિટિંગ અને લોડ શેડિંગ ટેક્નોલોજીઓ, આ ફિલ્ટર્સ દ્વારા નિયંત્રિત થાય છે. દૂત ફિલ્ટર ચેઇન પૂર્ણ થયા પછી સંબંધિત માઇક્રોસર્વિસની વિનંતીઓને રૂટ કરવા માટે સર્વિસ મેશનો ઉપયોગ કરે છે.
ઉપસંહાર
Snapchat ના API ગેટવે બાહ્ય ટ્રાફિકને એપની ઘણી કાર્યક્ષમતાઓમાં રૂટ કરે છે. રૂપરેખાંકન સ્થિતિઓને સંશોધિત કરવાની વપરાશકર્તાઓની વિનંતીઓ સર્વર્સ દ્વારા સંચાલિત થાય છે, જે પછી ડેટા પ્રદાન કરો અને એપ્લિકેશનની અસંખ્ય સેવાઓ પરની માહિતી.
એકંદરે, સ્નેપચેટની હાલની ડિઝાઇનની સરખામણી એક જ ઓપરેટિંગ સિસ્ટમ પર ચાલતા કેટલાક પ્રોગ્રામ્સ સાથે થઈ શકે છે, જે આ કિસ્સામાં Snapchat એપ્લિકેશન છે. મેં તમને Snapchat સિસ્ટમ ડિઝાઇનનું ઉચ્ચ-સ્તરનું વિહંગાવલોકન પ્રદાન કરવા માટે ખૂબ જ સખત પ્રયાસ કર્યો. હું આશા રાખું છું કે તમને તે ઉપયોગી લાગ્યું.
એક જવાબ છોડો