స్నాప్చాట్ ట్వీన్స్ మరియు యుక్తవయస్కులలో బాగా ప్రసిద్ధి చెందింది. ఇది ఎలా పని చేస్తుందో మీరు గుర్తించలేకపోతే మీరు బహుశా 25 కంటే ఎక్కువ వయస్సు కలిగి ఉంటారు. అత్యంత జనాదరణ పొందిన సోషల్ మీడియా అప్లికేషన్లలో ఒకటైన స్నాప్చాట్, పిల్లలు మరియు యుక్తవయస్కులకు సరిగ్గా ఏమి కావాలో అందజేస్తుంది: సాధారణ సంఘటనలను పంచుకోవడానికి సులభమైన పద్ధతి.
మీరు చేసే ప్రతి పనిని రికార్డ్ చేసి ప్రచురించే Facebook మరియు Twitter వలె కాకుండా, Snapchat అదృశ్యం కావాల్సిన సందేశాలను ఉపయోగిస్తుంది (అవి ఎలా చేయకూడదో చూడండి).
Snapchat గురించి చాలా ఉన్నాయి మరియు మీరు డెవలపర్ అయితే అది మరింత ఎక్కువ. కాబట్టి, ఈ పోస్ట్ మీకు Snapchat యొక్క ఉన్నత-స్థాయి వీక్షణను అందిస్తుంది వ్యవస్థ రూపకల్పన మరియు మరిన్ని అంతర్దృష్టులు.
పరిచయం
Snapchat అనేది US ఆధారితమైనది సామాజిక నెట్వర్కింగ్ వినియోగదారులు వెంటనే కనెక్ట్ అవ్వడానికి, చిత్రాలను భాగస్వామ్యం చేయడానికి మరియు మరిన్నింటిని అనుమతించే అనువర్తనం.
- సందేశాలు మరియు చిత్రాలు (లేదా స్నాప్లు) 24-గంటల సమయ పరిమితిని కలిగి ఉంటాయి. సమూహాలలో వారి కథనాలను పంచుకోవడానికి వ్యక్తులను ప్రోత్సహిస్తుంది.
- స్నాప్ మ్యాప్ వినియోగదారులు తమ స్నేహితులు ఎక్కడ ఉన్నారో మ్యాప్లో చూడటానికి అనుమతిస్తుంది.
- జ్ఞాపకాలు వినియోగదారులు ఒక సంవత్సరం తర్వాత సేవ్ చేసిన లేదా షేర్ చేసిన ఫోటోలను గుర్తు చేస్తాయి.
- Snapchat యువ తరాలకు, ముఖ్యంగా యుక్తవయసులో బాగా ప్రాచుర్యం పొందింది. యాప్లో 319 మిలియన్ల యాక్టివ్ యూజర్లు ఉన్నారు మరియు ప్రతిరోజూ 5.4 బిలియన్ స్నాప్లు పంపబడతాయి.
ముఖ్యమైన డిజైన్ నిబంధనలు
మోనోలిథిక్ ఆర్కిటెక్చర్ – ఇతర అప్లికేషన్ల నుండి స్వతంత్రంగా పనిచేసే ఒకే-అంచెల అప్లికేషన్ను ఏకశిలా (ఏకశిలా నిర్మాణం) అంటారు. ఒక పనిని పూర్తి చేయడానికి అవసరమైన అన్ని కార్యకలాపాలను నిర్వహించడానికి మరియు నిర్వహించడానికి ఏకశిలా రూపొందించబడింది. అప్లికేషన్ ప్రారంభం నుండి చివరి వరకు అన్ని విధులను నిర్వహిస్తుంది.
సూక్ష్మ సర్వీసులు - ఇది ఏకశిలాలకు వ్యతిరేక ధ్రువం. సూక్ష్మ సర్వీసులు అనేది సేవల సమాహారంగా అప్లికేషన్ను నిర్వహించే నిర్మాణ విధానం. అప్లికేషన్ యొక్క అనేక అంశాలను నియంత్రించడానికి ఈ సేవలు ఉపయోగించబడతాయి. ఒక కస్టమర్ ఆర్డర్ ఇస్తాడు, ఒక వెయిటర్ దానిని తీసుకొని డెలివరీ చేస్తాడు మరియు ఒక చెఫ్ దానిని సిద్ధం చేస్తాడు. ఈ ఉదాహరణలో, ప్రతి భాగం స్వతంత్రంగా మరియు ఇతరుల నుండి విడిగా పనిచేస్తుంది; ఇతరులు ఏమి చేస్తున్నారో ఎవరికీ ఖచ్చితంగా తెలియదు మరియు అదే సమాచారాన్ని ఎవరూ యాక్సెస్ చేయలేరు.
JSON: ఇది జావాస్క్రిప్ట్ వస్తువులు, అక్షరాలు, శ్రేణులు మరియు డేటాను ప్రదర్శించడానికి ఉపయోగించే టెక్స్ట్-ఆధారిత ఫార్మాట్. ఈ టెక్స్ట్-ఆధారిత ఫార్మాట్ చదవడానికి మరియు వ్రాయడానికి సులభంగా, అలాగే సాఫ్ట్వేర్ ద్వారా జీర్ణమయ్యేలా చేయడానికి ఉద్దేశించబడింది. సర్వర్లు మరియు ఆన్లైన్ అప్లికేషన్ల మధ్య డేటా మరియు సమాచారాన్ని బదిలీ చేయడానికి JSON సాధారణంగా ఉపయోగించబడుతుంది.
వాద్య: అనేక కార్యకలాపాలను ఆటోమేట్ చేసే సాంకేతికతను ఆర్కెస్ట్రేషన్ అంటారు. ఈ ఉద్యోగాలలో కంప్యూటర్ సిస్టమ్ మరియు సాఫ్ట్వేర్ కాన్ఫిగరేషన్, సమన్వయం మరియు పరిపాలన ఉన్నాయి.
ప్రాక్సీ: రిసోర్స్ కోసం వెతుకుతున్న క్లయింట్ మరియు దానిని అందించే సర్వర్ మధ్య ప్రాక్సీ మధ్యవర్తిగా పనిచేస్తుంది.
మెష్: సర్వీస్ మెష్ అనేది సాఫ్ట్వేర్ ఆర్కిటెక్చర్ నమూనా, ఇది ప్రాక్సీ ద్వారా సేవల మధ్య నియంత్రిత, గమనించదగిన మరియు సురక్షితమైన కమ్యూనికేషన్ను అనుమతించడానికి ఒక ఇన్ఫ్రాస్ట్రక్చర్ లేయర్కి ఒక లేయర్ని జోడిస్తుంది.
ఉన్నత స్థాయి డిజైన్
ఏకశిలా సమస్యలు
Snapchat Google App ఇంజిన్ ఆధారంగా క్లౌడ్-ఆధారిత ఏకశిలాగా ఉద్భవించింది. అయినప్పటికీ, ప్రోగ్రామ్ జనాదరణ పొందడం మరియు ఎక్కువ మంది వినియోగదారులను మరియు డేటాను పొందడంతో, స్కేలబిలిటీ సమస్యగా మారింది.
అదనంగా, ఏకశిలా లోపల భారీ పేలుడు వ్యాసార్థంతో, సిస్టమ్-వైడ్ ఆటంకాలు మరింత సాధ్యమే. Snapchat యొక్క సమస్యల్లో ఒకటి "ట్రాజెడీ ఆఫ్ ది కామన్స్"గా నిర్వచించబడింది, దీనిలో వనరులను యాక్సెస్ చేయడానికి ఫీచర్లు పోటీ పడ్డాయి; యాప్ లాంచ్ సమయంలో ఫీచర్లు లోడ్ అవుతున్నాయి, కొన్ని ఫీచర్లు వేగంగా లోడ్ అవుతాయి కానీ మిగతావి నెమ్మదిగా లోడ్ అవుతాయి.
ఇంజనీర్లు అభివృద్ధి దృక్కోణం నుండి వారి భాగాల యొక్క స్పష్టమైన దృశ్యమానత, విభజన మరియు యాజమాన్యాన్ని కోరుకున్నారు, తద్వారా సేవ అనువైనది మరియు సమర్థవంతమైనది.
ట్రాన్స్ఫర్మేషన్
Snapchat విస్తరించడంతో, సంస్థ తన ఏకశిలా మౌలిక సదుపాయాలను చిన్న, మరింత సమర్థవంతమైన ముక్కలుగా విభజించాల్సిన అవసరం ఉందని గ్రహించింది. తగ్గిన జాప్యాన్ని అందించడానికి, సంస్థ మైక్రోసర్వీస్ ఆధారిత డిజైన్ను అభివృద్ధి చేయాలని నిర్ణయించుకుంది.
ఆ లక్ష్యాలను నెరవేర్చడానికి, Snapchat స్కేలబుల్ NoSQL డేటాబేస్ సర్వీస్ అయిన Amazon DynamoDBని ఉపయోగించి తన సాఫ్ట్వేర్ను అప్డేట్ చేయడాన్ని ఎంచుకుంది. సంస్థ తన ప్రయత్నాల ఫలితంగా మధ్యస్థ జాప్యాన్ని 20% తగ్గించగలిగింది.
ఈ యాప్ కార్పొరేషన్ ద్వారా అనేక చిన్న అప్లికేషన్లలోకి తిరిగి వ్రాయబడింది. Snapchat కెమెరా, చాట్, జ్ఞాపకాలు, చిత్ర సవరణ, కంటెంట్ వినియోగం మరియు మ్యాప్తో సహా అనేక అప్లికేషన్లతో ప్రారంభమైంది. ఈ ప్రోగ్రామ్లను ఒకే మోనోలిత్లో ఏకీకృతం చేయడం వినియోగదారులకు సౌకర్యవంతంగా ఉన్నప్పటికీ, మంచి పనితీరును కొనసాగించడంలో ఇది తీవ్రమైన సాంకేతిక సమస్యను కలిగిస్తుంది.
తిరిగి వ్రాయడం కోసం, కార్పొరేషన్ అనేక ప్రాథమిక నియమాలను ఏర్పాటు చేసింది. ప్రీలోడ్ చేయవద్దు; ప్రతి ఫీచర్ దాని స్వంత యాప్ అయి ఉండాలి మరియు అది త్వరగా ఉండాలి. Snapchat తిరిగి వ్రాయడాన్ని ప్రారంభించడానికి అనేక ప్రదేశాలలో సవరణలను నిలిపివేసింది, ఇది ఖచ్చితంగా సాంకేతిక పనిగా మారింది.
అదనపు ఫీచర్లు ఏకీకరణ
స్నాప్చాట్ కెమెరా యాప్లో లెన్స్లు, ఫిల్టర్లు, బిట్మోజీలు మరియు ఇతర విషయాలతోపాటు ఆగ్మెంటెడ్ రియాలిటీ యానిమేషన్లను జోడించే సామర్థ్యం ఉంది. స్నాప్చాట్ యొక్క చాట్ యాప్ వినియోగదారులు ఫోటోగ్రాఫ్లను నిల్వ చేయడానికి, చర్చలను సేవ్ చేయడానికి, ఎమోటికాన్లను జోడించడానికి మరియు మరిన్నింటిని అనుమతిస్తుంది.
స్నాప్చాట్ మ్యాప్, ఇతర విషయాలతోపాటు, స్నేహితులు కావాలనుకుంటే వారిని పర్యవేక్షించడానికి మిమ్మల్ని అనుమతిస్తుంది. జ్ఞాపకాలు, ఫోటో ఎడిటింగ్ మరియు కంటెంట్ వినియోగం అన్నీ వాటి ప్రత్యేక సామర్థ్యాలతో ప్రత్యేకమైన Snapchat యాప్లు.
జ్ఞాపకాలు ఫోటోగ్రాఫ్లు లేదా వీడియోలను తర్వాత ఉపయోగం కోసం నిల్వ చేయడానికి లేదా సవరించడానికి, అలాగే వాటిని అప్లోడ్ చేయడానికి లేదా పంపడానికి మిమ్మల్ని అనుమతిస్తాయి. వినియోగదారులు ఫిల్మ్లను కత్తిరించడానికి, వచనాన్ని జోడించడానికి, స్టిక్కర్లను జోడించడానికి మరియు మరిన్నింటికి చిత్ర సవరణను కూడా ఉపయోగించవచ్చు.
Snapchat యొక్క బాహ్య కంటెంట్ వినియోగం అనేది పారామితుల పరిధి ఆధారంగా వినియోగదారులకు చూపే వాటిని సూచిస్తుంది.
సూక్ష్మ సర్వీసులు
ఆ సమయంలో నెట్వర్క్ ప్రశ్నలను నిర్వహించడానికి ప్రోగ్రామ్ JSONపై విస్తృతంగా ఆధారపడింది. అయినప్పటికీ, JSONని అన్వయించడం చాలా సమయం తీసుకునేది మరియు అసమర్థమైనది. Snapchat ఈ సమస్యను పరిష్కరించడానికి JSONని అమలు వివరాలుగా ఉపయోగించడాన్ని మాస్క్ చేయడానికి కేంద్రీకృత నెట్వర్క్ నిర్వహణ APIని ఉపయోగించింది.
మైక్రోసర్వీస్ అప్లికేషన్ స్టేట్ మేనేజ్మెంట్, సర్వీస్ కమ్యూనికేషన్ మరియు ఫెయిల్యూర్ మేనేజ్మెంట్ యొక్క సవాళ్లను పరిచయం చేస్తుంది. Snapchat బలమైన మరియు ఆధారపడదగిన వ్యవస్థను నిర్మించడానికి ఆర్కెస్ట్రేషన్ ఇబ్బందులను అధిగమించడానికి టెంపోరల్ వంటి ఓపెన్ సోర్స్ టెక్నాలజీలను ఉపయోగించింది.
ఫలితంగా, సంస్థ సర్వీస్ మెష్ డిజైన్ నమూనాను ఉపయోగించాలని నిర్ణయించుకుంది. Snapchat ఈ నమూనాను సాధించడానికి ప్రాక్సీగా పనిచేసే మరొక ఓపెన్ సోర్స్ సాధనం Envoyని ఉపయోగించింది. ఇన్ఫ్రాస్ట్రక్చర్ ద్వారా సర్వీస్ ట్రాఫిక్ ప్రవాహాన్ని ఎన్వోయ్ నిర్వహించి, డెవలపర్లకు సంభావ్య ఇబ్బందులకు సంబంధించిన దృశ్యమానతను అందించారు.
Snapchat సర్వీస్ మెష్లో స్విచ్బోర్డ్ అనే అంతర్గత యాప్ని సృష్టించింది. Snap యొక్క సేవలకు స్విచ్బోర్డ్ నియంత్రణ ప్యానెల్గా పనిచేసింది, వినియోగదారులు ట్రాఫిక్ని మార్చడానికి, సర్వీస్ డిపెండెన్సీలను నిర్వహించడానికి (ఇతరుల పరిస్థితిపై ఆధారపడి ఒక సేవను నిర్వహించడానికి అనుమతించే లక్షణం) మరియు డ్రెయిన్ ప్రాంతాలను అనుమతిస్తుంది.
సేవల్లోని సంభావ్య కాన్ఫిగరేషన్ల సంక్లిష్టతను సులభతరం చేయడానికి, మొత్తం ఎన్వోయ్ APIని బహిర్గతం చేయడానికి బదులుగా స్విచ్బోర్డ్ ఉపయోగించబడింది. సేవా మెష్కు ధన్యవాదాలు, Snap దాని మైక్రోసర్వీస్ల కోసం సాధారణ అంతర్గత మరియు ప్రాంతీయ నెట్వర్క్ను కలిగి ఉంది.
పబ్లిక్ ఇంటర్నెట్ని ఉపయోగించకుండా ఒకే ప్రాంతంలోని సేవలు ఒకదానితో ఒకటి కనెక్ట్ అవుతాయి మరియు బాహ్య నెట్వర్క్ ట్రాఫిక్ అంతర్గత నెట్వర్క్ భాగాలతో కమ్యూనికేట్ చేయదు.
భద్రతా కారణాల దృష్ట్యా తమను తాము ఇంటర్నెట్కు బహిర్గతం చేయడానికి గేట్వేలకు మాత్రమే అధికారం ఉంటుంది. ఉదాహరణకు, API గేట్వేలు, క్లయింట్లు/యూజర్ల నుండి అభ్యర్థనలను ప్రాసెస్ చేయడం మరియు నెట్వర్క్తో పాటు వాటిని రూట్ చేయడం వంటివి సులభంగా ముందు తలుపులుగా పని చేస్తాయి.
నెట్వర్క్ & API గేట్వే
Snapchat క్లయింట్ నుండి అన్ని ప్రశ్నలు API గేట్వే ద్వారా వస్తాయి. ఇది అదే ఎన్వోయ్ ఇమేజ్ని ఉపయోగిస్తుంది మరియు మా అంతర్గత మైక్రోసర్వీస్ల వలె అదే కంట్రోల్ ప్లేన్కి కనెక్ట్ చేస్తుంది. కస్టమ్ ఎన్వోయ్ ఫిల్టర్లను ఎనేబుల్ చేయడానికి మా కంట్రోల్ ప్లేన్ అనుమతిస్తుంది.
Snapchat యొక్క ప్రామాణీకరణ సిస్టమ్లు, అలాగే మా రేటు పరిమితి మరియు లోడ్ షెడ్డింగ్ సాంకేతికతలు ఈ ఫిల్టర్ల ద్వారా నిర్వహించబడతాయి. ఫిల్టర్ గొలుసు పూర్తయిన తర్వాత సంబంధిత మైక్రోసర్వీస్కు రిక్వెస్ట్లను రూట్ చేయడానికి ఎంవోయ్ సర్వీస్ మెష్ని ఉపయోగిస్తుంది.
ముగింపు
స్నాప్చాట్ యొక్క API గేట్వే బాహ్య ట్రాఫిక్ను యాప్ యొక్క అనేక కార్యాచరణలకు మార్గనిర్దేశం చేస్తుంది. కాన్ఫిగరేషన్ స్థితులను సవరించడానికి వినియోగదారుల అభ్యర్థనలు సర్వర్ల ద్వారా నిర్వహించబడతాయి డేటాను అందిస్తాయి మరియు యాప్ యొక్క అనేక సేవలకు సమాచారం.
మొత్తంమీద, Snapchat యొక్క ప్రస్తుత రూపకల్పన ఒకే ఆపరేటింగ్ సిస్టమ్పై నడుస్తున్న అనేక ప్రోగ్రామ్లతో పోల్చవచ్చు, ఈ సందర్భంలో Snapchat యాప్. స్నాప్చాట్ సిస్టమ్ డిజైన్కి సంబంధించిన ఉన్నత-స్థాయి అవలోకనాన్ని మీకు అందించడానికి నేను చాలా కష్టపడ్డాను. ఇది మీకు ఉపయోగకరంగా ఉందని నేను ఆశిస్తున్నాను.
సమాధానం ఇవ్వూ