एंटीपैटर्न: सोर्स कंट्रोल मैनेजमेंट का इस्तेमाल किए बिना, Edge के संसाधनों को मैनेज करें

Apigee Edge दस्तावेज़ देखा जा रहा है.
Apigee X दस्तावेज़ पर जाएं.
जानकारी

Apigee Edge, कई अलग-अलग तरह के संसाधन उपलब्ध कराता है. इनमें से हर एक संसाधन, अलग काम के लिए होता है. कुछ ऐसे संसाधन हैं जिन्हें सिर्फ़ Edge यूज़र इंटरफ़ेस (यूआई), मैनेजमेंट एपीआई का इस्तेमाल करने वाले टूल या मैनेजमेंट एपीआई का इस्तेमाल करके कॉन्फ़िगर किया जा सकता है (यानी बनाया जा सकता है, अपडेट किया जा सकता है, और/या मिटाया जा सकता है). साथ ही, ज़रूरी भूमिकाओं और अनुमतियों वाले उपयोगकर्ता भी इन संसाधनों को कॉन्फ़िगर कर सकते हैं. उदाहरण के लिए, किसी खास संगठन से जुड़े संगठन के एडमिन ही इन संसाधनों को कॉन्फ़िगर कर सकते हैं. इसका मतलब है कि असली उपयोगकर्ता, इन संसाधनों को डेवलपर पोर्टल या अन्य तरीकों से कॉन्फ़िगर नहीं कर सकते. इन संसाधनों में ये शामिल हैं:

  • एपीआई प्रॉक्सी
  • शेयर किए गए फ़्लो
  • एपीआई प्रॉडक्ट
  • कैश मेमोरी
  • केवीएम
  • कीस्टोर और ट्रस्टस्टोर
  • वर्चुअल होस्ट
  • टारगेट सर्वर
  • संसाधन फ़ाइलें

हालांकि, इन संसाधनों को ऐक्सेस करने पर पाबंदी है, लेकिन अगर अनुमति वाले उपयोगकर्ताओं ने इनमें भी बदलाव किया है, तो पुराने डेटा को नए डेटा के साथ बदल दिया जाता है. ऐसा इसलिए होता है, क्योंकि ये संसाधन Apigee Edge में सिर्फ़ उनकी मौजूदा स्थिति के हिसाब से स्टोर किए जाते हैं. इस नियम के मुख्य अपवाद एपीआई प्रॉक्सी और शेयर फ़्लो हैं.

बदलाव कंट्रोल में, एपीआई प्रॉक्सी और शेयर किए गए फ़्लो

एपीआई प्रॉक्सी और शेयर किए गए फ़्लो को बदलाव के ज़रिए मैनेज किया जाता है. दूसरे शब्दों में, इन्हें बनाया, अपडेट, और डिप्लॉय किया जाता है. बदलावों को क्रम से नंबर दिया जाता है. इससे, नए बदलाव जोड़े जा सकते हैं और उन्हें नए बदलाव के तौर पर सेव किया जा सकता है. इसके अलावा, एपीआई प्रॉक्सी/शेयर किए गए फ़्लो के पिछले रिविज़न को डिप्लॉय करके, बदलाव को पहले जैसा किया जा सकता है. किसी भी समय पर, एनवायरमेंट में एपीआई प्रॉक्सी/शेयर किए गए फ़्लो में सिर्फ़ एक बार बदलाव किया जा सकता है. हालांकि, ऐसा सिर्फ़ तब किया जा सकता है, जब बदलावों के लिए अलग बेस पाथ न हो.

हालांकि, एपीआई प्रॉक्सी और शेयर किए गए फ़्लो को बदलावों की मदद से मैनेज किया जाता है. हालांकि, अगर किसी मौजूदा बदलाव में कोई बदलाव किया जाता है, तो रोल बैक नहीं किया जा सकता, क्योंकि सिर्फ़ पुराने बदलावों को ओवरराइट किया जाता है.

ऑडिट और इतिहास

Apigee Edge, ऑडिट और एपीआई, प्रॉडक्ट, और संगठन के इतिहास से जुड़ी सुविधाएं उपलब्ध कराता है. इनसे, समस्याओं को हल करने में मदद मिलती है. इन सुविधाओं से, आपको कई तरह की जानकारी देखने में मदद मिलती है. जैसे, किसी कार्रवाइयां (बनाने, पढ़ने, अपडेट करने, मिटाने, डिप्लॉय करने, और हटाने की प्रोसेस) और Edge के संसाधनों पर कार्रवाइयां कब की गई थीं. हालांकि, अगर किसी भी Edge संसाधन पर कोई अपडेट किया जाता है या उसे मिटाया जाता है, तो ऑडिट आपको पुराना डेटा नहीं दे सकता.

एंटीपैटर्न

सोर्स कंट्रोल सिस्टम का इस्तेमाल किए बिना, Edge के यूज़र इंटरफ़ेस (यूआई) या मैनेजमेंट एपीआई की मदद से, Edge के संसाधनों को सीधे मैनेज करना (जिनकी सूची ऊपर दी गई है)

यह एक गलत धारणा है कि Apigee Edge, रिसॉर्स में बदलाव करने या उन्हें मिटाने के बाद, उन्हें वापस पहले जैसा कर सकेगा. हालांकि, Edge Cloud, संसाधनों को पहले जैसा करने की सुविधा नहीं देता है. इसलिए, यह पक्का करना उपयोगकर्ता की ज़िम्मेदारी है कि वह Edge के रिसॉर्स से जुड़ा सारा डेटा, सोर्स कंट्रोल मैनेजमेंट से मैनेज किया जाए. इससे, गलती से डेटा मिटने या किसी बदलाव को रोल बैक करने की ज़रूरत पड़ने पर, पुराना डेटा तुरंत वापस पाया जा सकता है. यह प्रोडक्शन एनवायरमेंट के लिए खास तौर पर ज़रूरी है, जहां रनटाइम ट्रैफ़िक के लिए इस डेटा की ज़रूरत होती है.

कुछ उदाहरणों की मदद से और यह समझाते हैं कि इसका क्या असर होता है, अगर डेटा को सोर्स कंट्रोल सिस्टम से मैनेज नहीं किया जाता और जान-बूझकर या अनजाने में, डेटा में बदलाव किया/मिटाया जाता है:

उदाहरण 1: एपीआई प्रॉक्सी को मिटाना या उसमें बदलाव करना

जब एपीआई प्रॉक्सी को मिटाया जाता है या किसी मौजूदा बदलाव में कोई बदलाव लागू किया जाता है, तो पिछले कोड को वापस नहीं लाया जा सकता. अगर एपीआई प्रॉक्सी में Java, JavaScript, Node.js या Python कोड शामिल हैं, जिन्हें Apigee से बाहर के किसी सोर्स कंट्रोल मैनेजमेंट (SCM) सिस्टम में मैनेज नहीं किया जाता है, तो ऐसा करने में हो सकता है कि ऐप्लिकेशन को बनाने में काफ़ी और मेहनत बाकी हो.

उदाहरण 2: खास वर्चुअल होस्ट का इस्तेमाल करके, एपीआई प्रॉक्सी तय करना

वर्चुअल होस्ट के सर्टिफ़िकेट की समयसीमा खत्म होने वाली है और वर्चुअल होस्ट को अपडेट करने की ज़रूरत है. कई एपीआई प्रॉक्सी मौजूद होने पर, यह पता लगाना मुश्किल हो सकता है कि कौनसे एपीआई प्रॉक्सी, टेस्टिंग के लिए उस वर्चुअल होस्ट का इस्तेमाल करते हैं. अगर एपीआई प्रॉक्सी को Apigee से बाहर के किसी एससीएम सिस्टम में मैनेज किया जाता है, तो डेटा स्टोर करने की जगह को खोजना आसान होगा.

उदाहरण 3: कीस्टोर/ट्रस्टस्टोर को मिटाना

अगर किसी कीस्टोर/ट्रस्टस्टोर को वर्चुअल होस्ट या टारगेट सर्वर कॉन्फ़िगरेशन के ज़रिए इस्तेमाल किया जाता है और वह मिटाया जाता है, तो उसे वापस नहीं लाया जा सकता. ऐसा तब तक नहीं किया जा सकता, जब तक किस्टोर/ट्रस्टस्टोर के कॉन्फ़िगरेशन की जानकारी को सोर्स कंट्रोल में सेव नहीं किया जाता. इसमें सर्टिफ़िकेट और/या निजी कुंजियों के कॉन्फ़िगरेशन की जानकारी भी शामिल होती है.

असर

  • अगर किसी भी Edge संसाधन को मिटा दिया जाता है, तो संसाधन और उसके कॉन्टेंट को Apigee Edge से वापस नहीं पाया जा सकता.
  • हो सकता है कि एपीआई अनुरोध पूरे न हो पाएं. इस वजह से, हो सकता है कि कुछ ऐसी गड़बड़ियां हो जाएं जिनकी वजह से, एपीआई काम करना बंद कर दे. ऐसा तब तक हो सकता है, जब तक संसाधन वापस अपनी पुरानी स्थिति में नहीं आ जाता.
  • Apigee Edge में, एपीआई प्रॉक्सी और अन्य संसाधनों के बीच इंटर-डिपेंडेंसी खोजना मुश्किल होता है.

सबसे सही तरीका

  • एपीआई प्रॉक्सी और शेयर किए गए फ़्लो को मैनेज करने के लिए, किसी भी स्टैंडर्ड एससीएम का इस्तेमाल करें. साथ ही, इसे कंटिन्यूअस इंटिग्रेशन और कंटिन्यूअस डिप्लॉयमेंट (सीआईसीडी) पाइपलाइन के साथ जोड़ें.
  • अन्य EDGE संसाधनों को मैनेज करने के लिए, किसी भी स्टैंडर्ड SCM का इस्तेमाल करें. इनमें, एपीआई प्रॉडक्ट, कैश मेमोरी, केवीएम, टारगेट सर्वर, वर्चुअल होस्ट, और कीस्टोर शामिल हैं.
    • अगर कोई मौजूदा Edge संसाधन है, तो उसके कॉन्फ़िगरेशन की जानकारी JSON/एक्सएमएल पेलोड के तौर पर पाने के लिए मैनेजमेंट एपीआई का इस्तेमाल करें और उसे सोर्स कंट्रोल मैनेजमेंट में सेव करें.
    • सोर्स कंट्रोल मैनेजमेंट में, इन संसाधनों के लिए कोई नया अपडेट मैनेज करें.
    • अगर नए Edge संसाधन बनाने या मौजूदा Edge संसाधनों को अपडेट करने की ज़रूरत हो, तो सोर्स कंट्रोल मैनेजमेंट में सेव किए गए सही JSON/एक्सएमएल पेलोड का इस्तेमाल करें और मैनेजमेंट एपीआई का इस्तेमाल करके, Edge में कॉन्फ़िगरेशन अपडेट करें.

* एन्क्रिप्ट (सुरक्षित) की गई केवीएम को एपीआई से सादे टेक्स्ट में एक्सपोर्ट नहीं किया जा सकता. एन्क्रिप्ट (सुरक्षित) की गई केवीएम में कौनसी वैल्यू रखी जाती हैं, इसका रिकॉर्ड रखना उपयोगकर्ता की ज़िम्मेदारी है.

इसके बारे में और पढ़ें