অ্যান্টিপ্যাটার্ন: সোর্স কন্ট্রোল ম্যানেজমেন্ট ব্যবহার না করে এজ রিসোর্স ম্যানেজ করুন

আপনি Apigee Edge-এর ডকুমেন্টেশন দেখছেন।
Apigee X ডকুমেন্টেশন
.info- তে যান।

Apigee Edge বিভিন্ন ধরণের রিসোর্স সরবরাহ করে এবং সেগুলোর প্রত্যেকটি ভিন্ন ভিন্ন উদ্দেশ্য পূরণ করে। কিছু নির্দিষ্ট রিসোর্স আছে যা শুধুমাত্র Edge UI, ম্যানেজমেন্ট API, বা ম্যানেজমেন্ট API ব্যবহারকারী টুলগুলোর মাধ্যমে এবং পূর্বশর্তযুক্ত রোল ও পারমিশন থাকা ব্যবহারকারীরাই কনফিগার (অর্থাৎ, তৈরি, আপডেট এবং/অথবা ডিলিট) করতে পারেন। উদাহরণস্বরূপ, শুধুমাত্র একটি নির্দিষ্ট অর্গানাইজেশনের অন্তর্গত অর্গ অ্যাডমিনরাই এই রিসোর্সগুলো কনফিগার করতে পারেন। এর মানে হলো, সাধারণ ব্যবহারকারীরা ডেভেলপার পোর্টালের মাধ্যমে বা অন্য কোনো উপায়ে এই রিসোর্সগুলো কনফিগার করতে পারেন না। এই রিসোর্সগুলোর মধ্যে রয়েছে:

  • এপিআই প্রক্সি
  • ভাগ করা প্রবাহ
  • এপিআই পণ্য
  • ক্যাশে
  • কেভিএম
  • কীস্টোর এবং ট্রাস্টস্টোর
  • ভার্চুয়াল হোস্ট
  • টার্গেট সার্ভার
  • রিসোর্স ফাইল

যদিও এই রিসোর্সগুলিতে সীমিত অ্যাক্সেস থাকে, তবুও অনুমোদিত ব্যবহারকারীরাও যদি এগুলিতে কোনো পরিবর্তন করেন, তাহলে পুরোনো ডেটা নতুন ডেটা দ্বারা ওভাররাইট হয়ে যায়। এর কারণ হলো, এই রিসোর্সগুলি Apigee Edge-এ শুধুমাত্র তাদের বর্তমান অবস্থা অনুযায়ীই সংরক্ষিত থাকে। এই নিয়মের প্রধান ব্যতিক্রম হলো এপিআই প্রক্সি এবং শেয়ার্ড ফ্লো।

রিভিশন কন্ট্রোলের অধীনে এপিআই প্রক্সি এবং শেয়ার্ড ফ্লো

এপিআই প্রক্সি এবং শেয়ার্ড ফ্লো রিভিশনের মাধ্যমে পরিচালিত হয় — অর্থাৎ, তৈরি, আপডেট এবং ডেপ্লয় করা হয়। রিভিশনগুলো ক্রমানুসারে সংখ্যায়িত থাকে, যা আপনাকে নতুন পরিবর্তন যোগ করে সেটিকে একটি নতুন রিভিশন হিসেবে সংরক্ষণ করতে অথবা এপিআই প্রক্সি/শেয়ার্ড ফ্লো-এর পূর্ববর্তী কোনো রিভিশন ডেপ্লয় করার মাধ্যমে কোনো পরিবর্তন পূর্বাবস্থায় ফিরিয়ে আনতে সক্ষম করে। যেকোনো সময়ে, একটি পরিবেশে এপিআই প্রক্সি/শেয়ার্ড ফ্লো-এর কেবল একটিই রিভিশন ডেপ্লয় করা থাকতে পারে, যদি না রিভিশনগুলোর বেস পাথ ভিন্ন হয়।

যদিও এপিআই প্রক্সি এবং শেয়ার্ড ফ্লো রিভিশনের মাধ্যমে পরিচালিত হয়, বিদ্যমান কোনো রিভিশনে কোনো পরিবর্তন করা হলে তা পূর্বাবস্থায় ফিরিয়ে আনার কোনো উপায় থাকে না, কারণ পুরোনো পরিবর্তনগুলো স্বয়ংক্রিয়ভাবে মুছে যায়।

নিরীক্ষা এবং ইতিহাস

Apigee Edge অডিট ও এপিআই, প্রোডাক্ট এবং অর্গানাইজেশন হিস্ট্রি ফিচারগুলো প্রদান করে, যা বিভিন্ন সমস্যা সমাধানে সহায়ক হতে পারে। এই ফিচারগুলো আপনাকে Edge রিসোর্সগুলোর উপর নির্দিষ্ট অপারেশন (তৈরি, পড়া, আপডেট, ডিলিট, ডেপ্লয় এবং আনডেপ্লয়) কে করেছে এবং কখন সেই অপারেশনগুলো করা হয়েছে, সেই ধরনের তথ্য দেখতে সক্ষম করে। তবে, যদি কোনো Edge রিসোর্সের উপর কোনো আপডেট বা ডিলিট অপারেশন করা হয়, তাহলে অডিট আপনাকে পুরোনো ডেটা সরবরাহ করতে পারে না।

অ্যান্টিপ্যাটার্ন

সোর্স কন্ট্রোল সিস্টেম ব্যবহার না করে সরাসরি Edge UI বা ম্যানেজমেন্ট API-এর মাধ্যমে Edge রিসোর্সসমূহ (উপরে তালিকাভুক্ত) পরিচালনা করা।

একটি ভুল ধারণা প্রচলিত আছে যে, Apigee Edge কোনো পরিবর্তন বা মুছে ফেলার পর রিসোর্সগুলোকে তাদের পূর্বের অবস্থায় ফিরিয়ে আনতে পারবে। কিন্তু, Edge Cloud রিসোর্সগুলোকে তাদের পূর্বের অবস্থায় ফিরিয়ে আনার সুবিধা প্রদান করে না। তাই, Edge রিসোর্স সম্পর্কিত সমস্ত ডেটা যেন সোর্স কন্ট্রোল ম্যানেজমেন্টের মাধ্যমে পরিচালিত হয়, তা নিশ্চিত করার দায়িত্ব ব্যবহারকারীর। এর ফলে, ভুলবশত মুছে গেলে বা কোনো পরিবর্তন রোলব্যাক করার প্রয়োজন হলে পুরোনো ডেটা দ্রুত পুনরুদ্ধার করা যাবে। প্রোডাকশন এনভায়রনমেন্টের জন্য এটি বিশেষভাবে গুরুত্বপূর্ণ, যেখানে রানটাইম ট্র্যাফিকের জন্য এই ডেটার প্রয়োজন হয়।

আসুন কয়েকটি উদাহরণের সাহায্যে বিষয়টি ব্যাখ্যা করা যাক এবং দেখা যাক, যদি ডেটা কোনো সোর্স কন্ট্রোল সিস্টেমের মাধ্যমে পরিচালিত না হয় এবং জেনে বা না জেনে তা পরিবর্তন বা মুছে ফেলা হয়, তাহলে কী ধরনের প্রভাব পড়তে পারে:

উদাহরণ ১: এপিআই প্রক্সি মুছে ফেলা বা পরিবর্তন করা

যখন একটি এপিআই প্রক্সি মুছে ফেলা হয়, বা বিদ্যমান কোনো রিভিশনে কোনো পরিবর্তন প্রয়োগ করা হয়, তখন পূর্ববর্তী কোড পুনরুদ্ধার করা যাবে না। যদি এপিআই প্রক্সিতে জাভা, জাভাস্ক্রিপ্ট, নোড.জেএস, বা পাইথন কোড থাকে যা Apigee-এর বাইরের কোনো সোর্স কন্ট্রোল ম্যানেজমেন্ট (SCM) সিস্টেমে পরিচালিত হয় না, তাহলে প্রচুর উন্নয়নমূলক কাজ এবং প্রচেষ্টা নষ্ট হয়ে যেতে পারে।

উদাহরণ ২: নির্দিষ্ট ভার্চুয়াল হোস্ট ব্যবহার করে এপিআই প্রক্সি নির্ধারণ

একটি ভার্চুয়াল হোস্টের সার্টিফিকেটের মেয়াদ শেষ হয়ে আসছে এবং সেই ভার্চুয়াল হোস্টটি আপডেট করা প্রয়োজন। যদি অনেকগুলো এপিআই প্রক্সি থাকে, তবে পরীক্ষার উদ্দেশ্যে কোন কোন এপিআই প্রক্সি সেই ভার্চুয়াল হোস্টটি ব্যবহার করে তা শনাক্ত করা কঠিন হতে পারে। যদি এপিআই প্রক্সিগুলো Apigee-এর বাইরের কোনো SCM সিস্টেমে পরিচালিত হয়, তাহলে রিপোজিটরি অনুসন্ধান করা সহজ হবে।

উদাহরণ ৩: কীস্টোর/ট্রাস্টস্টোর মুছে ফেলা

যদি কোনো ভার্চুয়াল হোস্ট বা টার্গেট সার্ভার কনফিগারেশনে ব্যবহৃত কোনো কীস্টোর/ট্রাস্টস্টোর মুছে ফেলা হয়, তবে সেটিকে পুনরায় পুনরুদ্ধার করা সম্ভব হবে না, যদি না উক্ত কীস্টোর/ট্রাস্টস্টোরের কনফিগারেশন সংক্রান্ত বিবরণ, যার মধ্যে সার্টিফিকেট এবং/অথবা প্রাইভেট কী অন্তর্ভুক্ত, সোর্স কন্ট্রোলে সংরক্ষিত থাকে।

প্রভাব

  • যদি কোনো Edge রিসোর্স মুছে ফেলা হয়, তাহলে Apigee Edge থেকে সেই রিসোর্স এবং তার ভেতরের বিষয়বস্তু পুনরুদ্ধার করা সম্ভব নয়।
  • অপ্রত্যাশিত ত্রুটির কারণে এপিআই অনুরোধ ব্যর্থ হতে পারে, যার ফলে রিসোর্সটি তার পূর্বের অবস্থায় পুনরুদ্ধার না হওয়া পর্যন্ত বিভ্রাট ঘটতে পারে।
  • Apigee Edge-এ API প্রক্সি এবং অন্যান্য রিসোর্সের মধ্যে পারস্পরিক নির্ভরশীলতা খুঁজে বের করা কঠিন।

সর্বোত্তম অনুশীলন

  • এপিআই প্রক্সি এবং শেয়ার্ড ফ্লো পরিচালনার জন্য যেকোনো স্ট্যান্ডার্ড এসসিএম-এর সাথে একটি কন্টিনিউয়াস ইন্টিগ্রেশন ও কন্টিনিউয়াস ডিপ্লয়মেন্ট (সিআইসিডি) পাইপলাইন ব্যবহার করুন।
  • এপিআই প্রোডাক্ট, ক্যাশ, কেভিএম, টার্গেট সার্ভার, ভার্চুয়াল হোস্ট এবং কীস্টোর সহ অন্যান্য এজ রিসোর্সগুলো পরিচালনার জন্য যেকোনো স্ট্যান্ডার্ড এসসিএম ব্যবহার করুন।
    • যদি কোনো বিদ্যমান Edge রিসোর্স থাকে, তাহলে ম্যানেজমেন্ট API ব্যবহার করে সেগুলোর কনফিগারেশন বিবরণ JSON/XML পেলোড হিসেবে সংগ্রহ করুন এবং সোর্স কন্ট্রোল ম্যানেজমেন্টে সংরক্ষণ করুন।
    • সোর্স কন্ট্রোল ম্যানেজমেন্টে এই রিসোর্সগুলির যেকোনো নতুন আপডেট পরিচালনা করুন।
    • নতুন Edge রিসোর্স তৈরি করার বা বিদ্যমান Edge রিসোর্স আপডেট করার প্রয়োজন হলে, সোর্স কন্ট্রোল ম্যানেজমেন্টে সংরক্ষিত উপযুক্ত JSON/XML পেলোড ব্যবহার করুন এবং ম্যানেজমেন্ট API-এর মাধ্যমে Edge-এর কনফিগারেশন আপডেট করুন।

এনক্রিপ্টেড KVM-গুলো API থেকে প্লেইন টেক্সটে এক্সপোর্ট করা যায় না। এনক্রিপ্টেড KVM-গুলোতে কী কী ভ্যালু প্রবেশ করানো হয়েছে, তার রেকর্ড রাখা ব্যবহারকারীর দায়িত্ব।

আরও পড়ুন