టప్పర్వేర్: ఫేస్బుక్ యొక్క కుబెర్నెట్స్ కిల్లర్?
టప్పర్వేర్తో ఏ స్థాయిలోనైనా క్లస్టర్ల సమర్ధవంతమైన మరియు విశ్వసనీయమైన నిర్వహణ
ఈరోజు సిస్టమ్స్@స్కేల్ కాన్ఫరెన్స్ మేము Tupperwareని పరిచయం చేసాము, మా క్లస్టర్ మేనేజ్మెంట్ సిస్టమ్, ఇది దాదాపు మా అన్ని సేవలను అమలు చేస్తున్న మిలియన్ల సర్వర్లలో కంటైనర్లను ఆర్కెస్ట్రేట్ చేస్తుంది. మేము మొదట 2011లో టప్పర్వేర్ని అమలు చేసాము మరియు అప్పటి నుండి మా మౌలిక సదుపాయాలు పెరిగాయి 1 డేటా సెంటర్ మొత్తానికి 15 జియో-డిస్ట్రిబ్యూటెడ్ డేటా సెంటర్లు. ఈ సమయంలో, టప్పర్వేర్ ఇప్పటికీ నిలబడలేదు మరియు మాతో అభివృద్ధి చెందింది. స్టేట్ఫుల్ సర్వీస్లకు అనుకూలమైన మద్దతు, అన్ని డేటా సెంటర్లకు ఒకే కంట్రోల్ ప్యానెల్ మరియు నిజ సమయంలో సేవల మధ్య సామర్థ్యాన్ని పంపిణీ చేసే సామర్థ్యంతో సహా ఫస్ట్-క్లాస్ క్లస్టర్ మేనేజ్మెంట్ని Tupperware ఎలా అందిస్తుందో మేము మీకు చూపుతాము. మా మౌలిక సదుపాయాలు అభివృద్ధి చెందుతున్నప్పుడు మేము నేర్చుకున్న పాఠాలను కూడా పంచుకుంటాము.
Tupperware వివిధ విధులను నిర్వహిస్తుంది. అప్లికేషన్ డెవలపర్లు అప్లికేషన్లను బట్వాడా చేయడానికి మరియు నిర్వహించడానికి దీన్ని ఉపయోగిస్తారు. ఇది అప్లికేషన్ కోడ్ మరియు డిపెండెన్సీలను ఇమేజ్లోకి ప్యాక్ చేస్తుంది మరియు దానిని సర్వర్లకు కంటైనర్లుగా అందిస్తుంది. కంటైనర్లు ఒకే సర్వర్లోని అనువర్తనాల మధ్య ఐసోలేషన్ను అందిస్తాయి, తద్వారా డెవలపర్లు అప్లికేషన్ లాజిక్తో వ్యవహరిస్తారు మరియు సర్వర్లను కనుగొనడం లేదా నవీకరణలను నిర్వహించడం గురించి ఆందోళన చెందాల్సిన అవసరం లేదు. Tupperware సర్వర్ పనితీరును కూడా పర్యవేక్షిస్తుంది మరియు అది వైఫల్యాన్ని కనుగొంటే, సమస్యాత్మక సర్వర్ నుండి కంటైనర్లను బదిలీ చేస్తుంది.
కెపాసిటీ ప్లానింగ్ ఇంజనీర్లు బడ్జెట్ మరియు పరిమితుల ఆధారంగా బృందాలకు సర్వర్ సామర్థ్యాన్ని కేటాయించడానికి టప్పర్వేర్ను ఉపయోగిస్తారు. వారు సర్వర్ వినియోగాన్ని మెరుగుపరచడానికి కూడా దీనిని ఉపయోగిస్తారు. డేటా సెంటర్ ఆపరేటర్లు డేటా సెంటర్లలో కంటైనర్లను సరిగ్గా పంపిణీ చేయడానికి మరియు నిర్వహణ సమయంలో కంటైనర్లను ఆపడానికి లేదా తరలించడానికి Tupperware వైపు మొగ్గు చూపుతారు. దీనికి ధన్యవాదాలు, సర్వర్లు, నెట్వర్క్లు మరియు పరికరాలను నిర్వహించడానికి కనీస మానవ జోక్యం అవసరం.
టప్పర్వేర్ ఆర్కిటెక్చర్
Tupperware PRN ఆర్కిటెక్చర్ మా డేటా సెంటర్లలో ఒకటి. ఈ ప్రాంతం సమీపంలోని అనేక డేటా సెంటర్ భవనాలను (PRN1 మరియు PRN2) కలిగి ఉంది. మేము ఒకే ప్రాంతంలో అన్ని సర్వర్లను నిర్వహించే ఒక నియంత్రణ ప్యానెల్ను రూపొందించాలని ప్లాన్ చేస్తున్నాము.
అప్లికేషన్ డెవలపర్లు టప్పర్వేర్ ఉద్యోగాల రూపంలో సేవలను అందిస్తారు. ఉద్యోగం బహుళ కంటైనర్లను కలిగి ఉంటుంది మరియు అవన్నీ సాధారణంగా ఒకే అప్లికేషన్ కోడ్ని అమలు చేస్తాయి.
టప్పర్వేర్ కంటైనర్లను అందించడానికి మరియు వాటి జీవితచక్రాన్ని నిర్వహించడానికి బాధ్యత వహిస్తుంది. ఇది అనేక భాగాలను కలిగి ఉంటుంది:
Tupperware ఫ్రంటెండ్ వినియోగదారు ఇంటర్ఫేస్, CLI మరియు ఇతర ఆటోమేషన్ సాధనాల కోసం APIలను అందిస్తుంది, దీని ద్వారా మీరు Tupperwareతో పరస్పర చర్య చేయవచ్చు. వారు Tupperware ఉద్యోగ యజమానుల నుండి మొత్తం అంతర్గత నిర్మాణాన్ని దాచిపెడతారు.
టప్పర్వేర్ షెడ్యూలర్ అనేది కంటైనర్ మరియు జాబ్ లైఫ్సైకిల్ను నిర్వహించడానికి బాధ్యత వహించే నియంత్రణ ప్యానెల్. ఇది ప్రాంతీయ మరియు ప్రపంచ స్థాయిలలో అమలు చేయబడుతుంది, ఇక్కడ ప్రాంతీయ షెడ్యూలర్ ఒక ప్రాంతంలో సర్వర్లను నిర్వహిస్తుంది మరియు గ్లోబల్ షెడ్యూలర్ వివిధ ప్రాంతాల నుండి సర్వర్లను నిర్వహిస్తుంది. షెడ్యూలర్ ముక్కలుగా విభజించబడింది మరియు ప్రతి షార్డ్ ఉద్యోగాల సమితిని నిర్వహిస్తుంది.
Tupperware యొక్క షెడ్యూలర్ ప్రాక్సీ అంతర్గత షార్డింగ్ను దాచిపెడుతుంది మరియు Tupperware వినియోగదారులకు అనుకూలమైన సింగిల్ పేన్ గాజును అందిస్తుంది.
Tupperware కేటాయింపుదారు సర్వర్లకు కంటైనర్లను కేటాయిస్తుంది. షెడ్యూలర్ కంటైనర్లను ఆపడం, ప్రారంభించడం, నవీకరించడం మరియు వైఫల్యాన్ని నిర్వహిస్తుంది. ప్రస్తుతం, ఒక కేటాయింపుదారు మొత్తం ప్రాంతాన్ని ముక్కలుగా విభజించకుండా నిర్వహించగలరు. (పరిభాషలో తేడాను గమనించండి. ఉదాహరణకు, Tupperwareలోని షెడ్యూలర్ నియంత్రణ ప్యానెల్కు అనుగుణంగా ఉంటుంది Kubernetes, మరియు టప్పర్వేర్ కేటాయింపుదారుని కుబెర్నెట్స్లో షెడ్యూలర్ అంటారు.)
రిసోర్స్ బ్రోకర్ సర్వర్ మరియు సర్వీస్ ఈవెంట్ల కోసం సత్యం యొక్క మూలాన్ని నిల్వ చేస్తుంది. మేము ప్రతి డేటా సెంటర్కు ఒక రిసోర్స్ బ్రోకర్ని అమలు చేస్తాము మరియు ఇది ఆ డేటా సెంటర్లోని సర్వర్ల గురించిన మొత్తం సమాచారాన్ని నిల్వ చేస్తుంది. రిసోర్స్ బ్రోకర్ మరియు కెపాసిటీ మేనేజ్మెంట్ సిస్టమ్ లేదా రిసోర్స్ ప్రొవిజనింగ్ సిస్టమ్, ఏ షెడ్యూలర్ డెలివరీని ఏ సర్వర్ని నియంత్రిస్తుందో డైనమిక్గా నిర్ణయిస్తుంది. ఆరోగ్య తనిఖీ సేవ సర్వర్లను పర్యవేక్షిస్తుంది మరియు రిసోర్స్ బ్రోకర్లో వారి ఆరోగ్యం గురించి డేటాను నిల్వ చేస్తుంది. సర్వర్కు సమస్యలు ఉంటే లేదా నిర్వహణ అవసరమైతే, వనరుల బ్రోకర్ కంటైనర్లను ఆపివేయమని లేదా వాటిని ఇతర సర్వర్లకు తరలించమని కేటాయింపుదారు మరియు షెడ్యూలర్కు చెబుతాడు.
Tupperware ఏజెంట్ అనేది ప్రతి సర్వర్లో నడుస్తున్న డెమోన్, ఇది కంటైనర్ల కేటాయింపు మరియు తొలగింపును నిర్వహిస్తుంది. అప్లికేషన్లు కంటైనర్లో నడుస్తాయి, ఇది వాటిని మరింత ఒంటరిగా మరియు పునరుత్పత్తికి అందిస్తుంది. పై గత సంవత్సరం సిస్టమ్స్ @స్కేల్ కాన్ఫరెన్స్ ఇమేజ్లు, btrfs, cgroupv2 మరియు systemd ఉపయోగించి వ్యక్తిగత Tupperware కంటైనర్లు ఎలా సృష్టించబడతాయో మేము ఇప్పటికే వివరించాము.
Tupperware యొక్క విలక్షణమైన లక్షణాలు
కుబెర్నెట్స్ మరియు వంటి ఇతర క్లస్టర్ మేనేజ్మెంట్ సిస్టమ్లకు టప్పర్వేర్ అనేక విధాలుగా సమానంగా ఉంటుంది మెసోస్, కానీ తేడాలు కూడా ఉన్నాయి:
రాష్ట్రీయ సేవలకు అంతర్నిర్మిత మద్దతు.
ఉద్దేశం, క్లస్టర్ల ఉపసంహరణ మరియు నిర్వహణ ఆధారంగా కంటైనర్ల డెలివరీని ఆటోమేట్ చేయడానికి వివిధ డేటా సెంటర్లలోని సర్వర్ల కోసం ఒకే నియంత్రణ ప్యానెల్.
జూమింగ్ కోసం కంట్రోల్ ప్యానెల్ విభజనను క్లియర్ చేయండి.
సాగే కంప్యూటింగ్ నిజ సమయంలో సేవల మధ్య శక్తిని పంపిణీ చేయడానికి మిమ్మల్ని అనుమతిస్తుంది.
భారీ గ్లోబల్ షేర్డ్ సర్వర్ ఫ్లీట్లో వివిధ రకాల స్టేట్లెస్ మరియు స్టేట్ఫుల్ అప్లికేషన్లకు సపోర్ట్ చేయడానికి మేము ఈ అద్భుతమైన ఫీచర్లను అభివృద్ధి చేసాము.
రాష్ట్రీయ సేవలకు అంతర్నిర్మిత మద్దతు.
ఫేస్బుక్, ఇన్స్టాగ్రామ్, మెసెంజర్ మరియు వాట్సాప్ కోసం నిరంతర ఉత్పత్తి డేటాను నిల్వ చేసే వివిధ రకాల క్లిష్టమైన స్టేట్ఫుల్ సేవలను టప్పర్వేర్ నిర్వహిస్తోంది. ఇవి కీ-విలువ జతల పెద్ద దుకాణాలు కావచ్చు (ఉదా. ZippyDB) మరియు డేటా రిపోజిటరీలను పర్యవేక్షించడం (ఉదాహరణకు, ODS గొరిల్లా и స్కూబా) స్టేట్ఫుల్ సేవలను నిర్వహించడం అంత సులభం కాదు, ఎందుకంటే నెట్వర్క్ అంతరాయాలు లేదా విద్యుత్తు అంతరాయాలతో సహా పెద్ద ఎత్తున అంతరాయాలను కంటైనర్ల సరఫరా తట్టుకోగలదని సిస్టమ్ నిర్ధారించుకోవాలి. ఫాల్ట్ డొమైన్ల అంతటా కంటైనర్లను పంపిణీ చేయడం వంటి సాంప్రదాయిక పద్ధతులు స్థితిలేని సేవలకు బాగా పని చేస్తాయి, అయితే స్టేట్ఫుల్ సేవలకు అదనపు మద్దతు అవసరం.
ఉదాహరణకు, సర్వర్ వైఫల్యం ఒక డేటాబేస్ ప్రతిరూపాన్ని అందుబాటులో లేకుండా చేస్తే, మీరు 50 పూల్ నుండి 10 సర్వర్లలో కోర్లను అప్డేట్ చేసే ఆటోమేటిక్ మెయింటెనెన్స్ని ప్రారంభించాలా? పరిస్థితిని బట్టి ఉంటుంది. ఈ 50 సర్వర్లలో ఒకదానికి అదే డేటాబేస్ యొక్క మరొక ప్రతిరూపం ఉంటే, ఒకేసారి 2 ప్రతిరూపాలను కోల్పోకుండా వేచి ఉండటం మంచిది. సిస్టమ్ నిర్వహణ మరియు పనితీరు గురించి డైనమిక్గా నిర్ణయాలు తీసుకోవడానికి, అంతర్గత డేటా రెప్లికేషన్ మరియు ప్రతి స్టేట్ఫుల్ సర్వీస్ యొక్క ప్లేస్మెంట్ లాజిక్ గురించి మాకు సమాచారం అవసరం.
టాస్క్కంట్రోల్ ఇంటర్ఫేస్ డేటా లభ్యతను ప్రభావితం చేసే నిర్ణయాలను ప్రభావితం చేయడానికి స్టేట్ఫుల్ సేవలను అనుమతిస్తుంది. ఈ ఇంటర్ఫేస్ని ఉపయోగించి, షెడ్యూలర్ కంటైనర్ ఆపరేషన్ల (పునఃప్రారంభం, నవీకరణ, మైగ్రేషన్, నిర్వహణ) గురించి బాహ్య అనువర్తనాలకు తెలియజేస్తుంది. ప్రతి ఆపరేషన్ను నిర్వహించడం సురక్షితమని Tupperwareకి తెలియజేసే నియంత్రికను స్టేట్ఫుల్ సర్వీస్ అమలు చేస్తుంది మరియు ఈ కార్యకలాపాలను తాత్కాలికంగా మార్చుకోవచ్చు లేదా ఆలస్యం చేయవచ్చు. పై ఉదాహరణలో, డేటాబేస్ కంట్రోలర్ 49 సర్వర్లలో 50 సర్వర్లను అప్డేట్ చేయమని Tupperwareకి చెప్పగలదు, అయితే ప్రస్తుతానికి ఒక నిర్దిష్ట సర్వర్ (X)ని వదిలివేయండి. ఫలితంగా, కెర్నల్ నవీకరణ వ్యవధి దాటితే మరియు డేటాబేస్ ఇప్పటికీ సమస్యాత్మక ప్రతిరూపాన్ని పునరుద్ధరించలేకపోతే, Tupperware ఇప్పటికీ X సర్వర్ను నవీకరిస్తుంది.
టప్పర్వేర్లోని అనేక స్టేట్ఫుల్ సేవలు టాస్క్కంట్రోల్ను నేరుగా కాకుండా, Facebookలో స్టేట్ఫుల్ సేవలను రూపొందించడానికి ఒక సాధారణ ప్లాట్ఫారమ్ అయిన ShardManager ద్వారా ఉపయోగిస్తాయి. Tupperwareతో, డెవలపర్లు డేటా సెంటర్లలో కంటైనర్లను ఎలా పంపిణీ చేయాలి అనే దాని గురించి తమ ఉద్దేశాన్ని పేర్కొనవచ్చు. ShardManagerతో, డెవలపర్లు కంటైనర్ల అంతటా డేటా షార్డ్లను ఎలా పంపిణీ చేయాలో వారి ఉద్దేశాన్ని నిర్దేశిస్తారు. ShardManager డేటా ప్లేస్మెంట్ మరియు దాని అప్లికేషన్ల రెప్లికేషన్ గురించి తెలుసు మరియు ప్రత్యక్ష అప్లికేషన్ ప్రమేయం లేకుండా కంటైనర్ కార్యకలాపాలను షెడ్యూల్ చేయడానికి TaskControl ఇంటర్ఫేస్ ద్వారా Tupperwareతో కమ్యూనికేట్ చేస్తుంది. ఈ ఇంటిగ్రేషన్ స్టేట్ఫుల్ సర్వీస్ల నిర్వహణను చాలా సులభతరం చేస్తుంది, అయితే టాస్క్కంట్రోల్ మరింత సామర్థ్యాన్ని కలిగి ఉంటుంది. ఉదాహరణకు, మా విస్తృతమైన వెబ్ టైర్ స్థితిలేనిది మరియు కంటైనర్లకు అప్డేట్ల రేటును డైనమిక్గా సర్దుబాటు చేయడానికి TaskControlని ఉపయోగిస్తుంది. చివరికి వెబ్ టైర్ బహుళ సాఫ్ట్వేర్ విడుదలలను త్వరగా పూర్తి చేయగలదు లభ్యతలో రాజీ పడకుండా రోజుకు.
డేటా సెంటర్లలో సర్వర్లను నిర్వహించడం
2011లో టప్పర్వేర్ మొదటిసారి ప్రారంభించినప్పుడు, ప్రతి సర్వర్ క్లస్టర్ను ప్రత్యేక షెడ్యూలర్ నిర్వహించేవారు. అప్పటికి, Facebook క్లస్టర్ అనేది ఒక నెట్వర్క్ స్విచ్కు కనెక్ట్ చేయబడిన సర్వర్ రాక్ల సమూహం, మరియు డేటా సెంటర్ అనేక క్లస్టర్లను కలిగి ఉంది. షెడ్యూలర్ ఒక క్లస్టర్లోని సర్వర్లను మాత్రమే నిర్వహించగలడు, అంటే జాబ్ బహుళ క్లస్టర్లలో విస్తరించలేదు. మా మౌలిక సదుపాయాలు పెరిగాయి, మేము ఎక్కువగా క్లస్టర్లను రద్దు చేసాము. Tupperware మార్పులు లేకుండా పనిని నిలిపివేసిన క్లస్టర్ నుండి ఇతర క్లస్టర్లకు తరలించలేనందున, దీనికి చాలా కృషి మరియు అప్లికేషన్ డెవలపర్లు మరియు డేటా సెంటర్ ఆపరేటర్ల మధ్య జాగ్రత్తగా సమన్వయం అవసరం. తొలగింపు ప్రక్రియల కారణంగా నెలల తరబడి సర్వర్లు నిష్క్రియంగా ఉన్నప్పుడు ఈ ప్రక్రియ మూలంగా వనరులు వృధా అవుతాయి.
క్లస్టర్ డీకమిషన్ సమస్యను పరిష్కరించడానికి మరియు ఇతర రకాల నిర్వహణ పనులను సమన్వయం చేయడానికి మేము రిసోర్స్ బ్రోకర్ని సృష్టించాము. రిసోర్స్ బ్రోకర్ సర్వర్తో అనుబంధించబడిన మొత్తం భౌతిక సమాచారాన్ని ట్రాక్ చేస్తుంది మరియు ప్రతి సర్వర్ని ఏ షెడ్యూలర్ నియంత్రించాలో డైనమిక్గా నిర్ణయిస్తుంది. డైనమిక్గా సర్వర్లను షెడ్యూలర్లకు లింక్ చేయడం వలన షెడ్యూలర్ వివిధ డేటా సెంటర్లలో సర్వర్లను నిర్వహించడానికి అనుమతిస్తుంది. Tupperware ఉద్యోగం ఇకపై ఒకే క్లస్టర్కు పరిమితం కానందున, Tupperware వినియోగదారులు తప్పు డొమైన్లలో కంటైనర్లను ఎలా పంపిణీ చేయాలో పేర్కొనవచ్చు. ఉదాహరణకు, డెవలపర్ నిర్దిష్ట లభ్యత జోన్లను పేర్కొనకుండా తన ఉద్దేశాన్ని ప్రకటించవచ్చు (చెప్పండి: "PRN ప్రాంతంలో 2 తప్పు డొమైన్లలో నా ఉద్యోగాన్ని అమలు చేయండి"). క్లస్టర్ లేదా సేవ నిలిపివేయబడినప్పటికీ, Tupperware ఈ ఉద్దేశాన్ని అమలు చేయడానికి తగిన సర్వర్లను కనుగొంటుంది.
మొత్తం గ్లోబల్ సిస్టమ్కు మద్దతు ఇవ్వడానికి స్కేలబుల్
చారిత్రాత్మకంగా, మా అవస్థాపన వ్యక్తిగత బృందాల కోసం వందలాది అంకితమైన సర్వర్ పూల్లుగా విభజించబడింది. ఫ్రాగ్మెంటేషన్ మరియు ప్రమాణాల కొరత కారణంగా, మేము అధిక కార్యాచరణ ఖర్చులను కలిగి ఉన్నాము మరియు నిష్క్రియ సర్వర్లను మళ్లీ ఉపయోగించడం చాలా కష్టం. గతేడాది జరిగిన సదస్సులో సిస్టమ్స్ @స్కేల్ మేము సమర్పించాము ఒక సేవగా మౌలిక సదుపాయాలు (IaaS), ఇది మా మౌలిక సదుపాయాలను ఒక పెద్ద సింగిల్ సర్వర్ పార్క్గా ఏకం చేస్తుంది. కానీ ఒకే సర్వర్ పార్కుకు దాని స్వంత ఇబ్బందులు ఉన్నాయి. ఇది కొన్ని అవసరాలను తీర్చాలి:
స్కేలబిలిటీ. మేము ప్రతి ప్రాంతంలో డేటా సెంటర్లను జోడించినందున మా మౌలిక సదుపాయాలు పెరిగాయి. సర్వర్లు చిన్నవిగా మరియు మరింత శక్తివంతంగా మారాయి, కాబట్టి ప్రతి ప్రాంతంలో వాటిలో చాలా ఎక్కువ ఉన్నాయి. ఫలితంగా, ప్రతి ప్రాంతంలోని వందల వేల సర్వర్లలో అమలు చేయగల కంటైనర్ల సంఖ్యను ఒక్కో ప్రాంతానికి ఒకే షెడ్యూలర్ నిర్వహించలేరు.
విశ్వసనీయత. షెడ్యూలర్ని అంత ఎక్కువగా స్కేల్ చేయగలిగినప్పటికీ, షెడ్యూలర్ యొక్క పెద్ద పరిధి అంటే ఎర్రర్ల ప్రమాదం ఎక్కువగా ఉందని మరియు కంటైనర్ల మొత్తం ప్రాంతం నిర్వహించలేనిదిగా మారవచ్చు.
తప్పు సహనం. భారీ అవస్థాపన వైఫల్యం (ఉదాహరణకు, నెట్వర్క్ వైఫల్యం లేదా విద్యుత్తు అంతరాయం కారణంగా షెడ్యూలర్ను నడుపుతున్న సర్వర్లు విఫలమవుతాయి), ప్రతికూల పరిణామాలు ఈ ప్రాంతంలోని సర్వర్లలో కొంత భాగాన్ని మాత్రమే ప్రభావితం చేస్తాయి.
వాడుకలో తేలిక. మీరు ఒక ప్రాంతం కోసం అనేక స్వతంత్ర షెడ్యూలర్లను అమలు చేయాలని అనిపించవచ్చు. కానీ సౌలభ్యం కోణం నుండి, ఒక ప్రాంతం యొక్క భాగస్వామ్య పూల్లోకి ప్రవేశించే ఒకే పాయింట్ సామర్థ్యం మరియు ఉద్యోగాలను నిర్వహించడం సులభం చేస్తుంది.
పెద్ద భాగస్వామ్య పూల్ను నిర్వహించడంలో సమస్యలను పరిష్కరించడానికి మేము షెడ్యూలర్ను ముక్కలుగా విభజించాము. ప్రతి షెడ్యూలర్ షార్డ్ ఈ ప్రాంతంలో దాని స్వంత ఉద్యోగాలను నిర్వహిస్తుంది మరియు ఇది షెడ్యూలర్తో సంబంధం ఉన్న ప్రమాదాన్ని తగ్గిస్తుంది. భాగస్వామ్య పూల్ పెరుగుతున్న కొద్దీ, మేము మరిన్ని షెడ్యూలర్ ముక్కలను జోడించవచ్చు. Tupperware వినియోగదారుల కోసం, ముక్కలు మరియు షెడ్యూలర్ ప్రాక్సీలు ఒక నియంత్రణ ప్యానెల్ వలె కనిపిస్తాయి. వారు పనులను నిర్వహించే చిన్న ముక్కలతో పని చేయవలసిన అవసరం లేదు. నెట్వర్క్ టోపోలాజీ ప్రకారం సర్వర్ల భాగస్వామ్య పూల్ను స్థిరంగా విభజించకుండా కంట్రోల్ ప్యానెల్ విభజించబడినప్పుడు, మేము ఇంతకు ముందు ఉపయోగించిన క్లస్టర్ షెడ్యూలర్ల నుండి షెడ్యూలర్ షార్డ్లు ప్రాథమికంగా భిన్నంగా ఉంటాయి.
సాగే కంప్యూటింగ్తో వినియోగ సామర్థ్యాన్ని మెరుగుపరచండి
మా ఇన్ఫ్రాస్ట్రక్చర్ ఎంత పెద్దదైతే, ఇన్ఫ్రాస్ట్రక్చర్ ఖర్చులను ఆప్టిమైజ్ చేయడానికి మరియు లోడ్ తగ్గించడానికి మా సర్వర్లను సమర్ధవంతంగా ఉపయోగించడం చాలా ముఖ్యం. సర్వర్ వినియోగం యొక్క సామర్థ్యాన్ని పెంచడానికి రెండు మార్గాలు ఉన్నాయి:
సాగే కంప్యూటింగ్ - నిశ్శబ్ద సమయాల్లో ఆన్లైన్ సేవలను తగ్గించండి మరియు ఆఫ్లైన్ వర్క్లోడ్ల కోసం మెషిన్ లెర్నింగ్ మరియు మ్యాప్రెడ్యూస్ జాబ్ల కోసం ఫ్రీడ్ సర్వర్లను ఉపయోగించండి.
ఓవర్లోడింగ్ - ఆన్లైన్ సేవలు మరియు బ్యాచ్ వర్క్లోడ్లను ఒకే సర్వర్లపై ఉంచండి, తద్వారా బ్యాచ్ పనిభారం తక్కువ ప్రాధాన్యతతో నడుస్తుంది.
మా డేటా సెంటర్లలో అడ్డంకి శక్తి వినియోగం. అందువల్ల, మేము మరింత ప్రాసెసింగ్ శక్తిని అందించే చిన్న, శక్తి-సమర్థవంతమైన సర్వర్లను ఇష్టపడతాము. దురదృష్టవశాత్తూ, తక్కువ CPU మరియు మెమరీ ఉన్న చిన్న సర్వర్లలో, ఓవర్లోడింగ్ తక్కువ ప్రభావవంతంగా ఉంటుంది. వాస్తవానికి, తక్కువ ప్రాసెసర్ వనరులు మరియు మెమరీని వినియోగించే ఒక చిన్న శక్తి-సమర్థవంతమైన సర్వర్లో మేము చిన్న సేవల యొక్క అనేక కంటైనర్లను ఉంచవచ్చు, అయితే ఈ పరిస్థితిలో పెద్ద సేవలు తక్కువ పనితీరును కలిగి ఉంటాయి. అందువల్ల, మా పెద్ద సేవల డెవలపర్లు మొత్తం సర్వర్లను ఉపయోగించేలా వాటిని ఆప్టిమైజ్ చేయమని మేము వారికి సలహా ఇస్తున్నాము.
ప్రాథమికంగా, మేము సాగే కంప్యూటింగ్ని ఉపయోగించి వినియోగ సామర్థ్యాన్ని మెరుగుపరుస్తాము. న్యూస్ ఫీడ్, మెసేజింగ్ ఫీచర్ మరియు ఫ్రంట్-ఎండ్ వెబ్ టైర్ వంటి మా అనేక ప్రధాన సేవలు రోజు సమయాన్ని బట్టి మారుతూ ఉంటాయి. మేము నిశ్శబ్ద సమయాల్లో ఆన్లైన్ సేవలను ఉద్దేశపూర్వకంగా తగ్గించుకుంటాము మరియు మెషిన్ లెర్నింగ్ మరియు MapReduce జాబ్ల వంటి ఆఫ్లైన్ వర్క్లోడ్ల కోసం ఫ్రీడ్ సర్వర్లను ఉపయోగిస్తాము.
మొత్తం సర్వర్లను సాగే సామర్థ్యం యొక్క యూనిట్లుగా అందించడం ఉత్తమమని మాకు అనుభవం నుండి తెలుసు, ఎందుకంటే పెద్ద సేవలు ప్రధాన దాతలు మరియు సాగే సామర్థ్యం యొక్క ప్రధాన వినియోగదారులు మరియు మొత్తం సర్వర్లను ఉపయోగించడానికి ఆప్టిమైజ్ చేయబడ్డాయి. నిశ్శబ్ద సమయాల్లో ఆన్లైన్ సేవ నుండి సర్వర్ విడుదలైనప్పుడు, రిసోర్స్ బ్రోకర్ దానిపై ఆఫ్లైన్ పనిభారాన్ని అమలు చేయడానికి షెడ్యూలర్కు సర్వర్ను లీజుకు ఇస్తాడు. ఆన్లైన్ సేవ గరిష్ట లోడ్ను అనుభవిస్తే, రిసోర్స్ బ్రోకర్ అరువు తీసుకున్న సర్వర్ను త్వరగా రీకాల్ చేస్తాడు మరియు షెడ్యూలర్తో కలిసి దానిని ఆన్లైన్ సేవకు తిరిగి ఇస్తాడు.
నేర్చుకున్న పాఠాలు మరియు భవిష్యత్తు కోసం ప్రణాళికలు
గత 8 సంవత్సరాలుగా, Facebook వేగవంతమైన వృద్ధికి అనుగుణంగా మేము Tupperwareని అభివృద్ధి చేస్తున్నాము. మేము నేర్చుకున్న వాటిని పంచుకుంటాము మరియు వేగంగా అభివృద్ధి చెందుతున్న మౌలిక సదుపాయాలను నిర్వహించడానికి ఇతరులకు ఇది సహాయపడుతుందని ఆశిస్తున్నాము:
నియంత్రణ ప్యానెల్ మరియు అది నిర్వహించే సర్వర్ల మధ్య సౌకర్యవంతమైన కనెక్షన్ని సెటప్ చేయండి. ఈ సౌలభ్యం వివిధ డేటా కేంద్రాలలో సర్వర్లను నిర్వహించడానికి నియంత్రణ ప్యానెల్ను అనుమతిస్తుంది, క్లస్టర్ల తొలగింపు మరియు నిర్వహణను ఆటోమేట్ చేయడంలో సహాయపడుతుంది మరియు సాగే కంప్యూటింగ్ని ఉపయోగించి డైనమిక్ కెపాసిటీ కేటాయింపును ప్రారంభిస్తుంది.
ప్రాంతంలో ఒకే నియంత్రణ ప్యానెల్తో, టాస్క్లతో పని చేయడం మరింత సౌకర్యవంతంగా ఉంటుంది మరియు పెద్ద షేర్డ్ సర్వర్ ఫ్లీట్ను నిర్వహించడం సులభం అవుతుంది. నియంత్రణ ప్యానెల్ దాని అంతర్గత నిర్మాణం స్కేల్ లేదా ఫాల్ట్ టాలరెన్స్ కారణాల వల్ల వేరు చేయబడినప్పటికీ, ఒక సింగిల్ పాయింట్ ఆఫ్ ఎంట్రీని నిర్వహిస్తుందని గమనించండి.
ప్లగిన్ మోడల్ని ఉపయోగించి, నియంత్రణ ప్యానెల్ రాబోయే కంటైనర్ ఆపరేషన్ల బాహ్య అప్లికేషన్లకు తెలియజేయగలదు. అంతేకాకుండా, కంటైనర్ నిర్వహణను అనుకూలీకరించడానికి స్టేట్ఫుల్ సేవలు ప్లగ్ఇన్ ఇంటర్ఫేస్ను ఉపయోగించవచ్చు. ఈ ప్లగ్ఇన్ మోడల్తో, కంట్రోల్ పానెల్ అనేక విభిన్న స్టేట్ఫుల్ సేవలను సమర్ధవంతంగా అందిస్తూనే సరళతను అందిస్తుంది.
బ్యాచ్ జాబ్లు, మెషీన్ లెర్నింగ్ మరియు ఇతర అత్యవసరం కాని సేవల కోసం దాతల సేవల నుండి మొత్తం సర్వర్లను తీసివేసే సాగే కంప్యూటింగ్ చిన్న, శక్తి-సమర్థవంతమైన సర్వర్ల సామర్థ్యాన్ని మెరుగుపరచడానికి సరైన మార్గం అని మేము నమ్ముతున్నాము.
మేము అమలు చేయడం ప్రారంభించాము ఒకే గ్లోబల్ షేర్డ్ సర్వర్ ఫ్లీట్. ప్రస్తుతం మా సర్వర్లలో దాదాపు 20% షేర్డ్ పూల్లో ఉన్నాయి. 100% సాధించడానికి, భాగస్వామ్య నిల్వ పూల్ను నిర్వహించడం, నిర్వహణను ఆటోమేట్ చేయడం, క్రాస్-అద్దెదారు అవసరాలను నిర్వహించడం, సర్వర్ వినియోగాన్ని మెరుగుపరచడం మరియు మెషిన్ లెర్నింగ్ వర్క్లోడ్లకు మద్దతును మెరుగుపరచడం వంటి అనేక సమస్యలను పరిష్కరించాల్సిన అవసరం ఉంది. ఈ సవాళ్లను స్వీకరించడానికి మరియు మా విజయాలను పంచుకోవడానికి మేము వేచి ఉండలేము.