Microservice Project [Udacity Cloud DevOps Engineer Nanodegree]
Deploy a containerized Python flask application to serve out predictions (inference) about housing prices through API calls. It uses a a pre-trained, sklearn
model that has been trained to predict housing prices in Boston according to several features.
- Test project code using linting
- Complete a Dockerfile to containerize this application
- Deploy containerized application using Docker and make a prediction
- Configure Kubernetes and create a Kubernetes cluster
- Deploy a container using Kubernetes and make a prediction
- Upload a complete Github repo with CircleCI to indicate the code has been tested
- Create a virtualenv and activate it
python3 -m venv <your_venv>
source <your_venv>/bin/activate
- Run
make install
to install the necessary dependencies
- Standalone:
python app.py
- Run in Docker:
./run_docker.sh
- Run in Kubernetes:
./run_kubernetes.sh
-
Setup and Configure Docker locally
- create docker account
- install docker locally (https://www.docker.com/get-started)
-
Setup and Configure Kubernetes locally
- install Minikube. Follow instruction (https://minikube.sigs.k8s.io/docs/start/)
- install Kubernetes using Minikube (https://minikube.sigs.k8s.io/docs/start/)
- configure Kubernetes by running
minikube start
-
Create Flask app in Container
- run the shell script to build and the project in a container.
run_docker.sh
- run the shell script to build and the project in a container.
-
Run via kubectl
- run the shell script.
run_kubernetes.sh
- run the shell script.