環境提供獨立的內容或「沙箱」,用於執行 API Proxy。您可以在單一機構中建立多個環境。詳情請參閱「關於環境和環境群組」。
在基本安裝期間,您新增了測試環境。不過,最佳做法是建立多個環境,並在每個環境中部署數量有限的 Proxy。
關於虛擬主機和環境
Apigee Hybrid 會使用 Istio Ingress 閘道處理連入的 API 流量。MART 和執行階段服務都已設定 Istio Ingress 閘道,可管理叢集外部公開的連線。也就是說,傳送至 API Proxy 的所有 HTTP 和 HTTPS 要求,都會先由 Istio Ingress 閘道處理。
在混合式環境中,您可以建立一或多個環境,並為每個環境指派主機別名。 主機別名是 DNS 名稱。傳入該 DNS 名稱的流量會由 Ingress 轉送至該環境。在內部,每個環境都會指派給一個且僅一個 訊息處理器,負責處理 Proxy 要求、套用政策,以及將流量轉送至目標服務和從目標服務轉送流量。因此,主機別名會決定哪個訊息處理器接收任何傳入要求。
以下程式碼顯示定義多個環境的設定範例。(這類設定應位於覆寫檔案中)。請注意,環境 dev1 和 prod1 的主機別名不同:
envs:
- name: dev1
hostAlias: "apitest.mydomain.net"
...
- name: prod1
hostAlias: "apiprod.mydomain.net"
...
假設基本路徑為 /foo1 的 Proxy 部署至 dev1 環境。您可以這樣呼叫 Proxy:
curl -k https://apitest.mydomain.net/foo1
當這項呼叫傳送至 Ingress 時,Ingress 會知道要將其傳送至與 dev1 環境相關聯的訊息處理器,由該處理器處理要求。
同樣地,如果 foo1 也部署到 prod1 環境,您可以對主機別名 apiprod.mydomain.net 提出類似這樣的 Proxy 要求:
curl -k https://apiprod.mydomain.net/foo1
而 Ingress 會將通話轉送至與該主機相關聯的 MP。
總而言之,您建立的每個環境都必須指派主機別名。 每個環境只會對應一個訊息處理器,主機別名則會決定哪個訊息處理器接收特定要求。
環境可以共用相同的主機別名
Apigee Hybrid 可讓您建立多個環境,並以任何方式管理這些環境。舉例來說,您可以建立多個開發環境 (例如 dev1、dev2、dev3 等),並將單一主機別名對應至每個環境。此外,您可以在每個環境中部署多個 Proxy。
反模式:將所有 Proxy 部署至一個混合式環境。
最佳做法:建立多個環境,並在每個環境中部署有限數量的 Proxy。管理混合式路徑如何將呼叫項目 Proxy 至共用主機別名的正確環境,這項技術稱為「基本路徑路由」。
舉例來說,在下列設定中,環境 dev1 和 dev2 共用相同的主機別名:
envs:
- name: dev1
hostAlias: "apitest.mydomain.net"
...
- name: dev2
hostAlias: "apitest.mydomain.net"
...
如果多個環境共用同一個主機別名,您必須使用稱為「基本路徑轉送」的設定技術,將特定 Proxy 基本路徑對應至特定環境。詳情請參閱基本路徑路由。
限制 Proxy 部署項目數量
如果是混合式環境,由於許多環境可以共用同一個虛擬主機,因此您必須仔細思考如何管理 Proxy 部署作業,才能將 Proxy 部署至任何指定環境。在混合式環境中,最佳做法是建立多個環境,並在每個環境中部署有限數量的 Proxy。
您應該在環境中部署多少個 Proxy?這個問題沒有標準答案,但下表提供一般指引,說明為何最好限制部署至每個環境的 Proxy 數量,以及管理 Proxy 部署作業時需要考量的事項:
| 需要考慮的問題 | 說明 |
|---|---|
| 訊息處理器啟動時間 | 訊息處理器 (MP) 的啟動時間長度與部署至該 MP 的 Proxy 數量直接相關。在自動調度資源的 Kubernetes 環境中,啟動時間變長可能會造成問題。部署至 MP 的 Proxy 越多,如果需要擴充或重新建立 MP,所需時間就越長。 |
| 擴充效能 | 如果您在環境中部署多個 Proxy,其中一個 Proxy 的流量過大,導致系統頻繁自動調度資源,該環境中的所有 Proxy 都會隨之調度資源。使用單一高流量 Proxy 擴充多個 Proxy 的效能可能會造成問題。 |
| 吵鬧的鄰居 | 如果您在同一個環境中部署多個 Proxy,其中一個 Proxy 發生當機情形時,環境中的所有 Proxy 都會停止運作,MP 則會重新啟動。限制部署至環境的 Proxy 數量,可將單一 Proxy 發生當機的影響降至最低。 |
環境設定參考資料
如需環境設定元素的完整清單,請參閱「設定屬性參考資料」中的 envs。
使用環境
如要進一步瞭解設定,請參閱下列主題: