Wikimedia Release Engineering Team/SpiderPig/Progress reports/2024-09-13

Report on activities in the SpiderPig project for the week ending 2024-09-13.

[WE6.2.3] Create a new deployment UI

edit
  • Status: on track
  • Progress update on the hypothesis for the week
    • Lifecycle stage: Development
    • Created the initial data model and jobrunner for the deployment UI
      • This is the core of the new system that will interact with the web API and the deployment server itself, and it's a milestone in the project.
      • Per our design discussion last week, the web front-end will communicate with the jobrunner through a queue
      • When a new job is enqueued by the API the jobrunner will run and monitor, sending interaction events back to the queue
      • The web front end will watch for interaction events in the queue.
      • When users respond to interaction events, the web frontend will put a response in the queue
      • The jobrunner will be awaiting a response for the job, find the response in the queue, and apply it to the job
      • Example:
        • You enter a patch for deployment in the web frontend
        • API enqueues the job: scap backport <patch>
        • Jobrunner pulls the job from the queue and executes it, scap backport deploys to test servers. After deploy to testservers, the jobrunner enqueues an interaction: {"message": "Patch <patch> is live on test servers. Please check using wikitech:WikimediaDebug. Continue with sync?", "options": [{"text": "yes", "value": true}, {"text": "no", "value": false}]}
        • Web frontend checks API for pending transactions and presents the message to the user alongside two options: "yes" "no"
        • User clicks "yes", API enqueues a response, jobrunner that is polling for response finds it and sends it to the waiting scap backport job and continues with sync.
  • Any new metrics related to the hypothesis
    • No
  • Any emerging blockers or risks
    • No
  • Any unresolved dependencies - do you depend on another team that hasn’t already given you what you need? Are you on the hook to give another team something you aren’t able to give right now?
    • No
  • Have there been any new lessons from the hypothesis?
    • No
  • Have there been any changes to the hypothesis scope or timeline?
    • No