प्रॉम्प्ट और संदर्भ
एक मल्टी-टेनेंट SaaS में कई लंबे समय से निष्क्रिय ग्राहक हैं। इंफ्रास्ट्रक्चर की लागत और डेटा से जुड़े दायित्व लगातार बढ़ रहे हैं। प्रोडक्ट टीम टेनेंट संसाधनों को वापस पाना (reclaim) चाहती है, सेल्स टीम को गलती से किसी ग्राहक को डिलीट करने का डर है, और लीगल टीम को अनुबंध, ऑडिट और डिलीशन अनुरोधों के अनुपालन की आवश्यकता है। आप यह कैसे तय करेंगे कि ऑफ़बोर्डिंग को ऑटोमेट किया जाए या नहीं, और नोटिफिकेशन, एक्सपोर्ट, रिटेंशन, डिलीशन, रिकवरी तथा ऑडिट फ़्लो को कैसे डिज़ाइन करेंगे?
AWS SaaS Lens प्रति-टेनेंट संसाधन इन्वेंट्री, एक ऑफ़बोर्डिंग रनबुक और एक अप्रूवल वर्कफ़्लो की अनुशंसा करता है; डिकमीशनिंग से पहले, एक रिकवरेबल या कम्प्लायंस कॉपी की आवश्यकता हो सकती है। NIST SP 800-88 Rev. 2 सैनिटाइज़ेशन को इस प्रकार परिभाषित करता है कि किसी दिए गए प्रयास के स्तर पर लक्षित डेटा तक पहुँचना अव्यावहारिक (infeasible) हो जाए। यह लेख सार्वजनिक सामग्री का संश्लेषण करता है और किसी कंपनी-विशिष्ट इंटरव्यू प्रश्न होने का दावा नहीं करता है।
इंटरव्यूअर क्या परख रहा है
इंटरव्यूअर यह देखना चाहता है कि आप "ऑटोमेशन" को सिर्फ़ एक डिलीट बटन के बजाय रिवर्सिबल स्टेट ट्रांज़िशन (प्रतिवर्ती अवस्था परिवर्तनों) में कैसे बदलते हैं। एक मजबूत उत्तर सस्पेंशन, आर्काइवल, लॉजिकल डिलीशन और फिजिकल सैनिटाइज़ेशन के बीच अंतर करता है, और ग्राहक नोटिस, एक्सपोर्ट, लीगल होल्ड, अनुबंध की शर्तों, संसाधन रिकवरी, रिकवरी विंडो और ऑडिट साक्ष्यों को कवर करता है। एक कमजोर उत्तर केवल क्लाउड बचत की बात करता है।
पहले स्पष्ट करने योग्य प्रश्न
- क्या निष्क्रियता (inactivity) को लॉगिन, व्यावसायिक गतिविधियों, अनुबंध की स्थिति या भुगतान की स्थिति से परिभाषित किया जाता है?
- क्या टेनेंट के पास रिटेंशन अवधि, डिलीशन अनुरोध, नियामक कर्तव्य (regulatory duties) या कोई लीगल होल्ड है?
- ग्राहक को किन एक्सपोर्ट फ़ॉर्मेट्स, रिकवरी विंडो और रिकवरी के बाद के सर्विस लेवल की आवश्यकता है?
- कौन-से साझा संसाधन, बैकअप, लॉग, इंडेक्स और थर्ड-पार्टी इंटीग्रेशन इससे प्रभावित होते हैं?
30-सेकंड का उत्तर
"मैं केवल लॉगिन की अवधि के आधार पर डिलीट नहीं करूँगा। मैं नोटिस, राइट रिस्ट्रिक्शन, आर्काइव, पेंडिंग डिलीशन और सैनिटाइज़्ड जैसी अवस्थाओं (states) को परिभाषित करूँगा, जिसमें प्रत्येक ट्रांज़िशन पर नोटिस, अप्रूवल, एक्सपोर्ट और आइडेम्पोटेंट रिकॉर्ड शामिल होंगे। अनुबंध, लीगल होल्ड और डिलीशन अनुरोध रिटेंशन की सीमा तय करते हैं; रिकवरी विंडो कोल्ड-स्टोरेज की लागत तय करती है। मैं नॉन-प्रोडक्शन में रिहर्सल करूँगा और कोहॉर्ट (cohort) के आधार पर रोल आउट करूँगा, जिसमें रिक्लेम करने योग्य लागत, फ़ॉल्स-ऑफ़बोर्डिंग दर, रिकवरी की सफलता और शिकायतों को मापा जाएगा। कोई भी अस्पष्ट स्थिति होने पर ऑटोमेटेड सैनिटाइज़ेशन को रोक दिया जाएगा।"
चरण-दर-चरण समाधान
एसेट इन्वेंट्री के साथ शुरुआत करें: डेटाबेस पार्टीशन, ऑब्जेक्ट स्टोरेज, इंडेक्स, कतारें (queues), बैकअप, कीज़ (keys), डोमेन और बाहरी इंटीग्रेशन। प्रत्येक एसेट में टेनेंट का स्वामित्व, रिटेंशन पॉलिसी, डिलीशन निर्भरता और सत्यापन विधि दर्ज होती है। इन्वेंट्री के बिना, आप डिलीशन को साबित नहीं कर सकते या रिकवरी लाभ का अनुमान नहीं लगा सकते।
टाइमर-आधारित डिलीट के बजाय स्टेट मशीन का उपयोग करें। नोटिस संचार भेजता है; सस्पेंशन नए राइट्स को रोकता है लेकिन रीड्स को बनाए रखता है; आर्काइव डेटा को कम लागत वाले स्टोरेज में ले जाता है; पेंडिंग डिलीशन अप्रूवल और अंतिम नोटिस की प्रतीक्षा करता है; सैनिटाइज़ेशन निर्भरता क्रम में डिलीट करता है और साक्ष्य बनाता है। ट्रांज़िशन आइडेम्पोटेंट, पुनः प्रयास योग्य (retryable) और मैन्युअल रूप से रोके जाने योग्य होने चाहिए।
नोटिस और एक्सपोर्ट प्रोडक्ट की वैल्यू हैं। टेनेंट एडमिनिस्ट्रेटर और बिलिंग संपर्कों को तारीखों, प्रभाव, एक्सपोर्ट लिंक और अपील के रास्ते के साथ कई बार सूचित करें। एक एक्सपोर्ट पैकेज में चेकसम, स्कोप, समाप्ति तिथि और एन्क्रिप्शन विवरण शामिल होते हैं। बड़े टेनेंट्स एक रेज़्यूमेबल एसिंक्रोनस जॉब का उपयोग करते हैं ताकि एक डाउनलोड ऑफ़बोर्डिंग स्टेट मशीन को ब्लॉक न कर सके।
रिटेंशन अनुबंध और जोखिम के अनुसार काम करता है। लीगल होल्ड, अनसुलझा विवाद, नियामक रिटेंशन या सुरक्षा जांच सैनिटाइज़ेशन को रोक सकती है। बैकअप, लॉग और रेप्लिकस को स्वतंत्र समाप्ति नियमों की आवश्यकता होती है ताकि प्राथमिक डेटा को डिलीट करने से अनिश्चितकालीन रिटेंशन न बने। जब डेटा को पुनर्प्राप्त न करने योग्य (unrecoverable) बनाना हो, तो मीडिया और जोखिम के लिए उपयुक्त विधि का उपयोग करें और सत्यापन रिकॉर्ड करें; केवल डेटाबेस पंक्तियों को डिलीट करना मीडिया सैनिटाइज़ेशन नहीं है।
रिकवरी के लिए एक स्पष्ट सीमा की आवश्यकता होती है। आर्काइव और सस्पेंशन आमतौर पर रिवर्सिबल होते हैं; फिजिकल सैनिटाइज़ेशन नहीं होता है। वर्तमान स्थिति, अपेक्षित पूरा होने का समय और रिकवरी लागत दिखाएं। रिकवरी ड्रिल केवल एक टेबल की नहीं, बल्कि टेनेंट की पहचान, अनुमतियों, इंडेक्स, कीज़, वेबहुक और बिलिंग स्थिति की जांच करती हैं। रिकवरी के दौरान टेनेंट को अलग (isolate) रखें ताकि पुराने क्रेडेंशियल्स या समाप्त हो चुके कॉन्फ़िगरेशन फिर से सक्रिय न हो सकें।
अप्रूवल और गार्डराइल का उपयोग करें। उच्च-मूल्य वाले, हाल ही में सक्रिय, होल्ड पर रखे गए या अस्पष्ट रूप से वर्गीकृत टेनेंट एक मानवीय समीक्षा कतार (human queue) में जाते हैं; अन्य स्वचालित रूप से आगे बढ़ सकते हैं। बैच कैप्स, एक सर्किट ब्रेकर और एक ग्लोबल पॉज़ स्विच सेट करें। टेस्ट में रिहर्सल करें, फिर टेनेंट कोहॉर्ट द्वारा रोल आउट करें। ऑडिट रिकॉर्ड ट्रिगर, नोटिस, अप्रूवर, प्रति-एसेट परिणाम और असामान्य पुनः प्रयासों को कैप्चर करते हैं।
एक मजबूत उत्तर का उदाहरण
मैं पहले यह परीक्षण करूँगा कि क्या ऑटोमेशन सार्थक है। इसके लाभ मापने योग्य संसाधन रिकवरी और मैन्युअल त्रुटियों में कमी हैं; जोखिमों में फ़ॉल्स ऑफ़बोर्डिंग, संविदात्मक रिटेंशन उल्लंघन, एक्सपोर्ट विफलता और असफल रिकवरी शामिल हैं। प्रोडक्ट की अवस्थाएं नोटिस, राइट रिस्ट्रिक्शन, आर्काइव, पेंडिंग डिलीशन और सैनिटाइज़्ड होंगी, जिन्हें टेनेंट एसेट इन्वेंट्री के आधार पर आगे बढ़ाया जाएगा। अनुबंध, लीगल होल्ड, डिलीशन अनुरोध और जांच रिटेंशन को परिभाषित करते हैं; पूरा हुआ एक्सपोर्ट, नोटिस की पावती और अप्रूवल सैनिटाइज़ेशन के लिए पूर्व-शर्तें हैं।
ऑटोमेशन में आइडेम्पोटेंट जॉब्स, बैच कैप्स, सर्किट ब्रेकर और मानवीय पॉज़ का उपयोग किया जाता है। मैं प्रोडक्शन से बाहर रिहर्सल करूँगा और कोहॉर्ट द्वारा रोल आउट करूँगा। मेट्रिक्स में रिक्लेम्ड लागत, फ़ॉल्स-ऑफ़बोर्डिंग दर, रिकवरी सफलता, एक्सपोर्ट विफलता, सैनिटाइज़ेशन साक्ष्य की पूर्णता और शिकायतें शामिल हैं। आर्काइव को रिकवर किया जा सकता है; फिजिकल सैनिटाइज़ेशन को नहीं। रिकवरी ड्रिल में अनुमतियाँ, इंडेक्स, कीज़, वेबहुक और बिलिंग शामिल हैं। सार्वजनिक SLA में समय, एक्सपोर्ट फ़ॉर्मेट, रिकवरी विंडो और अपरिवर्तनीय बिंदु (irreversible point) का उल्लेख होता है।
सामान्य गलतियाँ
- लक्षण → केवल लॉगिन की अवधि के आधार पर डिलीट करना; यह क्यों विफल होता है → अनुबंध, भुगतान, इंटीग्रेशन और लीगल-होल्ड के संकेतों की अनदेखी होती है; सुधार → कई संकेतों और मानवीय गार्डराइल का उपयोग करें।
- लक्षण → केवल प्राथमिक डेटाबेस पंक्तियों को डिलीट करना; यह क्यों विफल होता है → बैकअप, इंडेक्स, लॉग और ऑब्जेक्ट रेप्लिकस बच सकते हैं; सुधार → एक एसेट इन्वेंट्री और प्रति-एसेट साक्ष्य बनाए रखें।
- लक्षण → सैनिटाइज़ेशन के बाद सूचित करना; यह क्यों विफल होता है → ग्राहक एक्सपोर्ट और अपील के विकल्प खो देते हैं; सुधार → नोटिस, एक्सपोर्ट और अप्रूवल को पूर्व-शर्तें बनाएं।
- लक्षण → वादा करना कि हर डिलीशन रिकवरेबल है; यह क्यों विफल होता है → आर्काइव और फिजिकल सैनिटाइज़ेशन की रिवर्सिबिलिटी अलग होती है; सुधार → रिकवरी विंडो, लागत और अपरिवर्तनीय बिंदु बताएं।
- लक्षण → एक ही बैच में विश्व स्तर पर लॉन्च करना; यह क्यों विफल होता है → एक छोटी सी गलती क्रॉस-टेनेंट घटना बन जाती है; सुधार → रिहर्सल करें, कोहॉर्ट बनाएं, बैचों को सीमित करें और एक किल स्विच प्रदान करें।
फॉलो-अप प्रश्न और उत्तर
आप एक निष्क्रिय टेनेंट को कैसे परिभाषित करते हैं?
संयुक्त संकेतों का उपयोग करें: अनुबंध और भुगतान की स्थिति, एडमिनिस्ट्रेटर की पुष्टि, प्रमुख व्यावसायिक गतिविधियाँ, हालिया लॉगिन और सपोर्ट टिकट। लॉगिन केवल एक संकेत है। विरोधाभासों या लापता डेटा को स्वचालित सैनिटाइज़ेशन के बजाय मानवीय समीक्षा के लिए भेजा जाता है।
क्या होगा यदि कोई ग्राहक तत्काल डिलीट करने का अनुरोध करता है लेकिन अनुबंध में रिटेंशन आवश्यक है?
लीगल टीम को उन फ़ील्ड्स और प्रतियों की पहचान करनी चाहिए जिन्हें बनाए रखा जाना चाहिए, कितने समय के लिए, और उन तक कौन पहुँच सकता है। अनुरोध को तत्काल डिलीट करने योग्य, प्रतिबंधित-रिटेंशन और समाप्ति पर डिलीट करने योग्य स्कोप में विभाजित करें। आधार, समय-सीमा और अपील के रास्ते को समझाएं, और निर्णय को रिकॉर्ड करें।
आप कैसे साबित करते हैं कि टेनेंट को सैनिटाइज़ किया गया था?
एसेट इन्वेंट्री को बेसलाइन के रूप में उपयोग करें और प्रत्येक संसाधन संचालन, वर्ज़न, समय, सत्यापन और पुनः प्रयास को रिकॉर्ड करें। बैकअप और थर्ड-पार्टी प्रतियों की स्वतंत्र रूप से पुष्टि करें। एकल डेटाबेस क्वेरी को एंड-टू-एंड प्रमाण के रूप में प्रस्तुत करने के बजाय स्कोप और सीमाओं का उल्लेख करें।
आप कैसे मापते हैं कि ऑटोमेशन ने काम किया या नहीं?
रिकवर किए गए संसाधन मूल्य, प्रोसेसिंग समय, फ़ॉल्स-ऑफ़बोर्डिंग दर, रिकवरी सफलता, एक्सपोर्ट विफलताओं, साक्ष्य पूर्णता, मानवीय हस्तक्षेप और शिकायतों को ट्रैक करें। यदि लागत कम होती है लेकिन फ़ॉल्स ऑफ़बोर्डिंग या रिकवरी विफलता बढ़ती है, तो विस्तार को रोकें और काम को मानवीय कतार में वापस भेजें।