Skip to content

ibrarmunircoder/online-shop-microservices-deployment-k8s

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 

Repository files navigation

☸️📦 Microservices application deployment on Kubernetes Cluster

Deploy an online-shop microservices application on a Kubernetes cluster using Kustomize.


📌 Project Overview:

Online Boutique is a cloud-first microservices demo application. The application is a web-based e-commerce app where users can browse items, add them to the cart, and purchase them.
This project demonstrates how to deploy and run a microservices-based application on Kubernetes using production and security best practices.


🏗️ Architecture:

Online Boutique is composed of 11 microservices written in different languages that talk to each other over gRPC.

dashboard


🚀 Deployment Process:

As a DevOps Engineer, when you are given a task to deploy the microservices application on a Kubernetes Cluster, you need to communicate with developers to understand the key information regarding microservices, like:

1- Which microservices are being deployed?
2- Which microservices are connected to others?
3- What dependencies does each microservice have (e.g., databases or third-party services such as message brokers)?
4- Which microservice is accessible from outside the cluster?
5- On Which Port does each microservice run?

You don’t need to understand the internal code of each service—only how they interact and operate.


⚙️ Deploy Online Boutique with Kustomize

  1. From the root folder of this repository, navigate to the kustomize/ directory.

    cd kustomize/
  2. See what the default Kustomize configuration defined by kustomize/kustomization.yaml will generate (without actually deploying them yet).

    kubectl kustomize .
  3. Apply the default Kustomize configuration (kustomize/kustomization.yaml).

    kubectl apply -k .
  4. Wait for all Pods to show STATUS of Running.

    kubectl get pods
    

🔐 Production & Securiy Best Practices:

  • Specify a Pinned version for each container image
  • Configure Liveness probe on each container
  • Configure Readiness probe on each container
  • Configure Resource Requests for each container
  • Configure Resource Limits for each container
  • Don't use Node Port service to expose application
  • Explicitly specify more than 1 Replicas for deployment
  • Use more than 1 worker nodes for your cluster
  • Use namespace to isolate resources across teams and projects
  • Ensure Images are free of vulnerabilities
  • Don't run your containers with Root Access

🎯 Learning Objectives:

  • Gain hands-on experience with core Kubernetes resources such as Deployments, Services, ConfigMaps, and Secrets.
  • Apply production best practices, including resource limits, health checks (liveness/readiness probes), and secure configurations.
  • Understand how to debug and monitor Kubernetes workloads using kubectl commands.
  • Learn how to organize and manage Kubernetes manifests using Kustomize overlays and bases.

🌐 Live Demo:

Home Page Product Page K8s Resources


👨‍💻 Connect with me:

Ibrar Munir

Github: https://github.com/ibrarmunircoder
LinkedIn: https://www.linkedin.com/in/ibrar-munir-53197a16b
Portfolio: https://ibrarmunir.d3psh89dj43dt6.amplifyapp.com

About

Deploy an online-shop microservices application on a Kubernetes cluster using Kustomize.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors