Elasticsearch et OpenSearch sont des outils puissants pour gérer des charges de travail de recherche et d’analytique, offrant évolutivité, capacités en temps réel et un écosystème riche de plugins et d’intégrations. Elasticsearch est largement utilisé pour la recherche en texte intégral, la surveillance des journaux et la visualisation des données dans divers secteurs en raison de son écosystème mature. OpenSearch, un fork piloté par la communauté d’Elasticsearch, offre une alternative entièrement open-source avec de nombreuses capacités similaires, en faisant un excellent choix pour les organisations qui privilégient les principes de l’open-source et l’efficacité des coûts.
La migration vers OpenSearch doit être envisagée si vous utilisez des versions d’Elasticsearch jusqu’à 7.10 et souhaitez éviter les restrictions de licence introduites avec la licence SSPL d’Elasticsearch. C’est également idéal pour ceux qui recherchent un accès continu à un écosystème open-source tout en maintenant la compatibilité avec les API Elasticsearch et les outils existants. Les organisations axées sur l’innovation pilotée par la communauté, la gouvernance transparente ou le contrôle des coûts trouveront qu’OpenSearch est une option attrayante.
Histoire
Elasticsearch, développé initialement par Shay Banon en 2010, est apparu comme un puissant moteur de recherche et d’analyse open-source construit sur Apache Lucene. Il a rapidement gagné en popularité pour sa scalabilité, sa nature distribuée et ses capacités robustes en recherche de texte intégral, analyse de journaux et traitement de données en temps réel. Au fil des ans, Elasticsearch est devenu une partie de l’Elastic Stack (anciennement ELK Stack), s’intégrant avec Kibana, Logstash et Beats pour fournir des solutions de gestion de données de bout en bout.
Cependant, un changement significatif s’est produit en 2021 lorsque Elastic a basculé Elasticsearch et Kibana vers une licence SSPL plus restrictive. En réponse, AWS et la communauté open-source ont bifurqué Elasticsearch 7.10 et Kibana pour créer OpenSearch, en adhérant à la licence Apache 2.0. OpenSearch a depuis évolué en tant que projet piloté par la communauté, garantissant une véritable alternative open-source avec des fonctionnalités comparables et un développement continu adapté aux cas d’utilisation de recherche, d’observabilité et d’analyse.
Pourquoi migrer vers OpenSearch?
1. Engagement envers l’Open Source
OpenSearch respecte la licence Apache 2.0, garantissant une accessibilité vraiment open-source. En revanche, la transition d’Elasticsearch vers une licence SSPL plus restrictive a soulevé des inquiétudes concernant le verrouillage par le fournisseur et la diminution des contributions pilotées par la communauté.
2. Efficacité des coûts
OpenSearch élimine les frais de licence potentiels associés aux versions plus récentes d’Elasticsearch, en en faisant un choix attractif pour les organisations cherchant des solutions rentables sans compromettre leurs capacités.
3. Compatibilité
OpenSearch maintient sa compatibilité avec les versions d’Elasticsearch jusqu’à la 7.10, incluant bon nombre des mêmes APIs et outils. Cela garantit une migration en douceur avec des perturbations minimales pour les applications et workflows existants.
4. Développement Actif et Support
Soutenu par AWS et une communauté active, OpenSearch reçoit des mises à jour régulières, des améliorations de fonctionnalités et des correctifs de sécurité. Son modèle de gouvernance ouverte favorise l’innovation et la collaboration, assurant que la plateforme évolue pour répondre aux besoins des utilisateurs.
5. Personnalisable et Flexible
OpenSearch permet une plus grande personnalisation et flexibilité par rapport aux systèmes propriétaires, permettant aux organisations d’adapter leurs déploiements à des cas d’utilisation spécifiques sans contraintes imposées par les termes de licence.
6. Écosystème en Évolution
OpenSearch propose des Tableaux de Bord OpenSearch (une alternative à Kibana) et des plugins adaptés à l’observabilité, l’analyse de logs et la recherche full-text. Ces outils étendent sa convivialité dans divers domaines tout en assurant un alignement continu sur les besoins des utilisateurs.
Quand Migrer
- Inquiétudes de Licence : Si vous souhaitez éviter les restrictions de licence de SSPL introduites par Elastic après la version 7.10.
- Contraintes budgétaires : Pour minimiser les coûts liés à la licence commerciale tout en conservant un moteur de recherche et d’analyse puissant.
- Anticiper l’avenir : Adopter une plateforme avec une feuille de route de développement transparente et un solide soutien de la communauté.
- Parité des fonctionnalités : Lors de l’utilisation des fonctionnalités prises en charge dans Elasticsearch 7.10 ou antérieure, car elles sont entièrement compatibles avec OpenSearch.
- Besoins de personnalisation : Lorsque la flexibilité accrue, la gouvernance ouverte ou les innovations menées par la communauté sont essentielles aux objectifs de votre organisation.
La migration vers OpenSearch garantit que vous conservez une plateforme robuste et pilotée par des logiciels libres tout en évitant les restrictions potentielles et les coûts associés au modèle de licence d’Elasticsearch.
Liste de contrôle pré-migration
Avant de migrer d’Elasticsearch vers OpenSearch, suivez cette liste de contrôle pour assurer une transition fluide et réussie :
1. Évaluer la compatibilité des versions
- Vérifiez que votre version d’Elasticsearch est compatible avec OpenSearch. OpenSearch prend en charge les versions d’Elasticsearch jusqu’à 7.10.
- Examinez les dépendances des API ou des plugins pour vous assurer qu’ils sont pris en charge dans OpenSearch.
2. Évaluer l’utilisation de fonctionnalités propriétaires
- Identifiez les fonctionnalités ou les plugins propriétaires (par exemple, les fonctionnalités d’apprentissage automatique d’Elastic) qui pourraient ne pas avoir d’équivalents dans OpenSearch.
- Évaluez si des outils tiers ou des extensions utilisés dans votre cluster Elasticsearch seront affectés.
3. Sauvegardez vos données
- Créez une sauvegarde complète de vos indices Elasticsearch en utilisant l’API de snapshot pour éviter toute perte de données potentielle :
Shell
PUT /_snapshot/backup_repo/snapshot_1?wait_for_completion=true
- Assurez-vous que les sauvegardes sont stockées dans un endroit sécurisé et accessible pour la restauration.
4. Examiner les configurations de cluster
- Documentez les paramètres actuels de votre cluster Elasticsearch, y compris les configurations des nœuds, les allocations de fragments et les modèles d’index.
- Comparez ces paramètres avec OpenSearch pour identifier les ajustements nécessaires.
5. Tester dans un environnement de staging
- Configurez un environnement de staging pour simuler le processus de migration.
- Restaurez les instantanés de données dans le cluster de staging OpenSearch pour valider la compatibilité et la fonctionnalité.
- Testez vos applications, requêtes et flux de travail dans l’environnement de staging pour détecter les problèmes tôt.
6. Vérifier la compatibilité des API et des requêtes
- Examinez les API Elasticsearch et la syntaxe des requêtes utilisées dans votre application. OpenSearch maintient la compatibilité avec la plupart des API, mais des différences légères peuvent exister.
- Utilisez le mode de compatibilité des API d’OpenSearch pour des transitions plus fluides.
7. Mettre à jour les applications et les clients
- Remplacez les bibliothèques de client Elasticsearch par des bibliothèques compatibles avec OpenSearch (par exemple,
opensearch-py
pour Python ou OpenSearch Java Client). - Testez l’intégration du client pour vous assurer que les applications interagissent correctement avec le cluster OpenSearch.
8. Vérifier la prise en charge des plugins
- Assurez-vous que tous les plugins utilisés dans Elasticsearch (par exemple, les plugins d’analyse, de sécurité ou de surveillance) sont disponibles ou ont des alternatives dans OpenSearch.
- Identifiez les plugins spécifiques à OpenSearch qui pourraient améliorer la fonctionnalité de votre cluster.
9. Informer les parties prenantes
- Communiquez le plan de migration, le calendrier et la durée d’indisponibilité prévue (le cas échéant) à toutes les parties prenantes concernées.
- Assurez-vous que les équipes responsables des applications, de l’infrastructure et des données sont prêtes pour la migration.
10. Planifier le retour en arrière
-
Élaborez un plan de retour en arrière au cas où des problèmes surviendraient pendant la migration. Ce plan devrait inclure les étapes pour restaurer le cluster Elasticsearch d’origine et les données à partir des sauvegardes.
11. Surveiller les ressources
-
Assurez-vous que votre infrastructure peut prendre en charge le processus de migration, y compris l’espace disque pour les instantanés et la capacité de cluster suffisante pour la restauration.
En complétant cette liste de contrôle, vous pouvez minimiser les risques, identifier les défis potentiels et garantir une migration réussie d’Elasticsearch vers OpenSearch.
Guide de migration étape par étape
1. Installer OpenSearch
- Téléchargez la version appropriée d’OpenSearch depuis opensearch.org .
- Configurez les nœuds OpenSearch en suivant la documentation officielle, en vous assurant des configurations de cluster similaires à celles de votre configuration Elasticsearch existante.
2. Exportez les données d’Elasticsearch
- Utilisez le API pour créer une sauvegarde de vos indices Elasticsearch :
Shell
PUT /_snapshot/backup_repo/snapshot_1?wait_for_completion=true
-
Assurez-vous que la capture instantanée est stockée dans un référentiel accessible à OpenSearch.
3. Importer des données dans OpenSearch
- Enregistrez le référentiel de snapshot dans OpenSearch :
Shell
PUT /_snapshot/backup_repo
{
"type": "fs",
"settings": {
"location": "path_to_backup",
"compress": true
}
}
- Restaurer le snapshot vers OpenSearch :
Shell
POST /_snapshot/backup_repo/snapshot_1/_restore
4. Mettre à jour les applications et les clients
- Met à jour les bibliothèques clientes Elasticsearch de ton application avec des clients OpenSearch compatibles, tels que le client Python OpenSearch (
opensearch-py
) ou le client Java. - Remplace les points de terminaison Elasticsearch dans la configuration de ton application par des points de terminaison OpenSearch.
5. Valider les données et les requêtes
- Vérifie que toutes les données ont été restaurées avec succès.
- Teste les requêtes, les opérations d’indexation et les flux de travail de l’application pour t’assurer que tout se comporte comme prévu.
6. Surveiller et optimiser
- Utilise OpenSearch Dashboards (anciennement Kibana) pour surveiller la santé et les performances du cluster.
- Active les fonctionnalités de sécurité telles que le chiffrement, l’authentification et les contrôles d’accès basés sur les rôles si nécessaire.
Considérations post-migration
1. Plugins et fonctionnalités
-
Si tu relies sur des plugins Elasticsearch, vérifie leur disponibilité ou trouve des alternatives OpenSearch.
2. Optimisation des performances
- Optimise les paramètres du cluster OpenSearch pour correspondre à tes besoins de charge de travail.
- Tire parti des fonctionnalités spécifiques à OpenSearch, telles que le stockage ultra-chaud, pour une rétention de données rentable.
3. Engagement communautaire
- Rejoins la communauté OpenSearch pour obtenir du support et des mises à jour.
- Surveille les notes de version pour rester informé des nouvelles fonctionnalités et améliorations.
Défis et Conseils pour Migrer d’Elasticsearch vers OpenSearch
1. Compatibilité des Plugins
Défi
Certains plugins Elasticsearch, surtout les propriétaires, peuvent ne pas avoir d’équivalents directs dans OpenSearch.
Conseils
- Auditez vos plugins Elasticsearch actuels et identifiez les dépendances.
- Explorez l’écosystème de plugins OpenSearch ou des outils open-source alternatifs pour remplacer les fonctionnalités manquantes.
- Considérez si les capacités intégrées d’OpenSearch, telles que les Tableaux de Bord OpenSearch, répondent à vos besoins.
2. Différences d’API
Défi
Alors qu’OpenSearch maintient la compatibilité avec les APIs Elasticsearch jusqu’à la version 7.10, des différences mineures ou des points de terminaison obsolètes peuvent affecter la fonctionnalité.
Conseils
- Utilisez le mode de compatibilité d’API d’OpenSearch pour tester et adapter les APIs progressivement.
- Consultez la documentation des APIs et remplacez les points de terminaison obsolètes par des alternatives recommandées.
3. Migration des Données
Défi
La migration de grands ensembles de données peut être longue et sujette aux erreurs, en particulier s’il existe des différences de format ou de schéma.
Conseils
- Utilisez l’approche de sauvegarde et de restauration pour un transfert de données efficace.
- Testez le processus de restauration dans un environnement de staging pour assurer l’intégrité des données.
- Validez les données après la migration en exécutant des requêtes clés pour confirmer la cohérence.
4. Optimisation des performances
Challenge
OpenSearch et Elasticsearch peuvent présenter des différences dans les configurations de cluster et l’optimisation des performances, ce qui pourrait entraîner des performances suboptimales après la migration.
Conseils
- Suivez les performances du cluster en utilisant les tableaux de bord OpenSearch ou d’autres outils de surveillance.
-
Modifiez les tailles de shard, les stratégies d’indexation et l’allocation des ressources pour optimiser les performances du cluster.
5. Intégration Client et Application
Challenge
Les applications utilisant des bibliothèques clientes Elasticsearch peuvent nécessiter des mises à jour pour fonctionner avec OpenSearch.
Conseils
- Remplacez les clients Elasticsearch par des versions compatibles avec OpenSearch, telles que opensearch-py (Python) ou le client Java OpenSearch.
- Testez les flux de travail de l’application et l’exécution des requêtes pour garantir une intégration fluide.
6. Fonctionnalités Limitées dans OpenSearch
Challenge
Certaines fonctionnalités propriétaires d’Elasticsearch (par exemple, les tâches d’apprentissage automatique, la sécurité Elastic) ne sont pas disponibles dans OpenSearch.
Conseils
- Identifiez les fonctionnalités critiques manquantes dans OpenSearch et déterminez leur importance pour votre cas d’utilisation.
- Explorez des alternatives tierces ou open source pour remplacer les fonctionnalités non disponibles.
7. Formation et Familiarité
Défi
Les équipes familières avec Elasticsearch peuvent rencontrer une courbe d’apprentissage lors de la transition vers OpenSearch, notamment pour la gestion des clusters et les nouvelles fonctionnalités.
Conseils
- Fournissez une formation et de la documentation pour familiariser votre équipe avec les outils et flux de travail d’OpenSearch.
- Exploitez la communauté active et les forums d’OpenSearch pour un soutien supplémentaire.
8. Données en Temps Réel et Temps d’Arrêt
Défi
Pour les systèmes en temps réel, garantir un temps d’arrêt minimal pendant la migration peut être difficile.
Conseils
- Planifiez la migration pendant les périodes de faible trafic.
- Utilisez une stratégie de déploiement bleu-vert pour basculer de manière transparente entre les clusters.
- Synchronisez les nouvelles données dans OpenSearch en utilisant des outils comme Logstash ou Beats pendant la fenêtre de migration.
9. Scalabilité et Croissance Future
Défi
Assurer que le nouveau cluster OpenSearch peut gérer les exigences de croissance future et de scalabilité.
Conseils
- Planifiez la scalabilité en concevant une architecture de cluster qui prend en charge la scalabilité horizontale.
- Utilisez l’architecture distribuée d’OpenSearch pour optimiser l’utilisation des ressources.
10. Support de la communauté
Défi
Alors qu’OpenSearch bénéficie d’une communauté croissante, certains problèmes avancés peuvent manquer de documentation approfondie ou de solutions tierces.
Conseils
- Impliquez-vous avec la communauté OpenSearch via les forums et GitHub pour le dépannage.
- Suivez régulièrement les mises à jour d’OpenSearch et contribuez à la communauté pour de meilleures perspectives.
En anticipant ces défis et en suivant ces conseils, les organisations peuvent naviguer efficacement dans le processus de migration, garantissant une transition sans heurts tout en maintenant les performances de recherche et d’analyse.
Conclusion
La migration d’Elasticsearch vers OpenSearch est une décision stratégique pour les organisations cherchant à s’aligner sur les principes open source, à réduire les coûts et à maintenir la compatibilité avec les flux de travail établis de recherche et d’analyse. Bien que le processus de migration présente des défis, tels que la compatibilité des plugins, les différences d’API et les complexités de migration des données, ceux-ci peuvent être gérés efficacement grâce à une planification minutieuse, des tests approfondis et en tirant parti de la vibrante communauté OpenSearch.
Source:
https://dzone.com/articles/transition-from-elasticsearch-to-opensearch