Skip to main content

Command Palette

Search for a command to run...

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

Published
โ€ข3 min read
๐Ÿš€ Deploying a Micro-services App on AKS from GitHub โ€” RabbitMQ vs Azure Service Bus
A

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:

  • 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