There are no items in your cart
Add More
Add More
| Item Details | Price | ||
|---|---|---|---|
Project-2: 10-Tier Cloud-Native Microservices Deployment on Kubernetes (GKE)
Architecting, Containerizing & Deploying an E-Commerce Application (Online Boutique / JioMart) using Go, Python, Node.js, Java, C#, Redis & GCP GKE
In modern enterprise cloud engineering, moving from monolithic systems to Cloud-Native Microservices Architecture is the gold standard for high availability, fault isolation, and independent scaling. This real-time project demonstrates how to deploy a 10-Tier Cloud-Native Microservices E-Commerce Application (Online Boutique / JioMart) on Google Kubernetes Engine (GKE).
Before deploying to Kubernetes, understanding software architectural patterns is vital for making sound infrastructure decisions.
| Architecture Metric | Monolithic Architecture | Microservices Architecture |
|---|---|---|
| Codebase Structure | Single, monolithic codebase for all features. | Small, dedicated repositories per microservice. |
| Startup Time | Slow startup time as entire app must load. | Ultra-fast startup time for individual services. |
| Fault Isolation | Poor. One bug or memory leak crashes entire app. | Excellent. Failure in one service does not crash others. |
| Coupling | Tightly coupled modules. | Loosely coupled via gRPC & REST APIs. |
| Scalability | Wasteful. Must scale entire VM/app instance. | Independent scaling of high QPS services (e.g. Search/Cart). |
| Technology Stack | Single language & framework locked. | Multi-Language (Go, Python, Node.js, Java, C# in one app!). |
The application deployed in this project is Online Boutique (originally designed by Google Cloud Engineering), a 10-tier cloud-native microservices e-commerce application where users can browse items, add products to cart, convert currencies, and checkout orders.
| Service Name | Language / Tech | Function & Responsibility |
|---|---|---|
frontend |
Go | Exposes HTTP web server, renders UI views, manages user session IDs. |
cartservice |
C# / .NET | Stores and retrieves items in the user's shopping cart using Redis. |
redis-cart |
Redis | In-memory key-value cache database storing shopping cart data. |
productcatalogservice |
Go | Provides product list from JSON file & product search capability. |
currencyservice |
Node.js | Highest QPS service! Converts money amounts using European Central Bank rates. |
paymentservice |
Node.js | Charges mock credit card info and returns a transaction ID. |
shippingservice |
Go | Calculates shipping costs and handles mock item dispatching. |
emailservice |
Python | Sends order confirmation email notifications to users. |
checkoutservice |
Go | Orchestrates cart retrieval, payment charge, shipping & email sending. |
recommendationservice |
Python | Recommends complementary products based on items in the cart. |
adservice |
Java | Provides contextual text banner ads based on product keywords. |
loadgenerator |
Python / Locust | Simulates realistic customer traffic flows by sending continuous requests. |
When you execute kubectl apply -f manifest.yaml, Kubernetes Master Control Plane orchestrates object creation across worker nodes automatically.
kubectl apply -f kubernetes-manifests.yaml.
In GCP Console, launch a Google Kubernetes Engine (GKE) Standard/Autopilot cluster and authenticate:
# Set Project ID & Region
gcloud config set project your-gcp-project-id
gcloud container clusters get-credentials online-boutique-cluster --region us-central1
# Clone official repository
git clone https://github.com/GoogleCloudPlatform/microservices-demo.git
cd microservices-demo
# Deploy all 10 microservices, redis cache & load generator in one command
kubectl apply -f ./release/kubernetes-manifests.yaml
# Watch pods transition from ContainerCreating -> Running
kubectl get pods -w
# Fetch the public ingress IP assigned to the frontend service
kubectl get service frontend-external | awk '{print $4}'
Open the printed External IP address in your browser — your 10-Tier E-Commerce Online Boutique is live!
Delete any active running pod manually to test Kubernetes self-healing resilience:
# Delete a pod manually
kubectl delete pod $(kubectl get pods -l app=emailservice -o jsonpath="{.items[0].metadata.name}")
# Immediately watch pod status
kubectl get pods -l app=emailservice
Delete an entire deployment (e.g. recommendationservice) to see if the rest of the application breaks:
# Delete recommendation service deployment
kubectl delete deployment recommendationservice
Refresh the Online Boutique web app in your browser! Notice that the storefront, product catalog, shopping cart, currency conversion, and checkout still work perfectly — only the "Recommended Products" banner displays gracefully handled fallback content! This proves the power of microservices loose coupling and fault isolation.
You can add these high-impact production bullet points to your resume based on this project: