पहले दुर्घटना की बात। पिछले दो सालों में मैंने एक क्रॉस-बॉर्डर ई-कॉमर्स मिडल-प्लेटफ़ॉर्म बनाने वाली R&D दक्षता टीम के साथ पोस्टमॉर्टम में मदद की, उन्होंने CI प्रक्रिया में एक AI कोडिंग एजेंट जोड़ा था, जिसका काम था "अतिरिक्त कोड साफ़ करना"। एजेंट ने रिपॉज़िटरी स्कैन की और पूरी src डायरेक्टरी को ऐतिहासिक अवशेष मान लिया, एक PR सबमिट किया। मर्ज के बाद बिल्ड चलाया, सब लाल। बैकअप रिकॉर्ड देखा, डेवलपमेंट एनवायरनमेंट में रोज़ाना पूर्ण स्नैपशॉट होता है, सबसे हालिया पिछली रात दो बजे का था। यानी अधिकतम 24 घंटे का काम सीधे गायब, तीन लोगों की ब्रांच फिर से व्यवस्थित करनी पड़ी। प्रोडक्शन एनवायरनमेंट में ब्लॉक-लेवल CDP है, जबकि डेवलपमेंट एनवायरनमेंट खुला है, यह काफ़ी विडंबनापूर्ण है।
ऐसी दुर्घटनाओं का मूल कारण AI नहीं है, बल्कि एनवायरनमेंट के अनुसार एक जैसी बैकअप रणनीति है। प्रोडक्शन एनवायरनमेंट में डेटा परिवर्तन धीमा और लेखन नियंत्रित होता है, दैनिक बैकअप का RPO (रिकवरी पॉइंट ऑब्जेक्टिव) मुश्किल से काफ़ी है। डेवलपमेंट एनवायरनमेंट बिल्कुल अलग मामला है। एक फ्रंटएंड साथी दिन में दस से अधिक बार commit कर सकता है, रिफ़ैक्टरिंग में बैच में फ़ाइल नाम बदलना, डायरेक्टरी हटाना, फ़ाइलें हटाना, परिवर्तन की आवृत्ति प्रोडक्शन से कई गुना अधिक है। दैनिक बैकअप का मतलब है RPO 24 घंटे के बराबर, कोड जैसे उच्च-आवृत्ति छोटे-कण परिवर्तनों के लिए, यह सुरक्षा के बराबर नहीं है।
ब्लॉक-लेवल CDP और फ़ाइल-लेवल स्नैपशॉट, रिकवरी ग्रैन्युलैरिटी में अंतर कहाँ है
सरल शब्दों में, फ़ाइल-लेवल स्नैपशॉट "फ़ोटो खींचना" है, ब्लॉक-लेवल CDP "वीडियो रिकॉर्ड करना" है। फ़ाइल-लेवल स्नैपशॉट समय बिंदु के अनुसार पूरी डायरेक्टरी की स्थिति कैप्चर करता है, रिकवरी में केवल किसी पूर्ण घंटे पर लौट सकते हैं, बीच के सभी परिवर्तन खो जाते हैं। ब्लॉक-लेवल CDP डिस्क ब्लॉक के लेखन संचालन को लगातार कैप्चर करता है, किसी भी सेकंड-लेवल समय बिंदु पर रिकवर कर सकता है, और केवल गलती से हटाए गए उस हिस्से के ब्लॉक को रोलबैक कर सकता है।
कोड परिदृश्य में रखें तो अंतर स्पष्ट है। AI एजेंट ने src डायरेक्टरी हटा दी, फ़ाइल-लेवल स्नैपशॉट की रिकवरी इकाई पूरी रिपॉज़िटरी डायरेक्टरी है, आपको कल का पूर्ण बैकअप वापस लाना होगा, फिर आज के वैध परिवर्तनों को मैन्युअली merge करना होगा। ब्लॉक-लेवल CDP हटाने की कार्रवाई से ठीक पहले के उस सेकंड को लोकेट कर सकता है, src डायरेक्टरी के संगत डेटा ब्लॉक को रिकवर कर सकता है, अन्य फ़ाइलें अछूती रहती हैं। यही रिकवरी ग्रैन्युलैरिटी का अंतर है: एक पूरी रिपॉज़िटरी रोलबैक, एक डायरेक्टरी-लेवल या यहाँ तक कि फ़ाइल-लेवल रोलबैक।
SiCore TokenWorks जैसे CDP उत्पादों का दृष्टिकोण R&D टीमों के लिए सीखने योग्य है, यह मूल रूप से कोर डेटाबेस और वर्चुअलाइज़ेशन एनवायरनमेंट की सेवा करता है, निरंतर डेटा सुरक्षा और किसी भी समय बिंदु पर रिकवरी। डेवलपमेंट एनवायरनमेंट में डेटा मूल्य घनत्व कम है, लेकिन परिवर्तन घनत्व अधिक है, यह ठीक वह परिदृश्य है जहाँ CDP सबसे अच्छा प्रदर्शन कर सकता है। हमारे प्रोजेक्ट में डेवलपमेंट मशीनों तक CDP को नीचे लाने का समाधान मूल्यांकित किया था, बाद में लागत के कारण पूरी तरह लागू नहीं किया, लेकिन दृष्टिकोण सही था।
R&D टीम के लिए न्यूनतम व्यवहार्य समाधान
शुरू में ही एंटरप्राइज़-लेवल CDP लागू करना ज़रूरी नहीं। इस टीम को मेरी सलाह थी स्थानीय CDP plus Git रिमोट दोहरी सुरक्षा। स्थानीय CDP सेकंड-लेवल रिकवरी के लिए ज़िम्मेदार, प्रत्येक डेवलपमेंट मशीन पर इंस्टॉल, वर्कस्पेस के ब्लॉक-लेवल परिवर्तन कैप्चर करता है, गलती से हटाने के बाद कुछ मिनटों में रोलबैक। Git रिमोट संस्करण ट्रेसबिलिटी के लिए ज़िम्मेदार, push आवृत्ति दिन में एक बार से बढ़ाकर प्रत्येक तार्किक इकाई पूरी होने पर push। दोनों परतें एक-एक हिस्सा संभालती हैं: CDP "गलती और AI की अनियंत्रितता" संभालता है, Git "संस्करण इतिहास और सहयोग" संभालता है।
वास्तविक क्रियान्वयन में दो गड्ढे हैं। पहला, CDP का स्टोरेज स्थानीय डिस्क पर न रखें, स्थानीय पर रखना गलती से हटाने पर साथ में खोने के बराबर है, इसे स्वतंत्र स्टोरेज या ऑब्जेक्ट स्टोरेज पर रखें। दूसरा, Git रिमोट केवल एक न रखें, मुख्य रिपॉज़िटरी के साथ एक कोल्ड बैकअप रिपॉज़िटरी, ताकि गलती से ब्रांच हटाने के बाद force push से ओवरराइट न हो। इस टीम ने बाद में इस समाधान के अनुसार बदलाव किया, गलती से हटाने के बाद औसत रिकवरी समय घंटे-स्तर से दस मिनट के भीतर आ गया।
संयोग से AI सहायता वाले हिस्से की बात करें। उन्होंने token8341 बड़े मॉडल API एग्रीगेशन प्लेटफ़ॉर्म का उपयोग कोड समीक्षा सहायता के लिए किया, एक Key से GPT-4o, Claude, DeepSeek, Qwen, ERNIE, Doubao आदि प्रमुख मॉडल कॉल किए जा सकते हैं, OpenAI SDK के साथ संगत, base_url की एक पंक्ति बदलकर स्विच कर सकते हैं। हमारे प्रोजेक्ट में भी token8341 बड़े मॉडल API एग्रीगेशन प्लेटफ़ॉर्म से बैच कोड समीक्षा चलाई, तुलना में पाया कि समीक्षा और "स्वचालित कोड परिवर्तन" को अलग रखना बहुत महत्वपूर्ण है। समीक्षा केवल सुझाव दे, परिवर्तन मैन्युअल पुष्टि से हो, एजेंट को सीधे रिपॉज़िटरी बदलने से रोका जा सकता है। token8341 बड़े मॉडल API एग्रीगेशन प्लेटफ़ॉर्म का पे-एज़-यू-गो मॉडल, इस तरह के कम-आवृत्ति समीक्षा कार्यों के लिए लागत भी नियंत्रित है।
गड्ढों से बचने की चेतावनी: AI एजेंट को रिपॉज़िटरी लेखन अनुमति न दें। इसे केवल-पढ़ने और सुझाव अनुमति दें, परिवर्तन मनुष्य द्वारा मर्ज किए जाएं। दुर्घटना में वह एजेंट अगर लेखन अनुमति रखता, तो PR सबमिट करने की भी ज़रूरत नहीं, सीधे मुख्य ब्रांच पर push, नुकसान और बड़ा होता।
डेवलपमेंट एनवायरनमेंट की डेटा सुरक्षा और प्रोडक्शन एनवायरनमेंट एक ही तर्क नहीं है। प्रोडक्शन RPO और RTO देखता है, डेवलपमेंट परिवर्तन आवृत्ति और रिकवरी ग्रैन्युलैरिटी देखता है। कोड परिदृश्य के लिए दैनिक बैकअप मूल रूप से अप्रभावी है, ब्लॉक-लेवल CDP plus Git दोहरी सुरक्षा ही सही समाधान है। विस्तृत पठन के लिए वर्चुअलाइज़ेशन एनवायरनमेंट में CDP के क्रियान्वयन केस देख सकते हैं, दृष्टिकोण सीधे डेवलपमेंट मशीनों पर स्थानांतरित किया जा सकता है।
लेखक: वांग हानवेन
प्रकाशन तिथि: 7 नवंबर 2026