Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Écrire de nouvelles données lors d'une migration en ligne
La première étape d'un plan de migration en ligne consiste à s'assurer que toutes les nouvelles données écrites par l'application sont stockées dans les deux bases de données, dans votre cluster Cassandra existant et dans Amazon Keyspaces. L'objectif est de fournir une vue cohérente sur les deux banques de données. Vous pouvez le faire en appliquant toutes les nouvelles écritures aux deux bases de données. Pour implémenter des écritures doubles, considérez l'une des trois options suivantes.
Proxy à double écriture ZDM pour la migration d'Amazon Keyspaces — À l'aide du proxy ZDM pour Amazon Keyspaces disponible sur Github
, vous pouvez migrer vos charges de travail Apache Cassandra vers Amazon Keyspaces sans interruption des applications. Cette solution améliorée met en œuvre les AWS meilleures pratiques et étend les fonctionnalités officielles du proxy ZDM. -
Effectuez des migrations en ligne entre Apache Cassandra et Amazon Keyspaces.
-
Écrivez des données simultanément dans les tables source et cible sans avoir à refactoriser les applications.
-
Validez les requêtes par le biais d'opérations de double lecture.
La solution offre les améliorations suivantes en termes de compatibilité avec AWS Amazon Keyspaces.
-
Déploiement de conteneurs : utilisez une image Docker préconfigurée provenant d'Amazon Elastic Container Registry (Amazon ECR) pour les VPC-accessible déploiements.
-
Infrastructure en tant que code : déployez à l'aide AWS CloudFormation de modèles pour une configuration automatisée sur AWS Fargate.
-
Compatibilité avec Amazon Keyspaces : accédez aux tables du système avec des adaptations personnalisées pour Amazon Keyspaces.
La solution fonctionne sur Amazon ECS avec Fargate, offrant une évolutivité sans serveur en fonction des exigences de votre charge de travail. Un équilibreur de charge réseau répartit le trafic applicatif entrant entre plusieurs tâches Amazon ECS pour une haute disponibilité.
-
Écritures doubles d'applications : vous pouvez implémenter des écritures doubles en modifiant le moins possible le code de votre application en tirant parti des bibliothèques clientes et des pilotes Cassandra existants. Vous pouvez soit implémenter des écritures doubles dans votre application existante, soit créer une nouvelle couche dans l'architecture pour gérer les écritures doubles. Pour plus d'informations et une étude de cas client montrant comment la double écriture a été mise en œuvre dans une application existante, consultez l'étude de cas sur la migration de
Cassandra. Lorsque vous implémentez des écritures doubles, vous pouvez désigner une base de données comme leader et l'autre comme suiveuse. Cela vous permet de continuer à écrire dans votre base de données source ou de référence d'origine sans que les échecs d'écriture dans la base de données suiveuse ou de destination ne perturbent le chemin critique de votre application.
Au lieu de réessayer les écritures échouées dans le suiveur, vous pouvez utiliser Amazon Simple Queue Service pour enregistrer les écritures échouées dans une file d'attente de lettres mortes (DLQ). Le DLQ vous permet d'analyser les échecs d'écriture dans le suiveur et de déterminer pourquoi le traitement n'a pas abouti dans la base de données de destination.
Pour une implémentation plus sophistiquée de la double écriture, vous pouvez suivre les AWS meilleures pratiques pour concevoir une séquence de transactions locales à l'aide du modèle saga. Un modèle de saga garantit qu'en cas d'échec d'une transaction, la saga exécute des transactions compensatoires pour annuler les modifications apportées à la base de données par les transactions précédentes.
Lorsque vous utilisez des écritures doubles pour une migration en ligne, vous pouvez configurer les écritures doubles en suivant le modèle de saga afin que chaque écriture soit une transaction locale afin de garantir des opérations atomiques sur des bases de données hétérogènes. Pour plus d'informations sur la conception d'applications distribuées à l'aide des modèles de conception recommandés pour le AWS Cloud, consultez Modèles de conception, architectures et implémentations du cloud.
Écritures doubles au niveau de la messagerie : au lieu d'implémenter des écritures doubles au niveau de la couche application, vous pouvez utiliser votre niveau de messagerie existant pour effectuer des écritures doubles sur Cassandra et Amazon Keyspaces.
Pour ce faire, vous pouvez configurer un utilisateur supplémentaire pour votre plateforme de messagerie afin qu'il envoie des écritures aux deux magasins de données. Cette approche fournit une stratégie simple à faible code utilisant le niveau de messagerie pour créer deux vues cohérentes dans les deux bases de données.