Déployer un cluster Apache Cassandra hautement disponible

Apache Cassandra est une base de données NoSQL open source. Il évolue linéairement et les données sont répliquées automatiquement sur plusieurs noeuds. Exécutez vos clusters Apache Cassandra dans Oracle Cloud Infrastructure et profitez de la fiabilité, de la sécurité et de la flexibilité opérationnelle de niveau entreprise.

Architecture

Cette architecture de référence affiche un déploiement à 6 noeuds d'un cluster Apache Cassandra exécuté sur les instances de calcul Oracle Cloud Infrastructure.

Description du cassandra-oci.eps suivante
Description de l'illustration cassandra-oci.eps

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 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).

    Tous les composants de cette architecture sont déployés dans une seule région.

  • 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, ni 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 de pannes

    Un domaine de pannes est un regroupement de matériel et d'infrastructure au sein d'un domaine de disponibilité. Chaque domaine de disponibilité comporte 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 les pannes physiques du serveur, la maintenance du système et les pannes d'alimentation dans un domaine de pannes.

  • 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 traditionnels de datacenters, les VCN vous donnent un contrôle complet sur 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 comprend une plage contiguë d'adresses qui ne chevauchent 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é.

  • Cluster Apache Cassandra

    Cette architecture affiche un cluster Apache Cassandra composé de trois noeuds prédéfinis et de trois noeuds non requis exécutés sur des instances Oracle Cloud Infrastructure Compute. Les noeuds sont répartis entre les domaines de pannes dans un domaine de disponibilité unique. Toutes les instances de calcul sont associées à un sous-réseau public unique.

  • Passerelle Internet

    La passerelle Internet de cette architecture permet le trafic entre le sous-réseau public et Internet public.

  • 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 inclut des règles d'entrée pour les ports TCP 7000, 7001, 7199, 9042 et 9160. Apache Cassandra utilise le port 7000 pour la communication entre les clusters (ou le port 7001 si SSL est activé) et le port 7199 pour JMX. Le port 9042 est le port client et 9160 est le port de transport natif.

  • Table de routage

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

Recommandations

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

  • Forme de calcul et système d'exploitation

    Le modèle Terraform fourni pour cette architecture déploie des instances de calcul exécutant Oracle Linux 7.8. Choisissez une forme appropriée pour les instances de calcul en fonction de vos besoins. Plus un noeud Apache Cassandra possède de mémoire, plus ses performances de lecture sont élevées. Un plus grand nombre d'UC se traduit par une meilleure performance d'écriture.

  • 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 de 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 un sous-réseau régional.

  • Sécurité
    • Utilisez Oracle Cloud Guard pour surveiller et maintenir 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 pour détecter les faiblesses de sécurité et surveiller les opérateurs et les utilisateurs pour détecter les activités à risque. Lorsqu'une erreur de configuration ou une activité non sécurisée est détectée, Cloud Guard recommande des mesures correctives et aide à prendre ces mesures, en fonction des recettes du répondant que vous pouvez définir.

    • Pour les ressources nécessitant une sécurité maximale, Oracle vous recommande d'utiliser des zones de sécurité. Une zone de sécurité est un compartiment associé à une recette de stratégies de sécurité définie par Oracle basée sur les meilleures pratiques. Par exemple, les ressources d'une zone de sécurité ne doivent pas être accessibles à partir d'Internet public et elles 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 l'une quelconque des stratégies.

Remarques

Lorsque vous implémentez cette architecture, tenez compte des facteurs suivants :

  • Evolutivité

    Cette architecture déploie un noeud prédéfini Apache Cassandra et un noeud non requis dans chaque domaine d'erreur. 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 le cluster Apache Cassandra en ajoutant d'autres instances de calcul. Vous pouvez distribuer les noeuds prédéfinis dans les domaines en faute.

    Vous pouvez mettre le cluster à l'échelle verticale en modifiant la forme de chaque instance de calcul. L'utilisation d'une forme avec un nombre de noyaux plus élevé augmente la mémoire allouée à l'instance de calcul et sa bande passante réseau.

  • Disponibilité de l'application

    Dans cette architecture, les instances de calcul qui effectuent les mêmes tâches sont réparties de manière redondante entre plusieurs domaines d'erreur. Cette conception élimine tout point de défaillance unique dans la topologie.

    Une fois l'architecture déployée, vous pouvez vous connecter à l'adresse IP publique des noeuds Apache Cassandra à l'aide d'outils SSH tels que PuTTY ou Git Bash. Vous pouvez utiliser le langage de requête Cassandra (CQL) pour les opérations DDL et DML sur la base de données Apache Cassandra.

  • Coût

    Une forme métallique nue offre de meilleures performances de lecture et d'écriture. Si votre application n'a pas besoin de hautes performances, vous pouvez sélectionner une forme de machine virtuelle basée sur les coeurs, la mémoire et la bande passante réseau dont vous avez besoin pour votre base de données. Vous pouvez commencer par une forme 1 noyau pour les noeuds Apache Cassandra et modifier la forme ultérieurement si vous avez besoin de plus de performances, de mémoire ou de bande passante réseau.

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. Examinez et acceptez les conditions générales.
    3. Sélectionnez la région dans laquelle vous souhaitez 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. Ensuite, réexécutez l'action Plan.

    7. Si aucune autre modification n'est nécessaire, revenez à la page Détails de pile, cliquez sur Actions Terraform et sélectionnez Appliquer.
  • Déployer à l'aide de la CLI Terraform :
    1. Accédez à GitHub.
    2. Cloner ou télécharger le référentiel sur votre ordinateur local.
    3. Suivez les instructions du document README.

Journal des modifications

Ce journal répertorie les modifications importantes :