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

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

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

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

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

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

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

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

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

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

ऐंटीपैटर्न

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

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

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

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

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

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

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

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

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

असर

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

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

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

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

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