Déployez WordPress avec le service MySQL Database sur Oracle Cloud Infrastructure Kubernetes Engine

Profitez de la flexibilité et des avantages économiques offerts par l'hébergement de vos pages Web et de vos blogues WordPress sur Oracle Cloud Infrastructure (OCI).

WordPress est l'un des systèmes de gestion de contenu (CMS) les plus utilisés pour gérer les pages Web et les blogs. Rendez votre déploiement WordPress hautement évolutif et disponible avec les services OCI suivants :
  • Oracle Cloud Infrastructure Kubernetes Engine (Moteur Kubernetes pour OCI ou OKE) pour fournir un déploiement Wordpress hautement évolutif et disponible sans avoir à déployer ou gérer une grappe Kubernetes.
  • Le service MySQL Database fournit une base de données haute performance pour votre application WordPress sans avoir à provisionner ou à gérer la base de données.
  • Service File Storage pour le stockage de persistance partagé (obligatoire par WordPress) qui est accessible à toutes les instances de l'application pour la rendre hautement disponible.

Architecture

Cette architecture de référence présente un déploiement WordPress hautement disponible et évolutif dans une grappe OKE. Ce déploiement utilise le service File Storage en tant que stockage persistant et le service MySQL Database en tant que base de données. Un équilibreur de charge avec une adresse IP externe est affecté pour fournir l'accès à l'application WordPress.

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

Une description de oci-mysql-oke-wordpress-arch.png suit
Description de l'illustration oci-mysql-oke-wordpress-arch.png

oci-mysql-oke-wordpress-arch-oracle.zip

La section suivante décrit cette architecture de référence :

Dans la grappe OKE, vous pouvez sélectionner le nombre de pods d'application WordPress pour le déploiement. Chaque pod nécessite l'accès à un stockage partagé persistant. Pour fournir le stockage, une ressource de classe de stockage qui correspond à un partage NFS dans le stockage de fichiers est créée dans le cluster. Une ressource de volume persistant rend ensuite le stockage offert par la classe de stockage consommable par les ressources de la grappe. Une ressource de revendication de volume persistant (PVC) est créée pour indiquer que les pods veulent utiliser le stockage. La revendication de volume persistant est mappée dans les pods d'application WordPress pour accéder au stockage.

La base de données de l'application WordPress utilise le service MySQL Database. L'instance du service MySQL Database est créée et gérée à partir de la grappe OKE en tant que ressource personnalisée définie avec l'opérateur de service OCI pour Kubernetes (OSOK).

Le service MySQL Database est déployé avec la haute disponibilité à l'aide de trois instances du service MySQL Database déployées dans différents domaines de disponibilité ou domaines d'erreur. L'application WordPress se connecte à un seul point d'extrémité pour lire et écrire dans la base de données. En cas de défaillance, le système de base de données basculera automatiquement vers une instance secondaire sans reconfiguration de l'application WordPress.

Un équilibreur de charge est créé et géré à partir de la grappe OKE en tant que ressource de service de type LoadBalancer.

L'architecture comprend les composants suivants :

  • Région

    Une région Oracle Cloud Infrastructure est une zone géographique localisée qui contient 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 (dans différents pays ou continents).

  • Domaines de disponibilité

    Les domaines de disponibilité sont des centres de données indépendants et autonomes dans une région. Les ressources physiques de chaque domaine de disponibilité sont isolées des ressources des autres domaines de disponibilité, ce qui garantit la tolérance aux pannes. Les domaines de disponibilité ne partagent pas les éléments d'infrastructure (alimentation ou refroidissement, par exemple) ni le réseau de domaines de disponibilité interne. Par conséquent, une défaillance d'un domaine de disponibilité ne devrait pas affecter les autres domaines de disponibilité de la région.

  • Domaines d'erreur

    Un domaine d'erreur est un regroupement de matériel et d'infrastructure au sein d'un domaine de disponibilité. Chaque domaine de disponibilité comporte trois domaines d'erreur avec une puissance et un matériel indépendants. Lorsque vous répartissez des ressources entre plusieurs domaines d'erreur, vos applications peuvent tolérer les pannes physiques de serveur, la maintenance du système et les pannes d'alimentation au sein d'un domaine d'erreur.

  • Réseau en nuage virtuel (VCN) et sous-réseau

    Un VCN est un réseau défini par logiciel personnalisable que vous avez configuré dans une région Oracle Cloud Infrastructure. Comme les réseaux en nuage virtuels traditionnels, ils vous offrent un contrôle sur votre environnement de réseau. Un VCN peut disposer de plusieurs blocs CIDR sans chevauchement que vous pouvez modifier après avoir créé le VCN. Vous pouvez segmenter un VCN en sous-réseaux, dont la portée peut concerner une région ou un domaine de disponibilité. Un sous-réseau est constitué d'un intervalle contigu d'adresses qui ne chevauchent pas les autres sous-réseaux dans le réseau en nuage 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é.

  • Moteur Kubernetes

    Oracle Cloud Infrastructure Kubernetes Engine pour (Moteur Kubernetes pour OCI ou OKE) est un service entièrement géré, évolutif et hautement disponible que vous pouvez utiliser pour déployer vos applications conteneurisées dans le nuage. Vous indiquez les ressources de calcul dont vos applications ont besoin et Kubernetes Engine les provisionne sur Oracle Cloud Infrastructure dans une location existante. OKE utilise Kubernetes pour automatiser le déploiement, l'ajustement et la gestion des applications conteneurisées sur les grappes d'hôtes.

  • Service Oracle MySQL Database

    Oracle MySQL Database Service est un service de base de données Oracle Cloud Infrastructure (OCI) entièrement géré qui permet aux développeurs de développer et de déployer rapidement des applications natives en nuage sécurisées. Optimisé pour et exclusivement disponible dans OCI, Oracle MySQL Database Service est créé, géré et pris en charge à 100 % par les équipes d'ingénierie OCI et MySQL.

    Oracle MySQL Database Service dispose d'un moteur d'analyse intégré à haute performance (HeatWave) pour exécuter des analyses en temps réel sophistiquées directement sur une base de données opérationnelle MySQL.

  • Stockage de fichiers

    Le service de stockage de fichiers pour Oracle Cloud Infrastructure fournit un système de fichiers de réseau durable, évolutif, sécurisé et de niveau entreprise. Vous pouvez vous connecter à un système de fichiers du service de stockage de fichiers à partir de toute instance sans système d'exploitation, sur machine virtuelle ou en conteneur d'un VCN. Vous pouvez également accéder à un système de fichiers depuis l'extérieur du réseau VCN à l'aide d'Oracle Cloud Infrastructure FastConnect et du RPV IPSec.

  • WordPress Système de gestion de contenu (CMS)

    WordPress CMS vous permet de créer un site de blog entièrement fonctionnel ou un site Web à usage général.

  • Passerelle de traduction d'adresses de réseau (NAT)

    Une passerelle NAT permet aux ressources privées d'un VCN d'accéder à des hôtes sur Internet, sans les exposer aux connexions Internet entrantes.

  • Passerelle de service

    La passerelle de service fournit l'accès d'un VCN à d'autres services, tels qu'Oracle Cloud Infrastructure Object Storage. Le trafic entre le réseau VCN et le service Oracle circule sur la matrice réseau Oracle et ne passe pas par Internet.

  • Registre

    Oracle Cloud Infrastructure Registry est un registre géré par Oracle qui vous permet de simplifier votre flux de travail, du développement à la mise en production. Le registre vous permet de stocker, de partager et de gérer facilement des artefacts de développement, tels que des images Docker. L'architecture hautement disponible et évolutive d'Oracle Cloud Infrastructure vous permet de déployer et de gérer vos applications en toute confiance.

  • Équilibreur de charge

    Le service Oracle Cloud Infrastructure Load Balancing permet une répartition automatisée du trafic à partir d'un point d'entrée unique vers plusieurs serveurs dorsaux.

  • Table de routage

    Les tables de routage virtuelles contiennent des règles pour acheminer le trafic des sous-réseaux vers des destinations en dehors d'un VCN, généralement au moyen de passerelles.

  • Liste de sécurité

    Pour chaque sous-réseau, vous pouvez créer des règles de sécurité qui spécifient la source, la destination et le type de trafic qui doivent être autorisés à entrer et à sortir du sous-réseau.

Recommandations

Utilisez les recommandations suivantes comme point de départ. Vos exigences peuvent différer de l'architecture décrite ici.
  • 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 aux sous-réseaux du VCN. Utilisez des blocs CIDR qui se trouvent dans l'espace d'adresses IP privées standard.

    Sélectionnez les blocs CIDR qui ne chevauchent aucun autre réseau (dans Oracle Cloud Infrastructure, votre centre de données sur place ou un autre fournisseur de nuage) auquel vous voulez 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 flux de trafic et 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é.

  • Bande passante de l'équilibreur de charge

    Lors de la création de l'équilibreur de charge, vous pouvez sélectionner une forme prédéfinie qui fournit une bande passante fixe, ou spécifier une forme personnalisée (flexible) dans laquelle vous définissez une plage de bande passante et laissez le service ajuster la bande passante automatiquement en fonction des modèles de trafic. Avec l'une ou l'autre approche, vous pouvez modifier la forme en tout temps après avoir créé l'équilibreur de charge.

  • Listes de sécurité

    Utilisez des listes de sécurité pour définir des règles de trafic entrant et sortant qui s'appliquent à l'ensemble du sous-réseau.

  • Service Oracle de base de données MySQL

    Dans cette architecture, le SGC WordPress stocke les données relationnelles dans Oracle MySQL Database Service. Nous vous recommandons d'utiliser la dernière version.

Points à considérer

Lors du déploiement de WordPress dans Oracle Cloud, tenez compte des éléments suivants pour l'évolutivité et la disponibilité :

  • Disponibilité d'application

    L'application WordPress est déployée avec plusieurs pods dans le déploiement pour assurer une haute disponibilité.

  • Disponibilité et évolutivité de mon service de base de données SQL

    Le service MySQL Database affiché dans l'architecture hautement disponible utilise l'option de haute disponibilité intégrée MySQL, qui crée trois instances et les place dans différents domaines d'erreur.

Déployez

Cette architecture de référence peut être déployée et gérée à partir de la grappe OKE sans utiliser la console OCI ou l'interface de ligne de commande et automatisée avec un graphique Helm. L'exemple de graphique Helm pour cette architecture de référence montre comment initialiser un déploiement WordPress à l'aide d'un système MySQL Database en tant que base de données dans une grappe Kubernetes déployée dans OCI pour haute disponibilité ou non. Vous pouvez télécharger le code à partir de GitHub et le personnaliser en fonction de vos besoins spécifiques.

  1. Allez à GitHub - HA ou GitHub - non-HA.
  2. Clonez ou téléchargez le référentiel sur votre ordinateur local.
  3. Suivez les instructions du document README.

Remerciements

  • Auteurs : Chipage de Hwang, Hassan Ajan
  • Contributeurs : Anupama Pundpal