Un ambiente fornisce un contesto o una "sandbox" isolati per l'esecuzione di proxy API. In una singola organizzazione puoi creare più ambienti.
Il seguente codice mostra un esempio di configurazione dell'override in cui sono definiti più ambienti.
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 ...
Supponiamo che un proxy con il percorso di base /foo1
sia di cui è stato eseguito il deployment nell'ambiente test. Puoi chiamare il proxy come segue:
curl -k https://api.example.com/foo1
Quando questa chiamata arriva all'ingresso, quest'ultimo sa di inviarla all'elaboratore di messaggi associato all'ambiente test
, che gestisce la richiesta.
Analogamente, se foo1
viene implementato anche nell'ambiente prod
,
puoi effettuare una richiesta proxy come questa all'alias host apiprod.mydomain.net
:
curl -k https://apiprod.example.com/foo1
La chiamata viene inoltrata dall'ingresso all'MP associato all'host.
Antipattern: esegui il deployment di tutti i proxy in un ambiente ibrido.
Best practice: crea più ambienti e implementa un numero limitato di proxy in ciascuno.
Limita il numero di deployment dei proxy
Per l'ambiente ibrido, il fatto che molti ambienti possano condividere gli stessi host virtuali come definito nei gruppi di ambienti significa che devi riflettere attentamente su come gestire i deployment dei proxy in un determinato ambiente. In un ambiente ibrido, la best practice è creare più ambienti e implementare un numero limitato di proxy in ciascuno.
Quanti proxy devi implementare in un ambiente? Non esiste una risposta fissa a questa domanda. Tuttavia, la tabella seguente fornisce indicazioni generali sul perché è consigliabile limitare il numero di proxy di cui è stato eseguito il deployment in ogni ambiente e su cosa occorre tenere presente quando si gestiscono i deployment dei proxy:
Problema da considerare | Descrizione |
---|---|
Tempo di avvio del processore di messaggi | Esiste una correlazione diretta tra il tempo necessario per l'avvio di un elaboratore di messaggi (MP) e il numero di proxy di cui è stato eseguito il deployment in quell'MP. In un ambiente Kubernetes con scalabilità automatica, un aumento del tempo di avvio potrebbe essere un problema. Più proxy vengono di'implementati nel pool di proxy, più tempo occorrerà per la sua attivazione se deve essere scalato o ricreato. |
Prestazioni di scalabilità | Se hai implementato più proxy in un ambiente e uno di questi riceve molto traffico, quindi viene scalato automaticamente di frequente, tutti i proxy nell'ambiente verranno scalati di conseguenza. L'effetto sul rendimento della scalabilità di più proxy con un singolo proxy ad alto traffico potrebbe essere un problema. |
Vicino rumoroso | Se hai diversi proxy di cui è stato eseguito il deployment nello stesso ambiente e uno si arresta in modo anomalo, tutti i proxy nell'ambiente verranno disattivati durante il riavvio degli MP. Se limiti il numero di proxy di cui è stato eseguito il deployment in un ambiente, riduci al minimo l'impatto del crash di un singolo proxy. |
Gruppi di ambienti e virtualhost
I gruppi di ambienti ti consentono di raggruppare gli ambienti. Gli ambienti all'interno di ciascun gruppo condividono gli stessi hostname. Puoi raggruppare gli ambienti per funzione, per indirizzo host, per regione se stai implementando un'installazione ibrida multi-regione o per qualsiasi altra metrica che scegli.
Poiché il routing è gestito dalla combinazione di nomi host dei gruppi di ambienti, percorsi base dei proxy API e ambienti, ogni host virtuale deve elencare solo il nome del gruppo di ambienti e eventuali certificati appropriati.
Il seguente codice mostra un esempio di configurazione dell'override in cui sono definiti più virtualhost. Tieni presente che i nomi dei virtualhost devono corrispondere ai nomi dei gruppi di ambienti.
gcp: region: us-central1 projectID: hybrid-example k8sCluster: name: apigee-hybrid region: us-central1 org: hybrid-example contractProvider: https://us-apigee.googleapis.com # if using data residency 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 ...
Risorse aggiuntive
- Informazioni su ambienti e gruppi di ambienti
- Gestione degli ambienti
- Gestire i gruppi di ambienti
- Riferimento per le proprietà di configurazione
- Configurare gli host virtuali