Page MenuHomePhabricator

Allow scap sync to deploy gradually
Open, MediumPublic

Description

As a very first step towards canaries, we would like scap sync to extent is current canary functionality, and deploy gradually, for instance:

  • deploy to 10% and wait X minutes
  • deploy to 30% and wait X minutes

<snip>

  • deploy to 100%

Our gain would be to get our feet wet with running two versions of MediaWiki for longer and see what issues this brings

Related tasks:

  • Scap canary has a shifting baseline T183999

Event Timeline

jijiki triaged this task as Medium priority.Dec 17 2018, 7:19 PM
jijiki created this task.

From our meeting yesterday:

  • To do progressive deploys of the train, we just have to modify sync-wikiversion and keep track of its completion (by looking at the version of the php file)
  • For more general progressive deploys, both of the follwing things must happen:
    • Reorganization of the code we deploy in production with a clear separation of components (mediawiki+extension branches, docroots/static assets, wmf-config)
    • Removal of the sync-file functionality

Some things to consider while implementing this:

  • We have a predefined sets of canary hosts in /etc/dsh/group/mediawiki-appserver-canaries and /etc/dsh/group/mediawiki-api-canaries (puppet)
  • We have role::mediawiki::canary_appserver and mediawiki::appserver::canary_api; they simply include class::scap::scripts
    • scap runs eg modules/service/logstash_checker.py on a canary server
  • There are outdated references and possible code parts (eg references to tin.eqiad.wmnet) which are causing some confusion
  • Canary wait time is option canary_wait_time which can be overriden
  • Scap2 and scap3 are in the same repo

Additional ideas:

  • We could use conftool directly so to access server weights and calculate percentage of traffic
    • This might need changes in development environment (scap-vagrant)