Um ambiente fornece um contexto isolado ou "sandbox" para executar proxies de API. Em uma única organização, é possível criar vários ambientes.
O código a seguir mostra um exemplo de configuração de modificações em que vários ambientes são definidos.
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 ...
Suponha que um proxy com o caminho base /foo1
esteja implantado no ambiente de teste. Você pode chamar o proxy da seguinte maneira:
curl -k https://api.example.com/foo1
Quando essa chamada atinge a entrada, a entrada sabe enviá-la para o processador de mensagens
associado ao ambiente test
, que processa a solicitação.
Da mesma forma, se foo1
também for implantado no ambiente prod
,
será possível fazer uma solicitação
de proxy como essa para o alias de host apiprod.mydomain.net
:
curl -k https://apiprod.example.com/foo1
E a chamada é roteada pela entrada para o MP associado a esse host.
Antipadrão: implante todos os proxies em um ambiente híbrido.
Prática recomendada: crie vários ambientes e implante um número limitado de proxies em cada um.
Limitar o número de implantações de proxy
Para ambientes híbridos, o fato de que muitos ambientes podem compartilhar os mesmos hosts virtuais, conforme definido nos grupos de ambientes, significa que você precisa pensar cuidadosamente sobre como gerenciar as implantações de proxy em qualquer ambiente. No híbrido, a prática recomendada é criar vários ambientes e implantar um número limitado de proxies para cada um.
Quantos proxies você precisa implantar em um ambiente? Não há uma resposta definida para essa pergunta: No entanto, a tabela a seguir fornece orientações gerais sobre por que é uma boa ideia limitar o número de proxies implantados em cada ambiente e o que você precisa considerar ao gerenciar implantações de proxy:
Problema a ser considerado | Descrição |
---|---|
Tempo de inicialização do processador de mensagens | Há uma correlação direta entre o tempo que um processador de mensagens (MP, na sigla em inglês) leva para inicializar e o número de proxies implantados nesse MP. Em um ambiente de escalonamento automático do Kubernetes, um aumento no tempo de inicialização pode ser um problema. Quanto mais proxies implantados no MP, mais tempo levará para que esse MP apareça se precisar ser escalonado ou recriado. |
Como escalonar o desempenho | Se você tiver vários proxies implantados em um ambiente e um deles receber muito tráfego para que seja escalonado automaticamente, todos os proxies nesse ambiente serão escalonados com ele. O efeito de desempenho no escalonamento de vários proxies com um único proxy de alto tráfego pode ser um problema. |
Vizinho barulhento | Se você tiver vários proxies implantados no mesmo ambiente e um proxy falhar, todos os proxies no ambiente serão desativados enquanto os MPs são reiniciados. Ao limitar o número de proxies implantados em um ambiente, você minimiza o impacto de um único proxy falhar. |
Grupos de ambiente e hosts virtuais
Grupos de ambiente permitem agrupar ambientes. Ambientes dentro de cada grupo compartilham os mesmos nomes de host. É possível agrupar ambientes por função, por endereço do nome do host, por região, se estiver implementando uma instalação híbrida de várias regiões, ou por qualquer outra métrica escolhida.
Como o roteamento é gerenciado pela combinação dos nomes de host do grupo de ambiente, dos caminhos base do proxy da API e dos ambientes, cada host virtual só precisa listar o nome do grupo de ambiente e os certificados apropriados.
O código a seguir mostra um exemplo de configuração em que vários hosts virtuais são definidos. Observe que o nome dos hosts virtuais precisa ser o nome dos grupos de ambiente.
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 ...
Outros recursos
- Sobre ambientes e grupos de ambiente
- Como gerenciar ambientes
- Como gerenciar grupos de ambiente
- Referência da propriedade de configuração
- Configurar hosts virtuais