Déployer Oracle WebLogic Server dans un cluster Kubernetes
Architecture
Cette architecture de référence présente un domaine Oracle SOA et un domaine Oracle Service Bus (OSB) facultatif déployés dans un cluster Kubernetes provisionné dans Oracle Cloud à l'aide d'OCI Kubernetes Engine. Ce service facilite la création d'un cluster Kubernetes et fournit les services requis, tels qu'un équilibreur de charge, un stockage de blocs et un réseau.
Le schéma suivant illustre cette architecture de référence.

Description de l'image soa-oke.png
L'architecture comprend les composants suivants :
- Région
Une région Oracle Cloud Infrastructure est une zone géographique précise, incluant un ou plusieurs 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 (entre pays, voire continents).
- Domaines de disponibilité
Les domaines de disponibilité sont des centres de données autonomes indépendants au sein d'une région. Les ressources physiques de chaque domaine de disponibilité sont isolées de celles des autres, ce qui garantit la tolérance aux pannes. Les domaines de disponibilité ne partagent ni infrastructure (par exemple, alimentation, système de refroidissement), ni réseau de domaine de disponibilité interne. Par conséquent, une panne sur un domaine de disponibilité ne doit pas affecter les autres domaines de disponibilité de la région.
- Domaines de pannes
Un domaine de pannes est un regroupement de matériel et d'infrastructures au sein d'un domaine de disponibilité. Chaque domaine de disponibilité comporte trois domaines de pannes avec du matériel et une alimentation indépendants. Lorsque vous répartissez les ressources entre plusieurs domaines de pannes, vos applications peuvent tolérer les pannes physiques du serveur, la maintenance du système et les pannes d'alimentation au sein d'un domaine de pannes.
- 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 centre de données traditionnels, les réseaux cloud virtuels vous donnent le contrôle sur l'environnement réseau. Un réseau cloud virtuel peut comporter plusieurs blocs CIDR qui ne se chevauchent pas et que vous pouvez modifier après l'avoir créé. Vous pouvez segmenter un réseau cloud virtuel en plusieurs sous-réseaux ciblant une région ou un domaine de disponibilité. Chaque sous-réseau est composé d'une plage contiguë d'adresses qui ne chevauchent pas celles des autres sous-réseaux du réseau cloud virtuel. Vous pouvez modifier la taille d'un sous-réseau après sa création. Un sous-réseau peut être public ou privé.
- équilibreur de charge
Le service Oracle Cloud Infrastructure Load Balancing fournit une répartition de trafic automatisée à partir d'un point d'entrée vers plusieurs serveurs accessibles à partir du VCN.
- Stockage de fichier
Le service Oracle Cloud Infrastructure File Storage offre un système de fichiers réseau durable, évolutif, sécurisé et adapté à l'entreprise. Vous pouvez vous connecter à un système de fichiers de service File Storage à partir de n'importe quelle instance Bare Metal, de machine virtuelle ou de conteneur dans un VCN. Vous pouvez également accéder à un système de fichiers à partir de l'extérieur du VCN à l'aide d'Oracle Cloud Infrastructure FastConnect et du VPN IPSec. Le service File Storage est utilisé pour créer un volume persistant afin de stocker les artefacts de domaine SOA.
- Kubernetes Engine
Oracle Cloud Infrastructure Kubernetes Engine (OCI Kubernetes Engine ou OKE) est un service entièrement géré, évolutif et hautement disponible que vous pouvez utiliser pour déployer vos applications en conteneur vers le cloud. Indiquez les ressources de calcul requises par vos applications et Kubernetes Engine les provisionne sur Oracle Cloud Infrastructure dans une location existante. OKE utilise Kubernetes pour automatiser le déploiement, le redimensionnement et la gestion des applications en conteneur dans les clusters d'hôtes.
- Domaine SOA
Un domaine SOA est un groupe d'applications et de ressources associées, ainsi que les informations de configuration nécessaires à leur exécution. Un domaine inclut une ou plusieurs instances SOA, qui peuvent être clusterisées, non clusterisées ou une combinaison de clusterisées et non clusterisées. Un domaine peut inclure plusieurs clusters.
- Clusters SOA et (facultatif) Oracle Service Bus
Un cluster fait partie d'un domaine SOA particulier. Un cluster se compose de plusieurs instances SOA exécutées simultanément pour fournir une évolutivité et une fiabilité accrues.
Un cluster SOA est différent d'un cluster Kubernetes. Pour les clients, un cluster SOA apparaît comme une instance SOA unique. Les instances de serveur qui constituent un cluster peuvent être exécutées sur le même ordinateur ou se trouver sur des ordinateurs différents. Chaque instance de serveur du cluster doit utiliser la même version d'Oracle WebLogic Server.
- Opérateur WebLogic Kubernetes
Un opérateur Kubernetes est un logiciel qui gère des applications complexes. L'opérateur Kubernetes WebLogic est conçu pour jouer un rôle similaire à celui d'opérateur humain dans un déploiement de centre de données traditionnel. Ses tâches incluent le démarrage et l'arrêt d'environnements, le lancement de sauvegardes, l'exécution d'opérations de redimensionnement, l'exécution de tâches manuelles associées aux besoins de récupération après sinistre et de haute disponibilité, et la coordination des actions avec d'autres opérateurs dans d'autres centres de données.
Recommandations
Vos exigences peuvent différer de l'architecture décrite ici. Utilisez les recommandations suivantes comme point de départ.
- VCN
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 à des sous-réseaux dans le VCN. Utilisez des blocs CIDR qui se trouvent dans l'espace d'adresse IP privée standard.
Sélectionnez les 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) auquel vous avez l'intention de 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 du flux de trafic et des exigences de sécurité. Attachez toutes les ressources d'un niveau ou d'un rôle spécifique au même sous-réseau, qui peut servir de limite de sécurité.
Utiliser des sous-réseaux régionaux.
Cette architecture utilise un sous-réseau public pour les équilibreurs de charge et un sous-réseau privé pour héberger les noeuds OCI Kubernetes Engine.
- OCI Kubernetes Engine
Bien que l'opérateur prenne en charge tout cluster Kubernetes générique, cette architecture utilise des clusters OCI Kubernetes Engine. Ces clusters comportent cinq noeuds de processus actif répartis sur différents hôtes physiques. Le cluster affiché comporte des noeuds de processus actif répartis sur différents hôtes physiques. Vous pouvez créer jusqu'à 1000 noeuds dans un cluster. Les noeuds de processus actif sont déployés sur les hôtes Oracle Linux VM.Standard2.1.
- Equilibreur de charge
Par défaut, les serveurs Oracle WebLogic Server (administrateurs et serveurs gérés) créés par l'opérateur ne sont pas affichés en dehors du cluster OCI Kubernetes Engine. Pour exposer l'application au monde extérieur, cette architecture utilise un équilibreur de charge public sur le service Load Balancing. Un équilibreur de charge public a une adresse IP publique accessible à partir d'Internet. Cette architecture utilise un équilibreur de charge avec 100 Mbps pour gérer le trafic. Si vous devez gérer plus de trafic entrant, vous pouvez choisir une bande passante plus élevée, jusqu'à 8000 Mbps.
- Stockage de fichier
Afin de respecter les meilleures pratiques d'exécution des domaines Oracle WebLogic Server, les fichiers de configuration de domaine de cette architecture sont stockés dans File Storage partagé accessible à partir de tous les serveurs WebLogic du cluster. Cette configuration offre les avantages suivants :
- Vous n'avez pas besoin de reconstruire les images Docker pour les modifications apportées à la configuration de domaine.
- Les sauvegardes sont plus rapides et centralisées.
- Les journaux sont stockés par défaut sur le stockage persistant.
Points à prendre en compte
- Evolutivité
Vous pouvez redimensionner votre application en mettant à jour le nombre de noeuds de processus actif dans le cluster Kubernetes, en fonction de la charge. De même, vous pouvez réduire le nombre de noeuds de processus actif dans le cluster. Sur le cluster Kubernetes, lorsque vous créez un service, vous pouvez créer un équilibreur de charge pour distribuer le trafic du service entre les noeuds affectés à ce service. Vous pouvez créer votre volume persistant à l'aide de Terraform ou de la console Web Oracle, puis le référencer à partir des scripts d'opérateur. Vous pouvez redimensionner le domaine SOA et les clusters en ajustant le nombre de serveurs gérés affectés au cluster, indépendamment du nombre de noeuds de cluster OKE.
- Disponibilité de l'application
Le cluster Kubernetes dispose de trois noeuds de processus actif pour les serveurs gérés répartis sur différentes infrastructures physiques, de sorte que les clusters Oracle WebLogic Server eux-mêmes disposent de la plus haute disponibilité.
- Sécurité
Utilisez des stratégies pour contrôler qui peut utiliser vos ressources Oracle Cloud Infrastructure et les opérations qu'elles peuvent effectuer.
OCI Kubernetes Engine est intégré à Oracle Cloud Infrastructure Identity and Access Management (IAM). IAM facilite l'authentification à l'aide de la fonctionnalité d'identité Oracle Cloud Infrastructure native.
En savoir plus
Pour en savoir plus sur le déploiement de SOA sur Kubernetes, consultez les ressources supplémentaires suivantes :
- Documentation relative à l'opérateur Kubernetes Oracle WebLogic Server
- Opérateur Kubernetes Oracle WebLogic Server sur GitHub
- Documentation d'Oracle WebLogic Server 12.2.1.4.0
- fmw-kubernetes sur GitHub