opensearch-project / opensearch-migrations

Migrate, upgrade, compare, and replicate OpenSearch clusters with ease.
https://aws.amazon.com/solutions/implementations/migration-assistant-for-amazon-opensearch-service/
Apache License 2.0
39 stars 28 forks source link

Elasticsearch 8.x to OpenSearch 2 Support #1071

Open sumobrian opened 1 month ago

sumobrian commented 1 month ago

Is your feature request related to a problem?

The lack of Elasticsearch 8 as a source prevents users from migrating directly from Elasticsearch 8 to OpenSearch 2.x. Elasticsearch 8 introduces several newer features and changes compared to earlier versions, which adds complexity to migrations.

What solution would you like?

Migration Assistant and all products within the migration repo will support migrating from Elasticsearch 8 to OpenSearch 2.x. This should include compatibility for features introduced in Elasticsearch 8, as well as the ability to perform metadata migrations, existing data migrations with RFS, and Capture and Replay functionalities.

Additionally, while not all transformations required for metadata, existing data, and live traffic will be supported "out of the box," there should be a mechanism for users performing such migrations to add custom transformations to the OpenSearch-Migrations transformation framework.

What alternatives have you considered?

Performing manual, step-by-step upgrades through intermediate versions of Elasticsearch or OpenSearch, but this is complex, time-consuming, and may introduce data inconsistency risks.

Do you have any additional context?

Migrating from Elasticsearch 8 introduces several considerations that were not as relevant for earlier versions:

  1. Security Features: Elasticsearch 8 brings enhanced security features, such as enforced security and TLS by default. Migration paths should account for transitioning these configurations.
  2. Versioned APIs: Elasticsearch 8 introduces versioned APIs, which could present challenges for clients expecting different API versions. Proper handling of API compatibility is needed.
  3. Breaking Changes: Elasticsearch 8 has several breaking changes in its API and core functionality. Compatibility layers or transformation tools may be needed to handle these differences.
  4. Lucene Version: Elasticsearch 8 uses a newer version of Lucene (likely Lucene 9). The migration process must ensure that index data from this Lucene version is handled correctly in OpenSearch.
  5. Deprecations: Elasticsearch 8 deprecates several features, so ensuring smooth handling of deprecated features in OpenSearch 2.x is essential.

The feature should account for these differences and ensure that indices and data created in Elasticsearch 8 are properly handled in OpenSearch 2.x without the need for significant manual intervention.