wiki:PakistanDeploymentCycle

Version 42 (modified by Fran Boon, 14 years ago) ( diff )

--

Pakistan Deployment Cycle

Process

We do daily upgrades of the systems from a single Fabfile script:

  1. Upgrade Live with code release from UAT
  2. Refresh the UAT database with data from Live
  3. Upgrade UAT to Trunk code
  4. Send a notification to the List with a summary of the changes on both Test & Live

Instructions

Login to eden.sahanafoundation.org

1st time:

cd /home/release
fab generate_keys
fab test distribute_keys
fab prod distribute_keys

Subsequently:

cd /home/release
fab prod deploy
fab test deploy

Make a note of any upgrade issues with the migration on Test so that they can be streamlined in tomorrow's migration on Live

Process

  1. Upgrade Live with code release from UAT
  • Read VERSION from UAT to know which revision to pull to live
    • the 'update' script falls back to 'bzr pull' but supports an 'update XXX' arg to 'bzr pull -r XXX'
  • Send a notification to the list (for testers) with a summary of the day's changes: Full list of fixed bugs to be verified, New features to be Tested
  1. Upgrade UAT to Trunk code
  • Send a notification to the list (for users) with a summary of yesterday's code changes: Focussed on new features & notable bug fixes
  1. Refresh the UAT database with data from Live
  • Include 'uploads' folder
  • Need to ensure that User Accounts in Test are not overwritten
  • Need to ensure that Role memberships in Live & Test can be different

Sysadmin ToDo

  • Set deployment_settings on UAT to the same as Prod
  • Enhance Apache Maintenance site
    • allowing access to site through a browser - but using a different name (which we don't publish)
    • improving the text on the maintenance page
      /etc/apache2/sites-available/maintenance
      
  • Extend scripts:
    • ConfigurationGuidelines#Usefulaliases
      pull
      migrate
      (check for conflicts & copy all .THIS over - eiher parse the bzr output or search filesystem - whichever is easier/quicker)
      w2p {CLI web2py load as 'su web2py')
      (Check for migration failures in databases/sql.log)
      migrateoff
      DBsync (tbc)
      
    • Use Fabric:
  • Rename instance as test.pakistan.sahanafoundation.org
    • keep test.eden.sahanafoundation.org as an alias for now
    • add test.sahanafoundation.org as an alias too
  • Create a new dev.pakistan.sahanafoundation.org instance
    • This shouldn't be fully-automated into the upgrades cycle, but does have a script to refresh data from live manually

Notifications can be built with info from the Trac Timeline

Other Tasks

Update script for debian packages: SSH into each &

apt-get update; apt-get upgrade

Use Fabric?

Live

  • Get MapProxy working (basic install on 'geo' done)

Demo

  • Update Demo (whilst keeping the logins there intact - all other data can be dropped)

Trac

  • Investigate a fix or alternative to http://trac-hacks.org/wiki/MathCaptchaPlugin for allowing Trac users to register bugs anonymously whilst not locking out our testing team.
  • Convert from sqlite to PostgreSQL (or MySQL) to improve performance

DeveloperGuidelinesDataMigration

Pakistan

Note: See TracWiki for help on using the wiki.