Goals:

The Current State

ES version

Version we use is 1.5

Current version of ES is 7.5

Elasticsearch End of Life chart

Support Windows Spreadsheet

Services

Service Name

Technologies Used

Owner(s)

Representative

edx-platform

  • edx-enterprise

edx-search

Tech owners are listed on tech ownership spreadsheet

https://docs.google.com/spreadsheets/d/1qpWfbPYLSaE_deaumWSEZfz91CshWd3v3B7xhOk5M4U/edit#gid=840878297

edx-notes

Haystack → elasticsearch-dsl-drf

forums

elasticsearch, elasticsearch-model

course-discovery

Haystack → elasticsearch-dsl-drf

edx-analytics-data-api

  • edx-analytics-pipeline

elasticsearch-dsl

blockstore

Technologies

Haystack

edx-search

elasticsearch-dsl

elasticsearch-model

elasticsearch (ruby)

Kickoff Agenda

Agenda

Updates

Agenda (3/20/20) -

Agenda 4/30/20 -

Useful notes/resources

Upgrade plan

Get server ready

  1. Make a backup of the existing elasticsearch database.

  2. Make a cloned ES server under a new hostname.

  3. Upgrade cloned ES server to 2.x.

  4. Reindex everything through their migration plugin.

  5. Make another database backup.

  6. Upgrade cloned ES server to 5.x.

  7. At this point, the server’s data will start becoming stale, and we should update clients in short order.

Now update code

  1. Update devstack with a script to do the above server upgrade.

  2. Start landing PRs to update client services to elasticsearch-py 5.x in concert with config changes that point at the new ES hostname.

  3. Message out the changes, letting people know they should update devstack.

Cleanup

  1. Document the change and how to upgrade servers in our Open edX release notes.

  2. Decommision old ES 1.x servers once all services are upgraded.