Page MenuHomePhabricator

<spike>[needs grooming] API services deployment plan for Gerrit
Open, HighPublic9 Estimated Story Points

Description

Background/Goal

As AQS 2.0 development nears completion, we need to learn how we will deploy it, and future services. We will need to learn from and collaborate with SystemOps, release engineering, legal, security, and others as we design this process. Our goal is that the deployment process is scalable.

User stories
  • As an API Platform engineer, I want to have clear documentation about how to deploy services, so that I can plan ahead and deploy with confidence.
Considerations
  • What capabilities are critical vs nice-to-have?
  • What capabilities have the biggest impact?
  • What capabilities have the most dependencies?
  • How can we scope this work in a way that delivers incremental benefits?
  • What value does this deployment process provide?
  • What can we learn in this process that we can apply to future API Guidelines?
Requirements
  • A brief description of what the use case is
  • Review existing documentation
  • Analyze possible deployment paths
  • Bullet list of what the related infrastructure capabilities are
  • Define known tasks including definition of done for each
  • Define drivers for each task
  • List of potential blockers in the process
  • List of what this project blocks (if anything) and why.
  • Organized list of Documents and links to existing artifacts, tickets, etc.
  • Open questions/additional areas to explore

Upon completion of the above:

  • Tech Lead & Engineering Manager review together
    • Bullet list of potential/expected development/engineering impacts (both positive and negative)
    • Bullet list of potential/expected design impacts (both positive and negative)
    • Describe WHAT phases or chunks of work could be done and by WHO in a DACI
    • Add the process to the workflows swimlane diagram
    • List any dependencies we have on any tools, teams, etc.
    • Meeting set to review scope with Product Manager
  • Once scope completed and agreed to, next steps defined (ex: create Epic w/ subtasks)
Acceptance criteria
  • Process defined is scalable, when possible
  • It is clear how the target capability impacts WMF staff and wider technical community
  • Impact can be delivered incrementally, without having to wait months or to the end of a project to see impact
  • Non-technical audiences can understand why this work matters and how it impacts the community
  • The process is added to the workflows swimlane diagram
Links

Event Timeline

VirginiaPoundstone renamed this task from <spike> Plan how we will deploy services to <spike> API services deployment plan.Sep 21 2022, 7:41 PM
VirginiaPoundstone moved this task from Incoming to Must do now on the API Platform board.

Very Important:: Deployments are run by Volunteer community

So schedule enough time for deployment enough for the correspondence

JArguello-WMF set the point value for this task to 9.Nov 30 2022, 2:39 PM
Atieno renamed this task from <spike> API services deployment plan to <spike> API services deployment plan for Gerrit.Jan 30 2023, 3:21 PM
JArguello-WMF renamed this task from <spike> API services deployment plan for Gerrit to [Needs grooming] <spike> API services deployment plan for Gerrit.Feb 1 2023, 8:20 PM

We need to break this one into smaller pieces of work. We'll do this during grooming.

Next steps for this task:

  • Pull it into this sprint
  • Expound on the current outlined processes
  • Send the doc to team members for review

The deliverable is something we can hand over to an Engineer to follow when deploying a new Service/API

VirginiaPoundstone renamed this task from [Needs grooming] <spike> API services deployment plan for Gerrit to <spike> API services deployment plan for Gerrit.Feb 11 2023, 8:32 AM

Atieno has started to Expound/add flesh to the current skeleton deployment playbook

JArguello-WMF renamed this task from <spike> API services deployment plan for Gerrit to <spike>[needs grooming] API services deployment plan for Gerrit.Feb 21 2023, 9:55 PM
JArguello-WMF edited projects, added Epic, API Platform; removed API Platform (Sprint 05).

Update notes from review sync with @apaskulin

  • The documentation is not for the deployment process, it's a prep process before handover to the SRE team for deployment, branding it as a "deployment process" sends the wrong signals and assumes it's the actual deployment work. So we should frame it as a new service cheat sheet
  • We should document current process and not what we wish the process was. In as much as improvements can be made to current system, documenting the improved workflow does not legitimize it
  • Link out to docs that lives somewhere else
  • In addition to above we should not create processess for teams, they should create and publish their own, for example we have in our current doc to ping Release Engineering for new Gerrit repos so Release Engineering might start receiving 1,000 daily repo requests from a communication what we have broadcast yet this is not the officially documented process and they may not be aware of this new responsibilty we have placed on them
  • If we are to publish this to the wider community then the decision points should be all inclusive. For example the Community may not have access to internal team members in the DACI like Release Engineering
  • It's never advisable to have 2 copies of documentation, in this case we would have one copy for internal Engineers and second copy for Community. But it might be helpful to publish an internal version
  • Publishing the shortcuts would ofcourse lead everyone to the shortcut, noone would choose the 10 day option yet there's a 10 minutes one - but the shortcuts are not the official processess

Notes from sync with @FJoseph-WMF and @apaskulin

Action items for @Atieno

  • Go through the policies doc see how it align to what's on the doc
  • Remove direct pinging people on slack(back doors)
  • Instead Reference public intake forms for the different teams - teams official entry points
  • A good fit for the doc would be Wikitech as a brand new page, not edits to a pre-exisiting page