๐ Deploying a Micro-services App on AKS from GitHub โ RabbitMQ vs Azure Service Bus

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.
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.