Runbooks from the ES1 migration

High-level migration plan

edx-search runbook

Notes runbook

Forums runbook

Generalized Strategy

These will have to be done twice in most cases, first on stage and then on prod so that we can uncover any major infrastructural issues.

0. Create/Find a Test Bed on Stage and Prod

1. Create ES7 clusters in terraform

2. Create a new setting for the ES7 configuration

3. Spin up new instances of app with ES7-compatible code

4. Index ES data from ES7-compatible instance

5. Merge ES7 code and configuration changes

6. Deploy using GoCD using the newly built changes

7. Re-index ES7 to include any writes that were missed

8. Clean up settings and clusters

Specific App Strategies

edx-notes

Plan deploy for week of Sept 7.

course-discovery

mysqldump -u read_only_iam -h <DATABASE_HOST_NAME> --enable-cleartext-plugin --ssl-ca=/edx/bin/rds-combined-ca-bundle.pem -p"$(aws rds generate-db-auth-token --hostname <DATABSE_HOSTNAME> --port 3306 --region us-east-1 --username read_only_iam )" discovery --single-transaction course_metadata_additionalpromoarea course_metadata_backfillcourserunslugsconfig course_metadata_backpopulatecoursetypeconfig course_metadata_bulkmodifyprogramhookconfig course_metadata_collaborator course_metadata_corporateendorsement course_metadata_corporateendorsement_individual_endorsements course_metadata_course course_metadata_course_authoring_organizations course_metadata_course_collaborators course_metadata_course_expected_learning_items course_metadata_course_prerequisites course_metadata_course_sponsoring_organizations course_metadata_course_subjects course_metadata_courseeditor course_metadata_courseentitlement course_metadata_courserun course_metadata_courserun_staff course_metadata_courserun_transcript_languages course_metadata_courserun_video_translation_languages course_metadata_courseruntype course_metadata_courseruntype_tracks course_metadata_coursetype course_metadata_coursetype_course_run_types course_metadata_coursetype_entitlement_types course_metadata_coursetype_white_listed_orgs course_metadata_courseurlredirect course_metadata_courseurlslug course_metadata_curriculum course_metadata_curriculumcoursemembership course_metadata_curriculumcourserunexclusion course_metadata_curriculumprogrammembership course_metadata_dataloaderconfig course_metadata_degree course_metadata_degree_rankings course_metadata_degreecost course_metadata_degreedeadline course_metadata_deletepersondupsconfig course_metadata_drupalpublishuuidconfig course_metadata_endorsement course_metadata_expectedlearningitem course_metadata_faq course_metadata_historicalcourse course_metadata_historicalcourseentitlement course_metadata_historicalcourserun course_metadata_historicalcourseruntype course_metadata_historicalcoursetype course_metadata_historicalcurriculum course_metadata_historicalcurriculumcoursemembership course_metadata_historicalcurriculumcourserunexclusion course_metadata_historicalcurriculumprogrammembership course_metadata_historicaldegreecost course_metadata_historicaldegreedeadline course_metadata_historicalmode course_metadata_historicalorganization course_metadata_historicalprogram course_metadata_historicalprogramtype course_metadata_historicalseat course_metadata_historicaltrack course_metadata_icontextpairing course_metadata_image course_metadata_joboutlookitem course_metadata_leveltype course_metadata_leveltypetranslation course_metadata_migratecommentstosalesforce course_metadata_migratecommentstosalesforce_orgs course_metadata_migratepublishertocoursemetadataconfig course_metadata_migratepublishertocoursemetadataconfig_orgs course_metadata_mode course_metadata_organization course_metadata_pathway course_metadata_pathway_programs course_metadata_person course_metadata_personareaofexpertise course_metadata_personsocialnetwork course_metadata_position course_metadata_prerequisite course_metadata_profileimagedownloadconfig course_metadata_program course_metadata_program_authoring_organizations course_metadata_program_corporate_endorsements course_metadata_program_courses course_metadata_program_credit_backing_organizations course_metadata_program_excluded_course_runs course_metadata_program_expected_learning_items course_metadata_program_faq course_metadata_program_individual_endorsements course_metadata_program_instructor_ordering course_metadata_program_job_outlook_items course_metadata_programtype course_metadata_programtype_applicable_seat_types course_metadata_programtypetranslation course_metadata_ranking course_metadata_removeredirectsconfig course_metadata_searchdefaultresultsconfiguration course_metadata_searchdefaultresultsconfiguration_courses course_metadata_searchdefaultresultsconfiguration_programs course_metadata_seat course_metadata_seattype course_metadata_subject course_metadata_subjecttranslation course_metadata_syllabusitem course_metadata_tagcourseuuidsconfig course_metadata_topic course_metadata_topictranslation course_metadata_track course_metadata_video core_partner catalogs_catalog > coursediscovery_data.sql
mysql -h edx.devstack.mysql -u discov001 -ppassword discovery < coursediscovery_data.sql

edx-search

cs_comment_service

Example of running the catchup command with rake.

sudo -HEu forum /bin/bash -c "source /edx/app/forum/forum_env; rake search:catchup[comments_20201014184547124,comment_threads_20201014184547124,22601]"