किरायेदार अलगाव और सीमा
किरायेदार अलगाव और सीमाएं बहु-किरायेदार वास्तुकला की नींव हैं। उद्देश्य: ताकि एक किरायेदार की कार्रवाई दूसरे के डेटा, सुरक्षा और एसएलओ को कभी प्रभावित नहीं करती है, और संसाधनों को उचित और अनुमानित रूप से वितरित किया जाता है। नीचे डेटा स्तर से कंप्यूटिंग योजना और घटना प्रबंधन तक समाधानों का एक व्यावहारिक मानचित्र है।
1) धमकी मॉडल और लक्ष्य
धमकी
किरायेदारों के बीच डेटा रिसाव (तार्किक/कैश/लॉग के माध्यम से)।
"शोर पड़ोसी": एक ग्राहक में स्पाइक्स के कारण प्रदर्शन का क्षरण।
विशेषाधिकार वृद्धि (पहुंच नीति त्रुटि)।
बिलिंग बहाव (उपयोग और शुल्क का बेमेल)।
कैस्केड विफल-सुरक्षित परिदृश्य (एक की घटना कई के डाउनटाइम की ओर जाती है)।
उद्देश्य
डेटा और रहस्यों का सख्त अलगाव।
सीमांत सीमाएं/कोटा और निष्पक्ष योजना।
पारदर्शी ऑडिटिंग, अवलोकन और बिलिंग।
हादसा स्थानीयकरण और प्रति किरायेदार तेजी से वसूली।
2) इन्सुलेशन स्तर (एंड-टू-एंड मॉडल)
1. आंकड़ा
'किरायेदार _ id' in कुंजी और सूचकांक, रो-लेवल सिक्योरिटी (RLS)।
एनक्रिप्शन: केएमएस पदानुक्रम → किरायेदार कुंजी (केईके) → डेटा कुंजी (डीईके)।
उच्च आवश्यकताओं (सिलो) के साथ अलग योजनाएं/डीबी, दक्षता (पूल) के लिए आरएलएस के साथ एक सामान्य समूह।
प्रति किरायेदार, क्रिप्टो-श्रेडिंग कुंजियों को प्रतिधारण नीतियां और "भूलने का अधिकार"।
2. गणना
सीपीयू/रैम/आईओ कोटा, कार्यकर्ता पूल प्रति किरायेदार, भारित कतारें।
जीसी/ढेर अलगाव (जेवीएम/रनटाइम कंटेनर/सेटिंग्स), समानतावाद सीमा।
प्रति-किरायेदार ऑटोस्कलिंग + बैकप्रेशर।
3. नेटवर्क
विभाजन: निजी समापन बिंदु/वीपीसी, एसीएल 'किरायेदार _ आईडी' द्वारा।
सीमा पर दर सीमित और प्रति-किरायेदार कनेक्शन कैप।
डीडीओएस/बॉट के खिलाफ सुरक्षा, योजना/प्राथमिकता को ध्यान में रखते हुए।
4. संचालन और प्रक्रियाएँ
किरायेदार प्रवासन, बैकअप, डीआर, फीचर-झंडे।
घटनाएं - "माइक्रो-ब्लास्ट-त्रिज्या": 'किरायेदार _ आईडी' द्वारा फ्यूजिंग।
3) अभिगम नियंत्रण और किरायेदार संदर्भ
AuthN: OIDC/SAML; टोकन 'किरायेदार _ आईडी', 'org _ id', 'प्लान', 'स्कोप' ले जाते हैं।
AuthZ: RBAC/ABAC (परियोजना, विभाग, क्षेत्र की भूमिकाएं +)।
सीमा पर संदर्भ: एपीआई गेटवे अर्क और किरायेदार संदर्भ को मान्य करता है, सीमा/कोटा के साथ पूरक, ट्रेल्स को लिखता है।
"डबल लॉक" का सिद्धांत: + RLS सेवा/डेटाबेस नीति में जाँच।
4) डेटा: योजनाएं, कैश, लॉग
योजनाएँ:- साझा-स्कीमा (पंक्ति-स्तर): अधिकतम दक्षता, सख्त आरएलएस की आवश्यकता है।
- प्रति-स्कीमा: अलगाव/परिचालन ट्रेडऑफ।
- प्रति-डीबी/क्लस्टर (सिलो): वीआईपी/विनियमित के लिए।
कैश: कुंजी उपसर्ग 'किरायेदार: {id}:... ', टीटीएल योजनाओं द्वारा, कैश-भगदड़सुरक्षा (लॉक/अर्ली रिफ्रेश)।
लॉग/मेटाडेटा: पीआईआई का पूर्ण छद्म नामकरण, 'किरायेदार _ आईडी' द्वारा फ़िल्टर, विभिन्न किरायेदारों के "ग्लूइंग" लॉग का निषेध।
5) यातायात और संचालन को सीमित करना
बुनियादी यांत्रिकी
टोकन बाल्टी: चिकनी फट, पैरामेटराइजेशन 'दर '/' फट'।
लीकी बाल्टी: स्थिरीकरण थ्रूपुट।
स्थिर विंडो/स्लाइडिंग विंडो: समय विंडो पर सरल/सटीक कोटा।
संगोष्ठी की सीमा: एक साथ अनुरोधों/जैब के लिए कैप।
कहाँ से लागू करें
सीमा पर (L7/API गेटवे) - बुनियादी सुरक्षा और "त्वरित विफलता"।
कोर में (सेवाओं/कतारों में) - दूसरे सर्किट और "उचित हिस्सेदारी" के लिए।
नीतियाँ
किरायेदार/योजना/समापन बिंदु/प्रकार के संचालन (सार्वजनिक एपीआई, भारी निर्यात, व्यवस्थापक कार्रवाई) द्वारा।
प्राथमिकता-जागरूक: वीआईपी को मध्यस्थता में अधिक 'फट' और वजन मिलता है।
सुरक्षित रिट्रीट के लिए पहचान-कुंजी।
नमूना प्रोफाइल (अवधारणाएँ)
स्टार्टर: 50 req/s, फट 100, 2 समानांतर निर्यात।
व्यवसाय: 200 req/s, 400 फट, 5 निर्यात।
एंटरप्राइज/वीआईपी: 1000 रेक/एस, फट 2000, समर्पित श्रमिक।
6) कोटा और निष्पक्ष योजना (निष्पक्षता)
संसाधन कोटा: भंडारण, वस्तु, संदेश/मिनट, कार्य/घंटा, कतार आकार।
भारित मेला कतारबद्ध/घाटा दौर रॉबिन: साझा श्रमिकों के लिए "भारित" पहुंच।
प्रति-किरायेदार कार्यकर्ता पूल: शोर/महत्वपूर्ण ग्राहकों के लिए कठोर अलगाव।
प्रवेश नियंत्रण: कोटा समाप्त होने पर निष्पादन से पहले विफलता/गिरावट।
बैकऑफ + जिटर: फटने को सिंक से बाहर रखने के लिए घातीय देरी।
7) प्रति किरायेदार अवलोकन और बिलिंग
आवश्यक टैग हैं 'किरायेदार _ id', 'योजना', 'क्षेत्र', 'समापन बिंदु', 'स्थिति'.
SLI/SLO प्रति किरायेदार: p95/p99 विलंबता, त्रुटि दर, उपलब्धता, उपयोग, संतृप्ति।
उपयोग मेट्रिक्स: सीपीयू ऑपरेशन/बाइट/सेकंड काउंटर → एग्रीगेटर → चालान।
बिलिंग आइडेम्पोटेंस: सीमा पर स्नैपशॉट, डबल राइट-ऑफ/घटनाओं के नुकसान से सुरक्षा।
खंडों में डैशबोर्ड: वीआईपी/विनियमित/नए किरायेदार।
8) घटनाएं, गिरावट और डीआर "किरायेदार द्वारा"
'किरायेदार _ आईडी' द्वारा फ्यूजिंग: बाकी को प्रभावित किए बिना एक विशिष्ट किरायेदार का आपातकालीन शटडाउन/थ्रॉटलिंग।
सुंदर गिरावट: केवल पढ़ ने के लिए मोड, सैंडबॉक्स कतारें, आस्थगित कार्य।
प्रति किरायेदार आरटीओ/आरपीओ: प्रत्येक योजना के लिए वसूली और हानि लक्ष्य।
ड्रिल: शोर किरायेदार के साथ नियमित "खेल के दिन" कट गए और डीआर की जाँच की गई
9) अनुपालन (निवास, गोपनीयता)
क्षेत्र में किरायेदार को पिन करना; स्पष्ट क्रॉस-क्षेत्रीय प्रवाह
कुंजी/डेटा अभिगम लेखा परीक्षा, व्यवस्थापक लॉगिंग।
प्रतिधारण और डेटा निर्यात प्रति किरायेदार प्रबंधित करें।
10) मिनी संदर्भ: इसे कैसे एक साथ रखा जाए
निवेदन प्रवाह
1. एज (एपीआई गेटवे): टीएलएस 'एक्सट्रैक्ट' टेनेंट _ आईडी ' टोकन सत्यापन - लागू दर/कोटा पुट्रेल्स।
2. राजनीतिक इंजन: संदर्भ 'किरायेदार _ आईडी/योजना/सुविधाएँ' - मार्ग और सीमाओं के बारे में निर्णय।
3. सेवा: उपसर्ग के साथ RLS कैश के तहत डेटाबेस के साथ काम करने वाले अधिकार + लेबल 'किरायेदार _ id' की जाँच कर रहा है।
4. उपयोग-संग्रह: संचालन/बाइट्स → एग्रीगेटर → बिलिंग के काउंटर।
आंकड़ा
रणनीति द्वारा स्कीमा/डीबी (पंक्ति-स्तर/प्रति-स्कीमा/प्रति-डीबी)।
केएमएस: किरायेदार कुंजी, रोटेशन, विलोपन पर क्रिप्टो-श्रेडिंग।
कम्प्यूटिंग
वजन के साथ कतारें, प्रति किरायेदार श्रमिकों के पूल, संगामिति द्वारा कैप।
प्रति-किरायेदार मैट्रिक्स द्वारा ऑटोस्कैलिंग।
11) छद्म-राजनीति (अभिविन्यास के लिए)
yaml limits:
starter:
req_per_sec: 50 burst: 100 concurrency: 20 exports_parallel: 2 business:
req_per_sec: 200 burst: 400 concurrency: 100 exports_parallel: 5 enterprise:
req_per_sec: 1000 burst: 2000 concurrency: 500 exports_parallel: 20
quotas:
objects_max: { starter: 1_000_000, business: 20_000_000, enterprise: 100_000_000 }
storage_gb: { starter: 100, business: 1000, enterprise: 10000 }
12) प्री-सेल चेकलिस्ट
- सत्य का एकल स्रोत 'किरायेदार _ आईडी'; हर जगह फेंक दिया जाता है और लॉग इन किया जाता है।
- RLS/ACL DB स्तर + सेवा जाँच (डबल लॉक) में सक्षम।
- प्रति किरायेदार, क्रिप्टो-श्रेडिंग प्रलेखित एन्क्रिप्शन कुंजियाँ।
- सीमा पर और अंदर सीमा/कोटा; परीक्षण फट और "फट"।
- निष्पक्ष-कतार और/या समर्पित वीआईपी श्रमिक; caps concurrency।
- प्रति-किरायेदार एसएलओ और अलर्ट; खंड द्वारा डैशबोर्ड।
- उपयोग-संग्रह पहचान है; बिलिंग रोलअप सत्यापित।
- डीआर/घटनाएं किरायेदार को स्थानीय हैं; 'किरायेदार _ आईडी' कार्यों द्वारा फ्यूजिंग।
- नकद/लॉग किरायेदार द्वारा विभाजित हैं; पीआईआई नकाबपोश।
- प्रवासन/बैकअप/निर्यात प्रक्रियाएं किरायेदार-आधारित हैं।
13) विशिष्ट त्रुटियाँ
RLS "सेवा" उपयोगकर्ता द्वारा अक्षम/बाईपास - रिसाव का जोखिम।
एकल वैश्विक सीमा - "शोर पड़ोसी" और एसएलओ उल्लंघन।
उपसर्ग - डेटा चौराहे के बिना साझा कैश/कतारें।
चोटियों पर खो जाने वाले लॉग द्वारा बिलिंग की गिनती।
किरायेदार संलयन की कमी - झरना गिर जाता है।
समस्याग्रस्त 'किरायेदार _ आईडी' को रोकने की क्षमता के बिना "एक में झपट्टा मारा गया"।
14) त्वरित रणनीति चयन
विनियमित/वीआईपी: साइलो डेटा (प्रति-डीबी), समर्पित श्रमिक, सख्त कोटा और निवास।
मास सास: साझा-स्कीमा + आरएलएस, सीमा पर मजबूत सीमा, अंदर निष्पक्ष-कतार।
"शोर/स्पंदन" लोड करें: योजनाओं के अनुसार बड़े 'फट' + कठोर संगति-कैप, बैकप्रेशर और प्राथमिकताएं।
निष्कर्ष
किरायेदारों और सीमाओं का अलगाव सीमाओं और न्याय के बारे में है। स्टैक के माध्यम से 'किरायेदार _ आईडी' साफ करें, आरएलएस और सीमा पर डेटा, सीमित और कोटा पर एन्क्रिप्शन और घटनाओं के मूल में, निष्पक्ष अनुसूचक, अवलोकन और स्थानीयकरण - यह सब प्रत्येक किरायेदार के लिए सुरक्षा, अनुमेय गुणता और पारहित बिलिंग देता।