merging and migrating: data portability from the trenches
TRANSCRIPT
Data PortabilityTales from the Trenches
DAN HARDIKER | CTO | ADAPTAVIST | @DHARDIKER
BRITTANY WISPELL | CONSULTANT | ADAPTAVIST | @REDHOTJIRAPEPPS
Standard horizontal view logo.
Purposes: Website, Blogs, External PRs, External websites, Event websites.
Smaller lettering.
Purpose: Business cards.
Logo centralised.
Purpose: Events, stall headers, handouts.
Logo centralised.
Purpose: Events, stall headers, handouts.
AgendaTools & Support
Scenarios
Atlassian
Q&A
I have a cunning plan
BALDRICK, BLACKADDER http://www.fansshare.com/celebrities/blackadder-goes-forth/
APPROACHES CHECKLISTS
✅ Task1
✅ Task2
✅ Task3
...
Business as Usual
Infrastructure Change
Atlassian Cloud
Data Shaping
Scenarios
Business as Usual
Scenarios
Copy & Clone Driven by Operational Needs
Backup & Restore Driven by Business Requirements
Scenarios
Business as Usual
Managing Data
Business as Usual
XML Backups
Business as Usual > Managing Data
Backup
Restoration
Gotchas
Contents A zipped archive containing most of the data from your Jira system.
Location Found in the Jira home directory, within the exports folder.
Default Enabled by default, running nightly.
XML Backups
XML Backups
Backup
Restoration
Gotchas
Jira Admin UI Restoration is started through the Jira user interface.
Resource Intensive Intensive of use of Java memory, network & disk I/O.
Index Rebuilt After the restoration, a full reindex will be triggered.
XML Backups
Backup
Restoration
Gotchas
Missing in Action • Attachments • Bespoke Plugin Data • Plugin Installation Files
Never quite the same • Database record IDs are regenerated. • Application keys are unchanged.
Not Production Safe If Jira is updated during an XML backup, the resulting backup can be inconsistent or even corrupt.
File System & Database Snapshots
Business as Usual > Managing Data
Backup
Restoration
Gotchas
Contents Two separate snapshots taking the file system and database state, at a synchronised point in time.
Knowledge & Tooling Infrastructure and DBA knowledge required. Process & tooling is technology specific.
No Maintenance Mode Execute during an outage, or when minimal activity is running through Jira.
File System & Database Snapshots
File System & Database Snapshots
Backup
Restoration
Gotchas
Technology Specific Restore the entire snapshots of the file system & database directly.
Outage Required Jira must be offline for the restoration.
No Index Rebuilding The system will now be identical to that backed up.
File System & Database Snapshots
Backup
Restoration
Gotchas
Identical in every way • Base URL • Application Links • Inbound Email
Work together Synchronising the snapshots can get tough.
✅ Method • XML • Snapshot
✅ Storage • Frequency & Retention • Constrains your RPO
✅ Security (Access) • Sensitive data • Availability
✅ Security (Crypto) • In Transit / At Rest / In Use • Key Management
✅ Data Sovereignty • Where is your data? • DR / Backups / Support
✅ Compliance • ISO 27001 / HIPAA • Privacy Shield / DPA / GDPR
Business as Usual
Checklist
Business as Usual
Infrastructure Change
Atlassian Cloud
Data Shaping
Scenarios
Infrastructure Change
Scenarios
File System Changing system architecture
Database Moving between vendors / systems
Scenarios
Infrastructure Change
Transform Filter, modify and translate
the data as needed.
ETL
Load Hydrate the data into the
target system
Export Extract the data from the
source system
Infrastructure Change
utf8mb4
JRASERVER-36135MySQL 4-byte character support
Transform Filter, modify and translate
the data as needed.
ETL
Load Hydrate the data into the
target system
Export Extract the data from the
source system
Infrastructure Change
✅ Method • XML for DB changes • Snapshot for Lift & Shift
✅ Revisit Approach • Backups & Resilience Processes • Snapshot Consistency
✅ Ownership • Access & Control • DBA? Service Desks?
✅ Technology • Drivers, Firewalls, Tooling • Direct Integrations with FS & DB
✅ Conversion • DB schema changes • Indexes & Character Sets
✅ Dry Runs • Multiple iterations required • Outage sizing
Infrastructure Change
Checklist
KEEP CALM
& DRY RUN
✅ Method • XML for DB changes • Snapshot for Lift & Shift
✅ Revisit Approach • Backups & Resilience Processes • Snapshot Consistency
✅ Ownership • Access & Control • DBA? Service Desks?
✅ Technology • Drivers, Firewalls, Tooling • Direct Integrations with FS & DB
✅ Conversion • DB schema changes • Indexes & Character Sets
✅ Dry Runs • Multiple iterations required • Outage sizing
✅ Immutability • Prefer new & migrate • How do we back out?
✅ Monitoring • Benchmark latency & responsiveness • Validate in all environments
Infrastructure Change
Business as Usual
Infrastructure Change
Atlassian Cloud
Data Shaping
Scenarios
Atlassian Cloud
Scenarios
Scenarios
Atlassian Cloud
XML
http://www.pngmart.com/image/tag/terminator http://www.mcgamer.net/threads/gameover-us-clan.95893/
✅ Method • XML only • No Infrastructural Access
✅ XML Backing Up • Are more resources needed? • Is an outage required?
✅ Duration • How long does it take? • Backup, Transfer, Restore
✅ Versions • What versions are needed? • What change is expected?
✅ Complexity • How simple is your case? • Is transformation needed?
✅ Atlassian ID • What is your username schema? • Does any mapping need to happen?
Atlassian Cloud
✅ Functionality • Map the differences • Include add-ons
✅ Licensing • What are the commercial changes? • Include add-ons and environments
Checklist
Business as Usual
Infrastructure Change
Atlassian Cloud
Data Shaping
Scenarios
Data Shaping
Scenarios
MergingSplitting
Data Shaping
Scenarios
Splitting
Data Shaping
Snapshot Backup & Restore
Splitting
Snapshot Backup & Restore Duplicate the system from snapshot backups.
Splitting
Snapshot Backup & Restore Duplicate the system from snapshot backups. Remove unwanted data from either system.
Splitting
Snapshot Backup & Restore Duplicate the system from snapshot backups. Remove unwanted data from either system.
Constraints
Splitting
Snapshot Backup & Restore Duplicate the system from snapshot backups. Remove unwanted data from either system.
Constraints Target system must not exist.
Splitting
Snapshot Backup & Restore Duplicate the system from snapshot backups. Remove unwanted data from either system.
Constraints Target system must not exist. Same technologies in both systems.
Splitting
Snapshot Backup & Restore Duplicate the system from snapshot backups. Remove unwanted data from either system.
Constraints Target system must not exist. Same technologies in both systems.
Use Cases
Splitting
Snapshot Backup & Restore Duplicate the system from snapshot backups. Remove unwanted data from either system.
Constraints Target system must not exist. Same technologies in both systems.
Use Cases Where the source system cannot be impacted.
Splitting
Snapshot Backup & Restore Duplicate the system from snapshot backups. Remove unwanted data from either system.
Constraints Target system must not exist. Same technologies in both systems.
Use Cases Where the source system cannot be impacted. Where cloning the system is straight forward.
Splitting
Tooling Based Copy
Splitting
Tooling Based Copy Setup a new system.
Splitting
Tooling Based Copy Setup a new system. Copy global configuration.
Splitting
Tooling Based Copy Setup a new system. Copy global configuration. Use tooling to copy across project config & data.
Splitting
Tooling Based Copy Setup a new system. Copy global configuration. Use tooling to copy across project config & data. Remove copied data from source system.
Splitting
Tooling Based Copy Setup a new system. Copy global configuration. Use tooling to copy across project config & data. Remove copied data from source system.
Constraints
Splitting
Tooling Based Copy Setup a new system. Copy global configuration. Use tooling to copy across project config & data. Remove copied data from source system.
Constraints Target system global configuration must match.
Splitting
Tooling Based Copy Setup a new system. Copy global configuration. Use tooling to copy across project config & data. Remove copied data from source system.
Constraints Target system global configuration must match. Appropriate tooling must be purchased.
Splitting
Tooling Based Copy Setup a new system. Copy global configuration. Use tooling to copy across project config & data. Remove copied data from source system.
Constraints Target system global configuration must match. Appropriate tooling must be purchased. Plugins data may be missed.
Splitting
Tooling Based Copy Setup a new system. Copy global configuration. Use tooling to copy across project config & data. Remove copied data from source system.
Constraints Target system global configuration must match. Appropriate tooling must be purchased. Plugins data may be missed.
Use Cases
Splitting
Tooling Based Copy Setup a new system. Copy global configuration. Use tooling to copy across project config & data. Remove copied data from source system.
Constraints Target system global configuration must match. Appropriate tooling must be purchased. Plugins data may be missed.
Use Cases Where the source system must remain live.
Splitting
Tooling Based Copy Setup a new system. Copy global configuration. Use tooling to copy across project config & data. Remove copied data from source system.
Constraints Target system global configuration must match. Appropriate tooling must be purchased. Plugins data may be missed.
Use Cases Where the source system must remain live. Where a relatively small amount of data needs to be split off.
Splitting
XML Backup & Restore
Splitting
XML Backup & Restore Setup a new system, restoring the XML backup.
Splitting
XML Backup & Restore Setup a new system, restoring the XML backup. Install plugins.
Splitting
XML Backup & Restore Setup a new system, restoring the XML backup. Install plugins. Copy over the attachments.
Splitting
XML Backup & Restore Setup a new system, restoring the XML backup. Install plugins. Copy over the attachments. Remove unwanted data from either system.
Splitting
XML Backup & Restore Setup a new system, restoring the XML backup. Install plugins. Copy over the attachments. Remove unwanted data from either system.
Constraints
Splitting
XML Backup & Restore Setup a new system, restoring the XML backup. Install plugins. Copy over the attachments. Remove unwanted data from either system.
Constraints Source system must have an outage for backup.
Splitting
XML Backup & Restore Setup a new system, restoring the XML backup. Install plugins. Copy over the attachments. Remove unwanted data from either system.
Constraints Source system must have an outage for backup. Typically consumes the most resources and takes the longest.
Splitting
XML Backup & Restore Setup a new system, restoring the XML backup. Install plugins. Copy over the attachments. Remove unwanted data from either system.
Constraints Source system must have an outage for backup. Typically consumes the most resources and takes the longest.
Use Cases
Splitting
XML Backup & Restore Setup a new system, restoring the XML backup. Install plugins. Copy over the attachments. Remove unwanted data from either system.
Constraints Source system must have an outage for backup. Typically consumes the most resources and takes the longest.
Use Cases Where transformation of the backup is needed.
Splitting
XML Backup & Restore Setup a new system, restoring the XML backup. Install plugins. Copy over the attachments. Remove unwanted data from either system.
Constraints Source system must have an outage for backup. Typically consumes the most resources and takes the longest.
Use Cases Where transformation of the backup is needed. When the new system architecture is different.
Splitting
XML Backup & Restore Setup a new system, restoring the XML backup. Install plugins. Copy over the attachments. Remove unwanted data from either system.
Constraints Source system must have an outage for backup. Typically consumes the most resources and takes the longest.
Use Cases Where transformation of the backup is needed. When the new system architecture is different. Can restore specific projects. (Server/DC only)
Splitting
X X X
Merging
Data Shaping
Merging
Snapshot Backup & Restore Not possible as target system already exists.
Merging
Tooling Based Copy
Merging
Tooling Based Copy Align Jira & add-on versions in both systems.
Merging
Tooling Based Copy Align Jira & add-on versions in both systems. Sync target system global & project configuration.
Merging
Tooling Based Copy Align Jira & add-on versions in both systems. Sync target system global & project configuration.
Conflict Resolution Resolve any configuration differences:
Merging
Tooling Based Copy Align Jira & add-on versions in both systems. Sync target system global & project configuration.
Conflict Resolution Resolve any configuration differences:
Globals Users & Groups, Resolutions, Statuses
Merging
Tooling Based Copy Align Jira & add-on versions in both systems. Sync target system global & project configuration.
Conflict Resolution Resolve any configuration differences:
Globals Users & Groups, Resolutions, Statuses
Project keys Including historic
Merging
Tooling Based Copy Align Jira & add-on versions in both systems. Sync target system global & project configuration.
Conflict Resolution Resolve any configuration differences:
Globals Users & Groups, Resolutions, Statuses
Project keys Including historic
Dashboards & Agile Rapid Boards & Filters Compound key: item name + owning user
Merging
Strategies
Conflict Resolution Resolve any configuration differences:
Globals Users & Groups, Resolutions, Statuses
Project keys Including historic
Dashboards & Agile Rapid Boards & Filters Compound key: item name + owning user
Merging
Strategies Technical
Conflict Resolution Resolve any configuration differences:
Globals Users & Groups, Resolutions, Statuses
Project keys Including historic
Dashboards & Agile Rapid Boards & Filters Compound key: item name + owning user
Merging
Strategies Technical Process
Conflict Resolution Resolve any configuration differences:
Globals Users & Groups, Resolutions, Statuses
Project keys Including historic
Dashboards & Agile Rapid Boards & Filters Compound key: item name + owning user
Merging
XML Backup & Restore
Merging
XML Backup & Restore Transform the XML backup in-flight.
Merging
XML Backup & Restore Transform the XML backup in-flight.
Constraints
Merging
XML Backup & Restore Transform the XML backup in-flight.
Constraints Sensitive to change.
Merging
XML Backup & Restore Transform the XML backup in-flight.
Constraints Sensitive to change. Edge cases require testing.
Merging
XML Backup & Restore Transform the XML backup in-flight.
Constraints Sensitive to change. Edge cases require testing.
Use Cases
Merging
XML Backup & Restore Transform the XML backup in-flight.
Constraints Sensitive to change. Edge cases require testing.
Use Cases Where complex migrations are needed.
Merging
XML Backup & Restore Transform the XML backup in-flight.
Constraints Sensitive to change. Edge cases require testing.
Use Cases Where complex migrations are needed. Extreme changes in data structure and architecture.
Merging
✅ Versions • See: Atlassian Cloud • Add-ons too
✅ Add-ons • Where is the data? • How is it managed?
✅ Scope • Whole or partial? • New or merge in existing?
✅ Conflict Resolution • Full assessment upfront • Tooling assistance helpful
✅ Transformation • What needs to change? • Users, Keys, Globals
✅ Validation • Missing Data (Script Fields) • Smoke Test (config item count)
Data Shaping
Checklist
Data Shaping
Tools & Support
Scenarios
Atlassian
Q&A
Tools & Support
Scenarios
Atlassian
Q&A
http://wheelhouseworkshop.com/2017/04/06/its-dangerous-to-go-alone-take-this/
Botron Software Configuration Manager
for JiraProject Configurator
for Jira
Atlassian Recommends
Tools & Support
AdaptavistAwnaba
Atlassian Support Standard or Premium.
Consider a TAM.
You are not alone!
Solution Partners Professionals who have done
this many times before.
Atlassian Community Documentation, Q&A,
support from your peers.
Tools & Support
Start off Simple
Tools & Support
Tools & Support
Scenarios
Atlassian
Q&A
Tools & Support
Scenarios
Atlassian
Q&A
• Merging and migrating are really tough problems
• We're incredibly thankful for our solution partners
• We recognize your pain and are finally ready to help
Announcing a dedicated migration team!
• Migration (not just export/import)
• Multiple products (not just Jira)
• Rome wasn't built in a day
• Server->Cloud to start
Cloud migration, worthy of Atlassian
Inviting Make migration feel like the natural next step in the customer
journey
Scalable Migrate everything from single projects to massive instances
with confidence
Reliable Tell customers what is happening, before, during, and after (and
make sure it does)
Flexible Support multiple
migration modes and approaches based on
customer needs
Tools & Support
Scenarios
Atlassian
Q&A
Tools & Support
Scenarios
Atlassian
Q&A?
Thank you!
DAN HARDIKER | CTO | ADAPTAVIST | @DHARDIKER
BRITTANY WISPELL | CONSULTANT | ADAPTAVIST | @REDHOTJIRAPEPPS