地端部署安裝 Edge Private Cloud (或稱 Edge 執行個體),由安裝在一組伺服器節點中的多個 Edge 元件組成。下圖顯示構成 Edge 執行個體的地球、區域、Pod、機構、環境與虛擬主機之間的關係:
下表說明這些關係:
元件 | 包含 | 關聯的溫度控制器 | 預設 |
---|---|---|---|
行星 | 一或多個區域 | n/a | |
區域 | 一或多個 Pod | 「dc-1」 | |
Pod | 一或多個 Edge 元件 | "central" "gateway" "analytics" |
|
機構組織 | 一或多個環境 | 一或多個包含「訊息處理器」的 Pod,以及擔任機構管理員的使用者 | 無 |
環境 | 一或多個虛擬主機 | 與上層機構相關聯的 Pod 中的一或多個訊息處理器 | 無 |
虛擬主機 | 一或多個主機別名 | 無 |
關於星球
「飛機」代表整個 Edge 硬體和軟體環境,可包含一或多個區域。在 Edge 中,地球是按照邏輯分類的區域:您不必在安裝 Edge 時明確建立或設定星球,
區域簡介
「地區」是一組一或多個 Pod 的群組。根據預設,當您安裝 Edge 時,安裝程式會建立一個名為「dc-1」的單一區域,其中包含三個 Pod,如下表所示:
區域 | 區域中的 Pod |
---|---|
「dc-1」 | 「gateway」、「central」、「analytics」 |
下圖顯示預設區域:
此圖片顯示負載平衡器將流量導向至「閘道 Pod」的 Pod。「閘道」Pod 包含處理 API 要求的邊緣路由器和訊息處理器元件。除非您定義多個資料中心,否則您不需要建立其他區域。
如果是較複雜的安裝,您可以建立兩個以上的區域。建立多個區域的理由之一,是依地理位置管理機器,盡可能縮短網路傳輸時間。在這個情境中,您可以託管 API 端點,讓這些端點與這些 API 的使用者「相近」。
在邊緣,每個區域稱為「資料中心」。接著,美國東部的資料中心可以處理從麻薩諸塞州波士頓出發的要求,新加坡的資料中心則能處理來自亞洲裝置或電腦的要求。
例如,下圖顯示兩個對應兩個資料中心的區域:
關於 Pod
「Pod」是由一或多個 Edge 元件和 Cassandra 資料儲存庫分組。Edge 元件可安裝在同一個節點上,但比較經常安裝在不同節點上。Cassandra 資料儲存庫是 Pod 中 Edge 元件使用的資料存放區。
根據預設,在安裝 Edge 時,安裝程式會建立三個 Pod,並將下列 Edge 元件和 Cassandra 資料儲存庫與每個 Pod 建立關聯:
Pod | 邊緣元件 | Cassandra 資料儲存庫 |
|
---|---|---|---|
"gateway" | 路由器、訊息處理器 | cache-datastore counter-datastore dc-datastore |
keyvaluemap-datastore kms-datastore |
"central" | Management Server、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 要求。處理 API 時,「central」和「analytics」pod 中的元件和資料儲存庫不需要,但可為 Edge 新增額外功能。
下圖顯示每個 Pod 中的元件:
您可以為系統預設建立的三個訊息處理器和路由器 Pod 新增其他訊息處理器和路由器 Pod。您也可以在現有的 Pod 中新增其他 Edge 元件。舉例來說,您可以在「閘道」Pod 中新增其他路由器和訊息處理器,以處理增加的流量負載。
請注意,「gateway」Pod 含有邊緣路由器和訊息處理器元件。路由器只會傳送要求給相同 Pod 中的訊息處理器,不會向其他 Pod 中的訊息處理器傳送要求。
您可以使用下列 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 節點安裝在「閘道」Pod 中,但您會看到向所有 Pod 註冊的 Cassandra 資料儲存庫。
關於機構組織
機構是 Apigee 帳戶中所有物件的容器,包括 API、API 產品、應用程式和開發人員。機構與一或多個 Pod 相關聯,其中每個 Pod 都必須含有一或多個訊息處理器。
安裝 Edge Private Cloud 的地端部署系統預設沒有任何機構。建立機構時,您會指定兩項資訊:
- 擔任機構管理員的使用者。接著,該使用者就能在機構中新增其他使用者,並設定每位使用者的角色。
- 「閘道」Pod,包含訊息處理器的 Pod。
單一機構可包含一或多個環境。預設的 Edge 安裝程序會提示您建立兩個環境:「test」和「prod」。不過,您可以視需要建立更多環境,例如「測試環境」、「實驗」等。
機構提供了部分 Apigee 功能的範圍。舉例來說,鍵/值對應 (KVM) 資料可於機構層級取得,代表來自所有環境。快取等其他功能則限定於特定環境。Apigee 數據分析資料按機構與環境的組合劃分。
下圖是機構的主要物件,包括機構內全域定義的物件,以及特別針對某個環境定義的物件:
關於環境
「環境」是指機構中 API Proxy 的執行階段執行環境。您必須將 API Proxy 部署至環境,才能存取。您可以將 API Proxy 部署至單一環境,也可以部署至多個環境。
一個機構可包含多個環境。舉例來說,您可以在機構中定義「dev」、「test」和「prod」環境。
建立環境時,您必須將該環境與一或多個訊息處理器建立關聯。您可以將環境視為一組具名的訊息處理器,用於執行 API Proxy。每個環境都可以與相同的訊息處理器或不同的訊息處理器建立關聯。
如要建立環境,請指定下列兩項資訊:
- 包含環境的機構。
- 處理傳送至環境的 API Proxy 要求的訊息處理器。這些訊息處理器必須位於與環境父項機構相關聯的 Pod 中。
根據預設,當您建立環境時,Edge 會將「閘道」pod 中所有可用的訊息處理器與環境建立關聯。或者,您也可以指定部分可用的訊息處理器,讓不同的訊息處理器處理傳送至不同環境的要求。
訊息處理器可以與多個環境建立關聯。舉例來說,您的邊緣安裝作業含有 A 和 B 兩個訊息處理器。然後在機構中建立三個環境:「dev」、「test」和「prod」:
- 您預期不會產生大量流量,因此請將訊息處理器 A 與「dev」環境建立關聯。
- 針對「test」環境,您需要與訊息處理器 B 建立關聯,因為您預期不會產生大量流量。
- 在「實際工作環境」環境中,您需要同時與訊息處理器 A 和 B 建立關聯,以處理實際工作環境層級的磁碟區。
指派給環境的訊息處理器可以全部來自同一個 Pod,也可以來自橫跨多個區域和資料中心的多個 Pod。舉例來說,您可以將貴機構中的環境定義為「global」,其中包含三個區域的訊息處理者,即美國、日本和德國這三個不同的資料中心。
將 API Proxy 部署至「全域」環境後,API Proxy 就能在三個資料中心的訊息處理器中運作。通過上述任一資料中心路由器的 API 流量只會導向至該資料中心的訊息處理器,因為路由器只會將流量導向相同 Pod 中的訊息處理器。
關於虛擬主機
「虛擬主機」會定義公開 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 位址和通訊埠號碼。
- 您建立 API Proxy 時,系統會定義 proxy-base-path 和 resource-name。
一般來說,您不會將 API 發布給具有 IP 位址和通訊埠編號的客戶。請改為為路由器和通訊埠定義 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 Management Server 節點執行下列指令:
/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
您之後可以新增任意數量的機構、環境和虛擬主機。
詳情請參閱「建立機構」。