This article describes the upgrade path and expectations for IDAs moving from MySQL 5.6 to 5.7
Note |
---|
1: This work has been completed as of 2/2, however this page has been left for contextual purposes. 2: This page is public, but some of the details here pertain only to edX deployments, and many of the links are to protected pages. |
...
Coordinate with product to determine an upgrade timeframe for devstack.
Update the “Planned 5.7 DevStack Upgrade” column below.
Please link any created tickets to https://openedx.atlassian.net/browse/OPS-4652
Identify dependency changes
If your app uses any python database libraries, please update these.
Upgrading Devstack
Find your app’s docker-compose block(s) in https://github.com/edx/devstack
Update your apps container to point at
mysql57
instead ofmysql
and update any related make commands.
(e.g. https://github.com/edx/devstack/blob/a76042b19aeb8fc8b02d93d3db4be783a54a0be1/docker-compose-marketing-site.yml#L15 )If possible run e2e tests to see if the change causes any issues.
Merge your PR and notify engineering if any manual steps are needed to recreate data locally.
(e.g.make dev.dbcopy57.<service>
, see 10/6 “Discovery switching to mysql 5.7” email thread from Mike for examples)If manual steps are needed and your service is an Open edX service, please also post to Discourse (e.g. https://discuss.openedx.org/t/discovery-switching-to-mysql-5-7/3360) and add make sure the Koa release planning notes reflect your changes.
If you learned any lessons that would be valuable to other teams, please describe or link to them here.
Upgrading Travis or CircleCI
Make sure that whatever Travis or CircleCI tests you have which use MySQL are using a 5.7 container. (e.g. https://github.com/edx/xqueue/pull/783/files)
Upgrading Sandboxes
SRE will be upgrading Sandboxes before we upgrade stage with this PR: https://github.com/edx/configuration/pull/5695/files
However you may need to coordinate the timing of persistent sandbox deployments.
(e.g. partner registrar sandboxes should get rebuilt after prod gets upgraded, int sandboxes get upgraded ahead of time)
Be on the lookout for any performance impacts once SRE notifies you that stage and prod are being upgraded.
Note: RDS Aurora MySQL Databases will likely require downtime, but RDS MySQL databases can be upgraded without downtime.
If there are downtime constraints for prod please let the SRE team know, we will be estimating the downtime and choosing which upgrade path makes the most sense and will be attempting to
...
The SRE Team is tracking each stage, prod and edge database upgrade under this Jira epic: https://openedx.atlassian.net/browse/PSRE-301
As each of our services have different requirements (owners, data pipelines), each database upgrade may have specific steps required.
Each of the services in the diagram below (except Forums, Prospectus & Marketing), has a MySQL database that will be upgraded to Aurora 5.7, in addition to the service, our data pipelines also connect to these databases so special care should be taken to ensure those pipelines and the downstream reports are not impacted by the upgrades.
At least the LMS, Ecommerce, Discovery, License Manager, Enterprise Catalog, Demographics and Credentials services also have DBT generated Snowflake views described here, please be sure to sync with DE about requirements before doing each cutover.
At least LMS and Ecommerce have Jenkins EMR jobs that pull data into Verticaand/or Swoop jobs, these jobs should be checked carefully before and after each respective cutover.
...
Notes (SRE) - Done on 10/23(not on Aurora)Discovery & Ecommerce (Engagement)(not on Aurora)Discovery - Done on 10/29Ecommerce - Done on 11/17 @ 10pm
Credentials and Demographics (Aperture)
Credentials - Done on 11/17 @ 3pmDemographics - Done on 12/7 @ 10am
Registrar and Portal Designer (Masters)
Registrar Target - Done on 12/2 @ 10amDesigner Target - Done 12/9 @ 10am
Analytics API and Insights (DE)
Prod Analytics API and Analytics Data - Done 12/17 @ 10am-12pm ETEdge Analytics - Done for 12/18 @ 10am-12:11pm
XQueue (T&L)Move Stage xqueue schema from edxapp db to shared db DoneProd Xqueue Target -Done on 1/5 @ 10am
License Manager, Enterprise Catalog, Blockstore, Video Encode Manager (Enterprise, T&L, Incident Management)Shared ClusterTarget - Tentatively scheduled for between 1/14 and 1/26- Done
Platform (Arch + TNL):Stage edxappTarget-Tentatively scheduled forDone on 1/25Edge edxappTarget-Tentatively scheduled forDone on 1/27Prod csmhe & edxappTarget-TBDDone on 2/2
Communications Plan
Note: These steps may be followed twice if we do a segmented upgrade to support TLS 1.2 first on 5.6.48 before going to 5.7 (e.g for notes)
...
Service | Business and Technical Owners (see list here) | Current MySQL Versions (best effort) | In Open edX? | 5.7 DevStack Upgrade Due November 9th if in Open edX, December 15th if not. | 5.7 Travis Upgrade Due November 9th, December 15th if not. | 5.7 Sandbox Upgrade | Planned 5.7 Stage Upgrade Due December 15 | Planned 5.7 Prod Upgrade (+ Any Read Replicas) Due Jan 1 | Planned 5.7 Edge Upgrade | Maintenance Mode / Smoke Test Docs | |
---|---|---|---|---|---|---|---|---|---|---|---|
Platform (LMS + CMS) + csmhe | Arch - | Stage: 5.7 | Yes | https://openedx.atlassian.net/browse/BOM-2059 - Muhammad Arif (Deactivated) Upgraded on 10/29 | Tests run on Jenkins instead of Travis https://openedx.atlassian.net/browse/BOM-2059 Upgraded on 10/29 | SRE will create a test sandbox once https://openedx.atlassian.net/browse/BOM-2059 is done. | (dedicated aurora) Upgraded on 01/26 @ 1 AM CNAME: stage-edx-edxapp.rds.edx.org | Coordinate with Jeremy/Nimisha/Sarina/Stu/Feanil Note: There are two databases. (dedicated aurora) Completed on 2/2 | Coordinate with Jeremy/Nimisha/Sarina/Stu/Feanil Completed on 1/27 | Maintenance Mode: See Runbook. Smoke Test: edxapp + csmhe Smoke Tests Run Book cc Sarina Canelake (Do Not Use) (Deactivated) | |
Engagement - | Stage: 5.7 | Yes | https://github.com/edx/devstack/pull/639 | Travis File https://openedx.atlassian.net/browse/REV-1568, now ecom team helping via https://openedx.atlassian.net/browse/REV-1568 | (dedicated aurora) | (dedicated aurora) | Not applicable (ecommerce not in Edge) | Maintenance Mode: 1: Disable ASG in Asgard | |||
Aperture - | Stage: 5.7 | Yes |
|
| N/A | (shared aurora) | (dedicated aurora) | N/A | Maintenance Mode: Disable ASG in Asgard | ||
Aperture - | Stage: 5.7 | No | Done as part of https://github.com/edx/demographics/pull/80/files | N/A | Adam Blackwell (Deactivated) ask Matt Tuchfarber (Deactivated) if demographics runs in sandbox. | (dedicated aurora) | (dedicated aurora) | N/A | Maintenance Mode: Disable in ArgoCD Smoke Test: Adam Blackwell (Deactivated) will reach out to Matt Tuchfarber (Deactivated) | ||
SRE - | Stage: 5.7 | Yes | https://github.com/edx/devstack/pull/629 | Travis File | (shared aurora) | (dedicated mysql) | (dedicated mysql) | Maintenance Mode: We can’t currently put just notes in maintenance, but the LMS fails gracefully for users and we can use Cloudflare. | |||
T&L - | Stage: 5.7 | Yes | Upgraded as of https://openedx.atlassian.net/browse/PSRE-322) UPGRADED 11/19 | https://openedx.atlassian.net/browse/PSRE-322 https://github.com/edx/xqueue/pull/783 UPGRADED 11/19 | (edxapp aurora) | (dedicated mysql) Will be done by SRE team, need coordination with Feanil Patel | N/A | Check with Feanil Patel Maintenance Mode: Disable ASG in Asgard Smoke Test: | |||
Registrar & Workers | Programs - | Stage: 5.7 | No | Upgraded as of | No Travis Docker Tests | (shared aurora) | (dedicated mysql) Endpoint for Stitch: | N/A | Maintenance Mode: Disable in Asgard Smoke Test: https://openedx.atlassian.net/wiki/x/bYCCeQ | ||
Enterprise - | Stage: 5.7 | Yes | Upgraded as of | No Travis Docker Tests | (shared aurora) | (shared aurora) | N/A | Maintenance Mode: Disable in Asgard | |||
Enterprise - | Stage: 5.7 | Yes, for now | Upgraded as of | No Travis or CircleCI | (shared aurora) | (shared aurora) | N/A | Maintenance Mode: Disable in Asgard Smoke Test: | |||
Engage - | Stage: 5.7 | Yes | Upgraded as of | Upgraded Travis as of | (shared aurora) | (dedicated mysql) | N/A | ||||
Masters - | Stage: 5.7 | No | Upgraded local compose file as of | No Travis or CircleCI | (shared aurora) | (dedicated aurora) | N/A | Maintenance Mode: Disable in Asgard Smoke Tests: Designer Smoke Tests Run Book | |||
T&L - | Stage: 5.7 | Yes | https://openedx.atlassian.net/browse/TNL-7642 https://openedx.atlassian.net/browse/OSPR-5101 Done 11/6 | N/A | (shared cluster) | (shared cluster) | N/A | ||||
Analytics Pipeline | Data Engineering - T:Brian Beggs | N/A | Yes | N/A |
| ||||||
Data Engineering - T:Brian Beggs | Stage: 5.7 | Yes | N/A (According to Brian Beggs , insights and analytics-api do not have a devstack.) | Travis doesn’t use MySQL | Doesn’t have sandboxes. | (shared aurora) https://openedx.atlassian.net/browse/PSRE-304 No action items | (analytics aurora) | (analytics mysql)
| Maintenance Mode: Brian Beggs will check with his team + Asgard | ||
Insights and/or Analytics Dashboard | Data Engineering - T:Brian Beggs | Stage: 5.7 | Yes | N/A (According to Brian Beggs , insights and analytics-api do not have a devstack.) | Travis doesn’t use MySQL | Doesn’t have sandboxes. | (shared aurora) https://openedx.atlassian.net/browse/PSRE-304 No action items | (analytics aurora) | (analytics mysql) | Maintenance Mode: Brian Beggs will check with his team + Asgard Smoke Test: Download button in Insights | |
ensure retirement | Simon Chen , Julie Davis (Deactivated) - repo ownership Jeremy Bowman (Deactivated) - for deprecation | N/A | No | Done 11/13 https://openedx.atlassian.net/browse/EDUCATOR-5378 - closed in favor of https://openedx.atlassian.net/browse/DEPR-106?searchSessionId=4511027c-eb42-4c57-b290-aaec5aaf03fa&searchObjectId=186639&searchContainerId=17023&searchContentType=issue | No Travis Docker or CircleCI Tests | N/A | N/A | ||||
Video Encode Manager | Stage: 5.7 | Yes | Not in DevStack: https://openedx.atlassian.net/browse/PSRE-371 | N/A | N/A | (shared cluster) | (shared cluster) Completed | N/A | Kashif Chaudhry (Unlicensed) Are you aware of how SRE can smoketest this service after we complete this database upgrade? | ||
Licence Manager | Stage: 5.7 | Yes | Fred Smith (Deactivated) I just realized this row hasn’t been added, do you know if any work needs to be done for License Manager | N/A | (shared cluster) | (shared cluster) Completed | N/A | ||||
ensure retirement | Website: | N/A | No | Due December 15Will be retired before by then - https://openedx.atlassian.net/browse/WS-1413 | Will be retired before then -https://openedx.atlassian.net/browse/WS-1413 | N/A | Needs to be removed from shared | Needs to be removed from shared | N/A | N/A | |
Enterprise Reporting | Markhors: | Stage: 5.7 | No | N/A | N/A | N/A | N/A | N/A |
...