Información sobre los entornos

Un entorno proporciona un contexto aislado o un "entorno aislado" para ejecutar proxies de API. En una misma organización, puedes crear varios entornos.

El siguiente código muestra un ejemplo de configuración de anulación en el que se definen varios entornos.

namespace: my-namespace
org: my-organization
...
envs:
  - name: test
    serviceAccountPaths:
      synchronizer: "your_keypath/synchronizer-manager-service-account.json
      udca: "your_keypath/analytic-agent-service-account.json

  - name: prod
    serviceAccountPaths:
      synchronizer: "your_keypath/synchronizer-manager-service-account.json
      udca: "your_keypath/analytic-agent-service-account.json
...

Supongamos que un proxy con la ruta base /foo1 se despliega en el entorno test. Puedes llamar al proxy de esta forma:

curl -k https://api.example.com/foo1

Cuando esta llamada llega al ingress, este sabe que debe enviarla al procesador de mensajes asociado al entorno test, que gestiona la solicitud.

Del mismo modo, si foo1 también se ha implementado en el entorno prod, puedes hacer una solicitud proxy como esta al alias de host apiprod.mydomain.net:

curl -k https://apiprod.example.com/foo1

La llamada se enruta a través del ingreso al MP asociado a ese host.

Antipatrón: desplegar todos los proxies en un entorno híbrido.

Práctica recomendada: Crea varios entornos y despliega un número limitado de proxies en cada uno.

Limitar el número de implementaciones de proxy

En el caso de los entornos híbridos, el hecho de que muchos entornos puedan compartir los mismos hosts virtuales definidos en los grupos de entornos significa que debes pensar detenidamente cómo gestionas tus implementaciones de proxy en un entorno concreto. En los entornos híbridos, lo más recomendable es crear varios entornos y desplegar un número limitado de proxies en cada uno.

¿Cuántos proxies debes implementar en un entorno? No hay una respuesta concreta a esta pregunta, pero en la siguiente tabla se ofrecen directrices generales sobre por qué es recomendable limitar el número de proxies desplegados en cada entorno y qué debes tener en cuenta al gestionar los despliegues de proxies:

Problema que debes tener en cuenta Descripción
Tiempo de arranque del procesador de mensajes Existe una correlación directa entre el tiempo que tarda en iniciarse un procesador de mensajes y el número de proxies implementados en ese procesador. En un entorno de Kubernetes con escalado automático, un aumento del tiempo de arranque puede ser un problema. Cuantos más proxies se implementen en el MP, más tiempo tardará en iniciarse si necesita escalarse o recrearse.
Rendimiento de escalado Si tienes varios proxies desplegados en un entorno y uno de ellos recibe mucho tráfico, de forma que se escala automáticamente con frecuencia, todos los proxies de ese entorno se escalarán con él. El efecto en el rendimiento de escalar varios proxies con un solo proxy de alto tráfico puede ser un problema.
Vecino ruidoso Si tienes varios proxies desplegados en el mismo entorno y uno de ellos falla, todos los proxies del entorno se desactivarán mientras se reinician los MPs. Si limitas el número de proxies implementados en un entorno, minimizas el impacto de un fallo en un solo proxy.

Grupos de entorno y hosts virtuales

Los grupos de entornos le permiten agrupar entornos. Los entornos de cada grupo comparten los mismos nombres de host. Puedes agrupar los entornos por función, por dirección de nombre de host, por región (si implementas una instalación híbrida multirregión) o por cualquier otra métrica que elijas.

Como el enrutamiento se gestiona mediante la combinación de nombres de host de grupos de entornos, rutas base de proxies de API y entornos, cada host virtual solo necesita enumerar el nombre del grupo de entornos y los certificados adecuados.

En el siguiente código se muestra un ejemplo de configuración de anulación en el que se definen varios hosts virtuales. Ten en cuenta que el nombre de los virtualhosts debe ser el nombre de los grupos de entornos.

gcp:
  region: us-central1
  projectID: hybrid-example

k8sCluster:
  name: apigee-hybrid
  region: us-central1

org: hybrid-example

instanceID: "my_hybrid_example"

virtualhosts:
  - name: group-1  # the name of an environment group
    sslCertPath: ./certs/keystore.pem
    sslKeyPath: ./certs/keystore.key

virtualhosts:
  - name: group-2
    sslCertPath: ./certs/keystore.pem
    sslKeyPath: ./certs/keystore.key
...

Recursos adicionales