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.
This repository is a multiarchitecture compute version of the microservices demonstration.
The purpose of this application is to use a reference microservices demo to show a real-life multiarchitecture compute.
- front-end
- orders
- payment
- user
user-db is Intel only. The
power
overlay supportsppc64le
. - catalogue catalogue-db is Intel only. The
power
overlay supportsppc64le
. - cart
- shipping
- queue-master
The catalogue
and user
have a built-in wait to READY as the dependent databases are started up.
Unless mentioned, each image is cross-compiled in s390x, amd64, arm64, and ppc64le. The image is manifest-listed.
There are three diferent kustomizations: fyre, multi, multi-hpa. multi-hpa is a HoriztonalPodAutoScaler version where the front-end autoscales.
fyre
To deploy to fyre, use the following:
- Update manifests/overlays/fyre/env.secret with username and password:
username=
password=
- Build sock shop for fyre:
❯ kustomize build manifests/overlays/fyre | oc apply -f -
- Destroy sock shop for fyre:
❯ kustomize build manifests/overlays/fyre | oc delete -f -
multiarch compute
To deploy to a multiarch compute cluster, use the following:
- Update manifests/base/env.secret with username and password:
username=
password=
- Build sock shop for multi:
❯ kustomize build manifests/overlays/multi | oc apply -f -
- Destroy sock shop for multi:
❯ kustomize build manifests/overlays/multi | oc delete -f -
- Get the route to the host
❯ oc get routes -n sock-shop
NAME HOST/PORT PATH SERVICES PORT TERMINATION WILDCARD
sock-shop sock-shop.apps.demo.xyz front-end 8079 edge/None None
-
Navigate to https://sock-shop.apps.demo.xyz
-
Pick a test user from User Accounts
Have fun and use it.
The applications are compiled into images that are hosted at quay.io/repository/powercloud. There is a manifest-listed image for each application in the corresponding sock-shop repository.
To build the images, use:
amd64
ARCH=amd64
REGISTRY=quay.io/repository/powercloud/sock-shop-${APP}
make cross-build-amd64
All other arches
ARCH=ppc64le
REGISTRY=quay.io/repository/powercloud/sock-shop-${APP}
make cross-build-amd64
To push the manifest-listed images, use:
REGISTRY=quay.io/repository/powercloud/sock-shop-${APP}
ARM_REGISTRY=quay.io/repostiroy/powercloud/sock-shop-${APP}
APP=front-end
make push-ml
The architecture is:
The application looks like:
The microservices interaction diagram is:
The following custom repos are used:
- front-end - https://github.com/ocp-power-demos/sock-shop-front-end
- user - https://github.com/ocp-power-demos/sock-shop-user
- orders - https://github.com/ocp-power-demos/sock-shop-orders
Please login in via the https route to sock-shop and register a new user.
Thank you to the WeaveWorks team and supporters.