iKonekt
कंसोल खोलीं

अलगाव

उ सीमा जवन डेटाबेस रखेला, कोड ना

हर CRM दावा करेला कि ऊ मल्टी-टेनेंट बा। ई दावा सस्ता बा; असल बात ई बा कि कवन परत सीमा रखेले। अगर जवाब बा "हमरा एप्लिकेशन हमेशा सही फिल्टर जोड़ेला", त ई गारंटी उतने ही अच्छा बा जतना सबसे कम आराम कइल डेवलपर जवने कहियो क्वेरी लिखले होखे।

iKonekt अपने पहिले माइग्रेशन से ही मल्टी-टेनेंट रहल, बाद में जोड़ल ना गइल — जवन शेखी बाँटे जइसन लागेला आ असल में एगो स्वीकारोक्ति बा: बाद में एकरा के ठीक-ठाक जोड़ पावल लगभग असंभव बा, आ जे कोशिश कइले बा, ओकरे लगे एगो कहानी बा।

अलगाव डेटाबेस में रहेला। छब्बी टेबल में से हर एक में ओकरा के टेनेंट दर्ज बा जवना से ऊ संबंधित बा, आ एकरा के जाँचे वाला नीति हर पढ़ाई आ हर लिखाई पर चलेला, पूरा तरह एप्लिकेशन के नीचे। जवन क्वेरी सीमा भूल जाला, ऊ किसी अउरी के ग्राहक ना लवटावेला। ऊ कछु ना लवटावेला।

पंक्ति-स्तरीय सुरक्षा, लागू करे के साथ

ना कौनो परंपरा, ना कौनो कोड रिव्यू के नियम। डेटाबेस मना कर देला। बहत्तर नीति बाड़ें, एक-एक कर के लिखल गइलें, बनवावल ना — काहें कि बनवावल नीति ऊ नीति होता जवना के केहू ना पढ़ले होखे।

मिश्रित कुंजी

एगो बच्चा रिकॉर्ड अपने टेनेंट और अपने जनक के साथ-साथ, जोड़ी के रूप में संदर्भित करेला। गलत कंपनी के कौनो अनजान पहचानकर्ता हल ना होला — ऊ बस एगो मान्य संदर्भ ना होता।

कहियो कौनो डिफ़ॉल्ट टेनेंट ना

बिना स्कोप वाला अनुरोध चुपचाप टेनेंट शून्य के अनुरोध ना बन जाला। ऊ डेटाबेस तक पहुँचे से पहिले त्रुटि फेंकेला। कौनो "unscoped" मोड ना बा जवना के बंद करे भूल जाइए।

ऊ बग जवन अपने के बतावे ना सके

जब किरायेदारी के काम चल रहल रहे, तब अधिकतर गलती सभ ऊँचा सुर में भइलीं। दू गो कंपनी के एहजे गो ग्राहक डोमेन आ डेटाबेस ऑब्जेक्ट दे दीं, गलती के कोड आ स्टैक ट्रेस के साथ; रउआँ दोपहर से पहिले ऊ ठीक क दीं।

एक ठो आपत्ति ना कइलस। संपादित प्रॉम्प्ट ओवरराइड के एक ठो टेबल खाली प्रॉम्प्ट के किसिम पर आधारित रहे — किसिम आ किरायेदार पर ना। दूसरी कंपनी अपन प्रति संपादित करे पर पूरा वैध SQL के जरिये, बिना गलती, बिना चेतावनी, आ बिना फेल भइल टेस्ट के, पहिली कंपनी के प्रति चुपचाप ओवरराइट हो गइल होत। ई तब पावल गइल जब एक ठो कुंजी बदलला के बाद, एह शक में कि ऊँचा सुर वाली गलती सभ के संगी भी बा, बाकी हर बचल अद्वितीय इंडेक्स के एक-एक के पढ़ल गइल।

हम ई इसलिये बतावत बानी कि ई एह काम के ईमानदार रूप बा। अलगाव कौनों ऐसन फीचर ना जेकरा के रउआँ चालू क दीं; ई स्कीमा के उबाऊ हिस्सा सभ के एह मानस से पढ़े के आदत बा कि ओहमें कवनो चीज रउआँ से असहमत बा।

टेस्ट सभ, रिकॉर्ड खातिर: कुल 942 गो, हर बदलाव पर शून्य से फिर से बनावल डेटाबेस पर चलावल जालीं। ई इ डिज़ाइन के चतुर होखे के साबित करे खातिर ना बानीं। ई इसलिये बानीं कि एह खास डिज़ाइन के विफलता के तरीका चुप बा, आ चुप विफलता सभ के ओर से कवनो के चिल्ला के बोले के पड़ेला।

अलगाव एक ठो साधारण मनखे के का देला

  • एक ठो समूह एक ठो इंस्टॉल से कई गो कंपनी चला सकेला, आ एक ठो के बिक्रीकर्ता दूसरी के ग्राहक के कबो ना देखी — नीति से ना, रचना से।
  • एक ठो पार्टनर कार्यक्रम, प्रॉम्प्ट सभ के एक ठो सेट, ग्राहक पर एक ठो दावा: सब कंपनी अनुसार स्कोप कइल गइल बा, ताकि एक ठो किरायेदार के कॉन्फ़िगरेशन सबके ना बन जाय।
  • मिटावे के अनुरोध एक ठो साझा ढेर के पार ना, बल्कि एक ठो सीमा के भीतर पूरा कइल जाला, आ ईहे ई संभव बनावेला कि ईमानदारी से जवाब दिहल जा सके।
  • आ केहू के एहमें से कवनो चीज याद राखे के ना पड़ेला। ईहे मुद्दा बा — याद राखल जाय के निर्भर वादा वादा ना होला।

एक ठो अउरी लाइन जे डेटाबेस के बारे में ना बा

परिवार के हर सहोदर सेवा अपन नामित प्रमाणपत्र रखेला। कवनो चीज साझा प्रमाणपत्र से ना बोलेला, ताकि कवनो सेवा गलती से दूसरी के रूप में काम ना कर सके — एक ठो छोट अनुशासन जे सीधा एह बात से आइल बा कि हमनी के एक बेर साझा टोकन रहल आ ऊ हमनी के भावल ना।

ई डेटाबेस के नियम जइसन ही एहजे गो स्वभाव बा। गलत चीज के हतोत्साहित ना करीं, असंभव बना दीं, आ रउआँ अपन धियान सतर्कता पर ना, ग्राहक सभ पर लगा दीं।

सीमाएप्लिकेशन के नीचे
  • 126 गो टेबलहर एक में ओकर किरायेदार बा, जाँच जबरन चालू कइल गइल बा।
  • 272 गो नीतिअलग-अलग लिखल गइल बानीं, ताकि हर एक के एक ठो मनखे पढ़ल होखे।
  • 3942 परीक्षणशून्य से फिर से बनावल डेटाबेस पर, हर बदलाव पर।
  • 40 गो डिफ़ॉल्ट किरायेदारबिना स्कोप वाला अनुरोध कबो डेटा तक ना पहुँचेला।

लाइव बिल्ड पर मापल गइल

“हमर एप्लिकेशन हमेशा कंपनी अनुसार फ़िल्टर करेला।”

उ वाक्य में “हमेशा” बहुत भारी काम कर रहल बा।

सीमा के डेटाबेस में नीचे ले जाईं, आ भूलल WHERE क्लॉज कवनो के ग्राहक सभ के जगह कुछ ना लवटाई। खाली स्क्रीन अजीब परिचय से बेहतर विफलता बा।

कई गो ब्रांड चलावे वाला समूह सभ खातिर →