MARK LANG | JIRA ADMIN | CISCO | @MARKLANG78
Are You Ready to Rumble?
Let’s Migrate Some Jira Data
Legal Disclaimer
THE INFORMATION HEREIN IS PROVIDED ON AN “AS IS” BASIS, WITHOUT
ANY WARRANTIES OR REPRESENTATIONS, EXPRESS, IMPLIED OR
STATUTORY, INCLUDING WITHOUT LIMITATION, WARRANTIES OF
NONINFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A
PARTICULAR PURPOSE.”
Agenda
Background
What’s Your Goal?
Ask First
Process
Tools as a Guide
Other Tips & Tricks
Takeaways & Resources
Agenda
Background
What’s Your Goal?
Ask First
Process
Tools as a Guide
Other Tips & Tricks
Takeaways & Resources
There are neither
beginnings or endings…But
it was a beginning
ROBERT JORDAN
A Few Numbers
1
Instance in Production February 2014
43
Separate Jira & Confluence Instances
Paid Apps across our instances
111+
Marketplace; Source (https://marketplace.atlassian.com/)
>50
Large Migrations
1,000,000
Migrated Issues
What I told you was true,
from a certain point of
view
STAR WARS VI
Agenda
Background
What’s Your Goal?
Ask First
Process
Tools as a Guide
Other Tips & Tricks
Takeaways & Resources
Get ALL the Data
Before
• No clear process forward
• Not sure what data migrates
• Don’t know what you don’t know
• Frustrated customers
enews; Source (http://bit.ly/cliff_image)
Before
• No clear process forward
• Not sure what data migrates
• Don’t know what you don’t know
• Frustrated customers
After
• Defined process
• Questionnaire facilitates dialog
• Better idea on timeline
• Prepared to deal with bumps and bruises
enews; Source (http://bit.ly/cliff_image)
SWNS; Source (http://bit.ly/basecliff_image)
Migrate as much
as possible
Full System
Application Export
Merge
Projects or Spaces
Native
DB and Filesystem
(home)
Other
Applications
What are you choices?
Agenda
Background
What’s Your Goal?
Ask First
Process
Tools as a Guide
Other Tips & Tricks
Takeaways & Resources
Discovery
Most Important
Take your time
Document Well
Validate
Requirements
Set Expectations
• Goal is to avoid surprises later
• Call out limitations
• Set the tone
• Build a connection
Start High Level
• Typical “W” Questions
• Who, Where, When, What
• Get an idea of the big picture
• What are their expectations?
Drill Down
• Type of Migration
• Where is the data coming from?
• Jira, Bugzilla, Rally
• Support Choices
Details
• Where is the data coming from?
• Actual URL, Versions
• How much data?
• User Accounts and Access
• Apps
Integrations
• Deep Integrations you
directly support
• Everything Else - Indirectly
Connected
• Confluence Apps
Agenda
Background
What’s Your Goal?
Ask First
Process
Tools as a Guide
Other Tips & Tricks
Takeaways & Resources
Tools PeoplePractices
Migration Components
Plans are worthless, but
planning is everything
DWIGHT EISENHOWER
TheMigrationPhases
Discovery
Sandboxing
Customer
Validation
Production
Migration
Closeout
YoPriceVille; Source (http://bit.ly/sandbox_phase)
WorldArtsMe; Source (http://bit.ly/prod_deploy)
Discovery
Sandboxing
Validate
Production
Closeout
• Questionnaire
• AccesstoData
• Research
Discovery
Sandboxing
Validate
Production
Closeout
• Questionnaire
• AccesstoData
• Research
Discovery
Sandboxing
Validate
Production
Closeout
• CopyfromProduction
• DocumentWell
• TimeIt
YoPriceVille; Source (http://bit.ly/sandbox_phase)
Discovery
Sandboxing
Validate
Production
Closeout
• CopyfromProduction
• DocumentWell
• TimeIt
YoPriceVille; Source (http://bit.ly/sandbox_phase)
Discovery
Sandboxing
Validate
Production
Closeout
• CustomerInvolvement
• Data&Permissions
• QuietPeriod
Discovery
Sandboxing
Validate
Production
Closeout
• Preparation
• OutsideBusinessHours
• HardCutover
WorldArtsMe; Source (http://bit.ly/prod_deploy)
Discovery
Sandboxing
Validate
Production
Closeout
• High-Touch
• DataValidation
• ReviewTimeStamps
• TwoWeeksorLess
Agenda
Background
What’s Your Goal?
Ask First
Process
Tools as a Guide
Other Tips & Tricks
Takeaways & Resources
If the only tool you have is a
hammer, you tend to see every
problem as a nail
ABRAHAM MASLOW
Tools PeoplePractices
Migration Components
Migration
Details
Metadata
User Data
• Users
• Custom Fields
• Workflows
• Schemes
• Field Configurations
Metadata
User Data
• Projects
• Issues
• Assignees
• Reporters
• Dashboards
• Filters
• Agile Boards
• History
Migration
Details
WHAT WE MODIFY
Metadata
Must be first data migrated
App
We use Botron Configuration
Manager
Why we modify
Avoid
Affecting Default
Configuration
Remove
Unnecessary Metadata
Contain
Changes to Specific Projects
Why we modify
Avoid
Affecting Default
Configuration
Remove
Unnecessary Metadata
Contain
Changes to Specific Projects
What we look for
Switch from Global to
Specific Field Context
Reduce Scope by Removing
Parameters
Rename Workflows Remove Excess Metadata
What we look for
Rename Workflows Remove Excess Metadata
RenamingaWorkflow
RenamingaWorkflow
RenamingaWorkflow
RenamingaWorkflow
RemovingExcessMetadata
RemovingExcessMetadata
FromMetadatatoApplicationData
JiraData
• UserandGroupMapping
• TakingapartJiraExportfiletogetatEntities.xml
• Retainhistoricalactions
• User’sactions
• Watches
• History
• UserPermissions
Whywemodify
Retain:
TheBIGREASON
• Usernamesaredifferentbetween instances
Whywemodify
Let’s work with an example of John Doe
Where’sWaldo?
Source Target
Name John Doe John Doe
userName JohnDoe4 jdoe4
groupName Devgroup1 dev_group1
MappingFile
SED Pass 1
sed 's|(.*)#(.*)|s/"1"/"2"/gI|'
< user_group_mapping_mini.txt
| sed -f- entities.xml > output.xml
Attributes
Elements
User Mentions
Markdown
SED Pass 2
sed 's|(.*)#(.*)|s/>1/>2/gI|'
< user_group_mapping_mini.txt
| sed -f- output.xml > output2.xml
Attributes
Elements
User Mentions
Markdown
SED Pass 3
sed 's|(.*)#(.*)|s/~1/~2/gI|'
< user_group_mapping_mini.txt
| sed -f- output2.xml > output3.xml
Attributes
Elements
User Mentions
Markdown
SED Pass 4
sed 's|(.*)#(.*)|s/=1/=2/gI|'
< user_group_mapping_mini.txt
| sed -f- output3.xml > output4.xml
Attributes
Elements
User Mentions
Markdown
SED Pass 4
sed 's|(.*)#(.*)|s/=1/=2/gI|'
< user_group_mapping_mini.txt
| sed -f- output3.xml > output4.xml
Attributes
Elements
User Mentions
Markdown
Tools PeoplePractices
Migration Components
Pick a Strong
Team
Right Skills
Community
Atlassian Support
Solution Partners
Pick a Strong
Team
Right Skills
Community
Atlassian Support
Solution Partners
Pick a Strong
Team
Right Skills
Community
Atlassian Support
Solution Partners
Pick a Strong
Team
Right Skills
Community
Atlassian Support
Solution Partners
Agenda
Background
What’s Your Goal?
Ask First
Process
Tools as a Guide
Other Tips & Tricks
Takeaways & Resources
• Versions!
• ChangingProjectKey
• ManuallyWiringUpAttachments
• AddingIssuestoSprints
• MigratingRallyData
Tips&Tricks
Agenda
Background
What’s Your Goal?
Ask First
Process
Tools as a Guide
Other Tips & Tricks
Takeaways & Resources
Prepare,prepare,
prepare!
• DiscoveryisyourFoundation
• SandboxuntilComfortable
• Iterate!
Lookbeforeyouleap
• Understandyourdata
• Automate
• BeFlexible
Usealifeline
• AtlassianCommunity
• SolutionPartners
• AtlassianSupport
Usealifeline
• AtlassianCommunity
• SolutionPartners
• AtlassianSupport
MIGRATION RESOURCES
• QuestionnaireExample
• SEDExamples
• DocumentedTips&Tricks
http://go.atlassian.com/summit19-migration
Specialthanks…
tomyCiscoteam!
MARK LANG | JIRA ADMIN | CISCO | @MARKLANG78
Thank you!
NeONBRAND; Source (http://bit.ly/unsplash_boxinggloves)
Elements:
OSCurrentStep
OSCurrentStepPrev
OSHistoryStep
OSCurrentStepPrev
ChangeGroup
ChangeItem
AuditLog
AuditChangedValue
AuditItem
Whyitworks:Mappinguser,
removingpostfunctions&
requirementsbutretaining
history
Thedatastillexistsinthefollowing
elements,andisreplayedwithout
restriction.
Questions
1.Whydoyouhavetodothis -withsomanymigrationsandsomanyinstances?
1. Ciscoismadeupofalotofseparatebusinessunits. Theseareeffectively
separatebusinessesandoftenhavetheirownbudgetsandrequirements.
2.Youhavetodoalotofupgradesasaresultofyourscale.Haveyouconsidered
consolidatingmorethanyoudonowandforcingsomeoftheteamstobeonshared
instanceswithmoreappsthantheymightnormallywant?
1.Wehaveabsolutelyconsideredit.Weweighoutthecostsvstheamountof
resourcesneededtosupportandtheflexibilityorlackofflexibility. Oftenthe
licensecostsandtheneedforflexibilitydriveustothistypeofdesign.
3.Howdoyouchargebackfortheseservices?
1.EachDepartment(BusinessUnit)hasadepartmentidthatwecaninternallybillas
acrosscharge
Questions
1.Howdoyouhandleupgrades?
1.Itisa4monthcycleforus. Thefirstmonthisreviewofthelatestenterpriserelease
inalab/stageenvironment. Thefirst/secondmonthalsogetsthefirstsetof
instancesinonegeographiclocationupgradedinasandbox/DRenvironmentand
testedwiththeirdataandapps. Thatgroupisupgradedtoproductionoverthe
weekendthatmonthwhileweareupgradingthesecondsetofinstancesfroma
secondgeographiclocationinSandbox/DR. Thethirdmonthseestheupgradeof
thoseinstancesalongwiththefinalgroupSandbox/DRandthefourthmonthisthe
productionupgradeofthelastlocation.
2.Howdoyoumanageglobalteams?
1.Wehave3tiersofsupportandourtier1isinIndia,whiletier2and3areintheUS.
WearelookingatexpandingthistohaveapresenceinEurposetoo
Questions
1.IsallofCiscorunbyyou?
1.Imanagethelicensesonabout60%ofCisco. Thatisstillgrowingbutnotquiteas
fastapace. Alotofgroupswanttokeepthatcompletecontrol.
2.Arenttherepartnersthatcouldbehelpfultoyouinsomeofthetoughmigrations?
1.Absolutely,butnooneunderstandstheinsideofCiscolikeaCiscoemployee. The
partnersareverygoodatAtlassian,butwehavebecomeverygoodatAtlassian
withhowCiscoworks. Pluswehavemoreexperiencewithmigrationsthanmany
partnersatthispoint.
3.Whataresomegoodtipsforlearningtheskillsyousaidyoumightneedtobegood
atmigrations?
1.Practiceinadevenvironment. Startwithsmallchangesandseewhattheeffects
areinsandbox. Don’tbeafraidoftheentities.xmlandConfigurationmanager.xml
Questions
1.Areyouhiring?
1.Wegothroughcycles,justwatchforanyexternalpostingsonhttps://
www.cisco.com/c/en/us/about/careers.html
2.Areyousureyoucan’thelpmewithmymigration?
1.IwishIcould. Iamhappytohavea1on1sessiontoadvisealittlebitbutitwillbeto
providepointersonly.
3.Howdidyoudeterminewhattolookforintheentities.xmlfileforusermapping?
1.Westartedwithjustlookingfortheuseridsandfoundthatinsomecasesauserid
mightmatcharealword(i.e.‘the’wasaperson’suserid). Sowestartedlookingfor
contextwithintheXMLandbuildingoutdatascenarios.
Details Part 2
• Apps
• Customizations
• Special Configurations
Integrations
• Deep Integrations you
directly support
• Everything Else - Indirectly
Connected
• Confluence Apps
Full System
Application Export
Merge
Projects or Spaces
Native
DB and Filesystem
(home)
Other
Applications
What are you Choices
RinseandRepeat
1.Download project snapshot file with Configuration Manager
2.Create a directory and Unzip
3.Utilize a tool like UltraEdit or Notepad ++ for *.xml
4.Modify the XML and save in UTF-8
5.Zip
6.Deploy
• FixDescriptions,Icons,andColors
• System/GlobalFIelds(likeRankandPriority)
• Rename/CreateSchemes
• Remove“Default”Tags
• RemoveDependentPlugins
• Priorities
• Resolutions
• CleanupExtras
• ProjectRoles
• RenameWorkflows
Whydowemodify
• CreateCustomFieldContexts
ISSUE FIELD CONTEXTS
Modified Fields
Keep Target Context
ISSUE FIELD CONTEXTS
Projects
To be Migrated
Attributes
Reference as parameters
IssueFieldContexts
• Specificreferencetoaprojectwouldbelike//@projects.0
• TofixtheStoryPointsweneedtochangethenameofthecontext
(addanewone)anddefinethecontext(whichprojects)
IssueFieldContexts
• Specificreferencetoaprojectwouldbe//@projects.2
• TofixtheStoryPointsweneedtochangethenameofthecontext
(addanewone)anddefinethecontext(whichprojects)
IssueFieldContexts
RemovingExcessMetadata
RemovingExcessMetadata
RemovingParameters
RemovingParameters
• Linked by userName or lowerUserName not by "ID"
• issues
• changeHistory
• auditLogs
• ID's within the entities XML, are utilized to link other JIRA data.
• customFields
• workflows
• statuses
• resolutions
• screens
• As well as the ID's of the above and their association to a Scheme, or a project
are linked by numerical "ID"
BitofHistory
CommonFixes
• MissingCustomFields
• MissingProjectRoleID
• NoAdministratorAccountafterSystemImport
• InvalidCharacters

Are you Ready to Rumble? Let's Migrate Some Jira Data