iKonekt
कन्सोल उघडा

वेगळेपणा

कोडने नाही, तर डेटाबेसने जपलेली सीमा

प्रत्येक CRM स्वतःला मल्टी-टेनंट असल्याचा दावा करते. हा दावा स्वस्त आहे; महत्त्वाचे असे की कोणता स्तर या रेषेला धरून आहे. जर उत्तर "आपले अ‍ॅप्लिकेशन नेहमी योग्य फिल्टर जोडते" असे असेल, तर ही हमी फक्त तितकीच घट्ट आहे जितकी क्वेरी लिहिणारा सर्वांत कमी झोपलेला विकसक.

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

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

रो-लेव्हल सुरक्षा, बंदिस्त

परंपरा नाही, कोड रिव्ह्यूचा नियम नाही. डेटाबेस नकारते. बाह्तर धोरणे, एक-एक करून लिहिलेली, निर्माण केलेली नाहीत — कारण निर्माण केलेले धोरण म्हणजे कोणीही वाचलेले नसलेले धोरण.

संयुक्त कीज् (Composite keys)

चाइल्ड नोंद तिच्या टेनंटचा आणि तिच्या पॅरेंटचा संदर्भ एकत्र, जोडी म्हणून देते. चुकीच्या कंपनीतून आलेला निरर्थक आयडेंटिफायर निकाली निघत नाही — तो फक्त वैध संदर्भ नसतो.

डीफॉल्ट टेनंट कधीच नाही

व्याप्तीशिवाय आलेली विनंती शांतपणे टेनंट शून्यसाठीची विनंती होत नाही. ती डेटाबेसपर्यंत पोहोचण्यापूर्वीच एरर टाकते. बंद करायला विसरण्याजोगा कोणताही "अन-स्कोप्ड" मोड नाही.

स्वतःला जाहीर करू शकणारा नसलेला बग

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

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

आम्ही हे सांगतो कारण हे या कामाचे प्रामाणिक स्वरूप आहे. विभाजन हे चालू करण्याजोगे वैशिष्ट्य नाही; ही स्कीमाचे कंटाळवाणे भाग वाचण्याची सवय आहे, या गृहीतेवर की त्यात काहीतरी तुमच्याशी असहमत आहे.

चाचण्या, नोंदीसाठी: त्या ९४२ आहेत, प्रत्येक बदलावर शून्यापासून पुन्हा बांधलेल्या डेटाबेसविरुद्ध चालवल्या जातात. त्या डिझाइन चतुर आहे हे सिद्ध करण्यासाठी नाहीत. त्या असे आहेत कारण या विशिष्ट डिझाइनचे अपयश निशब्द असते, आणि निशब्द अपयशांसाठी त्यांच्यावतीने ओरडणारा कोणीतरी हवा असतो.

विभाजनाने सामान्य व्यक्तीला काय मिळते

  • एक गट एकाच इन्स्टॉलमधून अनेक कंपन्या चालवू शकतो, आणि एका कंपनीतील विक्रेता दुसऱ्या कंपनीचा ग्राहक कधीही पाहणार नाही — धोरणाने नाही, रचनेने.
  • पार्टनर कार्यक्रम, प्रॉम्प्ट्सचा संच, ग्राहकावरील दावा: सर्व प्रति-कंपनी व्याप्तीत, म्हणून एका टेनन्टची संरचना सर्वांची होऊ शकत नाही.
  • माहिती मिटवण्याची विनंती सामायिक ढिगाऱ्यापलीकडे न जाता एका सीमेभीतर पूर्ण केली जाते, आणि तेच प्रामाणिकपणे उत्तर देणे शक्य करते.
  • आणि कोणालाही ते लक्षात ठेवावे लागत नाही. हाच गर्भितार्थ आहे — लक्षात ठेवल्यावर अवलंबून असलेली हमी हमी नसते.

डेटाबेसबद्दल नसलेली अजून एक ओळ

कुटुंबातील प्रत्येक सिबलिंग सेवेकडे तिचे स्वतःचे नामित क्रेडेन्शियल आहे. काहीही सेवा सामायिक क्रेडेन्शियलने बोलत नाही, म्हणून कोणतीही सेवा चुकून दुसऱ्यासारखी वागू शकत नाही — हा छोटा शिस्त एकदा सामायिक टोकन असल्याच्या आणि त्याचा आनंद न घेता येण्याच्या अनुभवातून थेट आला.

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

सीमाअ‍ॅप्लिकेशनच्या खाली
  • 1२६ टेबल्सप्रत्येकात त्याचा टेनन्ट आहे, आणि तपासणी सक्तीने चालू आहे.
  • 2७२ धोरणेप्रत्येकी वेगळ्या लिहिलेली, म्हणून प्रत्येक एका व्यक्तीने वाचलेली आहे.
  • 3९४२ चाचण्याशून्यापासून पुन्हा बांधलेल्या डेटाबेसविरुद्ध, प्रत्येक बदलावर.
  • 4० डीफॉल्ट टेनन्ट्सव्याप्तीशिवायची विनंती डेटापर्यंत कधीही पोहोचत नाही.

लाइव्ह बिल्डवर मोजले

“आमचे अ‍ॅप्लिकेशन नेहमी कंपनीनुसार फिल्टर करते.”

त्या वाक्यात 'नेहमी' हा शब्द खूप काम करत आहे.

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

अनेक ब्रँड चालवणाऱ्या गटांसाठी →