🚀 Deploying a Micro-services App on AKS from GitHub — RabbitMQ vs Azure Service Bus


One of the best ways to understand cloud-native architecture is by building and deploying a real app yourself. In this post, you’ll clone a ready-to-deploy microservices demo app from GitHub and run it on Azure Kubernetes Service (AKS) — using two messaging backends: RabbitMQ and Azure Service Bus.
📦 What You’ll Deploy
This project simulates a simplified store with:
🛍️
store-front
– frontend app📦
product-service
– manages products📬
order-service
– sends order messages via a queue
You’ll learn how to deploy it using:
✅ Phase 1: RabbitMQ (self-hosted in the AKS cluster)
✅ Phase 2: Azure Service Bus (fully managed messaging)
🧾 Step 1: Clone the GitHub Repository
Start by cloning the open-source project from GitHub:
git clone https://github.com/HARMONYOMA/aks-microservices-demo.git
cd aks-microservices-demo
☁️ Step 2: Prerequisites
Make sure you have the following installed and configured:
kubectl
An AKS cluster
Logged in and configured with Azure:
az login az aks get-credentials --resource-group <your-resource-group> --name <your-aks-cluster>
🐇 Step 3: Deploy the RabbitMQ Version (Phase 1)
This version runs RabbitMQ inside your AKS cluster.
✅ Apply the manifest:
kubectl apply -f manifests/manifests/rabbitmq-version.yaml
🔍 Get the external IP of the frontend:
kubectl get svc store-front
Open the external IP in your browser to access the app.
☁️ Step 4: Deploy the Azure Service Bus Version (Phase 2)
This version removes RabbitMQ and uses Azure Service Bus instead.
✅ Create a Service Bus namespace and queue (via Azure CLI or portal)
Then get the connection string:
az servicebus namespace authorization-rule keys list \
--resource-group <your-resource-group> \
--namespace-name <your-namespace> \
--name RootManageSharedAccessKey \
--query primaryConnectionString \
--output tsv
🔐 Create a Kubernetes secret:
kubectl create secret generic servicebus-secret \
--from-literal=connectionString="<your-connection-string>"
🚀 Deploy the Service Bus version:
kubectl apply -f manifests/manifests/servicebus
Check the external IP and open the frontend as before.
🔁 Comparing the Two Versions
Feature | RabbitMQ (Phase 1) | Azure Service Bus (Phase 2) |
Hosting | In-cluster | Azure-managed |
Setup | Deployment + ConfigMap | Secret + ENV vars |
Scalability | Manual | Automatic |
Monitoring | Self-managed | Built-in |
💡 Why This Matters
Being able to deploy and switch messaging systems is a practical DevOps skill. It shows you understand:
Kubernetes deployments and services
Using secrets to securely access external services
Cloud-native messaging patterns in Azure
🧠 Final Thoughts
You don’t have to build everything from scratch to learn AKS and cloud-native design. By cloning and customizing real projects like this one, you gain experience with real-world tools and architecture.
⭐ Ready to try it?
👉 Clone the repo on GitHub
✍️ About Me
I'm a cloud engineering enthusiast sharing hands-on projects to help others grow. Follow me for more tutorials and walkthroughs on Azure, Kubernetes, and DevOps.
📚 More Resources
Subscribe to my newsletter
Read articles from Anigbogu Chioma Paschaline directly inside your inbox. Subscribe to the newsletter, and don't miss out.
Written by

Anigbogu Chioma Paschaline
Anigbogu Chioma Paschaline
Hi, I’m Anigbogu Paschaline Chioma, an aspiring Cloud Engineer documenting my journey one step at a time. Through CloudSteps, I share beginner-friendly tutorials, personal projects, and insights from my hands-on learning in cloud computing, DevOps, and modern tech tools. Follow along as I learn, build, and grow — one step closer to the cloud.