Containers & Orchestration

The following rubric items will be assessed on a scale from Insufficient to Excellent.

Model Service

Sufficient
Flask server is used to serve the model. The server is distributed through an image that is build with a workflow.
Good
The model that is served can be updated without creating a new image, i.e., it is either downloaded on-start or mounted.
Very good
The server pre-processes queries the same was as the training data.
Excellent
All server endpoints have a well-defined API definition that follows the Open API Specification. Swagger is used to generate an API documentation.

App

Sufficient
The application* uses the microservice that serves the model through REST. The microservice uses the version-aware lib through a package manager. The application has a basic frontend that allows to query the model (“a textbox with a button”) and shows the result.
Good
The app has an actual “use case” that offers interactions that go beyond the basic query/response. For example, the app could be the central system for a restaurant: users can see reviews and leave their own, the restaurant can access all reviews and sees statistics on how users like their services.
Very Good
Better than “good”, but not all criteria of “excellent” are fulfilled. For example, the monitoring extension is trivial or the interactions cannot be easily used for an experiment. If you select this point please elaborate your reason briefly.
Excellent
The application contains interactions that could be monitored and leveraged for continuous experimentation. For example, the restaurant could see the predicted sentiment for reviews, but is allowed to flag/change incorrect labels. Another option is to make the sentiment label a part of the user input and use the information to validate whether the prediction is correct.

(*) The intention is to build a basic microservice architecture on the server. If your app is built with a rich-client framework like Angular or React, do not connect to the model service directly, but introduce an API gateway in between.

Operation

Sufficient
The operation repository contains a Docker compose file* that allows to start up the application and use it. The app is the only service that is accessible from the outside.
Good
The Docker compose file contains examples of how to use a volume mapping, a port mapping, and an environment variable.
Very Good
Better than “good”, but not all criteria of “excellent” are fulfilled.
Excellent
The repository contains a README.md file that elaborates on required parameters and provides starting points for outsiders that want to investigate the code base.

The Docker compose file does not need to grow with the later complexity of the Kubernetes deployment. The intention is to keep it as a simple-to-start illustration of the deployed app.

The peer review will also contain a free text form. Please use this form to summarize your assessment of all rubric criteria in this category, especially if you rated something as insufficient. In addition, explain what you think would be the next important step that needs to be realized.


Last modified on Jun 27, 2023 at 21:59.