ఈ సైట్‌లోని విషయాలు కృత్రిమ మేధస్సు (AI) లేదా యంత్ర అనువాద సాంకేతికత ఉపయోగించి అనువదించబడ్డాయి మరియు లోపాలు ఉండవచ్చు.

Skip to content

రోబ్లాక్స్ తన కాఫ్కా ప్లాట్‌ఫారమ్‌ను రోజుకు 18 ట్రిలియన్లకు పైగా సందేశాలకు ఎలా విస్తరించింది

సమర్థవంతమైన వ్యవస్థల కోసం ఎండ్-టు-ఎండ్ ఆప్టిమైజేషన్

గత రెండు సంవత్సరాలుగా, మేము మా అంతర్గత మెసేజ్ క్యూ ప్లాట్‌ఫారమ్‌ను ప్రతి సంవత్సరం 2.5 రెట్లు పెంచుకుంటూ, రోజుకు 18 ట్రిలియన్లకు పైగా సందేశాలకు విస్తరించాము. మేము ప్రస్తుతం సెకనుకు 300 మిలియన్లకు పైగా సందేశాలను ప్రాసెస్ చేస్తున్నాము, అదే సమయంలో 99.995% లభ్యతను కొనసాగిస్తున్నాము. అపాచీ కాఫ్‌కాపై నిర్మించబడిన ఈ మెసేజ్ క్యూ ప్లాట్‌ఫారమ్, కంపెనీ అంతటా డేటాను తరలించడంలో మాకు ఒక కీలక భాగంగా మారింది. ఇది అనలిటిక్స్ ఈవెంట్‌లు, మోడరేషన్ పైప్‌లైన్‌లు, మ్యాచ్‌మేకింగ్ సిస్టమ్‌లు మరియు మరెన్నో వంటి వర్క్‌లోడ్‌లకు మద్దతు ఇస్తుంది. ఈ సంఖ్యలు ఉత్సాహకరంగా ఉన్నాయి, కానీ మనం అక్కడికి ఎలా చేరుకున్నామనేది మరింత ముఖ్యమైన కథ. 

ఎండ్-టు-ఎండ్ ఆప్టిమైజేషన్ యొక్క ప్రభావం 

పెద్ద-స్థాయి సిస్టమ్‌ల గురించి ఒక సాధారణ అపోహ ఏమిటంటే, సామర్థ్యం అనేది ఎక్కువగా హార్డ్‌వేర్ సమస్య. మా అనుభవంలో, స్కేలబిలిటీని ఒక ఎండ్-టు-ఎండ్ ఇంజనీరింగ్ సమస్యగా పరిగణించడం ద్వారా అత్యంత ప్రభావవంతమైన మెరుగుదలలు సాధించబడతాయి.

రోబ్లాక్స్ అంతటా ఉన్న బృందాలు మెసేజింగ్ క్యూ పైన AI శిక్షణా పైప్‌లైన్‌లు, స్ట్రీమ్ ప్రాసెసింగ్ అబ్‌స్ట్రాక్షన్‌లు మరియు టెలిమెట్రీ సిస్టమ్‌లతో సహా వివిధ ప్లాట్‌ఫారమ్‌లను నిర్మించాయి. ఈ ప్లాట్‌ఫారమ్‌ల యజమానులతో భాగస్వామ్యం కావడం ద్వారా, బ్యాచింగ్ మరియు కంప్రెషన్‌ను ప్రారంభించడం వంటి ఉత్తమ పద్ధతులకు కట్టుబడి ఉండేలా మేము సహాయం చేయగలుగుతున్నాము. దీని ఫలితంగా, తుది వినియోగదారులను వివరణాత్మక కాన్ఫిగరేషన్ సెటప్‌లో పాల్గొనకుండానే సమర్థవంతమైన సిస్టమ్‌లు ఏర్పడతాయి.

మా క్యూ ఆర్కిటెక్చర్ మరియు సంబంధిత ప్లాట్‌ఫారమ్‌లు, ఇతర బృందాలు ప్రతిదీ కొత్తగా కనిపెట్టాల్సిన అవసరం లేకుండా లేదా కాన్ఫిగరేషన్ గురించి ఆందోళన చెందకుండా నిర్మించడానికి వీలు కల్పిస్తాయి.

ప్లాట్‌ఫారమ్‌ను వ్యాపార ప్రాధాన్యతలు, కొలమానాలు మరియు విజయ ప్రమాణాల కోసం ఉపయోగించే బృందాలతో సమన్వయం చేసుకోవడం చాలా ముఖ్యం మరియు ఇది బృందాల మధ్య సహకారాన్ని పెంచడంలో సహాయపడుతుంది. కీలక కొలమానాలు సిస్టమ్‌లోని పొరల మధ్య మారుతూ ఉంటాయి: మనం తక్కువ మెషీన్‌లతో పెద్ద మొత్తంలో డేటాను సమర్థవంతంగా నిర్వహించడానికి కాఫ్కా సర్వర్‌లను ఆప్టిమైజ్ చేయవచ్చు, కానీ అంతిమ వినియోగదారులు మిల్లీసెకన్డ్ స్థాయికి ఎండ్-టు-ఎండ్ లేటెన్సీ కోసం, లేదా వారి బ్యాచ్ జాబ్ డేటాను వ్రాయడం పూర్తి చేయడానికి పట్టే మొత్తం సమయం కోసం ఆప్టిమైజ్ చేయాలనుకోవచ్చు. 

అన్ని ట్రాఫిక్‌లు సమానం కాదు

మేము నేర్చుకున్న ఒక ముఖ్యమైన పాఠం ఏమిటంటే, అన్ని ట్రాఫిక్‌ను సమానంగా పరిగణించనప్పుడు పెద్ద-స్థాయి ప్లాట్‌ఫారమ్‌లు మరింత విశ్వసనీయంగా ఉంటాయి. కొన్ని వర్క్‌లోడ్‌లకు చాలా తక్కువ లేటెన్సీ మరియు స్పైక్‌ల సమయంలో బలమైన రక్షణ అవసరం, ఉదాహరణకు మా మ్యాచ్‌మేకింగ్ సిస్టమ్‌లు, ఇవి 10 మిల్లీసెకన్ల కంటే తక్కువ ఎండ్-టు-ఎండ్ లేటెన్సీతో పనిచేస్తాయి. ఇతర ట్రాఫిక్‌లు అత్యధిక పరిమాణంలో ఉండి, ఆలస్యాన్ని ఎక్కువగా భరించగలవు, ఉదాహరణకు మా అనలిటిక్స్ ఈవెంట్ ఇంజెషన్ పైప్‌లైన్‌లు, ఇవి ఎండ్-టు-ఎండ్ లేటెన్సీలో కొన్ని సెకన్ల ఆలస్యం ఉన్నప్పటికీ సజావుగా నడవగలవు. ఒకవేళ ఈ రెండింటినీ ఒకేలా నిర్వహిస్తే, అత్యధిక పరిమాణంలో ఉండే ట్రాఫిక్, ముఖ్యంగా పీక్ లోడ్ సమయంలో, మరింత వ్యాపార-క్రిటికల్ ట్రాఫిక్‌ను పక్కకు నెట్టేస్తుంది.

ఈ సమస్యను పరిష్కరించడానికి, ప్రతి ఒక్కటి బాగా మద్దతు ఇచ్చేలా చూసుకోవడానికి మేము వాడకం కేసు అవసరాల ఆధారంగా ట్రాఫిక్‌ను సమూహీకరిస్తాము. కాఫ్కాలో ఎండ్-టు-ఎండ్ లేటెన్సీ మరియు త్రూపుట్ మధ్య చేసే రాజీ, కొత్త వాడకం కేసులను ఏర్పాటు చేసేటప్పుడు పరిగణించవలసిన ప్రధాన అంశాలలో ఒకటి. ప్రొడ్యూసర్ నుండి సర్వర్, అక్కడి నుండి కన్స్యూమర్‌కు ఉన్న డేటా మార్గమంతటా ఇది వర్తిస్తుంది: వీటిలో ప్రతిదానికీ త్రూపుట్ లేదా లేటెన్సీ కోసం ఆప్టిమైజ్ చేయడానికి ట్యూన్ చేయగల కాన్ఫిగరేషన్‌లు ఉన్నాయి. క్లయింట్-సైడ్ కాన్ఫిగరేషన్‌లను వ్యక్తిగత వినియోగ సందర్భాల కోసం ట్యూన్ చేయవచ్చు, కానీ సర్వర్-సైడ్ కాన్ఫిగరేషన్‌లు తక్కువ సరళంగా ఉంటాయి, ఎందుకంటే ప్రతి విభిన్న వినియోగ సందర్భానికి ఒక ప్రత్యేక క్లస్టర్‌ను నిర్వహించడం సాధ్యం కాదు. 

మేము ఈ విధానాన్ని, అనగా ప్రతి క్లస్టర్ దానిని సేవించే యూజ్ కేస్‌ల కోసం ఆప్టిమైజ్ చేయడాన్ని, స్టాక్ అంతటా హార్డ్‌వేర్ లేయర్ వరకు వర్తింపజేస్తాము. 

హార్డ్‌వేర్ ఇప్పటికీ కీలకం

మేము RAID10 HDD మెషీన్‌లపై కాఫ్‌కాను నడపడం ద్వారా ప్రారంభించాము. ట్రాఫిక్ పరిమాణం పెరిగేకొద్దీ, మా మెషీన్‌ల డిస్క్ I/O సామర్థ్యం, ప్రతి-సర్వర్ కాఫ్‌కా థ్రూపుట్‌ను పరిమితం చేసే ప్రధాన బాటిల్‌నెక్‌గా మారింది. దీన్ని పరిష్కరించడానికి, మేము రెండు ఆప్టిమైజేషన్‌లు చేసాము. మేము బ్రోకర్‌లను వీలైనంత వరకు SSDలను ఉపయోగించేలా మార్చాము, దీనివల్ల బాటిల్‌నెక్ డిస్క్ I/O సామర్థ్యం నుండి నెట్‌వర్క్ థ్రూపుట్ లేదా డిస్క్ స్థలానికి (మేము పొందిన SSDలకు తక్కువ డిస్క్ స్థలం ఉన్నందున) మారింది. దీనివల్ల డిస్క్ I/O త్రూపుట్ 10 రెట్లు పెరిగింది. మేము మా మిగిలిన HDDలను RAID10 నుండి RAID0కి మార్చడం కూడా ప్రారంభించాము. RAID0తో ప్రతి రైట్ కోసం రెండు డిస్క్‌ల రైట్ అవసరం లేకుండా, కేవలం ఒకే డిస్క్ రైట్ సరిపోవడంతో, ఇది డిస్క్ I/O సామర్థ్యాన్ని సుమారుగా రెట్టింపు చేసింది. 

దీనిలోని ప్రతిఫలం ఏమిటంటే, ప్రతి మెసేజ్ రిప్లికా రెండు డిస్క్‌లకు బదులుగా ఒక్కో బ్రోకర్‌కు ఒక డిస్క్‌లో వ్రాయబడుతుంది కాబట్టి, RAID10 నుండి RAID0కి మారడం వలన విశ్వసనీయత ప్రమాదం ఉండవచ్చు. విశ్వసనీయతను కొనసాగించడానికి, మేము ముఖ్యమైన వినియోగ సందర్భాలతో కలిసి 'అక్స్' (acks) మరియు డేటా రిప్లికేషన్‌ను పెంచడానికి పనిచేశాము, ఇందులో బహుళ ప్రాంతాలకు రిప్లికేట్ చేయడం కూడా ఉంది.

ప్రతి మెషీన్ యొక్క స్టోరేజ్ మరియు త్రూపుట్ సామర్థ్యాలను పూర్తిగా ఉపయోగించుకోవడానికి అదనపు పని అవసరమైంది. మేము మా మెమరీ కేటాయింపులు మరియు పేజ్ క్యాష్ నిర్వహణ కాన్ఫిగరేషన్‌లను ఆప్టిమైజ్ చేసాము, తద్వారా కాఫ్కా సందేశాలను బఫర్ చేసి, మెమరీ నుండి రీడ్‌లు లేదా ఇటీవలి డేటాను అందించగలదు, మరియు చారిత్రక డేటాను చదివేటప్పుడు వంటి అవసరమైనప్పుడు మాత్రమే డిస్క్‌ను హిట్ చేసి విలువైన IOPSను వినియోగించుకుంటుంది. 

హార్డ్‌వేర్ పరిమితులను అర్థం చేసుకోవడానికి మరియు మనం ఏ సాఫ్ట్‌వేర్-స్థాయి పరిమితులను సెట్ చేయాలో నిర్ణయించడానికి మేము పనితీరు బెంచ్‌మార్క్‌లను కూడా అమలు చేస్తాము. ఆచరణలో, దీని అర్థం క్లస్టర్లు నడుస్తున్న హార్డ్‌వేర్‌పై ఆధారపడి మారే కాఫ్కా బ్రోకర్ రీడ్ మరియు రైట్ థ్రాట్లలను సెట్ చేయడం. మా SSD మెషీన్‌లు ప్రతి బ్రోకర్‌కు అధిక త్రూపుట్‌ను నిర్వహించగలవు, అయితే మా HDD మెషీన్‌లు చారిత్రక డేటాను దీర్ఘకాలికంగా నిల్వ ఉంచాల్సిన వినియోగ సందర్భాలకు మరింత అనుకూలంగా ఉంటాయి. 

విశ్వసనీయత కోసం నిర్మించడం

క్యూ ప్లాట్‌ఫారమ్ Roblox యొక్క మౌలిక సదుపాయాలలో ఒక కీలకమైన భాగం, మరియు విశ్వసనీయతను కొనసాగించడం చాలా ముఖ్యం. ప్రీలాంచ్ పరీక్షతో పాటు, నిరంతర వైఫల్య దృశ్య పరీక్షలు (కొన్నిసార్లు గేమ్ డే ఎక్సర్‌సైజెస్ అని పిలుస్తారు) మా మౌలిక సదుపాయాలు సింగిల్ హోస్ట్ వైఫల్యం, ర్యాక్ వైఫల్యం, నెట్‌వర్కింగ్ సమస్యలు మరియు అనేక ఇతర వైఫల్య రీతులకు నిరోధకంగా ఉన్నాయని ధృవీకరించడంలో కీలక పాత్ర పోషించాయి. మా విశ్వసనీయత బృందం యొక్క అంతర్గత కాస్ (Chaos) టెస్టింగ్ ప్లాట్‌ఫారమ్ వివిధ వైఫల్య దృశ్యాలను అనుకరించే ప్రక్రియను ప్రారంభించి, దానిని క్రమబద్ధీకరించింది. ఈ పరీక్షలు సిస్టమ్ మెరుగుదలలను లేదా క్షీణతలను గుర్తించడంలో సహాయపడతాయి మరియు అలర్ట్‌లను క్రమం తప్పకుండా ధృవీకరించడం ద్వారా, అలాగే అరుదైన సమస్యలతో సహా వివిధ సమస్యలను పరిష్కరించడానికి అవసరమైన దశలతో ఆపరేటర్లకు పరిచయం ఉండేలా చూడటం ద్వారా కార్యాచరణ నైపుణ్యాన్ని పెంచుతాయి.

ఆధారపడిన వినియోగ సందర్భాల కోసం క్యూ కార్యాచరణను త్వరగా పునరుద్ధరించగల ఫెయిలోవర్ ప్రక్రియలను కూడా మేము రూపొందించి, అమలు చేశాము. ఒక వ్యక్తిగత క్లస్టర్ పూర్తిగా విఫలమైన సందర్భంలో కూడా, తగిన సామర్థ్యం ఉన్న ఆరోగ్యకరమైన క్లస్టర్కు క్లయింట్‌లను మార్చగలుగుతున్నాము. మా వద్ద తగినంత ఉపయోగించని సామర్థ్యం అందుబాటులో ఉండేలా చూసుకోవడానికి, మేము ఒక స్టాండ్‌బై కాఫ్కా క్లస్టర్‌ను నిర్వహిస్తాము. ఇది లైవ్ క్లస్టర్‌ల మధ్య ట్రాఫిక్‌ను మార్చేటప్పుడు నాయిసీ నైబర్ సమస్యల ప్రమాదాన్ని తొలగించడంలో సహాయపడుతుంది.

కింద ఉన్న రేఖాచిత్రం ఫెయిలోవర్‌ను అమలు చేయడానికి అవసరమైన ఉన్నత-స్థాయి దశలను చూపుతుంది. మొదట, ఒక ఆపరేటర్ ఫెయిలోవర్ పరిధిని గుర్తిస్తారు. ఆ తర్వాత, స్టాండ్‌బై క్లస్టర్‌లో ఒక ఆటోమేటెడ్ బల్క్ ఆపరేషన్‌తో టాపిక్‌లు మరియు యాక్సెస్ కంట్రోల్ జాబితాలు (ACLలు) సృష్టించబడతాయి. చివరగా, ఆపరేటర్ మా కంట్రోల్ ప్లేన్ సర్వీస్ కాన్ఫిగ్‌లను అప్‌డేట్ చేస్తారు, దీనిని క్లయింట్లు ఏదైనా రీకనెక్షన్ అవసరమా లేదా అని నిర్ధారించుకోవడానికి పోల్ చేస్తాయి. కింద ఉన్న చిత్రం సాధారణ రియల్-టైమ్ వినియోగ సందర్భాల కోసం. మరొక వాడకం కేసులు మరియు దృశ్యాల కోసం మా వద్ద అదనపు వ్యూహాలు మరియు సాధనాలు ఉన్నాయి, వీటిలో మిర్రర్ మేకర్ 2 ఉపయోగించి టాపిక్ మిర్రరింగ్, డేటా బ్యాక్‌ఫిల్ సాధనాలు, మరియు మరిన్ని ఉన్నాయి.

రోబ్లాక్స్‌కు భద్రతపై కఠినమైన అవసరాలు ఉన్నాయి, ఇది విశ్వసనీయతలో కూడా ఒక కీలకమైన భాగం. మేము ఎన్‌క్రిప్షన్ ఇన్ ట్రాన్సిట్ (mTLS తో), ఎన్‌క్రిప్షన్ ఎట్ రెస్ట్ (ఎన్‌క్రిప్టెడ్ డిస్క్ తో), డేటా నిలుపుదల వయస్సు అవసరాలు, మరియు కాఫ్కా ప్రిన్సిపల్స్ మరియు ACLలతో ప్రామాణీకరణ/అధికార ప్రమాణీకరణ వంటి ప్రామాణిక భద్రతా ఫీచర్లను అమలు చేసాము. భద్రతను మరింత మెరుగుపరచడానికి మేము మా వినియోగదారుల క్రెడెన్షియల్స్‌ను కూడా ఆటోమేటిక్‌గా రొటేట్ చేస్తాము.

దీనికి అదనంగా, వేగవంతమైన OS ప్యాచింగ్ మరియు రాక్ డ్రెయిన్‌లను సులభతరం చేయడానికి మేము మా కంట్రోల్ ప్లేన్‌లో కస్టమ్ హ్యాండ్లింగ్‌ను నిర్మించాము. OS ప్యాచింగ్ సమయంలో, మేము డేటాను డిస్క్‌లో నిలుపుతాము, తద్వారా ప్యాచ్ చేయబడిన మెషీన్‌లు Kafka క్లస్టర్‌లో తిరిగి చేరిన తర్వాత వేగంగా ఆరోగ్యంగా మారగలవు. ఈ విధంగా, మా ఫ్లీట్ పెరుగుతున్నప్పటికీ, మేము 30 రోజులలోపు దాని మొత్తాన్ని ప్యాచ్ చేయగలము. క్రూయిజ్ కంట్రోల్ వంటి సాధనాలతో, మేము మా డేటాను రాక్-అవేర్ పద్ధతిలో పునరుత్పత్తి చేస్తాము, తద్వారా డేటా లభ్యతను ప్రభావితం చేయకుండా మొత్తం రాక్‌లను నిర్వహణ మరియు నెట్‌వర్క్ ప్యాచింగ్ కోసం ఆఫ్‌లైన్‌లోకి తీసుకోవచ్చు.

ముందున్న మార్గం

మా క్యూ ప్లాట్‌ఫారమ్ కోసం తదుపరి అధ్యాయం, ఎలాస్టిసిటీ మరియు ఐసోలేషన్‌ను మెరుగుపరుస్తూనే, డెవలపర్‌ల కోసం ప్లాట్‌ఫారమ్‌ను మరింత సులభతరం చేయడం గురించి. మేము ప్రొడ్యూసర్ మరియు కన్స్యూమర్ ప్రాక్సీలతో పాటు పూర్తిగా నిర్వహించబడే కనెక్టర్‌లతో సహా కొత్త అబ్స్ట్రాక్షన్‌లలో పెట్టుబడి పెడుతున్నాము. ఈ సిస్టమ్‌లు అప్లికేషన్ బృందాలను ఇన్‌ఫ్రాస్ట్రక్చర్ సంక్లిష్టత నుండి మరింత వేరు చేస్తాయి మరియు మా ప్లాట్‌ఫారమ్‌లను పెద్ద ఎత్తున స్వీకరించడం మరియు నిర్వహించడం సులభతరం చేస్తాయి. ఉదాహరణకు, ఒక కన్స్యూమర్ ప్రాక్సీ పోటీ కన్స్యూమర్ నమూనాను (competing consumer pattern) ప్రారంభిస్తుంది, ఇది ప్లాట్‌ఫారమ్ విస్తృత శ్రేణి వినియోగ సందర్భాలకు మద్దతు ఇవ్వడానికి మరియు Kafka పార్టిషన్ల స్కేలింగ్ నుండి ప్రాసెసర్‌ల స్కేలింగ్‌ను వేరు చేయడానికి అనుమతిస్తుంది. ఇది నోటిఫికేషన్ల యొక్క భారీ వెల్లువలను ప్రాసెస్ చేయడం వంటి వినియోగ సందర్భాలకు విలువైనది, వీటికి క్రమబద్ధీకరణ అవసరం లేదు మరియు ఎండ్-టు-ఎండ్ డెలివరీ లక్ష్యాలను సాధించడానికి కట్టుబడి లేకుండా ప్రాసెసర్ సంఖ్యను తాత్కాలికంగా పెంచుకోవడం ద్వారా ప్రయోజనం పొందగలవు.

కాఫ్కాను స్కేల్ చేయడం అనేది కేవలం క్లస్టర్ల సంఖ్య మరియు పరిమాణాన్ని పెంచడం గురించి మాత్రమే కాదు. ఇది ప్రతిరోజూ ఆశావాదం మరియు మర్యాదతో ప్రతిరోజూ వంద కోట్ల మందిని కలపాలనే మా ప్రయాణంలో రాబ్లాక్స్‌కు కొనసాగడానికి వీలు కల్పించే ఇంజనీరింగ్ క్రమశిక్షణ, అబ్‌స్ట్రాక్షన్‌లు మరియు ఆపరేషనల్ మోడల్‌ను నిర్మించడం గురించి. 

కృతజ్ఞతలు: రాబ్లాక్స్ క్యూ ప్లాట్‌ఫారమ్‌కు వారి ముఖ్యమైన సహకారాల కోసం డానీ యువాన్ మరియు జార్జ్ లీలకు ధన్యవాదాలు.