আপনি Apigee Edge-এর ডকুমেন্টেশন দেখছেন।
Apigee X ডকুমেন্টেশন .info- তে যান।
প্রতিটি প্রতিষ্ঠানের একটি স্বতন্ত্র সফটওয়্যার ডেভেলপমেন্ট লাইফসাইকেল (SDLC) থাকে। অন্যান্য অ্যাপ্লিকেশন ডেভেলপ, টেস্ট এবং ডেপ্লয় করার জন্য বর্তমানে ব্যবহৃত প্রক্রিয়াগুলোর সাথে এপিআই প্রক্সি ডেপ্লয়মেন্টকে প্রায়শই সিঙ্ক্রোনাইজ এবং অ্যালাইন করার প্রয়োজন হয়।
এপিআই সার্ভিসেস এমন টুলস এবং রেস্টফুল এপিআই (RESTful APIs) প্রদান করে, যা আপনাকে আপনার প্রতিষ্ঠানের এসডিএলসি (SDLC)-তে এপিআই প্রক্সি ডেপ্লয়মেন্ট এবং ম্যানেজমেন্টকে একীভূত করতে সক্ষম করে। রেস্টফুল এপিআই-এর একটি সাধারণ ব্যবহার হলো এমন স্ক্রিপ্ট বা কোড লেখা, যা প্রোগ্রাম্যাটিকভাবে এপিআই প্রক্সি ডেপ্লয় করে, অথবা একটি বৃহত্তর স্বয়ংক্রিয় প্রক্রিয়ার অংশ হিসেবে এপিআই প্রক্সিকে এক এনভায়রনমেন্ট থেকে অন্য এনভায়রনমেন্টে মাইগ্রেট করে। এই প্রক্রিয়ায় অন্যান্য অ্যাপ্লিকেশনও ডেপ্লয় বা মাইগ্রেট করা হয়। এপিআই সার্ভিসেস আপনার এসডিএলসি (বা অন্য কারও এসডিএলসি) সম্পর্কে কোনো পূর্বানুমান করে না। বরং, এটি এমন কিছু অ্যাটমিক ফাংশন সরবরাহ করে, যা আপনার ডেভেলপমেন্ট টিম সমন্বয় করে আপনার এপিআই ডেভেলপমেন্ট লাইফসাইকেলকে স্বয়ংক্রিয় ও অপ্টিমাইজ করতে পারে।
এপিআই সার্ভিসেস এপিআইগুলো এপিআই রেফারেন্সে নথিভুক্ত করা আছে। এপিআই রেফারেন্স গেটিং স্টার্টেড দেখুন।
এপিআই এনভায়রনমেন্ট এবং এপিআই ডেভেলপমেন্ট লাইফসাইকেল সম্পর্কে প্রাথমিক ধারণা পেতে এই ভিডিওটি দেখুন।
পরিবেশ
Apigee Edge-এর প্রতিটি অর্গানাইজেশনের অন্তত দুটি ডেপ্লয়মেন্ট এনভায়রনমেন্ট রয়েছে যা এপিআই প্রক্সির জন্য উপলব্ধ: 'টেস্ট' এবং 'প্রড'। এই দুটি এনভায়রনমেন্টের মধ্যে পার্থক্যটি ইচ্ছাধীন — প্রতিটি এনভায়রনমেন্টকে কেবল ভিন্ন ভিন্ন নেটওয়ার্ক অ্যাড্রেস (URL) দ্বারা চিহ্নিত করা হয়। এর উদ্দেশ্য হলো আপনাকে এমন একটি ডোমেইন প্রদান করা, যেখানে এপিআইটি বাহ্যিক ডেভেলপারদের কাছে উন্মুক্ত করার আগে আপনি এপিআই প্রক্সি তৈরি এবং যাচাই করতে পারবেন।
আপনি আপনার এসডিএলসি (SDLC)-এর সাথে এপিআই প্রক্সি (API proxy) ডেভেলপমেন্ট প্রক্রিয়াকে সিঙ্ক্রোনাইজ করতে এই এনভায়রনমেন্টগুলো ব্যবহার করতে পারেন। প্রতিটি এনভায়রনমেন্ট একটি নেটওয়ার্ক অ্যাড্রেস দ্বারা সংজ্ঞায়িত হয়, যা আপনাকে আপনার তৈরি করা এপিআই প্রক্সি এবং রানটাইমে অ্যাপ দ্বারা ব্যবহৃত প্রক্সিগুলোর মধ্যে ট্র্যাফিক আলাদা করতে সক্ষম করে। প্রতিটি এনভায়রনমেন্টের জন্য উপলব্ধ নেটওয়ার্ক অ্যাড্রেসগুলো সেই এনভায়রনমেন্টে থাকা ভার্চুয়ালহোস্ট (VirtualHosts)-এর সেটে সংজ্ঞায়িত করা থাকে।
ইনবাউন্ডের ক্ষেত্রে, প্রতিটি এনভায়রনমেন্টের জন্য সার্ভার TLS/SSL স্বয়ংক্রিয়ভাবে সক্রিয় করা থাকে। প্রতিটি এনভায়রনমেন্টে দুটি VirtualHost আগে থেকেই সংজ্ঞায়িত করা থাকে: default এবং secure । Default একটি HTTP অ্যাড্রেস নির্ধারণ করে, যেখানে secure একটি HTTP/S অ্যাড্রেস নির্ধারণ করে, এবং এতে আগে থেকেই সার্ভার-সাইড TLS/SSL কনফিগার করা থাকে। একটি API প্রক্সি কনফিগারেশনে, আপনি নির্দেশ করেন যে ProxyEndpoint কোন VirtualHost-গুলোতে লিসেন করবে। প্রোডাকশনে প্রমোট করার সময়, আপনি সাধারণত API প্রক্সি কনফিগারেশন থেকে default VirtualHost-টি সরিয়ে দিয়ে HTTP নিষ্ক্রিয় করে দেন।
উদাহরণস্বরূপ, নিম্নলিখিত ProxyEndpoint-টি HTTP এবং HTTPS উভয় পোর্টেই লিসেন করে।
<HTTPProxyConnection> <BasePath>/v0/weather</BasePath> <Properties/> <VirtualHost>default</VirtualHost> <VirtualHost>secure</VirtualHost> </HTTPProxyConnection>
ProxyEndpoint কনফিগারেশন থেকে default VirtualHost মুছে ফেলার মাধ্যমে, আপনি এমন একটি API প্রক্সি তৈরি করেন যা শুধুমাত্র HTTPS-এ শোনে, HTTP-তে নয়।
<HTTPProxyConnection> <BasePath>/v0/weather</BasePath> <Properties/> <VirtualHost>secure</VirtualHost> </HTTPProxyConnection>
ম্যানেজমেন্ট UI-এর প্রধান মেনু থেকে Environments নির্বাচন করে আপনি দেখতে পারেন একটি এনভায়রনমেন্টে কোন VirtualHost-গুলো উপলব্ধ আছে।
এনভায়রনমেন্ট ডেটা এবং রিসোর্সের পৃথকীকরণও প্রদান করে। উদাহরণস্বরূপ, আপনি টেস্ট এবং প্রোড-এ আলাদা ক্যাশে সেট আপ করতে পারেন, যেগুলো শুধুমাত্র সেই এনভায়রনমেন্টে চলমান এপিআই প্রক্সি দ্বারা অ্যাক্সেস করা যাবে। এছাড়াও, টেস্ট এনভায়রনমেন্টে ইস্যু করা এপিআই কীগুলো প্রোড এনভায়রনমেন্টে বৈধ নয় এবং এর বিপরীতটিও সত্য।
পরিবেশে এপিআই প্রক্সি স্থাপন করা
যখন আপনি একটি এপিআই প্রক্সি তৈরি করবেন, তখন আপনাকে সিদ্ধান্ত নিতে হবে যে আপনি কোন পরিবেশে কাজ করবেন। আপনি প্রোডাকশনে একটি নতুন এপিআই প্রক্সি তৈরি করতে পারেন, কিন্তু এটি সুপারিশ করা হয় না, কারণ এর ফলে এপিআই প্রস্তুত হওয়ার আগেই ডেভেলপারদের কাছে উন্মুক্ত হয়ে যেতে পারে। সাধারণত, test এনভায়রনমেন্টে একটি এপিআই প্রক্সি তৈরি করে শুরু করুন, যা পরীক্ষা করার পর আপনি prod উন্নীত করবেন ।
আরও তথ্যের জন্য, ‘Understanding deployment’ দেখুন।
পরীক্ষায় পুনরাবৃত্তিমূলক উন্নয়ন
আপনি যখন একটি এপিআই প্রক্সিতে কাজ করেন, এপিআই সার্ভিসেস আপনার কনফিগারেশনের বিভিন্ন সংস্করণকে রিভিশন হিসেবে সংরক্ষণ করে। যখন আপনি একটি এপিআই প্রক্সি ডেপ্লয় করেন, তখন ডেপ্লয় করার জন্য একটি নির্দিষ্ট রিভিশন বেছে নেন। সাধারণত, আপনি সবচেয়ে সাম্প্রতিক রিভিশনটি ডেপ্লয় করেন এবং প্রয়োজনে পূর্ববর্তী রিভিশন নম্বরে ফিরে যান। আপনি সেই রিভিশনগুলো কোথায় ডেপ্লয় করবেন তা বেছে নিতে পারেন। উদাহরণস্বরূপ, ডেভেলপারদের আপনার এপিআই নিয়ে কাজ শুরু করার সুযোগ দিতে আপনি একটি রিভিশনকে ‘প্রোড’ (prod) এ উন্নীত করতে পারেন। একই সময়ে, আপনি ‘টেস্ট’ (test) এ একাধিক রিভিশনের পুনরাবৃত্তি করতে পারেন, যেখানে আপনি নতুন ফিচার যোগ করছেন বা পলিসিগুলো সূক্ষ্মভাবে সমন্বয় করছেন। তারপর, যখন আপনি প্রস্তুত হবেন, তখন আপনি নতুন রিভিশনটি ‘প্রোড’ এ ডেপ্লয় করতে পারেন, যা সেই এনভায়রনমেন্টে থাকা বিদ্যমান রিভিশনটিকে ওভাররাইট করে দেবে। এই পদ্ধতি ব্যবহার করে, আপনি ডেভেলপ করার সময় ডেভেলপারদের জন্য আপনার এপিআই-এর একটি লাইভ রিভিশন সর্বদা উপলব্ধ রাখতে পারেন।
প্রোডে প্রমোশন
যখন একটি এপিআই প্রক্সি সম্পূর্ণরূপে বাস্তবায়িত এবং পরীক্ষিত হয়ে যায়, তখন এটিকে 'prod'-এ উন্নীত করার জন্য প্রস্তুত হয়। পরীক্ষাধীন এপিআই প্রক্সির রিভিশনটি 'prod'-এ স্থাপন করা এপিআই প্রক্সির রিভিশনকে ওভাররাইট করতে ব্যবহৃত হবে।
এপিআই সার্ভিসেস এপিআই প্রক্সিগুলির নির্বিঘ্ন স্থাপন নিশ্চিত করার সক্ষমতা প্রদান করে, যা স্থাপন প্রক্রিয়া চলাকালীন অ্যাপ এবং ব্যবহারকারীদের উপর প্রভাব কমিয়ে আনে।
স্ক্রিপ্টিং ডিপ্লয়মেন্ট
Apigee Edge ম্যানেজমেন্ট UI আপনাকে সরাসরি API প্রক্সি বিল্ডার থেকে প্রোডাকশনে API প্রক্সি ডেপ্লয় করার সুযোগ দেয়। তবে, অনেক ক্ষেত্রে নিরাপত্তা, নির্ভরযোগ্যতা এবং সামঞ্জস্যের প্রয়োজনীয়তার কারণে ডেভেলপমেন্ট টিমগুলোকে ডেপ্লয়মেন্ট পদ্ধতির জন্য স্ক্রিপ্ট তৈরি করতে হয়। এটি করার জন্য, আপনি এমন কোড এবং স্ক্রিপ্ট লিখতে পারেন যা API সার্ভিসেস দ্বারা উন্মুক্ত করা RESTful API-কে কল করে।
পরিবেশ সম্পদ
প্রোমোশনের সময় অতিরিক্ত নিয়ন্ত্রণের জন্য, শুধুমাত্র টেস্ট পর্যায়ে থাকা এপিআই প্রক্সিগুলোতে পুনরাবৃত্তি করার এবং প্রোডাকশন পর্যায়ে ডেপ্লয় করা এপিআই প্রক্সিগুলোতে যতটুকু প্রয়োজন ততটুকুই পরিবর্তন করার পরামর্শ দেওয়া হচ্ছে।
এর জন্য, আপনাকে নিশ্চিত করতে হবে যে প্রতিটি এনভায়রনমেন্টের সাথে যুক্ত নির্দিষ্ট রিসোর্সগুলো এমনভাবে কনফিগার করা আছে, যাতে সেগুলো একটি এপিআই প্রক্সি কনফিগারেশনে স্থির থাকতে পারে।
- টার্গেট ইউআরএল: টেস্টিং এবং প্রোডাকশনের সময় এপিআই প্রক্সিগুলো প্রায়শই ভিন্ন ভিন্ন ব্যাকএন্ড ইউআরএল কল করে থাকে। আপনি পরিবেশ-নিরপেক্ষ টার্গেটএন্ডপয়েন্ট কনফিগারেশন তৈরি করতে টার্গেটসার্ভার কনফিগারেশন ব্যবহার করতে পারেন। ব্যাকএন্ড সার্ভারগুলোর মধ্যে লোড ব্যালান্সিং দেখুন।
- ক্যাশ এবং কী/ভ্যালু ম্যাপ: এই দুটি পার্সিস্টেন্স রিসোর্সই এনভায়রনমেন্ট দ্বারা স্কোপ করা হয়। আপনাকে নিশ্চিত করতে হবে যেন নামকরণের নিয়মাবলী ব্যবহার করা হয়, যাতে প্রোমোশনের সময় কনফিগারেশন পরিবর্তনের প্রয়োজন ছাড়াই এপিআই প্রক্সিগুলো ডেটা সংরক্ষণ করতে পারে। ‘একটি এনভায়রনমেন্ট ক্যাশ তৈরি এবং সম্পাদনা করা ’ দেখুন।
- সার্ভিস কলআউটের টার্গেট: পরিবেশের উপর নির্ভর করে সার্ভিস কলআউটগুলো ভিন্ন ভিন্ন টার্গেট ব্যবহার করতে পারে; উদাহরণস্বরূপ, যদি টেস্ট এনভায়রনমেন্টের কোনো সার্ভিস কলআউট একটি ডেমো সার্ভিস ব্যবহার করে। সার্ভিস কলআউট পলিসি দেখুন।
এপিআই প্রক্সি কনফিগারেশনকে পরিবেশ-নিরপেক্ষ করতে, আপনি কন্ডিশনাল স্টেটমেন্টও ব্যবহার করতে পারেন। কোনো পলিসি প্রয়োগ করার আগে বা ব্যাকএন্ডে কোনো ইউআরএল-এ রাউটিং করার আগে বর্তমান পরিবেশ মূল্যায়ন করতে environment.name ভেরিয়েবল দিয়ে তৈরি কন্ডিশনাল স্টেটমেন্ট ব্যবহার করা যেতে পারে।
আরও তথ্যের জন্য, ‘Understanding deployment’ দেখুন।