Upgrade Bb9 Ku Leuven 2 Developers

25
Upgrade je building blocks naar BB 9.0 Implicaties van de upgrade voor developers Wim Machiels

description

Nederlandstalige Blackboard Usergroup - Bijeenkomst 24 maart 2010 - Leuven. Presentatie KULeuven Deel 2 Development

Transcript of Upgrade Bb9 Ku Leuven 2 Developers

Page 1: Upgrade Bb9 Ku Leuven 2 Developers

Upgrade je building blocks naar BB 9.0

Implicaties van de upgrade voor developers

Wim Machiels

Page 2: Upgrade Bb9 Ku Leuven 2 Developers

Upgrade Timeline

Cont.Integration Develop-ment Dry Run Upgrade Morning

afterInventory

March 2009 – May 2009

October 2009 – January 2010

January 31st – February 13th

February 14th – 15 th

February 15th – ….

90 days 120 days 14 days 2 days +30 days

200 MD 250 MD 60 MD 12 MD 130 MD

• Development only• 50% upgrade – 50% maintenance/other projects• 652 MD• Mid December: upgrade K-12 site

Page 3: Upgrade Bb9 Ku Leuven 2 Developers

Upgrade Timeline

Cont.Integration Develop-ment Dry Run Upgrade Morning

afterInventory

March 2009 – May 2009

October 2009 – January 2010

January 31st – February 13th

February 14th – 15 th

February 15th – ….

90 days 120 days 14 days 2 days +30 days

385 MD 515 MD 60 MD 12 MD 130 MD

Page 4: Upgrade Bb9 Ku Leuven 2 Developers

• Why ?

Versioning system

getUser()

returns users

Developer b:

getUser()

returns users

Developer a:

getUser()

returns users

checkout

Continuous Integration

Page 5: Upgrade Bb9 Ku Leuven 2 Developers

• Why ?

Versioning system

getUser()

returns ???

Developer b:

getUser()

returns instructors

Developer a:

getUser()

returns students

commit

Continuous Integration

Page 6: Upgrade Bb9 Ku Leuven 2 Developers

• Why ?

Versioning system

getUser()

returns ???

Developer b:

getUser()

returns instructors

Developer a:

getUser()

returns students

commit

Continuous Integration

Original Developer:

testGetUser()

Build failure

Page 7: Upgrade Bb9 Ku Leuven 2 Developers

Continuous integration: The Players

• Source code– incremental changes are stored – trunk, tags

• Contains all projects, monitors subversion for changes, starts build cycle

• Manages build– build cycle (clean, compile, test, package,

deploy, integration-test, ?web-test?) – dependencies (3d party, in-house, blackboard)– parent pom– plugins

invivodeploy plugin

Page 9: Upgrade Bb9 Ku Leuven 2 Developers

10 Practices of CI (M Fowler)

• Maintain a Single Source Repository • Automate the Build• Make Your Build Self-Testing• Everyone Commits To the Mainline Every Day• Every Commit Should Build the Mainline on an

Integration Machine• Keep the Build Fast• Test in a Clone of the Production Environment• Make it Easy for Anyone to Get the Latest

Executable• Everyone can see what's happening• Automate Deployment

V

V

+/-V

+/-V

V

V

+/-V

V

V

V

Page 10: Upgrade Bb9 Ku Leuven 2 Developers

Upgrade Timeline

Cont.Integration Develop-ment Dry Run Upgrade Morning

afterInventory

March 2009 – May 2009

October 2009 – January 2010

January 31st – February 13th

February 14th – 15 th

February 15th – ….

90 days 120 days 14 days 2 days +30 days

200 MD 250 MD 60 MD 12 MD 130 MD

Page 11: Upgrade Bb9 Ku Leuven 2 Developers

• Main goal: 2.0 version – Compiles (jspc): escape “ in scriptlets– “deployable”– Tagged in SVN

• Trac ticets for every (old&new) bug or incompatibility• Time estimation• Manual testing

Inventory phase

Page 12: Upgrade Bb9 Ku Leuven 2 Developers

Inventory phase

Page 13: Upgrade Bb9 Ku Leuven 2 Developers

Upgrade Timeline

Cont.Integration Develop-ment Dry Run Upgrade Morning

afterInventory

March 2009 – May 2009

October 2009 – January 2010

January 31st – February 13th

February 14th – 15 th

February 15th – ….

90 days 120 days 14 days 2 days +30 days

200 MD 250 MD 60 MD 12 MD 130 MD

Page 14: Upgrade Bb9 Ku Leuven 2 Developers

• Main goal: 2.x version – Most visibele blocks > bbng-ified– Tagged in SVN– Approved by software consultants Toledo

• Detailed Excel planning• Documentation

• http://www.edugarage.com/display/BBDN/Documentation• Watch out for faulty documentation! Cover BB9, content BB8

• http://www.edugarage.com/display/BBDN/Impact+of+V9+on+Blackboard+Developers+Overview

Development phase

Page 15: Upgrade Bb9 Ku Leuven 2 Developers

Development phase

Page 16: Upgrade Bb9 Ku Leuven 2 Developers

Development phase

• Problems & Pitfalls– Logproblem– Backend scripts contextManager.setContext(bbHost)– Parts Api change (Context content system)– Parts Api became deprecated (BbList)– NG/UI Tags don ‘t mix well– Some Tags break (search tag)

Page 17: Upgrade Bb9 Ku Leuven 2 Developers

Upgrade Timeline

Cont.Integration Develop-ment Dry Run Upgrade Morning

afterInventory

March 2009 – May 2009

October 2009 – January 2010

January 31st – February 13th

February 14th – 15 th

February 15th – ….

90 days 120 days 14 days 2 days +30 days

200 MD 250 MD 60 MD 12 MD 130 MD

Page 18: Upgrade Bb9 Ku Leuven 2 Developers

• Dry run server (provided by linux team)• Maven-deploy-plugin used in script form• Timing:

– +14 hours for 80 undeploy or deploy actions !– Oracle EM: Tuned poorly performant query for removing

building blocks with modules– Reduced to 90 minutes (undeployed, downloaded & deployed)

Dry run

Page 19: Upgrade Bb9 Ku Leuven 2 Developers

Upgrade Timeline

Cont.Integration Develop-ment Dry Run Upgrade Morning

afterInventory

March 2008 – May 2008

October 2008 – January 2008

January 31st – February 13th

February 14th – 15 th

February 15th – ….

90 days 120 days 14 days 2 days +30 days

200 MD 250 MD 60 MD 12 MD 130 MD

Page 20: Upgrade Bb9 Ku Leuven 2 Developers

Upgrade

• Custom Login (40 minutes)• Tune the undeploy query (40 minutes)• Undeploy and deploy everything (100 minutes)• Post-deploy tasks & does-it-smoke (60 minutes)• Done after 240 minutes

Page 21: Upgrade Bb9 Ku Leuven 2 Developers

Upgrade Timeline

Cont.Integration Develop-ment Dry Run Upgrade Morning

afterInventory

March 2008 – May 2008

October 2008 – January 2008

January 31st – February 13th

February 14th – 15 th

February 15th – ….

90 days 120 days 14 days 2 days +30 days

200 MD 250 MD 60 MD 12 MD 130 MD

Page 22: Upgrade Bb9 Ku Leuven 2 Developers

Morning after

• Custom written patches, most of them validated by Blackboard

• Specific for our system• High risk• All of them reported to blackboard• Reach out to your TSM !

Page 23: Upgrade Bb9 Ku Leuven 2 Developers

• Oracle tuning (EM)• Tomcat tuning (jvm parameters)• character encoding issues in various places • A HREF hyperlinks corrupt (SP3)• Announcements module: heavy query• database error when deleting announcements in

unavailable course• Group blog and journal: disable possibility of

anonymous posts• some blackboard tools use Custom Authentication, but

the jars are missing on the classpath

Morning After

Page 24: Upgrade Bb9 Ku Leuven 2 Developers

Morning after

• Cached documents in IE• AS-134392 'Not Implemented' popup• bb-nautilus-log.txt grows at 2G/hr• Add runtime permission setContextClassLoader• content download in IE: yellow bar and redirect• What ‘s new fails

Page 25: Upgrade Bb9 Ku Leuven 2 Developers

Morning after

Not fixed:– No mails sent from announcement– Personalized notifications settings do not work– Calculated Formula with non English Course Locale– Text editor issues– Course users cannot view group journal posts from previous posts– Problem copying learning module & Some folders cannot be

copied properly– …