Operationalize a Machine Learning Microservice API
Files Submitted
| Criteria | Meet Specification |
|---|---|
|
All files are submitted |
The submitted repository includes a .circleci folder, a README.md file, a Dockerfile and Makefile, as well as an app.py file, a prediction script, and the necessary scripts to run and upload a microservice on Docker and Kubernetes. NOTE: Before submitting a link to your complete, project repository, make sure you have included all required and complete files (including run_kubernetes.sh, run_docker.sh, docker_out.txt, kubernetes_out.txt, and a .circleci build directory). |
|
|
A |
Code Quality & Enhancement
| Criteria | Meet Specification |
|---|---|
|
Extend app.py to log a prediction value |
Add an additional logging statement to |
|
The project shows the proper use of documentation |
The README file includes a summary of the project, how to run the Python scripts and web app, and an explanation of the files in the repository. |
|
The project passes linting via a Makefile |
Both the Dockerfile and the python file pass linting using pylint and hadolint. This may involve selectively customizing lint overrides in both tools. The lint should be run for both tools via the command |
Docker Configuration
| Criteria | Meet Specification |
|---|---|
|
Dockerfile is complete |
The Dockerfile should create a working directory, install the necessary dependencies, expose port 80, and specify that |
|
Dockerfile passes linting via a Makefile |
The Dockerfile should pass |
|
Log output is saved in |
While running the docker container, call the prediction script, |
|
|
Build, list, and run steps are completed in |
|
Docker image is uploaded to docker via |
The built docker image is uploaded to your own personal Docker ID, as indicated by a complete |
Kubernetes Configuration
| Criteria | Meet Specification |
|---|---|
|
|
This script runs a docker image with kubernetes, lists the kubernetes pod(s), and forwards the container port to a host, using |
|
An output prediction is saved in |
While running on kubernetes, call |
Tips to make your project standout:
- Extend the microservice to deliver additional functionality, say an additional prediction.
- Make the kubernetes deployment work on multiple cloud platforms: i.e. GCP, AWS, and Azure.
- Record a demo video that shows the scale up and scale down characteristics of the kubernetes application.
- Create a simple web application front-end to accept user input data and produce a prediction.