Upgrade Bb9 Ku Leuven 2 Developers
-
Upload
jan-de-baere -
Category
Education
-
view
945 -
download
1
description
Transcript of Upgrade Bb9 Ku Leuven 2 Developers
Upgrade je building blocks naar BB 9.0
Implicaties van de upgrade voor developers
Wim Machiels
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
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
• Why ?
Versioning system
getUser()
returns users
Developer b:
getUser()
returns users
Developer a:
getUser()
returns users
checkout
Continuous Integration
• Why ?
Versioning system
getUser()
returns ???
Developer b:
getUser()
returns instructors
Developer a:
getUser()
returns students
commit
Continuous Integration
• Why ?
Versioning system
getUser()
returns ???
Developer b:
getUser()
returns instructors
Developer a:
getUser()
returns students
commit
Continuous Integration
Original Developer:
testGetUser()
Build failure
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
Continuous integration: The Game
Developer a:
getUser()
returns students
invivodeploy plugin
monitors startscommitBuild successful / failed
signals
exposed for download
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
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
• 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
Inventory phase
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
• 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
Development phase
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)
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
• 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
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
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
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
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 !
• 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
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
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– …