Online Boutique (microservices-demo) is a sample cloud-first web application built by Google Cloud. It simulates an e-commerce site where users browse products, add items to a cart, and check out. The app is split into 11 microservices written in different languages (Go, C#, Node.js, Python, Java) that communicate over gRPC. It's aimed at developers, platform engineers, and SREs who want a realistic, multi-language workload to test Kubernetes clusters, service mesh configurations, or observability tooling without writing their own app first.
Because the services span multiple languages and communicate over gRPC with defined Protocol Buffer contracts, the repo also works as a reference for polyglot microservice architecture and inter-service API design. It runs on any Kubernetes cluster, not just GKE, though the primary quickstart path targets Google Cloud.
.proto definitions in the /protos directory.kubernetes-manifests.yaml deploys the full stack in one command.It's not a good fit if you need a production-ready e-commerce backend, real payment processing, or a starting template for your own business logic. The payment service is mocked, there's no user authentication/signup, and the app is explicitly built as a demo/reference, not a maintained product foundation.
Quickstart on GKE requires a Google Cloud project and a shell with gcloud, git, and kubectl installed.
git clone --depth 1 --branch v0 https://github.com/GoogleCloudPlatform/microservices-demo.git
cd microservices-demo/
export PROJECT_ID=<PROJECT_ID>
export REGION=us-central1
gcloud services enable container.googleapis.com --project=${PROJECT_ID}
gcloud container clusters create-auto online-boutique \
--project=${PROJECT_ID} --region=${REGION} \
--labels dev-tutorial=online-boutique
kubectl apply -f ./release/kubernetes-manifests.yaml
Running:kubectl get pods
kubectl get service frontend-external | awk '{print $4}'
gcloud container clusters delete online-boutique \
--project=${PROJECT_ID} --region=${REGION}
For other setups, the repo also documents Terraform-based deployment, Istio/Cloud Service Mesh integration via Kustomize, non-GKE clusters like Minikube and Kind, and a local development guide.