Les déploiements multicloud sont là pour rester. Selon le rapport State of Application Strategy in 2022 de F5, 77 % des entreprises exploitent des applications sur plusieurs clouds. L’adoption d’architectures multicloud et hybrides offre des avantages importants, tels qu’une efficacité améliorée, un risque réduit de pannes et l’évitement du verrouillage d’un fournisseur. Mais ces architectures complexes présentent également des défis uniques.
Les leaders du secteur des logiciels et de l'informatique interrogés par F5 ont cité les principaux défis multicloud suivants :
La gestion des API pour les microservices dans les environnements multicloud est particulièrement complexe. Sans une stratégie API globale en place, les API prolifèrent dans les environnements de cloud public, sur site et en périphérie plus rapidement que les équipes Platform Ops ne peuvent les sécuriser et les gérer. Nous appelons ce problème la prolifération des API et dans un article précédent, nous avons expliqué pourquoi il s'agit d'une menace si importante.
Vous avez besoin d’une stratégie d’API multicloud afin de pouvoir mettre en œuvre une approche réfléchie pour unifier vos microservices, désormais répartis sur plusieurs clouds, afin de garantir une connectivité de bout en bout . Deux des scénarios courants pour les déploiements multicloud et hybrides sont les suivants :
Dans le didacticiel suivant, nous montrons étape par étape comment utiliser API Connectivity Manager , qui fait partie de F5 NGINX Management Suite , dans le deuxième scénario : déployer les mêmes services dans plusieurs environnements pour une haute disponibilité. Cela élimine un point de défaillance unique dans votre environnement de production multicloud ou hybride : si une instance de passerelle tombe en panne, une autre instance de passerelle prend le relais et vos clients ne subissent pas de panne, même si un cloud tombe en panne.
API Connectivity Manager est une solution cloud native et indépendante du temps d’exécution pour le déploiement, la gestion et la sécurisation des API. À partir d'une seule interface, vous pouvez gérer toutes vos opérations API pour les passerelles API NGINX Plus et les portails de développeurs déployés dans des environnements de cloud public, sur site et en périphérie. Cela donne à vos équipes Platform Ops une visibilité complète sur le trafic API et facilite l'application de politiques de gouvernance et de sécurité cohérentes pour chaque environnement.
Comme mentionné dans l’introduction, dans ce didacticiel, nous configurons API Connectivity Manager pour une haute disponibilité des services exécutés dans plusieurs environnements de déploiement. Plus précisément, nous déployons NGINX Plus en tant que passerelle API acheminant le trafic vers deux services, Service A et Service B , qui s'exécutent dans deux clouds publics, Google Cloud Platform (GCP) et Amazon Web Services (AWS). (La configuration s’applique également à n’importe quelle combinaison d’environnements de déploiement, y compris Microsoft Azure et les centres de données sur site.)
La figure 1 illustre la topologie utilisée dans le didacticiel.
Suivez les étapes de ces sections pour terminer le didacticiel :
Sélectionnez les environnements qui composent votre infrastructure multicloud ou hybride. Pour le didacticiel, nous avons choisi AWS et GCP et installons une instance NGINX Plus dans chaque cloud. Dans chaque environnement, effectuez ces étapes sur chaque hôte de plan de données qui agira comme passerelle API :
Ajoutez les directives suivantes dans le contexte principal (de niveau supérieur) dans /etc/nginx/nginx.conf :
charger_module modules/ngx_http_js_module.so;charger_module modules/ngx_stream_js_module.so;
Redémarrez NGINX Plus, par exemple en exécutant cette commande :
$ nginx -s recharger
Vous pouvez créer plusieurs espaces de travail d’infrastructure (jusqu’à 10 au moment de la rédaction) dans API Connectivity Manager. Avec des espaces de travail séparés, vous pouvez appliquer des politiques et des exigences d'authentification/autorisation spécifiques à différents secteurs d'activité, équipes de développeurs, partenaires externes, clouds, etc.
En travaillant dans l’interface graphique du gestionnaire de connectivité API, créez un nouvel espace de travail :
Cliquez sur le bouton + Créer pour créer un nouvel espace de travail, comme illustré dans la Figure 2.
Dans le panneau Créer un espace de travail qui s’ouvre, remplissez le champ Nom ( démonstration dans la Figure 3). Si vous le souhaitez, remplissez le champ Description et les champs de la section Informations de contact de l'espace de travail . L'administrateur de l'infrastructure (votre équipe Platform Ops, par exemple) peut utiliser les informations de contact pour fournir des mises à jour sur l'état ou les problèmes aux utilisateurs de l'espace de travail.
Dans API Connectivity Manager, un environnement est un regroupement logique de ressources dédiées (telles que des passerelles API ou des portails de développeurs API). Vous pouvez créer plusieurs environnements par espace de travail (jusqu'à 25 au moment de la rédaction) ; ils correspondent généralement à différentes étapes du développement et du déploiement d'applications telles que le codage, les tests et la production, mais ils peuvent servir à n'importe quel objectif.
Au sein d’un environnement, un cluster de passerelle API est un regroupement logique d’instances NGINX Plus agissant comme passerelles API. Un seul environnement peut avoir plusieurs clusters de passerelle API qui partagent le même nom d’hôte (par exemple, api.nginx.com , comme dans ce didacticiel). Les instances NGINX Plus d'un cluster API Gateway peuvent être situées dans plusieurs types d'infrastructures, par exemple dans plusieurs clouds.
Il existe deux manières de configurer un environnement dans API Connectivity Manager pour une haute disponibilité active-active des passerelles API :
La principale raison de déployer plusieurs clusters API Gateway est de pouvoir appliquer un ensemble différent de politiques de sécurité à chaque cluster.
Dans Déployer des instances NGINX Plus en tant que passerelles API , nous avons déployé deux instances NGINX Plus : une dans AWS et l’autre dans GCP. Le didacticiel utilise les mêmes instances pour illustrer les deux types d'environnement (avec un seul cluster de passerelle API ou avec plusieurs clusters de passerelle API) ; si vous souhaitez déployer les deux types d'environnement dans un seul espace de travail, vous devez créer des instances NGINX Plus supplémentaires pour le deuxième environnement.
Pour un environnement avec un cluster de passerelle API, les mêmes politiques de sécurité s'appliquent à toutes les instances de passerelle API NGINX Plus, comme illustré dans la Figure 4.
Accédez à votre espace de travail et cliquez sur le bouton Créer un environnement , comme illustré dans la Figure 5.
Dans le panneau Créer un environnement qui s'ouvre, remplissez le champ Nom ( prod dans la Figure 6) et éventuellement le champ Description , puis sélectionnez le type d'environnement (ici nous choisissons Prod ).
Cliquez sur le bouton Créer .
Le panneau Environnement créé s'ouvre pour afficher la commande que vous devez exécuter sur chaque instance NGINX Plus pour l'attribuer au cluster API Gateway. Pour plus de commodité, nous montrons les commandes à l’étape 7 ci-dessous.
Répétez cette opération sur chaque instance NGINX Plus :
ssh
pour vous connecter et vous connecter à l'instance.Si l'agent NGINX est déjà en cours d'exécution, arrêtez-le :
$ systemctl arrête l'agent nginx
Exécutez la commande de votre choix ( curl
ou wget
) pour télécharger et installer le package NGINX Agent :
Si vous n'avez pas activé mTLS dans Installer et configurer API Connectivity Manager , ajoutez :
-k
de la commande curl
--no-check-certificate
de la commande wget
<NMS_FQDN>
, remplacez l'adresse IP ou le nom de domaine complet de votre serveur NGINX Management Suite.<nom_du_cluster>
, remplacez le nom du cluster de passerelle API (cluster d'API
(dans ce tutoriel).$ boucle [-k] https://<NMS_FQDN>/install/nginx-agent > install.sh && sudo sh -install.sh -g <nom_du_cluster> && sudo systemctl start nginx-agent
ou
$ wget [--no-check-certificate] https://<NMS_FQDN>/install/nginx-agent --no-check-certificate -O install.sh && sudo sh install.sh -g <nom_du_cluster> && sudo systemctl start nginx-agent
Les instances NGINX Plus apparaissent désormais dans la section Instances de la fenêtre Cluster pour api-cluster , comme illustré dans la Figure 7.
Pour un environnement avec plusieurs clusters de passerelle API, différentes politiques de sécurité peuvent s’appliquer à différentes instances de passerelle API NGINX Plus, comme illustré dans la Figure 8.
Accédez à votre espace de travail et cliquez sur le bouton Créer un environnement , comme illustré dans la Figure 9.
Dans le panneau Créer un environnement qui s'ouvre, remplissez le champ Nom ( prod dans la Figure 10) et éventuellement le champ Description , puis sélectionnez le type d'environnement (ici nous choisissons Prod ).
Cliquez sur le bouton Créer .
Le panneau Environnement créé s'ouvre pour afficher la commande que vous devez exécuter sur chaque instance NGINX Plus pour l'attribuer au cluster API Gateway. Pour plus de commodité, nous affichons les commandes à l’étape 10 ci-dessous.
Revenez à l’onglet Environnement et cliquez sur le bouton + Ajouter dans le coin supérieur droit de la section Clusters de passerelle API , comme illustré dans la Figure 11.
Dans le panneau Créer un cluster de passerelle API , remplissez le champ Nom avec le nom du deuxième cluster ( gcp-cluster dans la Figure 12) et le champ Nom d'hôte avec le même nom d'hôte que pour le premier cluster ( api.nginx.com ).
Les deux clusters de passerelle API apparaissent désormais sur les clusters de passerelle API pour l’environnement de production , comme illustré dans la Figure 13.
Répétez cette opération sur chaque instance NGINX Plus :
ssh
pour vous connecter et vous connecter à l'instance.Si l'agent NGINX est déjà en cours d'exécution, arrêtez-le :
$ systemctl arrête l'agent nginx
Exécutez la commande de votre choix ( curl
ou wget
) pour télécharger et installer le package NGINX Agent :
Si vous n'avez pas activé mTLS dans Installer et configurer API Connectivity Manager , ajoutez :
-k
de la commande curl
--no-check-certificate
de la commande wget
<NMS_FQDN>
, remplacez l'adresse IP ou le nom de domaine complet de votre serveur NGINX Management Suite.<nom_du_cluster>
, remplacez le nom du cluster de passerelle API approprié (dans ce didacticiel, cluster aws
pour l'instance déployée dans AWS et cluster gcp
pour l'instance déployée dans GCP).$ boucle [-k] https://<NMS_FQDN>/install/nginx-agent > install.sh && sudo sh -install.sh -g <nom_du_cluster> && sudo systemctl start nginx-agent
ou
$ wget [--no-check-certificate] https://<NMS_FQDN>/install/nginx-agent --no-check-certificate -O install.sh && sudo sh install.sh -g <nom_du_cluster> && sudo systemctl start nginx-agent
L’instance NGINX Plus appropriée apparaît désormais dans la section Instances des fenêtres Cluster pour aws-cluster (Figure 14) et gcp-cluster (Figure 15).
Vous pouvez désormais ajouter des politiques globales qui s’appliquent à toutes les instances NGINX Plus dans un cluster API Gateway. Par exemple, pour sécuriser l’accès client à vos API, vous pouvez appliquer la politique OpenID Connect Relying Party ou TLS Inbound . Pour sécuriser la connexion entre une passerelle API et le service backend qui expose l'API, appliquez la politique TLS Backend . Pour plus d’informations sur les politiques TLS, consultez la documentation d’API Connectivity Manager .
Accédez à l’onglet Cluster de la passerelle API à laquelle vous souhaitez appliquer une politique ( api-cluster dans la Figure 16). Cliquez sur le bouton Gérer situé au-dessus du coin droit du tableau Politiques .
Cliquez sur Stratégies globales dans la colonne de navigation de gauche, puis sur l’icône … dans la colonne la plus à droite de la ligne de la stratégie ( Backend TLS dans la Figure 17). Sélectionnez + Ajouter une politique dans le menu déroulant.
La gestion des architectures multicloud et hybrides n’est pas une tâche facile. Il s’agit d’environnements complexes avec des applications en évolution rapide qui sont souvent difficiles à observer et à sécuriser.
Cependant, avec les bons outils, vous pouvez éviter le blocage des fournisseurs tout en conservant l’agilité et la flexibilité dont vous avez besoin pour proposer plus rapidement de nouvelles fonctionnalités sur le marché. En tant qu’outil cloud natif, API Connectivity Manager de NGINX vous offre l’évolutivité, la visibilité, la gouvernance et la sécurité dont vous avez besoin pour gérer les API dans un environnement multicloud et hybride.
Démarrez un essai gratuit de 30 jours de NGINX Management Suite , qui inclut l'accès à API Connectivity Manager , NGINX Plus en tant que passerelle API et NGINX App Protect pour sécuriser vos API.
« Cet article de blog peut faire référence à des produits qui ne sont plus disponibles et/ou qui ne sont plus pris en charge. Pour obtenir les informations les plus récentes sur les produits et solutions F5 NGINX disponibles, explorez notre famille de produits NGINX . NGINX fait désormais partie de F5. Tous les liens NGINX.com précédents redirigeront vers un contenu NGINX similaire sur F5.com."