Skip to content

Shaheer4636/Microservices-CloudLab

Repository files navigation

Shaheer-Microservices-CloudLab

Docker Kubernetes Istio Ingress AWS Azure Prometheus CNCF

Overview

Shaheer-Microservices-CloudLab is a comprehensive cloud-native microservices repository designed for scalable, high-performance applications. This project integrates modern DevOps tools and methodologies to deploy and manage microservices efficiently using Kubernetes, Istio, and Terraform across AWS and Azure environments.

Features

  • Microservices Architecture: Containerized microservices deployed using Docker & Kubernetes.
  • Service Mesh with Istio: Secure and manage microservices traffic efficiently.
  • Ingress & API Gateway: Centralized traffic routing using Kubernetes Ingress.
  • Cloud Agnostic: Supports AWS and Azure cloud providers.
  • Infrastructure as Code: Uses Terraform for automated cloud resource provisioning.
  • Monitoring & Logging: Prometheus for metrics and centralized logging.
  • CI/CD Pipelines: Automated deployment with GitHub Actions & ArgoCD.

Architecture

High-Level Workflow

  1. Code is pushed to GitHub.
  2. CI/CD pipelines trigger builds and tests.
  3. Docker images are pushed to container registries.
  4. Kubernetes deploys microservices across cloud environments.
  5. Istio handles service-to-service communication.
  6. Prometheus monitors application health and performance.

Technologies Used

Category Tools
Containerization Docker
Orchestration Kubernetes
Service Mesh Istio
Traffic Management Ingress, API Gateway
Cloud Providers AWS, Azure
Infrastructure as Code Terraform
Monitoring Prometheus
CI/CD GitHub Actions, ArgoCD

Installation & Deployment

Prerequisites

  • Docker & Kubernetes installed
  • AWS or Azure CLI configured
  • Terraform installed
  • Helm package manager

Deployment Steps

  1. Clone the repository:
    git clone https://github.com/Shaheer4636/Shaheer-Microservices-CloudLab.git
    cd Shaheer-Microservices-CloudLab
  2. Deploy infrastructure using Terraform:
    cd deployment/terraform/aks  # Change to EKS if using AWS
    terraform init
    terraform apply
  3. Deploy microservices to Kubernetes:
    kubectl apply -f kubernetes-manifests/
  4. Set up Istio service mesh:
    istioctl install --set profile=demo -y
    kubectl apply -f istio-manifests/
  5. Configure monitoring with Prometheus:
    helm repo add prometheus-community https://prometheus-community.github.io/helm-charts
    helm install prometheus prometheus-community/prometheus

CI/CD Pipeline

  • Uses GitHub Actions for build automation.
  • ArgoCD manages Kubernetes deployments.
  • Helm charts ensure consistent deployments across environments.

Monitoring & Logging

  • Prometheus collects and visualizes application metrics.
  • Fluentd/ELK Stack provides centralized logging and alerting.

Contribution Guidelines

  • Fork the repository.
  • Create a feature branch.
  • Open a pull request with detailed changes.

License

This project is open-source and available under the MIT License.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published