প্ল্যানেট, অঞ্চল, পড, সংস্থা, এনভায়রনমেন্ট ও ভার্চুয়াল হোস্ট সম্পর্কে

Edge Private Cloud-এর অন-প্রিমিসেস ইনস্টলেশন বা Edge ইনস্ট্যান্সে একাধিক Edge কম্পোনেন্ট থাকে যা সার্ভার নোডের সেটে ইনস্টল করা থাকে। The following image shows the relationship among the planet, regions, pods, organizations, environments, and virtual hosts that make up an Edge instance:

নিচের সারণীতে এই সম্পর্কগুলি বর্ণনা করা হয়েছে:

কম্পোনেন্ট এর মধ্যে আছে এর সাথে যুক্ত ডিফল্ট
Planet এক বা একাধিক অঞ্চল প্রযোজ্য নয়
অঞ্চল এক বা একাধিক পড "dc-1"
Pod এক বা একাধিক এজ কম্পোনেন্ট "central"
"gateway"
"analytics"
Organization এক বা একাধিক এনভায়রনমেন্ট মেসেজ প্রসেসর সহ এক বা একাধিক পড এবং একজন ব্যবহারকারী যিনি সংস্থার অ্যাডমিন হিসেবে কাজ করছেন কিছুই নয়
পরিবেশ এক বা একাধিক ভার্চুয়াল হোস্ট মূল সংস্থার সাথে যুক্ত পডে এক বা একাধিক মেসেজ প্রসেসর কিছুই নয়
ভার্চুয়াল হোস্ট এক বা একাধিক হোস্ট উপনাম কিছুই নয়

গ্রহ সম্পর্কে

প্ল্যানেট সম্পূর্ণ Edge হার্ডওয়্যার ও সফ্টওয়্যার এনভায়রনমেন্টকে বোঝায় এবং এতে এক বা একাধিক অঞ্চল থাকতে পারে। Edge-এ, প্ল্যানেট হল অঞ্চলের লজিক্যাল গ্রুপিং: আপনি Edge ইনস্টল করার অংশ হিসেবে স্পষ্টভাবে কোনও প্ল্যানেট তৈরি বা কনফিগার করেন না।

অঞ্চল সম্পর্কে

অঞ্চল হল এক বা একাধিক পডের গ্রুপিং। ডিফল্ট হিসেবে, আপনি Edge ইনস্টল করলে, ইনস্টলার "dc-1" নামে একটি অঞ্চল তৈরি করে যাতে তিনটি পড থাকে, যেমনটি নিম্নলিখিত সারণীতে দেখানো হয়েছে:

অঞ্চল অঞ্চলে পড
"dc-1" "গেটওয়ে", "সেন্ট্রাল", "অ্যানালিটিক্স"

নিচের ছবিতে ডিফল্ট অঞ্চল দেখানো হয়েছে:

এই ছবিতে লোড ব্যালেন্সার "গেটওয়ে" পডে ট্রাফিক ডাইরেক্ট করছে। "গেটওয়ে" পডে এজ রাউটার ও মেসেজ প্রসেসর কম্পোনেন্ট থাকে যা API অনুরোধ ম্যানেজ করে। আপনি একাধিক ডেটা সেন্টার সংজ্ঞায়িত না করলে, আপনাকে অতিরিক্ত অঞ্চল তৈরি করতে হবে না।

আরও জটিল ইনস্টলেশনের ক্ষেত্রে, আপনি দুই বা তার বেশি অঞ্চল তৈরি করতে পারবেন। একাধিক অঞ্চল তৈরি করার একটি কারণ হল ভৌগোলিক অবস্থান অনুযায়ী মেশিন সাজানো, যা নেটওয়ার্ক ট্রানজিট টাইম কম করে। এই পরিস্থিতিতে, আপনি API এন্ডপয়েন্ট হোস্ট করেন যাতে সেগুলি ভৌগোলিকভাবে সেইসব API-এর গ্রাহকদের কাছাকাছি থাকে।

Edge-এ, প্রতিটি অঞ্চলকে ডেটা সেন্টার হিসেবে উল্লেখ করা হয়। মার্কিন যুক্তরাষ্ট্রের পূর্ব উপকূলের ডেটা সেন্টার বস্টন, ম্যাসাচুসেটস থেকে আসা অনুরোধগুলি সামলাতে পারে, আর সিঙ্গাপুরের ডেটা সেন্টার এশিয়ার ডিভাইস বা কম্পিউটার থেকে আসা অনুরোধগুলি সামলাতে পারে।

যেমন, নিম্নলিখিত ছবিতে দুটি অঞ্চল দেখানো হয়েছে, যা দুটি ডেটা সেন্টারের সাথে সম্পর্কিত:

Pods সম্পর্কে

পড হল এক বা একাধিক এজ কম্পোনেন্ট এবং ক্যাসান্দ্রা ডেটাস্টোরের গ্রুপিং। Edge কম্পোনেন্ট একই নোডে ইনস্টল করা যেতে পারে, তবে সাধারণত বিভিন্ন নোডে ইনস্টল করা হয়। Cassandra ডেটাস্টোর হল একটি ডেটা রিপোজিটরি যা পডের এজ কম্পোনেন্ট দ্বারা ব্যবহৃত হয়।

ডিফল্ট হিসেবে, আপনি Edge ইনস্টল করলে, ইনস্টলার তিনটি পড তৈরি করে এবং প্রতিটি পডের সাথে নিম্নলিখিত Edge কম্পোনেন্ট ও Cassandra ডেটাস্টোরকে অ্যাসোসিয়েট করে:

Pod এজ কম্পোনেন্ট

Cassandra ডেটাস্টোর

"গেটওয়ে" রাউটার, মেসেজ প্রসেসর cache-datastore
counter-datastore
dc-datastore
keyvaluemap-datastore
kms-datastore
"কেন্দ্রীয়" ম্যানেজমেন্ট সার্ভার, Zookeeper, LDAP, UI, Qpid application-datastore
apimodel-datastore
audit-datastore
auth-datastore
identityzone-datastore
edgenotification-datastore
management-server
scheduler-datastore
user-settings-datastore
"অ্যানালিটিক্স" Postgres analytics-datastore reportcrud-datastore

API প্রসেস করার জন্য "গেটওয়ে" পডে এজ কম্পোনেন্ট ও Cassandra ডেটাস্টোর প্রয়োজন। API অনুরোধ প্রসেস করার জন্য এইসব কম্পোনেন্ট ও ডেটাস্টোর চালু থাকতে হবে। "সেন্ট্রাল" এবং "অ্যানালিটিক্স" পডের কম্পোনেন্ট এবং ডেটাস্টোরগুলি API প্রসেস করার জন্য প্রয়োজন হয় না, তবে Edge-এ অতিরিক্ত কার্যকারিতা যোগ করে।

নিচের ছবিতে প্রতিটি পডের কম্পোনেন্ট দেখা যাচ্ছে:

ডিফল্ট হিসেবে তৈরি হওয়া তিনটি মেসেজ প্রসেসর ও রাউটার পডের সাথে আপনি আরও মেসেজ প্রসেসর ও রাউটার পড যোগ করতে পারবেন। এর পরিবর্তে, আপনি আগে থেকে থাকা পডে অতিরিক্ত Edge কম্পোনেন্ট যোগ করতে পারেন। যেমন, আপনি "গেটওয়ে" পডে অতিরিক্ত রাউটার ও মেসেজ প্রসেসর যোগ করে ট্রাফিকের লোড সামলাতে পারেন।

লক্ষ্য করুন যে "গেটওয়ে" পডে এজ রাউটার এবং মেসেজ প্রসেসর উপাদান রয়েছে। রাউটার শুধুমাত্র একই পডের মেসেজ প্রসেসরে অনুরোধ পাঠায় এবং অন্য পডের মেসেজ প্রসেসরে পাঠায় না।

প্রতিটি পডের ইনস্টলেশন শেষে সার্ভার রেজিস্ট্রেশনের বিবরণ দেখতে আপনি নিম্নলিখিত API কল ব্যবহার করতে পারেন। এটি একটি সহায়ক মনিটরিং টুল।

curl -u adminEmail:pword http://ms_IP:8080/v1/servers?pod=podName

যেখানে ms_IP হল ম্যানেজমেন্ট সার্ভারের IP অ্যাড্রেস বা DNS নাম, এবং podName হল নিম্নলিখিতগুলির মধ্যে একটি:

  • gateway
  • central
  • analytics

যেমন, "গেটওয়ে" পডের জন্য:

curl -u adminEmail:pword http://ms_IP:8080/v1/servers?pod=gateway

Apigee নিম্নলিখিত আউটপুটের মতো আউটপুট দেখায়:

[ {
  "externalHostName" : "localhost",
  "externalIP" : "192.168.1.11",
  "internalHostName" : "localhost",
  "internalIP" : "192.168.1.11",
  "isUp" : true,
  "pod" : "gateway",
  "reachable" : true,
  "region" : "dc-1",
  "tags" : {
    "property" : [ {
      "name" : "jmx.rmi.port",
      "value" : "1101"
    }, ... ]
  },
  "type" : [ "message-processor" ],
  "uUID" : "276bc250-7dd0-46a5-a583-fd11eba786f8"
}, 
{
  "internalIP" : "192.168.1.11",
  "isUp" : true,
  "pod" : "gateway",
  "reachable" : true,
  "region" : "dc-1",
  "tags" : {
    "property" : [ ]
  },
  "type" : [ "dc-datastore", "management-server", "cache-datastore", "keyvaluemap-datastore", "counter-datastore", "kms-datastore" ],
  "uUID" : "13cee956-d3a7-4577-8f0f-1694564179e4"
},
{
  "externalHostName" : "localhost",
  "externalIP" : "192.168.1.11",
  "internalHostName" : "localhost",
  "internalIP" : "192.168.1.11",
  "isUp" : true,
  "pod" : "gateway",
  "reachable" : true,
  "region" : "dc-1",
  "tags" : {
    "property" : [ {
      "name" : "jmx.rmi.port",
      "value" : "1100"
    }, ... ]
  },
  "type" : [ "router" ],
  "uUID" : "de8a0200-e405-43a3-a5f9-eabafdd990e2"
} ]

type অ্যাট্রিবিউট কম্পোনেন্টের ধরন তালিকাভুক্ত করে। মনে রাখবেন যে এটি পডে রেজিস্টার করা Cassandra ডেটা স্টোরের তালিকা দেখায়। Cassandra নোড "গেটওয়ে" পডে ইনস্টল করা থাকলেও, আপনি সব পডের সাথে রেজিস্টার করা Cassandra ডেটাস্টোর দেখতে পাবেন।

সংস্থা সম্পর্কে

প্রতিষ্ঠান হল Apigee অ্যাকাউন্টের সব অবজেক্টের কন্টেনার, যার মধ্যে API, API প্রোডাক্ট, অ্যাপ ও ডেভেলপার অন্তর্ভুক্ত। একটি সংস্থা এক বা একাধিক পডের সাথে যুক্ত, যেখানে প্রতিটি পডে এক বা একাধিক মেসেজ প্রসেসর থাকতে হবে।

Edge Private Cloud-এর অন-প্রিমিসেস ইনস্টলেশনে, ডিফল্ট হিসেবে কোনও সংস্থা থাকে না। আপনি কোনও সংস্থা তৈরি করার সময়, দুটি তথ্য উল্লেখ করেন:

  1. একজন ব্যবহারকারী যিনি সংস্থার অ্যাডমিনিস্ট্রেটর হিসেবে কাজ করেন। সেই ব্যবহারকারী তখন সংস্থায় অতিরিক্ত ব্যবহারকারী যোগ করতে এবং প্রতিটি ব্যবহারকারীর ভূমিকা সেট করতে পারবেন।
  2. "গেটওয়ে" পড, মেসেজ প্রসেসর সহ পড।

একটি সংস্থায় এক বা একাধিক এনভায়রনমেন্ট থাকতে পারে। ডিফল্ট Edge ইনস্টলেশন পদ্ধতি আপনাকে দুটি এনভায়রনমেন্ট তৈরি করতে প্রম্পট করে: "test" এবং "prod"। তবে, আপনি প্রয়োজন অনুযায়ী আরও এনভায়রনমেন্ট তৈরি করতে পারবেন, যেমন "স্টেজিং", "এক্সপেরিমেন্ট" ইত্যাদি।

সংস্থা কিছু Apigee ক্ষমতার জন্য সুযোগ প্রদান করে। যেমন, কী-ভ্যালু-ম্যাপ (KVM) ডেটা সংস্থা লেভেলে উপলভ্য, অর্থাৎ সব এনভায়রনমেন্ট থেকে। অন্যান্য ক্ষমতা, যেমন ক্যাশিং, একটি নির্দিষ্ট পরিবেশের জন্য স্কোপ করা হয়। Apigee Analytics ডেটা, সংস্থা ও পরিবেশের সংমিশ্রণ দ্বারা পার্টিশন করা হয়।

নিচে কোনও সংস্থার প্রধান অবজেক্ট দেখানো হয়েছে, যার মধ্যে রয়েছে সংস্থায় বিশ্বব্যাপী সংজ্ঞায়িত অবজেক্ট এবং কোনও পরিবেশে বিশেষভাবে সংজ্ঞায়িত অবজেক্ট:

এনভায়রনমেন্ট সম্পর্কে

এনভায়রনমেন্ট হল কোনও সংস্থার API প্রক্সির জন্য রানটাইম এক্সিকিউশন কনটেক্সট। অ্যাক্সেস করার আগে আপনাকে অবশ্যই কোনও পরিবেশে API প্রক্সি ডিপ্লয় করতে হবে। আপনি একটি বা একাধিক এনভায়রনমেন্টে API প্রক্সি ডিপ্লয় করতে পারবেন।

একটি প্রতিষ্ঠানে একাধিক এনভায়রনমেন্ট থাকতে পারে। যেমন, আপনি কোনও সংস্থায় "dev", "test" ও "prod" এনভায়রনমেন্ট নির্ধারণ করতে পারেন।

আপনি কোনও এনভায়রনমেন্ট তৈরি করলে, সেটিকে এক বা একাধিক মেসেজ প্রসেসরের সাথে যুক্ত করেন। আপনি কোনও এনভায়রনমেন্টকে মেসেজ প্রসেসরের নামযুক্ত সেট হিসেবে ভাবতে পারেন যার উপর API প্রক্সি রান করে। প্রতিটি এনভায়রনমেন্ট একই মেসেজ প্রসেসর বা আলাদা আলাদা মেসেজ প্রসেসরের সাথে যুক্ত থাকতে পারে।

একটি এনভায়রনমেন্ট তৈরি করতে, দুটি তথ্য উল্লেখ করুন:

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

একটি মেসেজ প্রসেসর একাধিক এনভায়রনমেন্টের সাথে যুক্ত থাকতে পারে। যেমন, আপনার Edge ইনস্টলেশনে দুটি মেসেজ প্রসেসর আছে: A এবং B। তারপর আপনি নিজের সংস্থায় তিনটি এনভায়রনমেন্ট তৈরি করেন: "dev", "test" এবং "prod":

  • "dev" এনভায়রনমেন্টের জন্য, আপনি মেসেজ প্রসেসর A-কে অ্যাসোসিয়েট করেন কারণ আপনি বিপুল পরিমাণ ট্রাফিক আশা করেন না।
  • "টেস্ট" এনভায়রনমেন্টের জন্য, আপনি মেসেজ প্রসেসর B-কে যুক্ত করেন কারণ আপনি বেশি ট্রাফিক আশা করেন না।
  • "prod" এনভায়রনমেন্টের জন্য, আপনি প্রোডাকশন-লেভেল ভলিউম ম্যানেজ করতে মেসেজ প্রসেসর A এবং B দুটিকেই অ্যাসোসিয়েট করেন।

কোনও এনভায়রনমেন্টে অ্যাসাইন করা মেসেজ প্রসেসর একই পড থেকে হতে পারে অথবা একাধিক পড থেকে হতে পারে, যা একাধিক অঞ্চল ও ডেটা সেন্টার জুড়ে বিস্তৃত। যেমন, আপনি আপনার সংস্থায় "গ্লোবাল" এনভায়রনমেন্ট নির্ধারণ করেন যার মধ্যে তিনটি অঞ্চলের মেসেজ প্রসেসর অন্তর্ভুক্ত থাকে, অর্থাৎ তিনটি আলাদা ডেটা সেন্টার: মার্কিন যুক্তরাষ্ট্র, জাপান ও জার্মানি।

"গ্লোবাল" এনভায়রনমেন্টে API প্রক্সি ডিপ্লয় করলে, API প্রক্সি তিনটি ডেটা সেন্টারের সবকটিতেই মেসেজ প্রসেসরে রান করে। এইসব ডেটা সেন্টারের যেকোনও একটির রাউটারে আসা API ট্রাফিক শুধুমাত্র সেই ডেটা সেন্টারের মেসেজ প্রসেসরেই নির্দেশিত হবে কারণ রাউটারগুলি শুধুমাত্র একই পডের মেসেজ প্রসেসরে ট্রাফিক নির্দেশ করে।

ভার্চুয়াল হোস্ট সম্পর্কে

ভার্চুয়াল হোস্ট এজ রাউটারে পোর্ট নির্ধারণ করে যেখানে API প্রক্সি দেখানো হয়, এবং, এক্সটেনশনের মাধ্যমে, URL যা অ্যাপ API প্রক্সি অ্যাক্সেস করতে ব্যবহার করে। প্রতিটি এনভায়রনমেন্টে অন্তত একটি ভার্চুয়াল হোস্ট সংজ্ঞায়িত করতে হবে।

ভার্চুয়াল হোস্টের মাধ্যমে নির্দিষ্ট করা পোর্ট নম্বর রাউটার নোডে খোলা আছে কিনা তা নিশ্চিত করুন। আপনি তারপর নিম্নলিখিত URL-এ অনুরোধ করে API প্রক্সি অ্যাক্সেস করতে পারবেন:

http://routerIP:port/proxy-base-path/resource-name
https://routerIP:port/proxy-base-path/resource-name

যেখানে:

  • http অথবা https: ভার্চুয়াল হোস্ট TLS/SSL-এর সাথে কাজ করার জন্য কনফিগার করা থাকলে, HTTPS ব্যবহার করুন। ভার্চুয়াল হোস্ট TLS/SSL সাপোর্ট না করলে, HTTP ব্যবহার করুন।
  • routerIP:port হল ভার্চুয়াল হোস্টের IP অ্যাড্রেস ও পোর্ট নম্বর।
  • আপনি API প্রক্সি তৈরি করার সময় proxy-base-path এবং resource-name সংজ্ঞায়িত করা হয়।

সাধারণত, আপনি IP অ্যাড্রেস এবং পোর্ট নম্বর সহ গ্রাহকদের কাছে আপনার API প্রকাশ করেন না। পরিবর্তে, আপনি রাউটার এবং পোর্টের জন্য একটি DNS এন্ট্রি নির্ধারণ করেন। যেমন:

http://myAPI.myCo.com/proxy-base-path/resource-name
https://myAPI.myCo.com/proxy-base-path/resource-name

এছাড়াও, আপনাকে ভার্চুয়াল হোস্টের জন্য হোস্ট অ্যালিয়াস তৈরি করতে হবে যা DNS এন্ট্রির ডোমেন নামের সাথে ম্যাচ করে। উপরের উদাহরণ থেকে, আপনি myAPI.myCo.com-এর হোস্ট অ্যালিয়াস নির্দিষ্ট করবেন। আপনার কাছে DNS এন্ট্রি না থাকলে, হোস্ট অ্যালিয়াসকে রাউটারের IP অ্যাড্রেস এবং ভার্চুয়াল হোস্টের পোর্টে সেট করুন, যেমন routerIP:port।

আরও জানতে, ভার্চুয়াল হোস্ট সম্পর্কে দেখুন।

আপনার প্রথম সংস্থা, এনভায়রনমেন্ট ও ভার্চুয়াল হোস্ট তৈরি করা

Edge ইনস্টলেশন প্রসেস সম্পূর্ণ করার পরে, আপনার প্রথম অ্যাকশন হল সাধারণত "অনবোর্ডিং" প্রসেসের মাধ্যমে প্রতিষ্ঠান, এনভায়রনমেন্ট ও ভার্চুয়াল হোস্ট তৈরি করা। অনবোর্ডিং সম্পূর্ণ করতে, Edge ম্যানেজমেন্ট সার্ভার নোডে এই কমান্ড রান করুন:

/opt/apigee/apigee-service/bin/apigee-service apigee-provision setup-org -f configFile

এই কমান্ড ইনপুট হিসেবে একটি কনফিগারেশন ফাইল নেয় যা ব্যবহারকারী, সংস্থা, এনভায়রনমেন্ট ও ভার্চুয়াল হোস্টকে সংজ্ঞায়িত করে।

যেমন, আপনি এগুলি তৈরি করেন:

  • আপনার বেছে নেওয়া কোনও ব্যবহারকারী যিনি সংস্থার অ্যাডমিনিস্ট্রেটর হিসেবে কাজ করবেন
  • example নামের একটি সংস্থা
  • prod নামের প্রতিষ্ঠানে এমন একটি এনভায়রনমেন্ট যা "gateway" পডের সব মেসেজ প্রসেসরের সাথে যুক্ত
  • default নামের এনভায়রনমেন্টে একটি ভার্চুয়াল হোস্ট যা পোর্ট 9001-এ HTTP অ্যাক্সেসের অনুমতি দেয়
  • ভার্চুয়াল হোস্টের জন্য হোস্ট অ্যালিয়াস

সেই স্ক্রিপ্ট চালানোর পরে, আপনি এই ফর্ম্যাটে URL ব্যবহার করে আপনার API অ্যাক্সেস করতে পারবেন:

http://routerIP:9001/proxy-base-path/resource-name

আপনি পরে যেকোনও সংখ্যক সংস্থা, এনভায়রনমেন্ট ও ভার্চুয়াল হোস্ট যোগ করতে পারবেন।

আরও তথ্যের জন্য, কোনও সংস্থাকে অনবোর্ড করা দেখুন।