AI से बने ऐप के लिए प्रोडक्शन-तैयारी चेकलिस्ट
यही वह सूची है जिस पर हम पैसे वाली जाँच में चलते हैं; इसे इसलिए छापा है क्योंकि इसका ज़्यादातर हिस्सा आप एक दोपहर में ख़ुद कर सकते हैं। इसका क्रम इस बात से तय है कि सबसे पहले चोट कहाँ लगेगी, इससे नहीं कि सबसे आसान क्या है।
मुफ़्त न साइन-अप, न ईमेल
सबसे पहले: क्या खुला पड़ा है
ये वे हैं जहाँ आपको पता चलने तक नुक़सान हो चुका होता है, इसलिए आपका ऐप जैसे भी बना हो, ये पहले आते हैं।
- कुंजियाँ सिर्फ़ मौजूदा फ़ाइलों में नहीं, रिपॉज़िटरी के पूरे इतिहास में खोजिए। जो सीक्रेट एक बार कमिट हुआ और बाद में हटा दिया गया, वह इतिहास में अब भी है और अब भी काम करता है।
- अपनी ही साइट पर ब्राउज़र के devtools खोलिए, network टैब देखिए, और जाँचिए कि क्लाइंट बंडल में क्या-क्या है। जो कुछ ब्राउज़र पढ़ सकता है, वह कोई अजनबी भी पढ़ सकता है।
- ऐसा कोई URL लीजिए जो आपका अपना डेटा दिखाता है, लॉग आउट कीजिए, और उसे दोबारा खोलिए। अगर वह अब भी चलता है, तो बाक़ी हर उपयोगकर्ता का डेटा भी इसी तरह खुलता है।
- उसी URL में id बदलकर किसी और की लगाइए। जनरेट किए गए कोड में यही सबसे आम छेद है, क्योंकि जनरेटर से डेटा दिखाने को कहा गया था, यह जाँचने को नहीं कि माँग कौन रहा है।
- देखिए कि आपके एरर पेज क्या कहते हैं। प्रोडक्शन में दिखता stack trace किसी अजनबी को आपके डेटाबेस का ढाँचा बता देता है।
फिर: बंद हो जाने पर क्या होता है
- प्रोसेस बंद कर दीजिए और देखिए। क्या वह अपने आप लौट आता है, या तब तक मरा पड़ा रहता है जब तक किसी का ध्यान न जाए?
- क्या आपको पता चलेगा? यह नहीं कि "डैशबोर्ड है या नहीं" — बल्कि यह कि किसी ग्राहक के लिखने से पहले, आप जिस डिवाइस को देखते हैं उस पर कोई संदेश आप तक पहुँचेगा या नहीं?
- एक कॉपी में जान-बूझकर कोई टूटी हुई चीज़ तैनात कीजिए। पिछला संस्करण वापस लाने में कितना समय लगता है, और क्या वह कमांड आपको बिना कहीं देखे याद है?
- लिख लीजिए कि जिस एक प्रोवाइडर पर आप निर्भर हैं, उसकी सेवा बंद हो जाए तो क्या होगा। आप उसे स्वीकार करने का फ़ैसला कर सकते हैं; बात फ़ैसला करने की है।
फिर: आपका डेटा बचता है या नहीं
इसी पर लोग सबसे ज़्यादा आश्वस्त होते हैं और सबसे ज़्यादा ग़लत निकलते हैं, क्योंकि बैकअप आम तौर पर होता तो है, पर उसे कभी इस्तेमाल नहीं किया गया होता।
- एक बैकअप को अलग से बनाए गए एनवायरनमेंट में रीस्टोर कीजिए। सचमुच कीजिए। जिस बैकअप को आज़माया नहीं गया, वह बैकअप है ही नहीं — वह बस एक फ़ाइल है जिससे आप उम्मीद लगाए बैठे हैं।
- देखिए कि बैकअप कितने पीछे तक जाते हैं और कितनी बार चलते हैं। हर रात और सात दिन — यह एक चुनाव है; पता ही न होना चुनाव नहीं है।
- जाँचिए कि बैकअप सिर्फ़ उसी अकाउंट में तो नहीं रखा है जिसमें वह चीज़ है जिसका बैकअप लिया जा रहा है।
- अगर आपके डेटाबेस माइग्रेशन में रोलबैक का रास्ता है, तो उसे पढ़िए। ऐसा रोलबैक जो वह कॉलम गिरा दे जिसकी लाइव तैनाती को अब भी ज़रूरत है, वह भले नाम वाला डेटा-नुक़सान है।
फिर: वे चीज़ें जिनकी मियाद अपने आप ख़त्म हो जाती है
- TLS सर्टिफ़िकेट। अगर वह अपने आप नया नहीं होता, तो उसकी मियाद ख़त्म होने की तारीख़ अभी अपने कैलेंडर में डाल लीजिए — वरना वह किसी छुट्टी के दिन ख़त्म होगी।
- डोमेन का नवीनीकरण, और यह कि फ़ाइल में पड़ा कार्ड अब भी चलता है या नहीं।
- मियाद वाली API कुंजियाँ और OAuth टोकन, ख़ासकर भुगतान और ईमेल प्रोवाइडरों के।
- जिन मुफ़्त टियर पर आपने बनाया है। वे बदलते हैं, और बदलाव एक ऐसे ईमेल के रूप में आता है जिसे आप पढ़ेंगे नहीं।
फिर: सही-ग़लत वाली उबाऊ बातें
- बाहर जाने वाली हर कॉल पर टाइमआउट हो। बिना टाइमआउट वाली रिक्वेस्ट फ़ेल नहीं होती — वह लटक जाती है, और प्रोसेस को भी साथ ले डूबती है।
- दोबारा कोशिशों की सीमा हो, और वे सिर्फ़ उन्हीं कामों को घेरें जिन्हें दोहराना सुरक्षित है। "पैसे भेजो" पर बिना सीमा की दोबारा कोशिश मज़बूती की सुविधा नहीं है।
- जिस भी चीज़ को कोई अजनबी बुला सकता है, उस पर दर की सीमा — ख़ासकर आपके मार्केटिंग पेज के फ़ॉर्म पर।
- आज़माइए कि बहुत बड़े इनपुट और बहुत अजीब इनपुट पर क्या होता है — एक इमोजी, एक अपॉस्ट्रॉफ़ी, 10MB का पेस्ट।
- अगर दो लोग एक ही पल में कुछ कर सकते हैं, तो उसी को आज़माइए — एक-के-बाद-एक वाला नक़ली विकल्प नहीं।
आख़िर में: वह बात जो कोई लिखता नहीं
क्या आपके अलावा कोई और इसे चला सकता है? अगर आपका ऐप सिर्फ़ आपके लैपटॉप से, आपकी कुंजियों के साथ, और उन क़दमों से तैनात होता है जो सिर्फ़ आपके दिमाग़ में हैं, तो जोखिम अब तकनीकी रहा ही नहीं। रनबुक लिखिए — इसे कैसे चलाएँ, कैसे तैनात करें, कैसे वापस रोल करें — और किसी को दीजिए कि वह उस पर चले, जबकि आप कुछ न बोलें। वह जहाँ अटके, वही आपके दस्तावेज़ों की असली हालत है।
अगर आप चाहते हैं कि यह कोई और करे
वही प्रोडक्शन जाँच है: हम इसी सूची पर आपके कोडबेस और उस जगह के लिए चलते हैं जहाँ वह चलता है, और लिखकर देते हैं कि सबसे पहले क्या टूटेगा, हर सुधार पर कितना ख़र्च आएगा, और उन्हें किस क्रम में करना चाहिए। $450, पाँच कामकाजी दिन, और रिपोर्ट हर हाल में आपकी।
जो सवाल लोग सबसे पहले पूछते हैं
क्या यह सूची सिर्फ़ AI से बने ऐप के लिए है?
सूची नहीं, पर उसका क्रम ज़रूर है। ये वही जाँचें हैं जिनमें जनरेट किया गया कोड सबसे ज़्यादा फ़ेल होता है, और इन्हें उस क्रम में रखा गया है जो तब मायने रखता है जब कोई चीज़ पहले से लाइव है और उपयोगकर्ता उठा रही है — उस क्रम में नहीं जो कोई पाठ्यपुस्तक अपनाती।
इस पर पूरा चलने में कितना समय लगता है?
क्या खुला पड़ा है, वह हिस्सा एक दोपहर का काम है। बाक़ी इस पर निर्भर है कि आपको क्या मिलता है — और कुछ न मिलना भी अपने आप में एक नतीजा है, जो रखने लायक़ है।
इसे पढ़ने के लिए क्या मुझे कहीं साइन-अप करना होगा?
नहीं। पूरी सूची इसी पेज पर है। न कोई डाउनलोड, न ईमेल का दरवाज़ा, न कोई PDF।
बाक़ी जो हम करते हैं
- प्रोडक्शन जाँच — यह चलता है। लोग इसे इस्तेमाल कर रहे हैं। और किसी ने कभी यह नहीं देखा कि जब यह न चले तब क्या होता है — जब डेटाबेस भर…
- इसे चलाने लायक़ बनाएँ — उस चीज़ के लिए जो जल्दी में बनी और अब लोग उस पर निर्भर हैं। एक तय रक़म, काम शुरू होने से पहले तय…
- इसे चलाते रखें — वह हिस्सा जिसे कोई अपने ज़िम्मे नहीं लेना चाहता। आपका ऐप लाइव है और किसी को यह देखना है कि वह कब बंद हुआ…
- चरणों में बनाएँ — किसी विचार से, या ऐसे प्रोजेक्ट से जो बीच में अटक गया। क़ीमत एक चरण आगे की तय होती है और भुगतान चरण-दर-चरण…
- हमारे अपने प्रोडक्ट — जो हम ख़ुद के लिए बनाते हैं, और चलाते हैं।