Déployer un cluster CockroachDB hautement disponible
CockroachDB est une base de données SQL distribuée construite sur une banque de valeurs clés transactionnelle et cohérente.
Architecture
Cette architecture de référence affiche le déploiement typique de trois noeuds de CockroachDB sur les instances Oracle Cloud Infrastructure Compute. Un équilibreur de charge public est utilisé pour distribuer les charges de travail sur ces trois noeuds.
Le diagramme suivant illustre cette architecture de référence.

Description de l'illustration cockroachdb-oci.png
- Régions
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 telle que 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 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 traditionnels de centres de données, les VCN vous donnent un contrôle complet sur votre environnement réseau. Un VCN peut avoir 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 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é.
Cette architecture utilise un sous-réseau public pour héberger l'équilibreur de charge public et les trois instances Compute exécutant CockroachDB.
- Balanceur de charge
Le service Oracle Cloud Infrastructure Load Balancing fournit une distribution automatisée du trafic d'un point d'entrée à plusieurs serveurs accessibles à partir de votre VCN. Cette architecture comporte deux processus d'écoute, l'un pour le port TCP 8080 et l'autre pour le port TCP 26257. L'équilibreur de charge dispose également de deux jeux de back-ends correspondant à ces deux processus d'écoute.
- 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 utilise des règles d'entrée pour les ports TCP 8080 et 26257 afin que les clients puissent accéder au trafic d'écoute HTTP et CockroachDB.
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 l'image du système d'exploitation Oracle Linux 7.9 avec la forme VM.Standard. E3. Flex Compute. Pour votre application, vous pouvez choisir une forme différente si vous avez besoin de plus de mémoire, de noyaux ou de bande passante réseau.
- 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 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 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.
-
- Bande passante de l'équilibreur de charge
Lors de la création de l'équilibreur de charge, vous pouvez soit sélectionner une forme prédéfinie qui fournit une bande passante fixe, soit spécifier une forme personnalisée (flexible) dans laquelle vous définissez une plage de bande passante et laisser le service échelonner automatiquement la bande passante en fonction des modèles de trafic. Avec l'une ou l'autre des approches, vous pouvez modifier la forme à tout moment après avoir créé l'équilibreur de charge.
Remarques
- Evolutivité
Le plus petit nombre de noeuds nécessaires pour atteindre le quorum est de trois, de sorte que cette architecture déploie trois noeuds. Il se peut que vous ayez besoin de plus de noeuds pour répondre aux performances de votre application ou aux exigences de haute disponibilité.
Vous pouvez mettre à l'échelle horizontale votre cluster de base de données en ajoutant plus de noeuds Compute et en les incluant dans les jeux de back-ends de l'équilibreur de charge.
Vous pouvez mettre à l'échelle verticale le cluster de base de données en modifiant la forme de la machine virtuelle de chaque noeud Compute. L'utilisation d'une forme de comptage noyau supérieure augmente également la mémoire allouée à l'instance Compute et à la bande passante réseau.
- Disponibilité
Les domaines de pannes offrent la meilleure résilience dans un domaine de disponibilité unique. Dans cette architecture, au lieu de déployer l'application dans un domaine de disponibilité, vous pouvez déployer 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, utilisez l'adresse IP publique de l'équilibreur de charge pour vous connecter à CockroachDB à l'aide du client SQL intégré.
- 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 si vous avez besoin de plus de performances, de mémoire ou de bande passante réseau pour le noeud de base de données, vous pouvez modifier la forme de machine virtuelle ultérieurement.
Déployer
Le code Terraform de cette architecture de référence est disponible sous forme d'exemple de pile dans Oracle Cloud Infrastructure Resource Manager. Vous pouvez également télécharger le code à partir de GitHub et le personnaliser en fonction de vos besoins spécifiques.
- Déployer à l'aide de l'exemple de pile dans Oracle Cloud Infrastructure Resource Manager :
- Cliquez sur
Si vous n'êtes pas déjà connecté, entrez les informations d'identification de location et d'utilisateur.
- Sélectionnez la région dans laquelle vous souhaitez déployer la pile.
- Suivez les invites à l'écran et les instructions pour créer la pile.
- Après avoir créé la pile, cliquez sur Actions Terraform et sélectionnez Plan.
- 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.
- Si aucune autre modification n'est nécessaire, revenez à la page Détails de pile, cliquez sur Actions Terraform et sélectionnez Appliquer.
- Cliquez sur
- Déployer à l'aide du code Terraform dans GitHub :
- Accédez à GitHub.
- Cloner ou télécharger le référentiel sur votre ordinateur local.
- Suivez les instructions du document
README
.