關於行星、區域、pod、機構、環境和虛擬主機

Edge for Private Cloud 4.18.05

Edge Private Cloud 的內部部署安裝作業 (或 Edge 執行個體) 包含在一系列伺服器節點上安裝的多個 Edge 元件。下圖顯示組成 Edge 執行個體的星球、區域、Pod、機構、環境和虛擬主機之間的關係:

下表說明這些關係:

元件 包含 關聯資源數 預設
Planet 一或多個區域 不適用
區域 一或多個 Pod 「dc-1」
Pod 一或多個 Edge 元件 「central」
「gateway」
「analytics」
機構組織 一或多個環境 包含 Message Processor 的一或多個 Pod,以及擔任機構管理員的使用者
環境 一或多個虛擬主機 與上層機構相關聯的 Pod 中,有一或多個 Message Processor
虛擬主機 一或多個主機別名

關於行星

planet 代表整個 Edge 硬體和軟體環境,且可包含一或多個區域。在 Edge 中,星球是區域的邏輯群組:您不會在安裝 Edge 時明確建立或設定星球。

關於區域

區域是指一或多個 Pod 的組合。根據預設,安裝 Edge 時,安裝程式會建立名為「dc-1」的單一區域,其中包含三個 Pod,如下表所示:

區域 區域中的 Pod
「dc-1」 「gateway」、「central」、「analytics」

下圖顯示預設區域:

這張圖片顯示負載平衡器將流量導向「gateway」Pod。「gateway」Pod 包含 Edge Router 和 Message Processor 元件,用於處理 API 要求。除非您定義多個資料中心,否則不應建立其他區域。

在更複雜的安裝程序中,您可以建立兩個以上的區域。建立多個區域的原因之一,是為了依地理位置組織機器,以便縮短網路傳輸時間。在這種情況下,您會代管 API 端點,讓這些端點在地理上「靠近」這些 API 的使用者。

在 Edge 中,每個區域都稱為「資料中心」。美國東部的資料中心可處理來自麻薩諸塞州波士頓的請求,而新加坡的資料中心則可處理來自亞洲的裝置或電腦的請求。

舉例來說,下圖顯示兩個區域,對應兩個資料中心:

關於 Pod

pod 是指一或多個 Edge 元件和 Cassandra Datastore 的組合。Edge 元件可安裝在同一個節點上,但通常會安裝在不同節點上。Cassandra 資料儲存庫是 Pod 中 Edge 元件使用的資料存放區。

根據預設,安裝 Edge 時,安裝程式會建立三個 Pod,並將下列 Edge 元件和 Cassandra 資料儲存庫與每個 Pod 建立關聯:

Pod Edge 元件

Cassandra 資料儲存庫

「gateway」 路由器、訊息處理器 cache-datastore
counter-datastore
dc-datastore
keyvaluemap-datastore
kms-datastore
「central」 管理伺服器、Zookeeper、LDAP、UI、Qpid application-datastore
apimodel-datastore
audit-datastore
auth-datastore
identityzone-datastore
edgenotification-datastore
management-server
scheduler-datastore
user-settings-datastore
「analytics」 Postgres analytics-datastore reportcrud-datastore

API 處理作業需要「gateway」Pod 中的 Edge 元件和 Cassandra 資料儲存庫。這些元件和資料儲存庫必須啟用並運作,才能處理 API 要求。「central」和「analytics」Pod 中的元件和資料儲存庫不需要處理 API,但會為 Edge 新增其他功能。

下圖顯示每個 Pod 中的元件:

您可以為預設建立的三個 Pod 新增其他訊息處理器和路由器 Pod。或者,您也可以在現有的 Pod 中新增其他 Edge 元件。舉例來說,您可以將其他路由器和訊息處理器新增至「閘道」Pod,以處理增加的流量負載。

請注意,「gateway」Pod 包含 Edge Router 和 Message Processor 元件。Router 只會將要求傳送至同一個 Pod 中的 Message Processor,不會傳送至其他 Pod 中的 Message Processor。

您可以使用下列 API 呼叫,在每個 Pod 安裝完成後查看伺服器註冊詳細資料。這是很實用的監控工具。

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

其中 ms_IP 是管理伺服器的 IP 位址或 DNS 名稱,而 podName 是下列其中一個:

  • gateway
  • central
  • analytics

例如,針對「gateway」Pod:

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 屬性會列出元件類型。請注意,這份清單會列出在 Pod 中註冊的 Cassandra 資料儲存庫。當 Cassandra 節點安裝在「gateway」Pod 中時,您會看到 Cassandra 資料儲存庫已註冊至所有 Pod。

關於機構

組織是 Apigee 帳戶中所有物件的容器,包括 API、API 產品、應用程式和開發人員。機構會與一或多個 pod 建立關聯,而每個 pod 都必須含有一或多個 Message Processor。

在 Edge Private Cloud 的地端部署系統中,預設沒有任何機構。建立機構時,您必須指定兩項資訊:

  1. 擔任機構管理員的使用者。該使用者就能將其他使用者新增至機構,並設定每位使用者的角色。
  2. 「gateway」Pod,也就是包含 Message Processor 的 Pod。

一個機構可以包含一或多個環境。預設的 Edge 安裝程序會提示您建立兩個環境:「test」和「prod」。不過,您可以視需要建立更多環境,例如「前置環境」、「實驗」等。

機構會為部分 Apigee 功能提供範圍。舉例來說,鍵/值對應 (KVM) 資料可在機構層級使用,也就是可從所有環境存取。其他功能 (例如快取) 的範圍則限定為特定環境。Apigee 數據分析資料會根據機構和環境組合劃分。

以下列出機構的主要物件,包括在機構中全域定義的物件,以及專門定義給環境的物件:

關於環境

環境是機構中 API Proxy 的執行階段執行情境。您必須先將 API Proxy 部署至環境,才能存取 API Proxy。您可以將 API 代理程部署至單一環境或多個環境。

一個機構可以包含多個環境。舉例來說,您可以在機構中定義「dev」、「test」和「prod」環境。

建立環境時,您會將其與一或多個訊息處理器建立關聯。您可以將環境視為一組具有名稱的訊息處理器,API Proxy 會在其中執行。每個環境都可以與相同或不同的訊息處理器建立關聯。

如要建立環境,請指定兩項資訊:

  1. 包含環境的機構。
  2. 處理環境 API Proxy 要求的訊息處理器。這些 Message Processor 必須位於與環境父項組織相關聯的 pod 中。
    根據預設,建立環境時,Edge 會將「gateway」Pod 中所有可用的 Message Processor 與環境建立關聯。或者,您也可以指定可用訊息處理工具的子集,讓不同的訊息處理工具處理不同環境的要求。

訊息處理器可與多個環境建立關聯。舉例來說,您的 Edge 安裝包含兩個訊息處理器:A 和 B。接著,您可以在機構中建立三個環境:「dev」、「test」和「prod」:

  • 針對「dev」環境,您會連結訊息處理器 A,因為您不預期會有大量流量。
  • 針對「test」環境,您會連結 Message Processor B,因為您不預期會有大量流量。
  • 針對「prod」環境,您可以將訊息處理器 A 和 B 都連結起來,以便處理正式版級別的大量工作量。

指派給環境的訊息處理器可以全部來自同一個 Pod,也可以來自多個 Pod,跨越多個區域和資料中心。舉例來說,您在組織中定義「全球」環境,其中包含來自三個地區的訊息處理器,也就是美國、日本和德國的三個資料中心。

將 API proxy 部署至「global」環境,會導致 API proxy 在三個資料中心的所有 Message Processor 上執行。到達任何一間資料中心路由器的 API 流量,只會導向該資料中心的訊息處理器,因為路由器只會將流量導向同一個 Pod 中的訊息處理器。

關於虛擬主機

虛擬主機會定義 Edge Router 上的端口,也就是 API Proxy 公開的端口,並且擴充應用程式用來存取 API Proxy 的網址。每個環境都必須定義至少一個虛擬主機。

請確認虛擬主機在路由器節點上指定的通訊埠編號已開啟。接著,您可以向下列網址提出要求,存取 API Proxy:

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

在此情況下:

  • httphttps:如果虛擬主機已設定為支援 TLS/SSL,請使用 HTTPS。如果虛擬主機不支援 TLS/SSL,請使用 HTTP。
  • routerIP:port 是虛擬主機的 IP 位址和通訊埠號碼。
  • proxy-base-pathresource-name 是在建立 API Proxy 時定義。

一般來說,您不會使用 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 項目,請將主機別名設為 Router 的 IP 位址和虛擬主機的連接埠,如 routerIP:port

詳情請參閱「關於虛擬主機」。

建立第一個機構、環境和虛擬主機

完成 Edge 安裝程序後,您通常會先透過「新手上路」程序建立機構、環境和虛擬主機。如要完成新手上路程序,請在 Edge 管理伺服器節點上執行下列指令:

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

這個指令會將定義使用者、機構、環境和虛擬主機的設定檔做為輸入內容。

舉例來說,您建立了:

  • 您選擇的機構管理員
  • 名為 example 的機構
  • 組織中的環境 (名為 prod),與「gateway」Pod 中的所有 Message Processor 相關聯
  • 環境中名為 default 的虛擬主機,可在通訊埠 9001 上允許 HTTP 存取
  • 虛擬主機的主機別名

執行該指令碼後,您可以使用下列格式的網址存取 API:

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

您之後可以新增任意數量的機構、環境和虛擬主機。

詳情請參閱「機構新手上路」。