Edge for Private Cloud 4.18.05 版
Edge 私有雲或 Edge 執行個體的地端部署安裝作業,包含一組伺服器節點上安裝的多個 Edge 元件。下圖顯示構成 Edge 執行個體的星球、區域、Pod、組織、環境和虛擬主機之間的關係:

下表說明這些關係:
| 元件 | 包含 | 關聯資源數 | 預設 |
|---|---|---|---|
| Planet | 一或多個區域 | 不適用 | |
| 區域 | 一或多個 Pod | "dc-1" | |
| Pod | 一或多個 Edge 元件 | "central" "gateway" "analytics" |
|
| 機構組織 | 一或多個環境 | 一或多個包含訊息處理器的 Pod,以及一位機構組織管理員 | 無 |
| 環境 | 一或多個虛擬主機 | 與上層組織相關聯的 Pod 中,有一或多個訊息處理器 | 無 |
| 虛擬主機 | 一或多個主機別名 | 無 |
關於行星
planet 代表整個 Edge 軟硬體環境,可包含一或多個區域。在 Edge 中,Planet 是區域的邏輯群組:您不需在安裝 Edge 時明確建立或設定 Planet。
關於區域
區域是一或多個 Pod 的分組。根據預設,安裝 Edge 時,安裝程式會建立名為「dc-1」的單一區域,其中包含三個 Pod,如下表所示:
| 區域 | 區域中的 Pod |
|---|---|
| "dc-1" | "gateway", "central", "analytics" |
下圖顯示預設區域:

這張圖片顯示負載平衡器將流量導向「閘道」Pod。「閘道」Pod 包含 Edge 路由器和訊息處理器元件,可處理 API 要求。除非您定義多個資料中心,否則不需建立其他區域。
在較複雜的安裝作業中,您可以建立兩個以上的區域。建立多個區域的原因之一,是依地理位置整理機器,盡可能縮短網路傳輸時間。在這種情況下,您會託管 API 端點,使其在地理位置上靠近這些 API 的消費者。
在 Edge 中,每個區域都稱為「資料中心」。美國東部的資料中心可以處理來自麻薩諸塞州波士頓的要求,而新加坡的資料中心則可以處理來自亞洲裝置或電腦的要求。
舉例來說,下圖顯示兩個區域,分別對應兩個資料中心:

關於 Pod
Pod 是由一或多個 Edge 元件和 Cassandra 資料儲存庫組成的群組。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 處理作業需要「閘道」Pod 中的 Edge 元件和 Cassandra 資料儲存庫。這些元件和資料儲存庫必須正常運作,才能處理 API 要求。「central」和「analytics」Pod 中的元件和資料儲存庫並非處理 API 所需,但可為 Edge 新增額外功能。
下圖顯示每個 Pod 中的元件:

除了預設建立的三個 Pod 之外,您還可以新增其他訊息處理器和路由器 Pod。或者,您也可以在現有 Pod 中新增其他 Edge 元件。舉例來說,您可以將額外的路由器和訊息處理器新增至「閘道」Pod,以處理增加的流量負載。
請注意,「gateway」Pod 包含 Edge Router 和訊息處理器元件。路由器只會將要求傳送至同一個 Pod 中的訊息處理器,不會傳送至其他 Pod 中的訊息處理器。
您可以使用下列 API 呼叫,在每個 Pod 安裝結束時查看伺服器註冊詳細資料。這項監控工具相當實用。
curl -u adminEmail:pword http://ms_IP:8080/v1/servers?pod=podName
其中 ms_IP 是管理伺服器的 IP 位址或 DNS 名稱,podName 則是下列其中一項:
gatewaycentralanalytics
例如,針對「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 節點安裝在「閘道」Pod 中,但您會看到 Cassandra 資料儲存庫已註冊到所有 Pod。
關於機構
「組織」是 Apigee 帳戶中所有物件的容器,包括 API、API 產品、應用程式和開發人員。組織會與一或多個 Pod 建立關聯,每個 Pod 都必須包含一或多個訊息處理器。
在 Edge 私有雲的地端部署安裝中,預設沒有任何組織。建立組織時,您必須指定兩項資訊:
- 擔任機構組織管理員的使用者。該使用者可以將其他使用者新增至組織,並設定每位使用者的角色。
- 「閘道」Pod,即包含訊息處理器的 Pod。
一個組織可以包含一或多個環境。預設的 Edge 安裝程序會提示您建立兩個環境:「test」和「prod」。不過,您可以視需要建立更多環境,例如「staging」、「experiments」等。
組織會提供部分 Apigee 功能的範圍。舉例來說,鍵/值對應 (KVM) 資料可在組織層級 (即所有環境) 取得。其他功能 (例如快取) 則限定於特定環境。Apigee 數據分析資料會依組織和環境的組合進行分區。
下圖顯示組織的主要物件,包括在組織中全域定義的物件,以及專為環境定義的物件:

關於環境
「環境」是組織中 API Proxy 的執行階段執行作業結構定義。您必須先將 API Proxy 部署至環境,才能存取。您可以將 API Proxy 部署至單一或多個環境。
一個組織可以包含多個環境。舉例來說,您可以在組織中定義「dev」、「test」和「prod」環境。
建立環境時,您會將環境與一或多個訊息處理器建立關聯。您可以將環境視為一組具名的訊息處理器,API Proxy 會在其中執行。每個環境都可以與相同或不同的訊息處理器建立關聯。
如要建立環境,請指定下列兩項資訊:
- 包含環境的組織。
- 處理環境 API Proxy 要求的訊息處理器。這些訊息處理器必須位於與環境父項組織相關聯的 Pod 中。
根據預設,當您建立環境時,Edge 會將「閘道」Pod 中所有可用的訊息處理器與環境建立關聯。或者,您也可以指定可用訊息處理器的子集,讓不同的訊息處理器處理不同環境的要求。
一個訊息處理器可以與多個環境建立關聯。舉例來說,您的 Edge 安裝作業包含兩個訊息處理器:A 和 B。接著,您在組織中建立三個環境:「dev」、「test」和「prod」:
- 在「dev」環境中,由於預期流量不大,因此您會與訊息處理器 A 建立關聯。
- 對於「測試」環境,您會建立與訊息處理器 B 的關聯,因為您預期不會有大量流量。
- 對於「prod」環境,您需要同時關聯訊息處理器 A 和 B,才能處理正式環境層級的流量。
指派給環境的訊息處理器可以全部來自同一個 Pod,也可以來自多個 Pod,橫跨多個區域和資料中心。舉例來說,您在組織中定義「全域」環境,其中包含三個區域 (即三個不同的資料中心:美國、日本和德國) 的訊息處理器。
將 API Proxy 部署至「global」環境後,API Proxy 就會在三個資料中心的訊息處理器上執行。抵達任一資料中心內路由器的 API 流量,只會導向該資料中心內的訊息處理器,因為路由器只會將流量導向同一 Pod 內的訊息處理器。
關於虛擬主機
「虛擬主機」定義了 Edge 路由器上公開 API Proxy 的通訊埠,以及應用程式用來存取 API Proxy 的網址。每個環境都必須定義至少一個虛擬主機。
請確認虛擬主機指定的通訊埠編號已在路由器節點上開啟。接著,您可以向下列網址提出要求,存取 API Proxy:
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 位址和通訊埠號碼。
- proxy-base-path 和 resource-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 項目,請將主機別名設為路由器的 IP 位址和虛擬主機的通訊埠,例如 routerIP:port。
詳情請參閱「關於虛擬主機」。
建立第一個組織、環境和虛擬主機
完成 Edge 安裝程序後,您的第一個動作通常是透過「新手上路」程序建立組織、環境和虛擬主機。如要執行新手上路程序,請在 Edge 管理伺服器節點上執行下列指令:
/opt/apigee/apigee-service/bin/apigee-service apigee-provision setup-org -f configFile
這個指令會將定義使用者、組織、環境和虛擬主機的設定檔做為輸入內容。
舉例來說,您建立了:
- 您選擇擔任機構組織管理員的使用者
- 名為「
example」的機構 - 組織中名為
prod的環境,與「閘道」Pod 中的所有訊息處理器相關聯 - 環境中名為
default的虛擬主機,允許透過通訊埠 9001 進行 HTTP 存取 - 虛擬主機的主機別名
執行該指令碼後,您可以使用下列格式的網址存取 API:
http://routerIP:9001/proxy-base-path/resource-name
之後可以新增任意數量的組織、環境和虛擬主機。
詳情請參閱「將組織加入平台」。