answers@hook42.com answers@hook42.com
Planning & Managing Migrations
It’s for the birds. Har har.
Aimee Degnan /
aimee@hook42.com
Planning & Managing Migrations Its for the birds. Har har. - - PowerPoint PPT Presentation
Planning & Managing Migrations Its for the birds. Har har. Aimee Degnan / aimee@hook42.com answers@hook42.com answers@hook42.com Expectation Setting This is the first run of this presentation. It is being shaped for DrupalCon. Is
answers@hook42.com answers@hook42.com
Aimee Degnan /
aimee@hook42.com
answers@hook42.com answers@hook42.com
This is the first run of this presentation. It is being shaped for DrupalCon. Is text heavy because sketches are WIP. There is a lot to talk about. This is fast. Your input and questions are encouraged, although I may field them later.
answers@hook42.com
answers@hook42.com
1996 – Enterprise Web Tech & CMS 2006 – PMP, Stanford Advanced PM 2008 – Drupal 2010 – Agile: Scrum Master, Product Owner aimee@hook42.com @aimeeraed www.hook42.com @hook42inc
Aimee Degnan, CEO
answers@hook42.com
answers@hook42.com
A boutique software development firm. Located in the San Francisco Bay Area. 4+ years, 12 employees Focus areas: site rescue, migration / upgrades, multilingual, SEO, responsive design, digital strategy, business process improvements
Who are we?
answers@hook42.com
5
answers@hook42.com answers@hook42.com
answers@hook42.com answers@hook42.com
7
answers@hook42.com answers@hook42.com
8
answers@hook42.com answers@hook42.com
Some content is single Some content is incremental Some content is new / imported
9
answers@hook42.com answers@hook42.com
10
answers@hook42.com answers@hook42.com
11
answers@hook42.com answers@hook42.com
12
answers@hook42.com answers@hook42.com
13
answers@hook42.com answers@hook42.com
14
answers@hook42.com answers@hook42.com
Business owners Account managers Project managers Migration engineers Developers Site builders Themers
15
answers@hook42.com answers@hook42.com
Migration pass = code + running code to migrate some content Plugins
It is migration code that maps and modifies data. 3 types: process, source, destination
Stub Drupal Migrate:
Rollback (full-site or single pass) Import Update Status Feedback
16
answers@hook42.com answers@hook42.com
17
answers@hook42.com answers@hook42.com
18
answers@hook42.com answers@hook42.com
19
answers@hook42.com answers@hook42.com
20
answers@hook42.com answers@hook42.com
21
answers@hook42.com
answers@hook42.com answers@hook42.com
23
answers@hook42.com answers@hook42.com
1. Pre-project education 2. Audit for migration 3. Discovery phase 4. Architect the new site 5. Migration mapping 6. Development phase 7. Pre-production migration passes 8. Testing and migration audit 9. Go-live!!!!!!!!!!!!!!! 10. Post-launch validation
24
answers@hook42.com answers@hook42.com
Goals:
Set expectations of project activities Clarify the importance and impact of requirements freeze Identify phases statements of work, if a large enough migration
Migration takes:
Time Specialization Requirements lockdown Project fitness Transparency
25
answers@hook42.com answers@hook42.com
Surface the As-Is details of the site Begin understanding data Familiarity with site functionality
26
answers@hook42.com answers@hook42.com
Artifacts:
Risks register & mitigation thoughts Content audit (structure, data types, size, UGC) Functionality audit Data health audit Infrastructure audit (for access) Functionality specific audits: SEO, Accessibility, User/Roles Source URL lists (patterns, special pages) Links to representative content. They will be used for the
whole project.
27
answers@hook42.com answers@hook42.com
Lessons learned:
Very few developers know how to audit for migration. Takes longer than you’d expect, even with tools. Auditing twice is costly. Do it right the first time. No cell left behind! Blank is not an answer. Keep your artifacts and info in one place. Prevent: “Oh, I didn’t think about that.”
28
answers@hook42.com answers@hook42.com
29
answers@hook42.com answers@hook42.com
Goals:
Define functionality and improvements Prioritize features, with data in mind Capture data expectation requirements
Artifacts:
Feature list Glossary with AKAs Are all representative content links addressed?
30
answers@hook42.com answers@hook42.com
31
answers@hook42.com answers@hook42.com
Goals:
Define new content structures Define infrastructure w/ migration considerations
Artifacts:
Site architecture spreadsheet (CT, Taxo, Forms) URL pattern planning
Lessons learned:
Every entity is a migration pass! (pssst. Paragraphs) Media entity is two passes (files + entity) You have to architect everything. Really. You can’t let your site builders just build stuff. Ever.
32
answers@hook42.com answers@hook42.com
33
answers@hook42.com answers@hook42.com
Document migration expectations for
Provide the requirements to Migration
A testing matrix for post-migration data
34
answers@hook42.com answers@hook42.com
Migration mapping (by entity type, field,
Source fields à Destination fields +
Taxonomy term / Select list à term mapping
35
answers@hook42.com answers@hook42.com
Lessons learned:
Often done in parallel with new architecture Mind your types, field length, formats, dates, and
filters!
Select lists à taxonomy / Term à term Blobs à structured content take extra programming
36
answers@hook42.com answers@hook42.com
37
answers@hook42.com answers@hook42.com
Site architecture migration mapping infrastructure site building migration passes theming
Testing
Passes
answers@hook42.com answers@hook42.com
Goals:
Get ‘er done.
Artifacts:
Migration order w/ dependencies, stubs Migration code New site + infrastructure Detailed site rollback process and time Go-Live checklist: full list of migrations, duration,
expected behavior
39
answers@hook42.com answers@hook42.com
Considerations:
Site building must be complete before migrations
start.*
Migration pass dependency plan Develop migration code Track commands, durations per pass Don’t over engineer. You are only doing this once.
40
answers@hook42.com answers@hook42.com
Max joins on MySQL DB is 61 Don’t over-engineer. Your code will go
Documentation is your friend.
41
answers@hook42.com answers@hook42.com
42
answers@hook42.com answers@hook42.com
Goals:
Keep running migrations Debug and test data Populate the bulk of data
Artifacts:
Use the migration pass worksheet Track time, success / failure, issues
Lessons learned:
This is needed by all teams.
43
answers@hook42.com answers@hook42.com
Goals:
Testing new site architecture with migrated data Layout, functionality, etc.
Artifacts:
Browser testing SEO testing / redirects Performance tuning
Lessons learned:
You need this. Give this phase a good time. There is the “Moment of Truth” when the dev server is like prod.
44
answers@hook42.com answers@hook42.com
45
answers@hook42.com answers@hook42.com
Goals:
Final migration & smooth cutover.
Artifacts:
Go-Live Checklist. It isn’t just migration passes.
Lessons learned:
Practice migrations before cutover. Practice your roll back before cutover. You and your team will probably be tired. This is your “A” game. Relax.
46
answers@hook42.com answers@hook42.com
Goals:
Did it work? Did we miss something on cutover?
Artifacts:
SEO tests. Error logs. Feedback from site users.
Lessons learned:
This is important. You aren’t done when the site is cutover.
47
answers@hook42.com answers@hook42.com
48
answers@hook42.com answers@hook42.com
49