🚀 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:

  • Azure CLI

  • 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

FeatureRabbitMQ (Phase 1)Azure Service Bus (Phase 2)
HostingIn-clusterAzure-managed
SetupDeployment + ConfigMapSecret + ENV vars
ScalabilityManualAutomatic
MonitoringSelf-managedBuilt-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

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