पृष्ठभूमि
मैं एक टीम में काम कर रहा हूँ जो शून्य-डाउनटाइम परिनियोजन लागू करना चाहती है। हम इसे प्राप्त करने के लिए एक नीली / हरी परिनियोजन रणनीति का उपयोग करने की योजना बना रहे हैं। अनुसंधान करने में मुझे जो चीजें महसूस हो रही हैं, उनमें से एक यह है कि डेटाबेस में बदलाव करना कितना जटिल है। एक कॉलम का नाम बदलने जैसा एक सरल ऑपरेशन पूरा होने तक 3 पूर्ण रिलीज साइकिल ले सकता है !
यह मुझे लगता है कि एक परिवर्तन के पूर्ण रोलआउट होने के बाद कई रिलीज चक्रों में मानवीय त्रुटि के लिए बहुत अधिक संभावनाएं हैं। लिंक किए गए लेख में यह दिखाया गया है कि कोड परिवर्तन 2 रिलीज के लिए आवश्यक हैं और 3 रिलीज के लिए एक डेटाबेस माइग्रेशन की आवश्यकता है।
मैं जिस चीज़ की तलाश कर रहा हूँ
वर्तमान में, यदि हम कुछ करने के लिए याद रखना चाहते हैं, तो हम अपनी समस्या प्रबंधन प्रणाली में एक टिकट बना सकते हैं, जो अव्यवस्था पैदा करता है और प्रबंधन द्वारा बाद के स्प्रिंट या बैकलॉग में स्थानांतरित हो सकता है; या हम एक TODO टिप्पणी बना सकते हैं, जिसे शायद पूरी तरह से भुला दिया जाएगा।
मैं जिस चीज की तलाश कर रहा हूं, वह एक ऐसा तरीका है जिससे TODO टिप्पणी में इसके खिलाफ समय सीमा हो सकती है, और हमारी सतत एकीकरण प्रणाली (वर्तमान में जो हम उपयोग करेंगे) वह निर्माण को अस्वीकार कर देगी यदि यह समय सीमा समाप्त हो गई थी।
उदाहरण के लिए, यदि हम एक कॉलम का नाम बदल देते हैं, तो हम इसके लिए प्रारंभिक माइग्रेशन बना सकते हैं, और फिर दो TODO टिप्पणियां यह सुनिश्चित करने के लिए कि शेष दो माइग्रेशन बनाए गए हैं:
// TODO by v55: Create migration to move constraints to new column, remove references to old column in app
// TODO by v56: Create migration to drop old column
यह लागू करने के लिए काफी सरल लगता है, लेकिन मैं सोच रहा हूं कि क्या ऐसा कुछ पहले से मौजूद है, क्योंकि मैं पहिया का फिर से आविष्कार नहीं करना चाहता हूं।
अतिरिक्त विचार
मुझे लगता है कि मैं यहाँ XY समस्या से पीड़ित हो सकता हूँ, यह देखते हुए कि रोलिंग तैनाती और नीले / हरे रंग की तैनाती को सबसे अच्छा अभ्यास माना जाता है यह अजीब लगता है कि मैं डेटाबेस अपडेट को कम दर्दनाक बनाने के लिए कोई समाधान नहीं ढूंढ सकता। अगर आपको लगता है कि मैं पूरी तरह से गलत बात देख रहा हूं, तो कृपया मुझे एक टिप्पणी में बताएं! उस ने कहा, मैंने जो डेटाबेस का उदाहरण दिया है वह सिर्फ एक उदाहरण है, और मुझे लगता है कि नियत तारीखों के साथ TODO टिप्पणियां अन्य स्थितियों में भी उपयोगी होंगी, इसलिए यहां तक कि अगर मैं इस विशिष्ट स्थिति से संपर्क कर रहा हूं तो सभी गलत हैं मैं वास्तव में अपने जवाब देना चाहूंगा वास्तविक प्रश्न भी। धन्यवाद!
संपादित करें: मैंने सिर्फ एक और स्थिति के बारे में सोचा जहां यह सहायक हो सकता है। यदि आप तैयार होने पर अपने ऐप के कुछ हिस्सों को चालू करने के लिए फ़ीचर टॉगल का उपयोग करते हैं, तो आपको उन्हें साफ करने के लिए सावधान रहना होगा, अन्यथा आप टॉगल डेट के साथ समाप्त हो सकते हैं । समय सीमा के साथ टिप्पणियां इसे याद रखने का एक अच्छा तरीका हो सकता है।
TODO <Bug#>:
अन्य घटकों के साथ समस्याओं के लिए वर्कअराउंड को ट्रैक करने के लिए उपयोग करते हैं। जब उन घटकों में से एक पर एक बग साफ हो जाता है, तो आप आसानी से संबंधित वर्कअराउंड को ढूंढ और संबोधित कर सकते हैं। यह एक समस्या ट्रैकर को प्रतिस्थापित नहीं करता है, यह बनाए रखना आसान बनाता है।