code-intelligence
code-intelligence copied to clipboard
Separate rollout/staging process for label bot front end and backend
The issue label bot is now divided into a front end and backend.
-
The frontend is the FlaskApp that handles the GitHub webhooks.
- The code for the frontend is in https://github.com/machine-learning-apps/Issue-Label-Bot/tree/536e8bf4928b03d522dd021c0464587747e90a87
-
The backend consists of the microservices
-
Label_Microservice - Reads issues from pubsub; generates predictions and labels them
-
Do we want rollouts of the frontend and backend to be tied together? Should the production instance of the frontend only talk to prod instances of the backend?
By creating multiple pubsub subscriptions we could have staging instances of the backend process production traffic.
How would we handle an issue being processed by both production and staging?
- One option would be that the staging instance wouldn't actually apply the labels
- Staging would just be used to check that workers weren't crashing or throwing errors
An advantage of separating the frontend and backend rollouts is that we'd like to iterate more quickly on the backends since those are the models.
Issue-Label Bot is automatically applying the label kind/question
to this issue, with a confidence of 0.71. Please mark this comment with :thumbsup: or :thumbsdown: to give our bot feedback!
Links: app homepage, dashboard and code for this bot.
Yeah, I suppose it makes sense to separate the front end and back end. Maybe more accurately, we can call it a "reporting service" since the website (mlbot.net) doesn't really have any relationship to the labeling, and could become its own microservice since it just pulls information from a database.
That being said, probably a good place to add analytics and reports regarding the efficacy of the model.
Another thing I just realized is this reporting service is not configured currently to be aware of the different bots, only the original bot -- so whatever is being reported is for the original Issue Label Bot only... I'll open another issue about this