Diff for "PolicyAndProcess/Downtime"

Not logged in - Log In / Register

Differences between revisions 3 and 4
Revision 3 as of 2009-09-09 20:35:04
Size: 4272
Editor: flacoste
Comment:
Revision 4 as of 2009-09-17 22:21:34
Size: 4278
Editor: kiko
Comment: wording and edits
Deletions are marked like this. Additions are marked like this.
Line 84: Line 84:
  merge proposal on Launchpad. The release manager simply add a review of type   merge proposal on Launchpad. The release manager simply adds a review of type
Line 87: Line 87:
  * Any issues found during QA that is bound to create OOPSes, time outs or be
  v
ery inconveniencing to users are good candidate for release-critical
  approval
.
  * Good candidates for release-critical approval are issues found during QA that are
 
bound to create OOPSes and time outs or otherwise significantly inconvenience our end-users.
Line 91: Line 90:
  * Apart special exceptions discussed with the project lead, only bug fixes   * Apart from special exceptions discussed with the project lead, only bug fixes
Line 94: Line 93:
  * If there is no way that the developer can QA his change on staging through
  the normal update procedure before the roll-out, for complex changes, it's
 
recommended to ask a cow-boy of the branch on staging to QA it before
 
approval.
  * If there is no way for the developer to QA his change on staging through
  the normal update procedure before the roll-out, it's recommended to request
 
a cowboy of the branch on staging to QA it before approval.
Line 99: Line 97:
  * For the second roll-out, any change requiring database changes should go
  through the project lead, since a re-roll with a DB updates creates
significant down-time for our users.
  * For the second roll-out (a.k.a. the re-roll), any change requiring database changes should go
  through the project lead, since DB updates seriously increase the length of the upgrade window.
Line 106: Line 103:
  * Engineer apply in advance for one cycle.   * Engineers apply in advance for one cycle.
Line 111: Line 108:
  * The actual roll-out time is determined based on the release-manager
 
location:
  * The actual roll-out time is determined by the release-manager's location:
Line 119: Line 115:
  * No engineer can apply for the role more than twice a year.   * No engineer should apply for the role more than twice a year.

  • Process Name: Release Manager Rotation Process

  • Process Owner: Francis Lacoste

  • Parent Process/Activity: None

  • Supported Policy: None

Process Overview

Each cycle a different engineer takes the role of release manager. The release manager coordinates with the release team and all team leads to ensure that the tree is ready for the roll-out and that all critical bugs are in or worked-around.

Back-up release managers are the two RMs from the previous two cycles.

Release Manager inputs

  • Email and IRC messages from engineers and team leads.
  • OOPS report
  • Merge proposal

Activities

Before the roll-out

  • At the beginning of week 4. Make sure that release-critical was turned on in PQM.
  • Update the #launchpad-dev topic to list him as release-manager.

  • Maintain the list of the Current roll-out blockers

    • The release manager should poll the team leads and QA engineers continuously to ensure that the list of release blockers is up to date. All bugs that are likely to cause lots of OOPSes, time outs or prevent several users from working are good CRB candidates. It's a good idea to subscribe yourself to the page.
  • Make sure that developers are assigned to all problems we want to fix.
  • Review release-critical merge proposals.

On the day before the roll-out

  • Request that landing to the devel branch be closed. (All changes should on the last day be merged through db-devel.)

On the day of the roll-out

  • Chase up Current Rollout Blockers and any other pending release-critical fixes.

  • Remind people that all changes need to be in buildbot for 6 hours before the roll-out time.

  • In the case of failures, it's best to roll-out the last-known-good-build rather than delaying the release. The cut-off point to decide which revision

    to roll out is 2 hours before the scheduled release.

After the roll-out

  • With the QA engineers, review the OOPS reports.
    • All common OOPSes are candidates for more release-critical fixes and scheduling another roll-out.
  • Prepare and schedule any necessary re-roll.
  • When a re-roll is needed, same activities than in the pre-roll out case.
  • Open the tree, when the released version is fine for the next cycle.
  • The release-manager need to select the next release manager.

Release critical policy

  • To apply for a release-critical approval, you must have a reviewed merge proposal on Launchpad. The release manager simply adds a review of type

    release-critical to the merge proposal.

  • Good candidates for release-critical approval are issues found during QA that are bound to create OOPSes and time outs or otherwise significantly inconvenience our end-users.
  • Apart from special exceptions discussed with the project lead, only bug fixes should be granted release-critical approval.
  • If there is no way for the developer to QA his change on staging through the normal update procedure before the roll-out, it's recommended to request a cowboy of the branch on staging to QA it before approval.
  • For the second roll-out (a.k.a. the re-roll), any change requiring database changes should go through the project lead, since DB updates seriously increase the length of the upgrade window.

Scheduling

  • Engineers apply in advance for one cycle.
  • They are selected by the previous release manager. Once selected, their name

    is put on the Launchpad Production Status page.

  • The actual roll-out time is determined by the release-manager's location:
    • Location

      Roll out time

      Americas

      00:00UTC

      Europe

      09:00UTC

      Asia/Pacific

      00:00UTC

  • No engineer should apply for the role more than twice a year.

PolicyAndProcess/Downtime (last edited 2011-06-06 22:02:02 by flacoste)