Online Shop Microservices Deployment

This is deployment manifest for Googles Online Shop Microservices Demo: https://github.com/GoogleCloudPlatform/microservices-demo

Microservices

microservice image
gcr.io/google-samples/microservices-demo/
port env vars
frontend frontend:v0.4.1 8080 PORT
PRODUCT_CATALOG_SERVICE_ADDR
CURRENCY_SERVICE_ADDR
CART_SERVICE_ADDR
RECOMMENDATION_SERVICE_ADDR
SHIPPING_SERVICE_ADDR
CHECKOUT_SERVICE_ADDR
AD_SERVICE_ADDR
DISABLE_TRACING
DISABLE_PROFILER
cartservice cartservice:v0.4.1 7070 PORT
REDIS_ADDR
productcatalogservice productcatalogservice:v0.4.1 3550 PORT
DISABLE_STATS
DISABLE_TRACING
DISABLE_PROFILER
currencyservice currencyservice:v0.4.1 7000 PORT
DISABLE_TRACING
DISABLE_PROFILER
DISABLE_DEBUGGER
paymentservice paymentservice:v0.4.1 50051 PORT
DISABLE_TRACING
DISABLE_PROFILER
DISABLE_DEBUGGER
shippingservice shippingservice:v0.4.1 50051 PORT
DISABLE_STATS
DISABLE_TRACING
DISABLE_PROFILER
emailservice emailservice:v0.4.1 8080 PORT
DISABLE_TRACING
DISABLE_PROFILER
checkoutservice checkoutservice:v0.4.1 5050 PORT
PRODUCT_CATALOG_SERVICE_ADDR
SHIPPING_SERVICE_ADDR
PAYMENT_SERVICE_ADDR
EMAIL_SERVICE_ADDR
CURRENCY_SERVICE_ADDR
CART_SERVICE_ADDR
DISABLE_STATS
DISABLE_TRACING
DISABLE_PROFILER
recommendationservice recommendationservice:v0.4.1 8080 PORT
PRODUCT_CATALOG_SERVICE_ADDR
DISABLE_TRACING
DISABLE_PROFILER
DISABLE_DEBUGGER
adservice adservice:v0.4.1 9555 PORT
DISABLE_STATS
DISABLE_TRACING
redis redis:alpine 6379

Connection Graph

connection graph

Local setup for testing locally with Minikube

  1. Install minikube (will also install kubectl):

brew install minikube

  1. Start minikube cluster with docker driver

minikube start --driver docker

Start app using Kubernetes Manifest file

  1. Create microservices namespace:

kubectl create ns microservices

  1. Apply config file:

kubectl apply -f config.yaml -n microservices

  1. Forward port to access browser at: http://localhost:8080/

kubectl port-forward deployment/frontend 8080

  1. Stop all components:

kubectl delete -f config.yaml -n microservices

Or start app using Helm Chart

  1. Install helm:

brew install helm

  1. Install helmfile:

brew install helmfile

  1. Sync the cluster with desired state of the app declared in helmfile:

helmfile sync

  1. Forward port to access browser at: http://localhost:8080/

kubectl port-forward deployment/frontend 8080

  1. Stop all helm releases:

helmfile destroy