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. Pour en savoir plus, consultez la page À propos des environnements et des groupes d'environnements.
Lors d'une installation de base, vous avez ajouté un environnement à des fins de test. Il est cependant recommandé de créer plusieurs environnements et de déployer un nombre limité de proxys sur chacun d'entre eux.
À propos des environnements et des hôtes virtuels
Apigee hybrid utilise des passerelles d'entrée Istio pour gérer le trafic entrant des API. Les services d'exécution et MART sont tous deux configurés avec des passerelles d'entrée Istio pour gérer leurs connexions exposées en dehors du cluster. Cela signifie, par exemple, que toutes les requêtes HTTP et HTTPS adressées à un proxy d'API sont d'abord traitées par une passerelle d'entrée Istio.
Dans Apigee hybrid, vous créez un ou plusieurs environnements et attribuez à chacun d'entre eux un alias d'hôte. L'alias d'hôte est un nom DNS. Le trafic entrant vers ce nom DNS est acheminé par l'entrée vers cet environnement. En interne, chaque environnement est attribué à un seul processeur de messages, qui traite les requêtes de proxy, applique les règles et achemine le trafic vers et depuis les services cibles. Par conséquent, l'alias d'hôte détermine quel processeur de messages reçoit une requête entrante donnée.
Le code suivant présente un exemple de configuration dans lequel plusieurs environnements sont définis. (Ces configurations appartiennent à votre fichier de remplacement.) Notez que les environnements dev1 et prod1 ont des alias d'hôte différents :
envs: - name: dev1 hostAlias: "apitest.mydomain.net" ... - name: prod1 hostAlias: "apiprod.mydomain.net" ...
Supposons qu'un proxy avec le chemin de base /foo1
soit déployé dans l'environnement dev1. Vous pouvez appeler le proxy ainsi :
curl -k https://apitest.mydomain.net/foo1
Lorsque cet appel atteint l'entrée, l'entrée sait qu'il doit être envoyé au processeur de messages associé à l'environnement dev1
, qui gère la requête.
De même, si foo1
est également déployé dans l'environnement prod1
, vous pouvez envoyer une requête de proxy comme celle-ci, à l'alias d'hôte apiprod.mydomain.net
:
curl -k https://apiprod.mydomain.net/foo1
Et l'appel est acheminé par l'entrée vers le processeur de messages associé à cet hôte.
En résumé, un alias d'hôte doit être attribué à chaque environnement que vous créez. Chaque environnement correspond à un seul processeur de messages, et l'alias d'hôte détermine quel processeur de messages reçoit une requête donnée.
Les environnements peuvent partager le même alias d'hôte.
Apigee hybrid vous permet de créer plusieurs environnements que vous pouvez gérer comme vous le souhaitez. Par exemple, vous pouvez créer plusieurs environnements de développement (dev1, dev2, dev3, et ainsi de suite) et mapper un seul alias d'hôte à chacun d'entre eux. De plus, vous pouvez déployer plusieurs proxys sur chaque environnement.
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. La technique utilisée pour gérer la manière dont le proxy de routes hybrides appelle l'environnement approprié partageant un alias d'hôte est appelée routage de chemin de base.
Par exemple, dans la configuration suivante, les environnements dev1 et dev2 partagent le même alias d'hôte :
envs: - name: dev1 hostAlias: "apitest.mydomain.net" ... - name: dev2 hostAlias: "apitest.mydomain.net" ...
Lorsque plusieurs environnements partagent le même alias d'hôte, vous devez utiliser la technique de configuration appelée routage de chemin de base pour associer des chemins d'accès de base spécifiques au proxy àrs des environnements spécifiques. Pour plus d'informations, consultez la section Routage de chemin de base.
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 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. |
Documentation de référence sur la configuration de l'environnement
Pour obtenir la liste complète des éléments de configuration des environnements, consultez la section envs
dans la documentation de référence sur les propriétés de configuration.
Utiliser des environnements
Pour en savoir plus sur la configuration, consultez les rubriques suivantes :