New service: Normandy Devtools
Categories
(Cloud Services :: Operations: Normandy, task)
Tracking
(Not tracked)
People
(Reporter: mythmon, Assigned: brian)
Details
Service name
normandy-devtools
Who's on the team
- mcooper@mozilla.com
- rdalal@mozilla.com
- ttran@mozilla.com
- leplatrem@mozilla.com
- bwong@mozilla.com (team manager)
What the service does, and for whom
Provides a UI to navigate the Normandy API, including viewing and potentially editing. Editing is undecided at this point, but if it is involved it will mean authentication with Auth0 and using users' local VPN connections to communicate with the Normandy admin servers.
The expected audience is the Experiments operations team (Shell, Mythmon, Rehan, Tif, etc) and experiment owners from around the company. The overall load is expected to be quite low.
NDT is the replacement for the existing Delivery Console, which has a similar role but an architecture that we decided wasn't worth continuing. NDT is a hybrid solution. It can (soon) be deployed as a webapp, but is primarily intended to be used as a Firefox extension, which gives it increased functionality.
Current status
Currently only the extension version of NDT has been released. The next release of NDT is expected to have a functioning webapp version. We have no specific infrastructure for how to build that version, other than the generated static files.
Legal and Security approvals
No legal or security consultation has been done. There is no RRA. I (mythmon) believe that the service doesn't need these, but I'll be happy to do the leg work if we don't have consensus about that. Since this service contains no data of its own except minimal authentication details in user's browsers, we rely on the security of the backend services (Normandy, Experimenter, etc).
Production DNS
No preference. normandy-devtools.services.mozilla.com is fine
Communication preferences
There is no Bugzilla component. Github issues are preferred, at mozilla-extensions/normandy-devtools. Security bugs may be filed in the Bugzilla component Firefox::Normandy Server.
Conversation should take place in the #normandy Slack channel. Individual but public pings should be used instead of a group ping.
Mythmon will take responsibility for informing CloudOps of major changes to usage.
End-User Communication
Outages
Outage notifications should go in #normandy on Slack.
Downtime impact and risk preferences
Outages are acceptable. The primary users of Normandy Devtools use the site as an extension. The web hosted version is primarily for read-only access, and is not critical. In general, if there are problems that cause an outage, we will prefer to roll forward.
Versioning and changelogs
Versions are managed as Github releases, and changelogs are published there. #delivery-notifications on Slack should be used for deploy notifications. Semantic versioning is used.
Offboarding
Normandy Devtools should continue being hosted as long as Normandy Server is still serving recipes to Firefox, unless Normandy Devtools is replaced by another tool.
Code Considerations
NDT is a static website with no dedicated configuration or backends. It has the ability to, at runtime, be pointed at any of the standard Normandy environments (dev, stage, prod, local). It doesn't require special build steps that vary by environment. A simple static site hosting solution, such as S3 will be suffice.
| Assignee | ||
Comment 1•5 years ago
|
||
HI Mythmon,
This should be straightforward for us to set up. When do you hope to have the new site online?
After we spin up the underlying resources, you can build and deploy the site in CircleCI using these steps- https://github.com/mozilla-services/cloudops-infra-terraform-modules/tree/master/static-website#release-process . I will try to find an example workflow that does that for you. I'll need permission in CircleCI to configure the AWS secrets as environment variables on the NDT project.
Even though it's just a static site, please file an RRA request
| Assignee | ||
Comment 2•5 years ago
|
||
Here's an example circleci job: https://github.com/mozilla/FirefoxColor/blob/master/.circleci/config.yml#L47-L73
| Reporter | ||
Comment 3•5 years ago
•
|
||
I typed this up and never actually sent it. Doh!
We're aiming to have the work that includes the new site done by October 19th, and I've filed an RRA request in bug 1668866.
I've invited you to the Github repo with enough access to add the AWS credentials, and I'll work on adding a workflow similar to the FirefoxColor one.
| Assignee | ||
Comment 4•5 years ago
|
||
Sounds good!
The infra for this should be quick for me to spin up, so I'll plan to do that after the RRA.
| Assignee | ||
Comment 5•5 years ago
|
||
I plan to spin up the infra next week.
After doing that I'll check off the relevant items at https://github.com/mozilla-extensions/normandy-devtools/issues/573
| Assignee | ||
Comment 6•5 years ago
•
|
||
https://normandy-devtools.services.mozilla.com/ is up.
The infra code is https://github.com/mozilla-services/cloudops-infra/pull/2662
I configured https://app.circleci.com/settings/project/github/mozilla-extensions/normandy-devtools/environment-variables to have the same environment variable names as Firefox Color.
Let me know if you run into any issues.
Description
•