C# के लिए कैओस इंजीनियरिंग: व्यवसाय बचाने के लिए एप्लिकेशन तोड़ना

शुरुआती लोगों के लिए ऑनलाइन Python प्रशिक्षक

Python आसानी से सीखें बिना सिद्धांत के बोझ के। स्वचालित जांच के साथ व्यावहारिक कार्य हल करें और ब्राउज़र में सीधे कोड लिखें।

पाठ्यक्रम शुरू करें

परिचय: आपकी C# सेवा एक आदर्श तंत्र क्यों नहीं है

\n\n

कल्पना करें: आपने C# में एक सुंदर माइक्रोसर्विस लिखी है। कोड ने कोड रिव्यू पास कर लिया है, यूनिट-टेस्ट 95% कवर करते हैं, इंटीग्रेशन टेस्ट हरे हैं। आप इसे प्रोडक्शन में डिप्लॉय करते हैं, और… 3 घंटे बाद सिस्टम क्रैश हो जाता है। कारण? ट्रैफिक में अप्रत्याशित उछाल जिसने थ्रेड पूल को ओवरलोड कर दिया, या डेटाबेस का अचानक डिस्कनेक्ट होना जिसकी आपने कल्पना नहीं की थी।

\n\n

वास्तविक दुनिया में आपका स्वागत है, जहाँ कैओस इंजीनियरिंग (Chaos Engineering) विलासिता नहीं, बल्कि आवश्यकता बन जाती है। यह "मनोरंजन के लिए सब कुछ तोड़ने" के बारे में नहीं है। यह एक अनुशासन है जो वितरित प्रणालियों में कमजोरियों को खोजने में मदद करता है, इससे पहले कि आपके उपयोगकर्ता उन्हें खोजें।

\n\n

इस लेख में, हम C# एप्लिकेशन के लिए कैओस इंजीनियरिंग को लागू करने के तरीके पर चर्चा करेंगे: सिद्धांत से लेकर Polly और Simmy लाइब्रेरी का उपयोग करके वास्तविक कोड उदाहरणों तक। आप सीखेंगे कि .NET सेवाओं में जानबूझकर अराजकता कैसे लाई जाए ताकि उनकी स्थिरता और पूर्वानुमानशीलता बढ़ाई जा सके।

\n\n

कैओस इंजीनियरिंग क्या है और यह .NET के लिए क्यों महत्वपूर्ण है?

\n\n

कैओस इंजीनियरिंग एक वितरित प्रणाली पर प्रयोग करने की प्रथा है ताकि यह जाँचा जा सके कि वह अप्रत्याशित विफलताओं को झेलने में सक्षम है या नहीं। Netflix, Amazon, Microsoft — सभी दिग्गज इसका उपयोग करते हैं। C# डेवलपर्स के लिए यह विशेष रूप से प्रासंगिक है, क्योंकि .NET Core/5+ का उपयोग Microsoft Azure पर उच्च-लोड, क्लाउड-आधारित सेवाओं के निर्माण के लिए तेजी से किया जा रहा है।

\n\n

कैओस इंजीनियरिंग के मुख्य सिद्धांत:

\n
    \n
  • "स्टेडी स्टेट" (स्थिर अवस्था) की परिभाषा — आपकी प्रणाली सामान्य रूप से कैसे व्यवहार करती है (लेटेंसी, थ्रूपुट, एरर रेट)।
  • \n
  • परिकल्पना का निर्माण — "यदि OrderDB डेटाबेस डाउन हो जाता है, तो ऑर्डर सेवा 5 मिनट तक कैश्ड डेटा के साथ जवाब देना जारी रखेगी।"
  • \n
  • अराजकता का परिचय — आप वास्तव में OrderDB को 30 सेकंड के लिए बंद कर देते हैं।
  • \n
  • परिकल्पना का सत्यापन — मेट्रिक्स देखें। यदि परिकल्पना सत्य नहीं होती है — तो आपकी आर्किटेक्चर में एक बग है।
  • \n
\n\n

यहाँ मुख्य शब्द है — "प्रयोग"। आप केवल सर्वश्रेष्ठ की उम्मीद नहीं कर रहे हैं, आप यह साबित कर रहे हैं कि आपकी प्रणाली बच जाएगी।

\n\n

C# में कैओस इंजीनियरिंग के लिए उपकरण

\n\n

.NET की दुनिया में दो शक्तिशाली उपकरण हैं जो एक साथ काम करते हैं:

\n
    \n
  • Polly — दोष-सहनशीलता पैटर्न (Retry, Circuit Breaker, Timeout, Bulkhead Isolation) को लागू करने के लिए लाइब्रेरी।
  • \n
  • Simmy (Microsoft.Extensions.Resilience) — कैओस इंजीनियरिंग के लिए लाइब्रेरी, जो Polly का विस्तार करती है। यह आपकी नीतियों में विफलताओं को "इंजेक्ट" करने की अनुमति देती है।
  • \n
\n\n

Simmy Polly का "बुरा भाई" है। यदि Polly आपके एप्लिकेशन को जीवित रहना सिखाती है, तो Simmy जाँचता है कि वह कितनी अच्छी तरह से ऐसा कर सकता है, जानबूझकर कॉल को तोड़कर।

\n\n

अभ्यास: C# पर कैओस प्रयोग सेटअप करना

\n\n

चलिए कोड पर आते हैं। मान लीजिए, हमारे पास एक बुकिंग सेवा है जो बाहरी पेमेंट API को कॉल करती है। हम जाँचना चाहते हैं कि BookingService कैसे व्यवहार करेगा यदि पेमेंट API देरी या त्रुटियों के साथ जवाब देना शुरू कर दे।

\n\n

चरण 1: पैकेज इंस्टॉल करना

\n
dotnet add package Microsoft.Extensions.Http.Polly\ndotnet add package Microsoft.Extensions.Resilience\n
\n\n

चरण 2: नीतियों के साथ HttpClient कॉन्फ़िगर करना

\n

पहले हम Polly का उपयोग करके मानक Circuit Breaker और Retry नीति सेट करते हैं। फिर हम इसे Simmy से कैओस नीति में "लपेट" देते हैं।

\n\n
using Microsoft.Extensions.DependencyInjection;\nusing Microsoft.Extensions.Http.Resilience;\nusing Polly;\nusing Polly.Extensions.Http;\n\npublic static class ServiceCollectionExtensions\n{\n    public static IServiceCollection AddPaymentClient(this IServiceCollection services)\n    {\n        services.AddHttpClient<IPaymentService, PaymentService>(client =&g                

ब्लॉग

पुस्तक अनुशंसाएँ