this project is the submission of udacity cloud developer nanodegree
Udagram is a simple cloud application developed alongside the Udacity Cloud Engineering Nanodegree. It allows users to register and log into a web client, post photos to the feed, and process photos using an image filtering microservice.
tip: repository link.
clone this repository locally
git clone https://github.com/mowamed/cloud-developer-microservices.git
to run and deploy this project with Docker, make sure to have Docker compose on your system. Open a new terminal within the project directory and run:
- cd into the docker diretory:
cd udacity-c3-deployment/docker/
- start the container:
docker-compose up
tip: when the project is running, you can view it in your browser at
localhost:8100
for the frontend andlocalhost:8080
for the reverse proxy exposing the rest api
- stop the containers:
docker-compose down
to run commands against your Kubernetes clusters, install and setup kubectl. Open a new terminal within the project directory and run:
- cd into the kubernetes diretory:
cd udacity-c3-deployment/k8s/
- add your secret and configmap
tip: Add your base64 secret in
env-secret.yaml
, your AWS credentials inaws-secret.yaml
and your configMap inenv-configmaps.yaml
. and usekubectl apply -f env-secret.yaml,aws-secret.yaml,env-configmaps.yaml
- Create your deployements and services:
kubectl apply -f reverseproxy-deployment.yaml,reverseproxy-service.yaml,frontend-deployment.yaml,frontend-service.yaml,backend-feed-deployment.yaml,backend-feed-service.yaml,backend-user-deployment.yaml,backend-user-service.yaml
- To see all running containers run
kubectl get pod
tip: to run your cluster locally, port-forward the frontend service
kubectl port-forward service/frontend 8100:8100
and the reverseproxy servicekubectl port-forward service/reverseroxy 8080:8080
, you can view it in your browser atlocalhost:8100
for the frontend andlocalhost:8080
for the reverse proxy exposing the rest api
- to deploy a new version of the feed microservice run
kubectl apply -f backend-feed-deployment.yaml,backend-feed-service.yaml
this project use Travis Ci to build the application. CI screenshot