टिंडरची कुबर्नेट्समध्ये हलवा

द्वारा लिखित: ख्रिस ओ ब्रायन, अभियांत्रिकी व्यवस्थापक | ख्रिस थॉमस, अभियांत्रिकी व्यवस्थापक जिनिनॉंग ली, वरिष्ठ सॉफ्टवेअर अभियंता | द्वारा संपादित: कूपर जॅक्सन, सॉफ्टवेअर अभियंता

का

जवळजवळ दोन वर्षांपूर्वी टिंडरने आपला प्लॅटफॉर्म कुबर्नेट्समध्ये हलविण्याचा निर्णय घेतला. कुबर्नेट्सने आम्हाला टेंडर अभियांत्रिकीला कंटेनरकरणाकडे आणि लो-टच ऑपरेशनद्वारे अपरिवर्तनीय तैनातीद्वारे चालविण्याची संधी दिली. अनुप्रयोग तयार करणे, उपयोजन आणि पायाभूत सुविधा कोड म्हणून परिभाषित केल्या जातील.

आम्ही प्रमाण आणि स्थिरतेची आव्हाने सोडवण्याचा विचार करीत होतो. जेव्हा स्केलिंग गंभीर बनते, तेव्हा अनेकदा नवीन ईसी 2 उदाहरणे ऑनलाइन येण्याच्या प्रतीक्षेत आम्ही बर्‍याच मिनिटांचा सामना केला. काही मिनिटांपेक्षा काही सेकंदात कंटेनरचे वेळापत्रक निश्चित करणे आणि रहदारी सेवा देण्याची कल्पना आम्हाला आकर्षित करत होती.

हे सोपे नव्हते. 2019 च्या सुरुवातीच्या आमच्या स्थलांतर दरम्यान, आम्ही आमच्या कुबर्नेट्स क्लस्टरमध्ये गंभीर वस्तुमान गाठले आणि रहदारीचे प्रमाण, क्लस्टर आकार आणि डीएनएसमुळे विविध आव्हानांचा सामना करण्यास सुरवात केली. आम्ही 200 सेवा स्थलांतरित करण्यासाठी आणि कुबर्णीट्स क्लस्टर चालविण्यासाठी एकूण 1,000 गाठी, 15,000 शेंगा आणि 48,000 चालणार्‍या कंटेनरसाठी मनोरंजक आव्हाने सोडविली.

कसे

जानेवारी 2018 पासून, आम्ही स्थलांतर प्रयत्नांच्या विविध टप्प्यांमधून मार्ग काढला. आम्ही आमच्या सर्व सेवा कंटेनर करुन आणि त्यांना कुबर्नेट्सच्या होस्ट केलेल्या स्टेजिंग वातावरणात मालिका तैनात करून प्रारंभ केला. ऑक्टोबरपासून आम्ही आमच्या सर्व वारसा सेवा पद्धतशीरपणे कुबर्नेट्समध्ये हलविण्यास सुरुवात केली. पुढच्या वर्षी मार्चपर्यंत आम्ही आमच्या माइग्रेशनला अंतिम रूप दिले आणि टिंडर प्लॅटफॉर्म आता केवळ कुबर्नेट्सवर चालतो.

कुबर्नेट्ससाठी प्रतिमा तयार करणे

कुबर्नेट्स क्लस्टरमध्ये चालू असलेल्या मायक्रो सर्व्हिसेससाठी than० हून अधिक स्त्रोत कोड रेपॉजिटरीज आहेत. या रिपॉझिटरीजमधील कोड वेगवेगळ्या भाषांमध्ये (उदा. नोड.जेज, जावा, स्काला, गो) त्याच भाषेसाठी एकाधिक रनटाइम वातावरणासह लिहिलेले आहे.

बिल्ड सिस्टमची रचना प्रत्येक मायक्रोसर्सीससाठी पूर्णपणे सानुकूल "बिल्ड कॉन्टेक्स्ट" वर ऑपरेट करण्यासाठी डिझाइन केली गेली आहे, ज्यात सामान्यत: डॉकफॉर्मिल आणि शेल कमांड्सची मालिका असते. त्यांची सामग्री पूर्णपणे सानुकूल करण्यायोग्य असताना, हे बिल्ड संदर्भ सर्व एक प्रमाणित स्वरूपाचे अनुसरण करून लिहिलेले आहेत. बिल्ड संदर्भांचे मानकीकरण एकाच बिल्ड सिस्टमला सर्व मायक्रोसेव्हर्स हाताळण्यास परवानगी देते.

आकृती 1-1 बिल्डर कंटेनरद्वारे प्रमाणित बिल्ड प्रक्रिया

रनटाइम वातावरणात जास्तीत जास्त सुसंगतता मिळविण्यासाठी, विकास आणि चाचणी टप्प्यात समान बिल्ड प्रक्रिया वापरली जात आहे. जेव्हा आम्हाला व्यासपीठावर सातत्याने तयार वातावरणाची हमी देण्यासाठी एखादे मार्ग तयार करण्याची आवश्यकता होती तेव्हा हे एक अनन्य आव्हान आहे. परिणामी, सर्व बिल्ड प्रक्रिया एका विशेष "बिल्डर" कंटेनरमध्ये चालवल्या जातात.

बिल्डर कंटेनरच्या अंमलबजावणीसाठी बर्‍याच प्रगत डॉकर तंत्राची आवश्यकता होती. टिंडर खासगी रिपॉझिटरीजमध्ये प्रवेश करण्यासाठी आवश्यक असलेल्या या बिल्डर कंटेनरला स्थानिक वापरकर्ता आयडी आणि सीक्रेट्स (उदा. एसएसएच की, एडब्ल्यूएस क्रेडेन्शियल्स इ.) वारसा मिळाला आहे. बिल्ड आर्टिफिकेशन्स संचयित करण्याचा नैसर्गिक मार्ग ठेवण्यासाठी हे स्त्रोत कोड असलेल्या स्थानिक निर्देशिकांना माउंट करते. हा दृष्टिकोन कार्यक्षमतेत सुधारित करतो, कारण तो बिल्डर कंटेनर आणि होस्ट मशीन दरम्यान बनवलेल्या कलाकृतींचे कॉपी काढून टाकतो. पुढील कॉन्फिगरेशनशिवाय पुढील वेळी संग्रहित बिल्ड आर्टिफॅक्ट पुन्हा वापरल्या जातात.

काही सेवांसाठी, कंपाईल-टाइम वातावरणास रन-टाइम वातावरणाशी जुळण्यासाठी आम्हाला बिल्डरमध्ये आणखी एक कंटेनर तयार करण्याची आवश्यकता आहे (उदा. नोड.जेएस बीसीक्रिप्ट लायब्ररी स्थापित करणे प्लॅटफॉर्म-विशिष्ट बायनरी आर्टिफॅक्ट्स व्युत्पन्न करते). कंपाईल-टाइम आवश्यकता सेवांमध्ये भिन्न असू शकतात आणि अंतिम डॉकफॉर्म फ्लायवर बनलेली असते.

कुबर्नेट्स क्लस्टर आर्किटेक्चर आणि माइग्रेशन

क्लस्टर साइझिंग

आम्ही Amazonमेझॉन ईसी 2 घटनांवर स्वयंचलित क्लस्टर तरतूदीसाठी कुब-औस वापरण्याचे ठरविले. लवकर, आम्ही एका सामान्य नोड पूलमध्ये सर्वकाही चालवत होतो. संसाधनांचा अधिक चांगला वापर करण्यासाठी आम्ही कामाचे ओझे वेगवेगळ्या आकारात आणि घटनांमध्ये वेगळे करण्याची आवश्यकता लवकर ओळखली. कारण असे होते की मोठ्या संख्येने थ्रेडेड शेंगा एकत्रितपणे चालविण्यामुळे त्यांना आमच्याकडे जास्त अंदाज लावण्याऐवजी जास्त प्रमाणात सिंगल-थ्रेडेड शेंगा एकत्र राहू देता येतात.

आम्ही यावर पुर्तता केली:

  • मॉनिटरिंगसाठी एम 5.4 एक्सलेरिज (प्रोमीथियस)
  • नोड.जेएस वर्कलोड (सिंगल-थ्रेडेड वर्कलोड) साठी c5.4xlarge
  • जावा आणि गो (मल्टी-थ्रेडेड वर्कलोड) साठी c5.2xlarge
  • कंट्रोल प्लेन (n नोड्स) साठी सी .4.xxlarge

स्थलांतर

आमच्या वारसा इन्फ्रास्ट्रक्चरपासून कुबर्नेट्समध्ये स्थलांतर करण्याच्या तयारीच्या चरणांपैकी एक म्हणजे विशिष्ट व्हर्च्युअल प्रायव्हेट क्लाऊड (व्हीपीसी) सबनेटमध्ये तयार केलेल्या नवीन लवचिक लोड बॅलेन्सर्स (ईएलबी) कडे निर्देश करण्यासाठी विद्यमान सेवा-सेवेतील संप्रेषण बदलणे. हे सबनेट कुबर्नेट्स व्हीपीसीकडे पाहिले गेले. सेवेच्या अवलंबित्वासाठी विशिष्ट ऑर्डरिंगची पर्वा न करता आम्हाला ग्रेन्युलर मॉड्यूल्स स्थलांतर करण्याची अनुमती दिली.

हे अंतिम बिंदू भारित डीएनएस रेकॉर्ड संच वापरून तयार केले गेले होते ज्यात प्रत्येक नवीन ईएलबीकडे निर्देशित करणारा सीएनएम होता. कटओव्हर करण्यासाठी, आम्ही 0 नवीन वजनासह नवीन कुबर्नेट सर्व्हिस ईएलबीकडे लक्ष वेधून नवीन रेकॉर्ड जोडला. नंतर आम्ही रेकॉर्ड सेटवर टाइम टू लाइव्ह (टीटीएल) 0 वर सेट केले. जुन्या आणि नवीन वेट्स नंतर हळू हळू समायोजित केल्या. अखेरीस नवीन सर्व्हरवर 100% सह समाप्त होईल. कटओव्हर पूर्ण झाल्यानंतर टीटीएल काहीतरी अधिक वाजवी ठरविण्यात आले.

आमच्या जावा विभागांनी कमी डीएनएस टीटीएलचा गौरव केला, परंतु आमच्या नोड अनुप्रयोगांनी तसे केले नाही. आमच्या एका अभियंत्याने कनेक्शन पूल कोडचा एक भाग त्या मॅनेजरमध्ये लपेटण्यासाठी पुन्हा लिहिला जो प्रत्येक 60 च्या दशकात तलाव रीफ्रेश करेल. यामुळे आमच्यासाठी कोणतेही कौतुक कामगिरी यशस्वी झाले नाही.

शिकणे

नेटवर्क फॅब्रिक मर्यादा

8 जानेवारी, 2019 रोजी पहाटेच्या सुमारास टिंडरच्या प्लॅटफॉर्मवर सततचा त्रास जाणवला. त्या दिवशी सकाळी व्यासपीठाच्या विलंबात असंबंधित वाढीस उत्तर म्हणून, क्लस्टरवर पॉड आणि नोडची संख्या मोजली गेली. यामुळे आमच्या सर्व नोड्सवर एआरपी कॅशे संपुष्टात आले.

एआरपी कॅशेशी संबंधित तीन लिनक्स मूल्ये आहेतः

जमा

gc_thresh3 एक हार्ड कॅप आहे. आपण "शेजारी टेबल ओव्हरफ्लो" लॉग नोंदी घेत असल्यास हे सूचित करते की एआरपी कॅशेचे सिंक्रोनस कचरा संग्रहण (जीसी) करूनही, शेजारी प्रवेश संचयित करण्यासाठी पुरेशी जागा नव्हती. या प्रकरणात, कर्नल फक्त पॅकेट संपूर्णपणे खाली करते.

आम्ही कुबर्नेटमध्ये आमच्या नेटवर्क फॅब्रिक म्हणून फ्लॅनेल वापरतो. पॅकेट्स व्हीएक्सएलएएन मार्गे अग्रेषित केली जातात. व्हीएक्सएलएएन एक लेअर 3 नेटवर्कवरील एक लेअर 2 आच्छादन योजना आहे. हे लेअर 2 नेटवर्क विभाग वाढविण्याचे साधन प्रदान करण्यासाठी मॅक अ‍ॅड्रेस-इन-यूझर डेटाग्राम प्रोटोकॉल (मॅक-इन-यूडीपी) एन्केप्सुलेशन वापरते. प्रत्यक्ष डेटा सेंटर नेटवर्कवरील ट्रान्सपोर्ट प्रोटोकॉल आयपी प्लस यूडीपी आहे.

आकृती 2-1 फ्लानेल आकृती (क्रेडिट)

आकृती 2-2 व्हीएक्सएलएएन पॅकेट (क्रेडिट)

प्रत्येक कुबर्नेतेस वर्कर नोड मोठ्या / 9 ब्लॉकच्या बाहेर व्हर्च्युअल अ‍ॅड्रेस स्पेसचे स्वतःचे / 24 वाटप करतो. प्रत्येक नोडसाठी, याचा परिणाम 1 मार्ग सारणी प्रविष्टी, 1 एआरपी टेबल प्रविष्टी (फ्लॅनेल 1 इंटरफेसवर) आणि 1 अग्रेषण डेटाबेस (एफडीबी) प्रविष्टीमध्ये होते. जेव्हा कार्यकर्ता नोड प्रथम लॉन्च करतो तेव्हा किंवा प्रत्येक नवीन नोड शोधला जातो तेव्हा हे जोडले जातात.

याव्यतिरिक्त, नोड-टू-पॉड (किंवा पॉड-टू-पॉड) संप्रेषण शेवटी एथ 0 इंटरफेसवर (वरील फ्लॅनेल डायग्राममध्ये चित्रित केलेले) वाहते. यामुळे प्रत्येक संबंधित नोड स्रोत आणि नोड गंतव्यस्थानाच्या एआरपी टेबलमध्ये अतिरिक्त प्रविष्टी होईल.

आपल्या वातावरणात, या प्रकारचा संवाद खूप सामान्य आहे. आमच्या कुबर्नेतेस सर्व्हिस ऑब्जेक्ट्ससाठी, एक ईएलबी तयार केला जातो आणि कुबर्नेट्स प्रत्येक नोडला ईएलबीने नोंदणी करतो. ईएलबी पॉड जागरूक नाही आणि निवडलेला नोड पॅकेटचा अंतिम गंतव्य असू शकत नाही. कारण जेव्हा ईएलबीकडून नोडला पॅकेट प्राप्त होते तेव्हा ते सेवेसाठी त्याच्या iptables नियमांचे मूल्यांकन करते आणि सहजपणे दुसर्‍या नोडवर एक पॉड निवडते.

आउटेजच्या वेळी, क्लस्टरमध्ये एकूण नोड्स होते. वर वर्णन केलेल्या कारणांसाठी, हे डीफॉल्ट gc_thresh3 मूल्य ग्रहण करण्यासाठी पुरेसे होते. एकदा असे झाले की, केवळ पॅकेट टाकली जात नाहीत तर एआरपी सारणीमधून संपूर्ण फ्लॅनेल / 24 आभासी पत्त्याची जागा गहाळ आहे. नोड टू पॉड कम्युनिकेशन आणि डीएनएस लुकअप अयशस्वी. (डीएनएस क्लस्टरमध्ये होस्ट केले आहे, कारण या लेखात नंतर अधिक तपशीलवार वर्णन केले जाईल.)

निराकरण करण्यासाठी, gc_thresh1, gc_thresh2, आणि gc_thresh3 मूल्ये उठविली जातात आणि गहाळ नेटवर्क पुन्हा नोंदणी करण्यासाठी फ्लानेल पुन्हा सुरू करणे आवश्यक आहे.

स्केलवर अनपेक्षितरित्या डीएनएस चालवित आहे

आमचे स्थलांतर समायोजित करण्यासाठी, आम्ही आमच्या सेवांसाठी लेगसीपासून कुबर्नेट्स पर्यंत रहदारी आकार आणि वाढीव कटओव्हर सुलभ करण्यासाठी डीएनएसचा जोरदार उपयोग केला. आम्ही संबंधित रूट 53 रेकॉर्डशीट्सवर तुलनेने कमी टीटीएल मूल्ये सेट केली आहेत. जेव्हा आम्ही EC2 घटनांवर आमचा वारसा पायाभूत सुविधा चालवितो, तेव्हा आमचे निराकरणकर्ता कॉन्फिगरेशन अ‍ॅमेझॉनच्या डीएनएसकडे निर्देश करते. आम्ही हे मान्य केले आणि आमच्या सेवा आणि Amazonमेझॉनच्या सेवांसाठी (टी. डायनामोडीबी) तुलनेने कमी टीटीएलची किंमत मोठ्या प्रमाणात कोणाकडेही गेली.

आम्ही कुबर्निट्सला जास्तीत जास्त सेवांवर चढत असताना, आम्हाला आढळले की आम्ही स्वत: ला डीएनएस सेवा चालवित आहोत जे प्रति सेकंदाला 250,000 विनंत्यांना उत्तर देत आहे. आमच्या अनुप्रयोगांमध्ये आम्हाला मधूनमधून आणि प्रभावी डीएनएस लुकअप कालबाह्य होत आहे. संपूर्ण ट्यूनिंग प्रयत्नांनंतर आणि डीएनएस प्रदात्याने कोरेरडीएनएस उपयोजनावर स्विच केले असून त्यावेळेस 120 कोरे वापरणा 1,000्या 1000 शेंगा असाव्यात.

इतर संभाव्य कारणे आणि उपायांवर संशोधन करताना, आम्हाला लिनक्स पॅकेट फिल्टरिंग फ्रेमवर्क नेटफिल्टरवर परिणाम करणारे रेस अट वर्णन करणारे लेख आढळले. फ्लॅनेल इंटरफेसवरील वाढीव इन्सर्ट_फेल्ड काउंटरसह आम्ही पाहत असलेल्या डीएनएस कालबाह्य लेखाच्या निष्कर्षांसह संरेखित केले.

सोर्स आणि डेस्टिनेशन नेटवर्क अ‍ॅड्रेस ट्रान्सलेशन (एसएनएटी आणि डीएनएटी) आणि त्यानंतरच्या कॉन्ट्रॅक टेबलमध्ये समाविष्ट केल्याच्या दरम्यान ही समस्या उद्भवते. आंतरिकरित्या चर्चा झालेल्या आणि समुदायाद्वारे प्रस्तावित केलेल्या एका कामाचा अर्थ म्हणजे डीएनएसला कामगार नोडमध्ये हलविणे. या प्रकरणातः

  • एसएनएटी आवश्यक नाही, कारण रहदारी नोडवर स्थानिक पातळीवर रहात आहे. हे एथ 0 इंटरफेसवर प्रसारित करण्याची आवश्यकता नाही.
  • डीएनएटी आवश्यक नाही कारण गंतव्य आयपी नोडवर स्थानिक आहे आणि प्रति इप्टेबल्स नियमांनुसार यादृच्छिकपणे निवडलेला पॉड नाही.

आम्ही या दृष्टिकोनातून पुढे जाण्याचा निर्णय घेतला. कोरडीएनएस कुबर्नेट्समध्ये डेमनसेट म्हणून तैनात करण्यात आले आणि आम्ही कुबलेट - क्लस्टर-डीएनएस कमांड ध्वजांकन करून नोडच्या स्थानिक डीएनएस सर्व्हरला प्रत्येक पॉडच्या रेजोलव कॉन्फमध्ये इंजेक्शन दिला. डीएनएस टाइमआउटसाठी कार्यवाही प्रभावी होते.

तथापि, आम्ही अद्याप ड्रॉप केलेले पॅकेट आणि फ्लॅनेल इंटरफेसच्या घाला_फेल्ड काउंटर वाढ पाहतो. वरील कार्यवाहीनंतरही हे कायम राहील कारण आम्ही फक्त डीएनएस रहदारीसाठी एसएनएटी आणि / किंवा डीएनएटी टाळले. अन्य प्रकारच्या रहदारीसाठी अद्याप शर्यतीची स्थिती उद्भवेल. सुदैवाने, आमची बर्‍याच पॅकेट्स टीसीपी आहेत आणि जेव्हा अट येते तेव्हा पॅकेट यशस्वीरित्या पुनर्प्रसारित केले जातील. सर्व प्रकारच्या रहदारीसाठी दीर्घकालीन निश्चित करणे ही आपण अद्याप चर्चा करीत आहोत.

चांगले भार संतुलन साध्य करण्यासाठी दूत वापरणे

आम्ही आमच्या बॅकएंड सेवा कुबर्निट्समध्ये स्थलांतरित केल्यावर, शेंगा ओलांडून आम्ही असंतुलित भार सहन करू लागलो. आम्हाला आढळले आहे की एचटीटीपी कीपलाइव्हमुळे, ईएलबी कनेक्शन प्रत्येक रोलिंग उपयोजनाच्या पहिल्या तयार शेंगाशी चिकटून आहेत, त्यामुळे बहुतेक रहदारी उपलब्ध शेंगाच्या थोड्या टक्क्यांमधून वाहत गेली. सर्वात वाईट अपराधींसाठी नवीन उपयोजनांवर 100% मॅक्ससर्ज वापरण्याचा आम्ही प्रयत्न केला त्यातील प्रथम शमननांपैकी एक. हे काही मोठ्या तैनात तैनात करून अत्यल्प प्रभावी आणि टिकाव दीर्घकाळ नव्हते.

आम्ही वापरलेले आणखी एक शमन गंभीर सेवांवर संसाधनांच्या विनंत्या कृत्रिमरित्या फुगविणे होते जेणेकरून एकत्रित शेंगा इतर जड शेंगासह अधिक हेडरूम मिळतील. स्त्रोत कचरा मुळे हे दीर्घकाळही टिकाऊ ठरणार नाही आणि आमचे नोड अनुप्रयोग एकच धागेदोरे होते आणि त्यामुळे प्रभावीपणे 1 कोरवर कॅप केले गेले. अधिक चांगले संतुलन वापरण्याचा एकमेव स्पष्ट उपाय होता.

आम्ही आंतरिकरित्या दूत यांचे मूल्यांकन करीत होतो. आम्हाला हे फार मर्यादित फॅशनमध्ये तैनात करण्याची आणि त्वरित लाभ घेण्याची संधी मिळाली. दूत एक मुक्त स्रोत, उच्च-कार्यक्षमता स्तर 7 प्रॉक्सी आहे जो मोठ्या सेवा-देणार्या आर्किटेक्चरसाठी डिझाइन केला आहे. हे स्वयंचलित रिट्रीज, सर्किट ब्रेकिंग आणि ग्लोबल रेट मर्यादिततेसह प्रगत लोड बॅलेंसिंग तंत्राची अंमलबजावणी करण्यास सक्षम आहे.

आम्ही बनवलेल्या कॉन्फिगरेशनमध्ये लोकल कंटेनर पोर्टला धक्का देण्यासाठी एक मार्ग आणि क्लस्टर असलेल्या प्रत्येक शेंगाबरोबर एक दूत साइडकार असायचे. संभाव्य कॅसकेडिंग कमी करण्यासाठी आणि लहान स्फोट त्रिज्या ठेवण्यासाठी आम्ही प्रत्येक सेवेसाठी प्रत्येक उपलब्धता विभागात (एझेड) तैनात असलेल्या फ्रंट-प्रॉक्सी एन्व्हॉय पॉडचा एक फ्लीट वापरला. याने आमच्या एका अभियंत्याने लहान सेवा शोध यंत्रणेला एकत्र आणले ज्याने दिलेल्या सेवेसाठी प्रत्येक एझेड मधील शेंगाची यादी सहजपणे परत केली.

सर्व्हिस फ्रंट-एन्व्हॉयजने नंतर एका अपस्ट्रीम क्लस्टर आणि मार्गासह या सेवा शोध यंत्रणेचा उपयोग केला. आम्ही वाजवी टाइमआउट्स कॉन्फिगर केले, सर्किट ब्रेकरच्या सर्व सेटिंग्जस चालना दिली आणि त्यानंतर क्षणिक अपयश आणि गुळगुळीत उपयोजनांमध्ये मदत करण्यासाठी कमीतकमी पुन्हा प्रयत्न करणार्‍या कॉन्फिगरेशनमध्ये ठेवले. आम्ही या प्रत्येक फ्रंट एनव्हॉय सेवांना टीसीपी ईएलबीने फ्रंट केले. जरी आमच्या मुख्य फ्रंट प्रॉक्सी लेयरमधील कीटलिव्ह काही विशिष्ट एनडॉई पॉडवर पिन केले गेले, तरीही ते लोड हाताळण्यात अधिक सक्षम होते आणि बॅकएंडला किमान_पुन्हा द्वारे शिल्लक ठेवण्यासाठी कॉन्फिगर केले होते.

तैनात करण्यासाठी आम्ही अनुप्रयोग आणि सिडेकर पॉड या दोन्हीवर प्रीस्टॉप हुक वापरला. इनडलाइट कनेक्शन पूर्ण आणि निचरा होण्यास थोडा वेळ देण्यासाठी, थोडीशी झोपेसह, साइडकार आरोग्य तपासणी फेल अ‍ॅडमिन एंडपॉईंट नावाच्या या हुकला.

आम्ही इतक्या द्रुतपणे जाण्यात सक्षम होण्याचे एक कारण म्हणजे आम्ही आमच्या सामान्य प्रोमीथियस सेटअपमध्ये सहजपणे समाकलित करण्यात सक्षम श्रीमंत मेट्रिक्समुळे होतो. कॉन्फिगरेशन सेटिंग्जवर पुनरावृत्ती केल्यावर आणि रहदारी कमी केल्याने हे काय घडत आहे हे आम्हाला अनुमती देते.

परिणाम त्वरित आणि स्पष्ट होते. आम्ही अत्यंत असंतुलित सेवांसह प्रारंभ केला आणि या टप्प्यावर ही आमच्या क्लस्टरमधील सर्वात महत्वाच्या सेवांच्या बारा समोर चालत आहे. यावर्षी आम्ही पूर्ण-सेवा जाळ्याकडे जाण्याची योजना आखत आहोत, त्यासह अधिक प्रगत सेवा शोध, सर्किट ब्रेकिंग, आउटलेटर डिटेक्शन, रेट मर्यादित करणे आणि ट्रेसिंग.

आकृती 3-11 दूत म्हणून कटओव्हर दरम्यान एका सेवेचे सीपीयू अभिसरण

अंतिम निकाल

या शिकवणी आणि अतिरिक्त संशोधनातून, आम्ही एक मजबूत इन-हाऊस इन्फ्रास्ट्रक्चर टीम विकसित केली आहे जी मोठ्या कुबर्नेट्स क्लस्टर्सची रचना, तैनात आणि ऑपरेट कशी करावी यावर उत्तम परिचित आहे. टिंडरच्या संपूर्ण अभियांत्रिकी संस्थेला आता कुबर्नेट्सवर त्यांचे अनुप्रयोग कंटेनर कसे बनवायचे आणि उपयोजित कसे करावे याबद्दल ज्ञान आणि अनुभव आहे.

आमच्या वारसा मूलभूत सुविधांवर, जेव्हा अतिरिक्त प्रमाणात आवश्यक होते तेव्हा नवीन ईसी 2 उदाहरणे ऑनलाइन येण्याच्या प्रतीक्षेत आम्ही बर्‍याच मिनिटांचा सामना करावा लागतो. कंटेनर आता मिनिटांच्या विरूद्ध सेकंदात रहदारीचे वेळापत्रक तयार करतात आणि देतात. एकाच ईसी 2 प्रसंगी एकाधिक कंटेनरचे वेळापत्रक ठरविणे सुधारित क्षैतिज घनता देखील प्रदान करते. परिणामी, आम्ही मागील वर्षाच्या तुलनेत 2019 मध्ये ईसी 2 वर भरीव बचत बचतीचा प्रकल्प सादर केला आहे.

यास सुमारे दोन वर्षे लागली, परंतु आम्ही मार्च २०१ in मध्ये आमचे स्थलांतर अंतिम केले. टिंडर प्लॅटफॉर्म केवळ २०० सेवा, १,०० नोडस्, १,000,००० शेंगा आणि ,000 48,००० कार्यरत कंटेनर असलेल्या कुबर्निट्स क्लस्टरवर चालतो. पायाभूत सुविधा यापुढे आमच्या ऑपरेशन कार्यसंघांसाठी राखीव काम राहिले नाहीत. त्याऐवजी, संघटनेतील अभियंते या जबाबदार्‍यामध्ये भाग घेतात आणि त्यांचे अनुप्रयोग कसे तयार केले जातात आणि कोड म्हणून प्रत्येक गोष्टीसह कसे तैनात केले जातात यावर त्यांचे नियंत्रण असते.

हे देखील पहा

इन्स्टाग्रामवर एखाद्याचा उल्लेख करण्यापासून आपण कसे थांबवाल?तिच्या स्नॅपचॅटवर गर्लफ्रेंडला एका व्यक्तीने मारहाण केली आहे. तिने त्याला हटवले नाही किंवा माझ्या विनंतीनुसार मागे हटण्यास सांगावे म्हणून मी त्याला इन्स्टाग्रामवर खाजगी संदेश पाठवितो आणि तिला तिच्याकडून सर्व संपर्क तोडण्यास सांगेन. आता ती वेड आहे आणि मला वेडा म्हणत आहे. कोण बरोबर आहे?आपण आपल्या स्नॅपचॅट ओळीवर जोर दिला आहे का? आपण त्यांना पुढे का ठेवू इच्छिता?पैसे कमविण्यासाठी मी इन्स्टाग्राम बायोलिंक कसा वापरू?मी इंस्टाग्राम कथा post u2019t पोस्ट का करू शकत नाही?व्हॉट्सअ‍ॅपवर स्वयंचलितपणे डाउनलोड होण्यापासून व्हॉईस संदेश अक्षम करण्याचा कोणताही मार्ग आहे का? जर हो, तर असे करण्याची प्रक्रिया काय आहे?मी इन्स्टाग्रामवरून अनुयायी म्हणून माझे माजी काढले पाहिजे? मला शक्य झाले की हे शक्य आहे. दीर्घकथन लघु: हे एक थंड ब्रेकअप होते आणि आम्ही (जवळजवळ 3 वर्षे) बोललेलो नाही. कोणत्याने अधिक दुखावले पाहिजे: त्याला माझ्या आयुष्यावर अद्यतनित केले जात आहे की तो सोडला जात आहे?मी Android वर एखाद्याच्या इन्स्टाग्राम पोस्टचे नि: शब्द कसे करावे?