關於環境

環境會為執行 API 代理程式提供隔離的背景或「沙箱」。 您可以在單一機構中建立多個環境。詳情請參閱「關於環境和環境群組」。

在基本安裝期間,您新增了測試環境。不過,建議您建立多個環境,並在每個環境中部署有限數量的 Proxy

關於虛擬主機和環境

Apigee hybrid 會使用 Istio 輸入閘道處理傳入的 API 流量。MART 和執行階段服務都已設定 Istio 入口閘道,以便管理叢集外公開的連線。舉例來說,這表示 Istio 入口閘道會先處理所有傳送至 API Proxy 的 HTTP 和 HTTPS 要求。

在混合式中,您會建立一或多個環境,並為每個環境指派主機別名。主機別名是 DNS 名稱。針對該 DNS 名稱的流量,Ingress 會將流量轉送至該環境。在內部,每個環境都會指派給一個且只有一個 訊息處理器,負責處理 Proxy 要求、套用政策,以及將流量路由至目標服務和從目標服務傳送。因此,主機別名會決定哪個訊息處理器會接收任何指定的傳入要求。

以下程式碼為設定範例,其中定義了多個環境。(這類設定應放在覆寫檔案中)。請注意,dev1prod1 環境有不同的主機別名:

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 可讓您建立多個環境,並視需要管理。舉例來說,您可以建立多個開發環境,例如 dev1dev2dev3 等等,並為每個環境對應單一主機別名。此外,您也可以在每個環境中部署多個 Proxy。

反模式:將所有 Proxy 部署至單一混合式環境。

最佳做法:建立多個環境,並在每個環境中部署有限數量的 Proxy。管理混合路由如何將 Proxy 呼叫傳送至共用主機別名的正確環境的技術稱為「基本路徑路由」

舉例來說,在下列設定中,環境 dev1dev2 共用相同的主機別名:

envs:
  - name: dev1
    hostAlias: "apitest.mydomain.net"
    ...
  - name: dev2
    hostAlias: "apitest.mydomain.net"
    ...

如果多個環境共用相同的主機別名,您必須使用稱為「基本路徑路由」的設定技巧,將特定 Proxy 基本路徑對應至特定環境。詳情請參閱基本路徑轉送

限制 Proxy 部署數量

對於混合式,由於許多環境可共用相同的虛擬主機,因此您必須仔細思考如何管理對任何特定環境的 Proxy 部署作業。在混合式中,最佳做法是建立多個環境,並在每個環境中部署有限數量的 Proxy。

您應該在環境中部署多少 Proxy?這個問題沒有固定答案,不過下表提供一般指引,說明為何限制部署至各環境的 Proxy 數量,以及管理 Proxy 部署作業時需要考量的事項:

需要考量的事項 說明
訊息處理器啟動時間 訊息處理器 (MP) 啟動所需的時間與部署至該 MP 的 Proxy 數量之間有直接關聯。在自動調整的 Kubernetes 環境中,啟動時間增加可能會造成問題。部署至 MP 的 Proxy 越多,如果需要縮放或重建,MP 啟動所需的時間就會越長。
擴大效能 如果您在環境中部署了多個 Proxy,其中一個 Proxy 獲得大量流量,因此經常自動調整規模,那麼該環境中的所有 Proxy 都會隨之調整。使用單一高流量 Proxy 來擴充多個 Proxy 的效能效果可能會出現問題。
吵雜的鄰居 如果您在同一個環境中部署了多個 Proxy,其中一個 Proxy 發生當機,則在 MP 重新啟動時,環境中的所有 Proxy 都會關閉。限制部署至環境的 Proxy 數量,即可將單一 Proxy 當機的影響降至最低。

環境設定參考資料

如需完整的環境設定元素清單,請參閱「設定屬性參考資料」中的 envs

使用環境

如要進一步瞭解設定,請參閱下列主題: