Connecter des microservices multicloud à l'aide d'Oracle API Gateway

Le service Oracle API Gateway vous permet de publier des API avec des adresses privées accessibles à partir de votre réseau. Vous pouvez proposer ces API avec des adresses IP publiques si vous voulez qu'elles acceptent le trafic Internet.

Lors de la création de solutions d'entreprise, il se peut que différentes parties de la solution aient été déployées dans différents clouds (ou même on-premise), en raison de besoins spécifiques ou en raison des préférences de l'équipe des fournisseurs cloud. Par exemple, les services qui étendent Office 365 ont peut-être été déployés sur Azure, mais les services principaux tels qu'ERP peuvent résider sur OCI.

Si vous souhaitez ensuite exposer certains de ces services en tant qu'API à des partenaires, vous ne souhaitez pas essayer d'utiliser plusieurs passerelles dans différents clouds. Répartir les API entre différents clouds risque d'être source de confusion pour le consommateur d'API, sans parler des risques exposant l'utilisateur à de meilleures chances de devoir changer. En outre, s'il existe une sorte de restrictions ou de contrôles impliqués dans l'utilisation des API, la gestion de ces contrôles devient très difficile. Dans ce cas, la passerelle d'API Oracle vous permet de lier plusieurs services back-end en une seule adresse d'API consolidée.

Le service Oracle API Gateway est intégré à Oracle Cloud Infrastructure Identity and Access Management (OCI IAM), qui facilite l'authentification avec la fonctionnalité d'identité native d'Oracle Cloud Infrastructure (OCI). Lorsque des services sont exécutés sur différents clouds (tels qu'OCI, Oracle SaaS, n'importe quel cloud 3e partie : Amazon Web Services (AWS), Microsoft Azure, Google Cloud Computing, etc.), vous pouvez utiliser Oracle API Gateway pour exposer tous ces services à vos clients de service.

L'utilisation d'Oracle API Gateway offre les avantages suivants :
  • Prise en charge de l'architecture multicloud : éviter la dépendance des fournisseurs, répondre aux exigences de conformité, améliorer la résilience, la flexibilité et la gestion des risques. Permet aux utilisateurs d'exécuter des back-ends de service sur n'importe quel cloud pour répondre aux exigences de conformité (sans être verrouillé sur un seul fournisseur cloud), mais de toujours présenter une adresse unifiée aux clients quel que soit l'endroit où le service back-end est exécuté.
  • Permet d'exécuter différents services sur différents clouds ; fournit une adresse unifiée quel que soit l'endroit où le back-end est implémenté.
  • Permet de présenter une adresse unifiée aux clients d'API quel que soit l'endroit où le back-end est implémenté. Parfois, la législation peut indiquer où le back-end peut et ne peut pas être déployé, mais Oracle API Gateway garantit que les clients ne sont pas affectés.

L'utilisation d'Oracle API Gateway permet de relever les défis suivants :

Question de vérification client Solution Oracle API Gateway
Implémentation d'une architecture multicloud et exécution de différents microservices sur différents clouds à l'aide d'une adresse unifiée
  • Active une approche de combinaison et de correspondance : différents microservices peuvent être implémentés sur différents clouds.
  • Fournit un point d'entrée surveillé et contrôlé. Une passerelle commune permet de diriger le trafic réseau de manière plus contrôlée, c'est-à-dire que le trafic vers d'autres clouds est activé via la passerelle et surveillé de manière efficace. Si le trafic commence et se termine partout où les services sont déployés, le réseau doit permettre à tout le monde de se connecter avec tout.
Les microservices peuvent subir des modifications internes et peuvent également être déplacés d'un cloud à un autre Les microservices déjà exécutés sur d'autres clouds peuvent continuer à le faire (par exemple, les applications basées sur Microsoft peuvent continuer à être exécutées sur Microsoft Azure).
Les applications client qui exploitent ces microservices ont besoin d'un accès uniforme et ininterrompu à tous ces microservices exécutés sur différents clouds Tous les microservices exécutés sur différents clouds peuvent être exposés ensemble aux clients à l'aide de la passerelle OracleAPI.

Architecture

Cette architecture de référence explique comment connecter des services exécutés sur OCI et d'autres clouds (ou centres de données, tels qu'OCI, Oracle SaaS, n'importe quel cloud 3e partie ou réseau sur site) à l'aide d'Oracle API Gateway, et exposer les services à vos clients de service.

Le diagramme suivant illustre le flux de données pour cette architecture de référence.



oci-multicloud-api-gateway-flow-oracle.zip

Il peut y avoir différents fournisseurs de services. Par exemple :
  • Services et services en conteneur exécutés sur des machines virtuelles, sur un cloud 3e partie.
  • Applications Oracle SaaS, telles qu'Oracle Fusion Cloud Applications ou Oracle Fusion Cloud Enterprise Performance Management (qui peuvent être intégrées à l'aide de services tels que l'intégration Oracle).
  • Services Oracle Autonomous Database
  • Services cloud natifs tels que les fonctions OCI et Container Engine for Kubernetes (OKE).
Les services peuvent être utilisés par :
  • Applications sur site (connectées à l'aide d'OCI VPN ou FastConnect). Par exemple, les applications s'exécutant dans le centre de données.
  • clients Internet. Par exemple, les pages Web et les applications mobiles accédant aux services sur Internet.

Une fois qu'une connectivité réseau appropriée est établie, la passerelle d'API OCI peut se connecter à différents fournisseurs de services back-end, résumer les complexités de ces services (si nécessaire) et exposer les API de service qui peuvent être facilement utilisées par les clients de service.

Le diagramme suivant illustre cette architecture de référence.



oci-multicloud-api-gateway-arch-oracle.zip

L'architecture se compose des éléments suivants :

  • Région

    Une région Oracle Cloud Infrastructure est une zone géographique localisée qui contient des centres de données, appelés domaines de disponibilité. Les régions sont indépendantes les unes des autres et de grandes distances peuvent les séparer (dans des pays voire des continents).

  • Domaines de disponibilité

    Les domaines de disponibilité sont des centres de données indépendants autonomes au sein d'une région. Les ressources physiques de chaque domaine de disponibilité sont isolées des ressources des autres domaines de disponibilité, ce qui assure la tolérance aux pannes. Les domaines de disponibilité ne partagent ni infrastructure telle que l'alimentation ou le refroidissement, ni réseau de domaine de disponibilité interne. Ainsi, il est peu probable qu'un problème survenant sur un domaine de disponibilité affecte les autres domaines de disponibilité de la région.

  • Réseau cloud virtuel (VCN) et sous-réseaux

    Un VCN est un réseau personnalisable défini par logiciel que vous configurez dans une région Oracle Cloud Infrastructure. Comme les réseaux de centres de données traditionnels, les réseaux cloud virtuels vous donnent un contrôle total sur votre environnement réseau. Un VCN peut comporter plusieurs blocs CIDR qui ne se chevauchent pas et que vous pouvez modifier après avoir créé le VCN. Vous pouvez segmenter un VCN en sous-réseaux, qui peuvent être ciblés vers une région ou un domaine de disponibilité. Chaque sous-réseau se compose d'une plage contiguë d'adresses qui ne chevauchent pas les autres sous-réseaux du VCN. Vous pouvez modifier la taille d'un sous-réseau après sa création. Un sous-réseau peut être public ou privé.

  • Applications Oracle Cloud Applications

    Notre suite cloud complète d'applications SaaS apporte des processus cohérents et une source unique d'informations fiables dans les fonctions métier les plus importantes, de la planification des ressources d'entreprise, de la gestion de la supply chain et de la gestion du capital humain à la publicité et à l'expérience client. Les applications vous aident à améliorer les interactions avec vos clients, à augmenter l'agilité de votre entreprise et à réagir aux changements plus rapidement que jamais.

  • Intégration

    Oracle Integration est un service entièrement géré qui permet d'intégrer vos applications, d'automatiser les processus, d'obtenir des informations sur vos processus métier et de créer des applications visuelles.

  • Autonomous Database

    Oracle Cloud Infrastructure Autonomous Database est un environnement de base de données entièrement géré et préconfiguré que vous pouvez utiliser pour le traitement des transactions et l'entreposage de données. Vous n'avez pas besoin de configurer ou de gérer du matériel, ni d'installer un logiciel. Oracle Cloud Infrastructure gère la création de la base de données, ainsi que la sauvegarde, l'application de patches, la mise à niveau et le réglage de la base de données.

  • API Gateway

    Oracle API Gateway vous permet de publier des API avec des adresses privées accessibles à partir de votre réseau, que vous pouvez exposer au réseau Internet public si nécessaire. Les adresses prennent en charge la validation d'API, la transformation des demandes et des réponses, CORS, l'authentification et l'autorisation, ainsi que la limitation des demandes.

  • VPN site à site

    Le VPN site à site fournit une connectivité VPN IPSec entre votre réseau sur site et vos réseaux cloud virtuels dans Oracle Cloud Infrastructure. La suite de protocoles IPSec permet de crypter le trafic IP avant le transfert des paquets de la source vers la destination, puis de le décrypter à son arrivée.

  • Oracle Cloud Infrastructure FastConnect permet de créer facilement une connexion privée dédiée entre votre centre de données et Oracle Cloud Infrastructure. FastConnect offre des options de bande passante plus élevée et une expérience réseau plus fiable par rapport aux connexions Internet.

  • Fonctions

    Oracle Functions est une plate-forme Functions-as-a-Service (FaaS) entièrement gérée, colocative, hautement évolutive et à la demande. Il est optimisé par le moteur open source du projet Fn. Les fonctions vous permettent de déployer votre code et de l'appeler directement ou de le déclencher en réponse à des événements. Oracle Functions utilise des conteneurs Docker hébergés dans Oracle Cloud Infrastructure Registry.

Recommandations

Utilisez les recommandations suivantes comme point de départ. Vos besoins peuvent différer de l'architecture décrite ici.
  • Réseau cloud virtuel

    Lorsque vous créez un VCN, déterminez le nombre de blocs CIDR requis et la taille de chaque bloc en fonction du nombre de ressources que vous prévoyez d'attacher aux sous-réseaux du VCN. Utilisez des blocs CIDR situés dans l'espace d'adresses IP privées standard.

    Lorsque vous créez un VCN, déterminez le nombre de blocs CIDR requis et la taille de chaque bloc en fonction du nombre de ressources que vous prévoyez d'attacher aux sous-réseaux du VCN. Utilisez des blocs CIDR situés dans l'espace d'adresses IP privées standard.

    Sélectionnez des blocs CIDR qui ne chevauchent aucun autre réseau (dans Oracle Cloud Infrastructure, votre centre de données sur site ou un autre fournisseur cloud) sur lequel vous souhaitez configurer des connexions privées.

    Après avoir créé un VCN, vous pouvez modifier, ajouter et supprimer ses blocs CIDR.

    Lorsque vous concevez les sous-réseaux, tenez compte de vos exigences en matière de sécurité et de flux de trafic. Associez toutes les ressources d'un niveau ou d'un rôle spécifique au même sous-réseau, ce qui peut servir de limite de sécurité.

    Utilisez des sous-réseaux régionaux.

  • Sécurité

    Utilisez Oracle Cloud Guard pour surveiller et gérer la sécurité de vos ressources dans Oracle Cloud Infrastructure de manière proactive. Cloud Guard utilise des recettes de détecteur que vous pouvez définir pour examiner vos ressources à la recherche de faiblesses en matière de sécurité et pour surveiller les opérateurs et les utilisateurs à la recherche d'activités à risque. Lorsqu'une erreur de configuration ou une activité non sécurisée est détectée, Cloud Guard recommande des actions correctives et aide à prendre ces actions, en fonction des recettes de répondeur que vous pouvez définir.

    Pour les ressources nécessitant une sécurité maximale, Oracle recommande d'utiliser des zones de sécurité. Une zone de sécurité est un compartiment associé à une recette définie par Oracle de stratégies de sécurité reposant sur les meilleures pratiques. Par exemple, les ressources d'une zone de sécurité ne doivent pas être accessibles à partir du réseau Internet public et doivent être cryptées à l'aide de clés gérées par le client. Lorsque vous créez et mettez à jour des ressources dans une zone de sécurité, Oracle Cloud Infrastructure valide les opérations par rapport aux stratégies de la recette de zone de sécurité et refuse les opérations qui violent les stratégies.

Remarques

Lors du déploiement d'une passerelle Oracle API Gateway, tenez compte des options suivantes.

  • Performances

    OCI API Gateway prend en charge la mise en cache des réponses en s'intégrant à un serveur de cache externe (tel qu'un serveur Redis ou KeyDB), ce qui permet d'éviter une charge inutile sur les services back-end. Lorsque les réponses sont mises en cache, si des demandes similaires sont reçues, elles peuvent être complétées par l'extraction de données à partir d'un cache de réponses plutôt que par l'envoi de la demande au service back-end. Cela réduit la charge sur les services back-end, ce qui permet d'améliorer les performances et de réduire les coûts.

    OCI API Gateway met également en cache les jetons d'authentification (en fonction de leur temps de sortie de la durée de vie), ce qui réduit la charge sur le fournisseur d'identités et améliore les performances.

  • Sécurité

    Les services cloud OCI utilisent des stratégies IAM telles que l'autorisation d'API Gateway à appeler des fonctions. API Gateway peut également contrôler l'accès à l'aide de l'authentification et de l'autorisation OAuth. IAM autorise l'authentification et l'autorisation pouvant être fédérées via IAM. Par conséquent, API Gateway peut s'authentifier auprès d'un large éventail de services et de configurations d'authentification.

  • Haute disponibilité

    Envisagez d'utiliser une option de haute disponibilité basée sur vos exigences de déploiement et votre région. Les options incluent la distribution des ressources entre plusieurs domaines de disponibilité d'une région et la distribution des ressources entre les domaines de pannes d'un domaine de disponibilité. Les domaines de pannes offrent la meilleure résilience pour les charges de travail déployées dans un seul et même domaine de disponibilité. Pour une haute disponibilité au niveau de l'application, déployez les serveurs d'applications dans différents domaines de pannes et utilisez un équilibreur de charge pour distribuer le trafic client entre les serveurs d'applications.

En savoir plus

Consultez ces ressources supplémentaires pour en savoir plus sur les fonctionnalités de cette architecture de référence.

Remerciements

  • Author: Kaushik Kundu
  • Contributors: Wei Han, Phil Wilkins