Un environnement fournit un contexte isolé ou un "bac à sable" pour l'exécution de proxys d'API. Dans une même organisation, vous pouvez créer plusieurs environnements.
Le code suivant illustre un exemple de configuration de remplacement où plusieurs environnements sont définis.
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 ...
Supposons qu'un proxy avec le chemin de base /foo1
soit déployé dans l'environnement test. Vous pouvez appeler le proxy ainsi :
curl -k https://api.example.com/foo1
Lorsque cet appel atteint l'entrée, l'entrée sait qu'il doit être envoyé au processeur de messages associé à l'environnement test
, qui gère la requête.
De même, si foo1
est également déployé dans l'environnement prod
, vous pouvez envoyer une requête de proxy comme celle-ci, à l'alias d'hôte apiprod.mydomain.net
:
curl -k https://apiprod.example.com/foo1
Et l'appel est acheminé par l'entrée vers le processeur de messages associé à cet hôte.
Antimodèle : Déployez tous vos proxys dans un environnement hybride.
Bonne pratique : Créez plusieurs environnements et déployez un nombre limité de proxys dans chacun d'eux.
Limiter le nombre de déploiements de proxy
Pour les déploiements hybrides, le fait que de nombreux environnements puissent partager les mêmes hôtes virtuels, tels que définis dans les groupes d'environnements, signifie que vous devez réfléchir attentivement à la manière dont vous gérez vos déploiements de proxys dans un environnement donné. En mode hybride, il est recommandé de créer plusieurs environnements et de déployer un nombre limité de proxys dans chacun d'eux.
Combien de proxys devez-vous déployer dans un environnement ? Il n'y a pas de réponse définie à cette question. Toutefois, le tableau suivant fournit des conseils généraux sur les raisons pour lesquelles il est judicieux de limiter le nombre de proxys déployés dans chaque environnement, ainsi que les éléments à prendre en compte lors de la gestion de déploiements de proxys :
Problème à prendre en compte | Description |
---|---|
Délai de démarrage du processeur de messages | Il existe une corrélation directe entre le temps nécessaire au démarrage d'un processeur de messages et le nombre de proxys déployés sur ce processeur de messages. Dans un environnement Kubernetes d'autoscaling, une augmentation du temps de démarrage peut poser problème. Plus le nombre de proxys déployés dans le processeur de messages est élevé, plus il faudra de temps pour que ce processeur de messages soit opérationnel s'il doit faire l'objet d'un scaling ou être recréé. |
Performances de scaling | Si plusieurs proxys sont déployés dans un environnement et que l'un des proxys reçoit beaucoup de trafic, de sorte qu'il réalise fréquemment un autoscaling, tous les proxys de cet environnement réalisent un scaling avec lui. L'effet sur les performances du scaling de plusieurs proxys avec un seul proxy à trafic élevé peut poser problème. |
"Voisin bruyant" | Si plusieurs proxys sont déployés dans le même environnement et qu'un proxy plante, alors tous les proxys de l'environnement sont affectés le temps de redémarrer le processeur de messages. En limitant le nombre de proxys déployés dans un environnement, vous minimisez l'impact d'un plantage d'un seul proxy. |
Groupes d'environnements et hôtes virtuels
Les groupes d'environnements vous permettent de regrouper des environnements de manière logique. Tous les environnements d'un groupe donné partagent le même nom d'hôte. Vous pouvez regrouper les environnements par fonction, par adresse de nom d'hôte, par région (si votre installation hybride est multirégionale), ou selon toute autre métrique de votre choix.
Le routage étant géré par la combinaison des noms d'hôte de groupe d'environnements, des chemins de base de proxy d'API et des environnements, chaque hôte virtuel ne doit répertorier que le nom du groupe d'environnements et les certificats appropriés.
Le code suivant illustre un exemple de configuration de remplacement où plusieurs hôtes virtuels sont définis. Notez que le nom des hôtes virtuels doit correspondre aux noms des groupes d'environnements.
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 ...
Autres ressources
- À propos des environnements et des groupes d'environnements
- Gérer les environnements
- Gérer les groupes d'environnements
- Documentation de référence sur les propriétés de configuration
- Configurer des hôtes virtuels