/microservices-demo

Deployment scripts & config for Sock Shop

Primary LanguagePythonApache License 2.0Apache-2.0

Build Status

Sock Shop : A Microservice Demo Application

General

The application is the user-facing part of an online shop that sells socks. It is intended to aid the demonstration and testing of microservice and cloud native technologies.

It is built using Spring Boot, Go kit and Node.js and is packaged in Docker containers.

Useful links

Services

Project Tech Stack Fork Original Github Docker hub
front-end Node.js link link link
edge-router traefik -- edge-router link
catalogue Go link link link
catalogue-db mysql -- -- link
carts Java Spring boot link link link
carts-db, orders-db MongoDB -- -- link
orders Java Spring boot link link link
shipping Java Spring boot link link link
queue-master Java Spring boot link link link
rabbitmq RabbitMQ -- -- link
payment Go link link link
user Go link link link
user-db MongoDB -- -- link
load-test Python link link link
session-db Redis -- link

Quick start with minikube

  1. Start minikube: minikube start --vm-driver=hyperkit --cpus 6 --memory 8192
  2. Go to the folder deploy/kubernetes/manifest and execute: kubectl apply -f .
  3. In another terminal/console, run minikube tunnel
  4. Get the external ip address using kubectl get svc front-end
  5. To get metrics in minikube install this minikube addons enable metrics-server and display dashboar with minikube dashboard
  6. Finally, to end execute minikube stop and delete with minikube delete

Istio configuration

  1. istioctl install
  2. kubectl apply -f https://raw.githubusercontent.com/istio/istio/release-1.11/samples/addons/kiali.yaml
  3. kubectl apply -f https://raw.githubusercontent.com/istio/istio/release-1.11/samples/addons/jaeger.yaml
  4. kubectl apply -f https://raw.githubusercontent.com/istio/istio/release-1.11/samples/addons/prometheus.yaml
  5. kubectl apply -f https://raw.githubusercontent.com/istio/istio/release-1.11/samples/addons/grafana.yaml
  6. k port-forward svc/kiali 20001 -n istio-system
  7. Follow terraform gcp instructions (create gke, install k8s apps, do load test)

Deployment Platforms

The deploy folder contains scripts and instructions to provision the application onto your favourite platform.

Please let us know if there is a platform that you would like to see supported.

Bugs, Feature Requests and Contributing

We'd love to see community contributions. We like to keep it simple and use Github issues to track bugs and feature requests and pull requests to manage contributions. See the contribution information for more information.

Screenshot

Sock Shop frontend

Visualizing the application

Use Weave Scope or Weave Cloud to visualize the application once it's running in the selected target platform.

Sock Shop in Weave Scope