AUS/Status:08-12-2010

From MozillaWiki
< AUS
Jump to: navigation, search

I'll fix this later.

Goals:

   Data center support: achieving a reasonable amount of lag between multiple data centers (text files = crappy, db = not), have multiple aus servers
   Better integration with release automation tools
   Less overhead per release and reducing chance for human error
   Supreme confidence FTW that AUS is doing what it is supposed to be doing
   Transition to new system without any downtime or regressions


This coming week:

   nthomas, catlee: sketch out what we'd do to create a system separate from patcher -- what would it look like, what's the scope?
   morgamic: jump on schema, get additional resources for API and test migration tasks
   morgamic: schedule check-ins and file bugs for tasks below, create schedule somewhere (wiki, spreadsheet, whatever)


August Tasks:

   Agree on a basic schema.  Make it be so, document, check in somewhere.
   Config -> other data store to  avoid having code updates for every release and help witha automation  (don't just store it in a config.php file).
   Audit trail: be able to track what happens with updates over time to offer the capability of doing rollbacks.
   Create new tool to send update information to AUS3 data store.
   Move tests out of fitnesse so they can be run from the command line using pyunit.


September Tasks:

   Continuous integration for tests using hudson or equivalent.
   Create API that allows us to push snippets to test/beta/release channels via command line or other brokering/messaging
   Admin goals: be able to disable  update easily ('enabled' flag in db?).  Permissions (release drivers  should be able to push updates to beta/release channel)
   Testing: grab live data from aus2 and see if aus3 gives same results
   Add hook for NS/Zeus to clear cache when an update gets pushed (and memcache, if applicable)


Schema Ideas

  • https://wiki.mozilla.org/AUS:v3
  • collapsed seems the easiest; which will be less overhead especially if we're keying off of product/version/channel 99% of the time
  • how do we store metadata for the update payload?
    • blob in the main table?
    • foreign key to another table (updates table, plus colums for each value)

Problems to solve

  • reduce duplicated data
  • set up wildcard rules to handle the common case

Rules

  • 1 step up gets the partial
  • os block gets checked first
  • throttle gets checked first (global)
  • per-product throttle

New attributes

  • Rob strong has added more key/value pairs to the update XML