Upgrade Dos and Don'ts for JIRA and Confluence - Atlassian Summit 2010

Preview:

DESCRIPTION

Upgrade Dos and Don'ts for JIRA and Confluence Jeff Curry, Atlassian

Citation preview

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

Recommended