Déployer un cache distribué hautement disponible à l'aide de Redis

Redis est un magasin ouvert de structure de données en mémoire qui est utilisé comme base de données, cache et courtier de messages. Il prend en charge les structures de données telles que les chaînes, les hachages, les listes, les ensembles, les ensembles triés avec des requêtes de plage, les bitmaps, HyperLogLogs, les index géospatiaux avec des requêtes de rayon et les flux.

Remarques :

OCI propose également son propre service Redis entièrement géré. Pour plus d'informations, consultez la page du service OCI Cache avec Redis.

Architecture

Cette architecture de référence présente un déploiement typique de six noeuds d'un cluster Redis sur les instances Oracle Cloud Infrastructure Compute.

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

Description de redis-oci-png.png suivante
Description de l'illustration redis-oci-png.png

Cette architecture comporte 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 des autres régions et de vastes distances peuvent les séparer (d'un pays à l'autre ou même d'un continent à l'autre).

  • Domaines de disponibilité

    Les domaines de disponibilité sont des centres de données autonomes et indépendants 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 permet de tolérer les pannes. Les domaines de disponibilité ne partagent pas d'infrastructure comme l'alimentation ou le refroidissement, ou le réseau de domaine de disponibilité interne. Il est donc peu probable qu'un échec dans un domaine de disponibilité affecte les autres domaines de disponibilité de la région.

  • Domaines d'erreur

    Un domaine de panne est un regroupement de matériel et d'infrastructure au sein d'un domaine de disponibilité. Chaque domaine de disponibilité dispose de trois domaines de pannes dotés d'une alimentation et d'un matériel indépendants. Lorsque vous distribuez des ressources dans plusieurs domaines de pannes, vos applications peuvent tolérer la panne du serveur physique, la maintenance du système et les pannes d'alimentation dans un domaine de panne.

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

    Un VCN est un réseau personnalisé et 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 permettent de contrôler entièrement votre environnement réseau. Un VCN peut comporter plusieurs blocs CIDR sans chevauchement que vous pouvez modifier après avoir créé VCN. Vous pouvez segmenter un VCN en sous-réseaux, qui peuvent être étendus à une région ou à un domaine de disponibilité. Chaque sous-réseau se compose d'une plage d'adresses contiguë qui ne chevauche pas les autres sous-réseaux de VCN. Vous pouvez modifier la taille d'un sous-réseau après la création. Un sous-réseau peut être public ou privé.

    Dans cette architecture, toutes les instances de calcul hébergeant le cluster Redis sont attachées à un sous-réseau régional unique.

  • Listes 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 dans et hors du sous-réseau.

    Cette architecture ajoute des règles d'entrée pour les ports TCP 16379 et 6379. Le port 6379 dessert les clients Redis et le port 16379 est utilisé par le bus de cluster Redis.

Recommandations

Vos exigences peuvent différer de l'architecture décrite ici. Utilisez les recommandations suivantes comme point de départ.

  • Formes de calcul

    Cette architecture utilise une image de système d'exploitation Oracle Linux 7.6 avec une forme VM.Standard2.2. Si votre application a besoin de plus de mémoire, de noyaux ou de bande passante réseau, vous pouvez choisir une forme différente.

  • 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 VCN. Utilisez les blocs CIDR qui se trouvent dans l'espace d'adresse IP privé 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) 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 de vos besoins 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é.

    Utilisez des sous-réseaux régionaux.

Remarques

  • Evolutivité

    Le nombre minimal de noeuds requis pour garantir la disponibilité d'un cluster Redis est de trois noeuds maître. Cette architecture déploie trois noeuds maître et trois noeuds répliqués. Vous pourriez avoir besoin de plus de noeuds pour répondre aux exigences de performance ou de haute disponibilité de votre application.

    Vous pouvez mettre à l'échelle horizontale votre cluster Redis en ajoutant plus de noeuds Compute.

    Vous pouvez mettre à l'échelle verticale votre cluster Redis en modifiant la forme de la machine virtuelle de chaque noeud Compute. Le prélèvement d'une forme avec une forme de comptage noyau supérieure augmente également la mémoire allouée à l'instance Compute et à la bande passante réseau.

  • Disponibilité de l'application

    Les domaines d'erreur offrent la meilleure résilience au sein d'un domaine de disponibilité unique. Cette architecture utilise une autre approche de haute disponibilité, qui déploie des instances Compute qui effectuent les mêmes tâches dans les régions qui ont plusieurs domaines de disponibilité. Cette conception élimine un seul point de défaillance en introduisant la redondance.

    Une fois l'architecture déployée, vous pouvez vous connecter à l'adresse IP publique du noeud Redis à l'aide d'outils SSH tels que PuTTY ou Git Bash. Vous pouvez utiliser l'interface de ligne de commande Redis, redis-cli, pour interagir avec le déploiement Redis.

  • Coût

    Sélectionnez la forme de machine virtuelle (VM) en fonction des coeurs, de la mémoire et de la bande passante réseau dont vous avez besoin pour votre base de données. Vous pouvez commencer par une forme à noyau unique et modifier la forme de machine virtuelle ultérieurement si vous avez besoin de plus de performances, de mémoire ou de bande passante réseau pour le noeud Redis.

Déployer

Le code requis pour déployer cette architecture de référence est disponible dans GitHub. Vous pouvez extraire le code dans Oracle Cloud Infrastructure Resource Manager en un seul clic, créer la pile et le déployer. Vous pouvez également télécharger le code à partir de GitHub vers votre ordinateur, personnaliser le code et déployer l'architecture à l'aide de la CLI Terraform.

  • Déployer à l'aide d'Oracle Cloud Infrastructure Resource Manager :
    1. Cliquez sur Déployer vers Oracle Cloud

      Si vous n'êtes pas déjà connecté, entrez les informations d'identification de location et d'utilisateur.

    2. Vérifiez et acceptez les conditions générales.
    3. Sélectionnez la région dans laquelle déployer la pile.
    4. Suivez les invites à l'écran et les instructions pour créer la pile.
    5. Après avoir créé la pile, cliquez sur Actions Terraform et sélectionnez Plan.
    6. Attendez que le travail soit terminé et examinez le plan.

      Pour apporter des modifications, revenez à la page Détails de la pile, cliquez sur Modifier la pile et apportez les modifications requises. Exécutez ensuite à nouveau l'action Plan.

    7. Si aucune autre modification n'est nécessaire, revenez à la page Détails de la pile, cliquez sur Actions Terraform et sélectionnez Appliquer.
  • Déployer à l'aide de la CLI Terraform :
    1. Accédez à GitHub.
    2. Téléchargez ou clonez le code sur votre ordinateur local.
    3. Suivez les instructions de README.md.

Journal des modifications

Ce journal répertorie uniquement les modifications importantes :