upgrade dos and don'ts for jira and confluence - atlassian summit 2010
DESCRIPTION
Upgrade Dos and Don'ts for JIRA and Confluence Jeff Curry, AtlassianTRANSCRIPT
11
Upgrade Dos and Don'tsfor JIRA + Confluence
Jeff Curry, Technical Support, Atlassian
22
JIRA Master!
33
Agenda• Case review
• Best practices• Prevention• Watch out!
Questions?
•
44
Best Practices - No Cowboys Allowed
55
Case #1 of 12 - Backup schmakups
6
• Upgraded with production server, no backups
• Canʼt start old version either
6
Case #1 of 12 - Backup schmakups
6
• Upgraded with production server, no backups
• Canʼt start old version either
6
Pro Tip #1 of 12 – Backup, cowboy!• Backup: Application directory, data directory, database
• Create an upgrade checklist
77
Pro Tip #1 of 12 – Backup, cowboy!• Backup: Application directory, data directory, database
• Create an upgrade checklist
7
Confluence JIRA
Layout and Menu Look and feel
Search Issue Navigator
Permissions Workflow transitions
Attachments Attachment links
Plugins Plugins
7
Case #2 of 12 – Murphyʼs Law at work• Server crashed with sound backup strategy in place
88
Case #2 of 12 – Murphyʼs Law at work• Server crashed with sound backup strategy in place
8
Restore?
8
Pro Tip #2 of 12 - Practice restores
9
• Preferably not when production is down…
9
Case #3 of 12 –
• Remote operations fail to complete after Confluence upgrade
1010
Case #3 of 12 –
• Remote operations fail to complete after Confluence upgrade
• Firewall?
1010
Case #3 of 12 –
• Remote operations fail to complete after Confluence upgrade
• Firewall?
• Network?
1010
Case #3 of 12 –
• Remote operations fail to complete after Confluence upgrade
• Firewall?
• Network?
• Virus scanner?
1010
Case #3 of 12 –
• Remote operations fail to complete after Confluence upgrade
• Firewall?
• Network?
• Virus scanner?
• RPC plugin?
1010
Case #3 of 12 –
• Remote operations fail to complete after Confluence upgrade
• Firewall?
• Network?
• Virus scanner?
• RPC plugin?
• CUSTOMIZIATION!
1010
Pro Tip #3 of 12 - Track your changes• Keep rolling log
• Confluence page
Inventory at upgrade time• Modz_detector ( Administration -> System Info )
1111
Pro Tip #3 of 12 - Track your changes• Keep rolling log
• Confluence page
Inventory at upgrade time• Modz_detector ( Administration -> System Info )
11
JIRAConnie
find . –newer viewsfind . –newer users
11
Prevention – Better safe than sorry
1212
Case #4 of 12 – Plugin safari
13
After upgrading in testing JIRA no longer starts
13
Case #4 of 12 – Plugin safari
2010-04-30 09:44:38,151 main FATAL [atlassian.jira.upgrade.ConsistencyLauncher] An Error occurred during ConsistencyLauncher servlet context initialisation - com.atlassian.plugin.DefaultModuleDescriptorFactory.<init>(Lcom/atlassian/plugin/hostcontainer/HostContainer;)java.lang.NoSuchMethodError: com.atlassian.plugin.DefaultModuleDescriptorFactory.<init>(Lcom/atlassian/plugin/hostcontainer/HostContainer;)
13
After upgrading in testing JIRA no longer starts
13
Case #4 of 12 – Plugin safari
14
assign-from-customfield-plugin-1[1].3.jaratlassian-configurableobjects-0.9.jaratl-jira-subversion-plugin-0.10.4.1.jaratlassian-plugins-0.23.2.jaratlassian-tagutil-0.1.jardwr-2.0.5.jarjavamail-1.3.3.jarjira-bamboo-plugin-2.3.1.jarjira-calendar-plugin-1.9.jarjira-charting-plugin-1.4.1.jar
jira-dashboard-sharing-1[1].1-JIRA3.11.jarjira-fisheye-plugin-2.2.4.jarjira-greenhopper-plugin-4.3.1.jarjira-misc-workflow-extensions-1[1].3.jarjira-toolkit-0.7.30.jarjregex-1.2_01.jarlanguage_default.jarldapsdk-4.1.jarmkk-jira-plugin-1[1].4.0-Jira-3.10.jartdt-easyadmin-plugin-1.1.jar
14
Pro Tip #4 of 12 - Know your plugins
15
• System
• Canʼt mess with ʻem
• Bundled
• Can be upgraded independently, disabled
• Third-party
• Skyʼs the limit
15
Pro Tip #4.5 of 12 – Upgrade your plugins
• The old way…
1616
Pro Tip #4.5 of 12 – Upgrade your plugins
• The old way…
1717
Pro Tip #4.5 of 12 – Upgrade your plugins
• The new way!
1818
Case #5 of 12 – Major upgrades• Attachments not being converted as advertised
1919
Case #5 of 12 – Major upgrades• Attachments not being converted as advertised
• XML not suitable for large restores
1919
Case #5 of 12 – Major upgrades• Attachments not being converted as advertised
• XML not suitable for large restores
Attachment change with 2.7.3
1919
Universal Pro Tip - RTFM Consult documentation
• Release notes• Upgrade guide
• [ This half intentionally left blank ]
2020
Pro Tip #5 of 12 -
• Communicate with stake holders
• Evaluate milestone releases
• New release cycle- 3-4 months
2121
Case #6 of 12 – Little pestering flies…• Preserving old-school navigation in JIRA 4.1+
2222
Pro Tip #6 of 12 – Engage your users• Involve in upgrade decision
• Invite them to perform QA ( in testing! )
2323
Case #7 of 12 – Gadgets load slowly• After upgrading to JIRA 4.0 gadgets take forever to load
2424
Case #7 of 12 – Gadgets load slowly• After upgrading to JIRA 4.0 gadgets take forever to load
• Reverse-proxy?
2424
Case #7 of 12 – Gadgets load slowly• After upgrading to JIRA 4.0 gadgets take forever to load
• Reverse-proxy?
• Server resources?
2424
Case #7 of 12 – Gadgets load slowly• After upgrading to JIRA 4.0 gadgets take forever to load
• Reverse-proxy?
• Server resources?
• Client config?
2424
Case #7 of 12 – Gadgets load slowly• After upgrading to JIRA 4.0 gadgets take forever to load
• Reverse-proxy?
• Server resources?
• Client config?
• Profiling data looking good…
2424
Case #7 of 12 – Gadgets load slowly• After upgrading to JIRA 4.0 gadgets take forever to load
• Reverse-proxy?
• Server resources?
• Client config?
• Profiling data looking good…
• 1/5 second – 1 second page load time
2424
Pro Tip #7 of 12 – Test new features• Review release summary pages
• http://confluence.atlassian.com/display/DOC/Confluence+Release+Summary• http://confluence.atlassian.com/display/JIRA/JIRA+Release+Summary
Encourage key stakeholders to evaluate
2525
Watch out!
2626
Case #8 of 12 – The devil is in the details
• Setup new JIRA for upgrade, receiving “404 Not Found”
2727
Case #8 of 12 – The devil is in the details
• Setup new JIRA for upgrade, receiving “404 Not Found”
27
2010-04-20 16:07:38,561 main ERROR [jira.appconsistency.db.DatabaseConsistencyCheck] There was a SQL exception checking for database driver correctness. Skipping.org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot create JDBC driver of class 'com.mysqljdbc.Driver' for connect URL 'jdbc:mysql:localhost/jiradb?autoReconnect=true&useUnicode=true&characterEncoding=UTF8'
27
Pro Tip #8 of 12 - Use the GUI!
2828
Case #9 of 12 – The complex upgrade
2929
Case #9 of 12 – The complex upgrade• Receiving 404 page after upgrading JIRA and Confluence
• New• Hardware• Windows XP -> Debian linux• Standalone -> EAR/WAR
• Trouble with configuring• LDAP• SSL
• Days to resolve…29
29
Pro Tip #9 of 12 –
3030
Pro Tip #9 of 12 –
• Deploy JIRA on new server, restore data
3030
Pro Tip #9 of 12 –
• Deploy JIRA on new server, restore data
• Deploy Confluence, restore data
3030
Pro Tip #9 of 12 –
• Deploy JIRA on new server, restore data
• Deploy Confluence, restore data
• KB article to fix class loading
3030
Pro Tip #9 of 12 –
• Deploy JIRA on new server, restore data
• Deploy Confluence, restore data
• KB article to fix class loading
• Configure SSL• Mail server• LDAP server• Tomcat
3030
Pro Tip #9 of 12 –
• Deploy JIRA on new server, restore data
• Deploy Confluence, restore data
• KB article to fix class loading
• Configure SSL• Mail server• LDAP server• Tomcat
• Configure LDAP
3030
Case #10 of 12 –
Duplicate mail notifications
3131
Case #10 of 12 –
Duplicate mail notifications
# Testing• Production data• Jelly scripts• Workflow transitions
Forgot notification schemes
3131
Pro Tip #10 of 12 –
• bin/setenv.sh:
• Remove mail server in admin UI
32
#DISABLE_NOTIFICATIONS=" -Datlassian.mail.senddisabled=true -Datlassian.mail.fetchdisabled=true-Datlassian.mail.popdisabled=true”
32
Confluence support #1 headache
3333
Case #11 of 12 – Cutting corners
3434
Case #11 of 12 – Cutting corners• Step 1 – Upgrade Confluence
3434
Case #11 of 12 – Cutting corners• Step 1 – Upgrade Confluence
• Step 2 – Old DB -> New Confluence
3434
Case #11 of 12 – Cutting corners• Step 1 – Upgrade Confluence
• Step 2 – Old DB -> New Confluence
• Step 3 – Works good enough
3434
Case #11 of 12 – Cutting corners• Step 1 – Upgrade Confluence
• Step 2 – Old DB -> New Confluence
• Step 3 – Works good enough
• …
3434
Case #11 of 12 – Cutting corners• Step 1 – Upgrade Confluence
• Step 2 – Old DB -> New Confluence
• Step 3 – Works good enough
• …
# Step 4 – Hmmm… attachments missing
3434
Case #11 of 12 – Cutting corners• Step 1 – Upgrade Confluence
• Step 2 – Old DB -> New Confluence
• Step 3 – Works good enough
• …
# Step 4 – Hmmm… attachments missing
• Step 5 – Contact support, failing to mention this for awhile
3434
Case #11 of 12 – Cutting corners• Step 1 – Upgrade Confluence
• Step 2 – Old DB -> New Confluence
• Step 3 – Works good enough
• …
# Step 4 – Hmmm… attachments missing
• Step 5 – Contact support, failing to mention this for awhile
• Step 6 – ???
3434
Pro Tip #11 of 12 - Donʼt cut corners! Donʼt make assumptions
Freeze data for upgrade process
• Perfect practice makes perfect
3535
Case #12 of 12 – $*#&$! Gadget loopback!
• Created internal checklist and tested, tested, tested!
3636
Case #12 of 12 – $*#&$! Gadget loopback!
• Created internal checklist and tested, tested, tested!
3636
Pro Tip #12 of 12 –
3737
Pro Tip #12 of 12 –
• Reverse-proxy
• Load-balancer
• More?
• Exit strategy
3737
Summary
Best Practices
38
Prevention Watch out!
38
Summary
Best Practices
38
Prevention Watch out!
Go home, upgrade JIRA to 4.1 and Confluence to 3.2
38
Resources
3939
Resources• forums.atlassian.com
• confluence.atlassian.com• confluence.atlassian.com/display/JIRAKB/JIRA+Knowledge+Base+Home• confluence.atlassian.com/display/CONFKB/Confluence+Knowledge+Base+Home
• jira.atlassian.com
• support.atlassian.com
• Pssst… Freenode IRC #atlassian, #atlassiandev
3939