Cloud-Native Microservices Platform 🚀

Overview 📋

The Cloud-Native Microservices Platform is an exemplary project demonstrating a modern approach to building and deploying scalable, resilient applications using Kubernetes, Docker, and various CI/CD and monitoring tools. This platform is designed to showcase best practices in cloud-native development, including microservices architecture, containerization, automated deployments, and observability.

Features 🌟

  • Microservices Architecture: Modular design for easy maintenance, scalability, and resilience.
  • Kubernetes Deployment: Leveraging Kubernetes for orchestration, scaling, and management of containerized applications.
  • Automated CI/CD: Using GitHub Actions for continuous integration and delivery workflows.
  • Monitoring and Logging: Integration with Prometheus, Grafana, and the EFK stack (Elasticsearch, Fluentd, Kibana) for monitoring and logging.

Getting Started 🚀

Prerequisites

  • Docker
  • Kubernetes cluster (Minikube, Docker Desktop, or a cloud provider-managed Kubernetes service)
  • Helm (optional, for easier deployment management)
  • Git

Installation

Clone the Repository

git clone <repository-url>
cd cloud-native-microservices-platform

Build and Push Docker Images 🐳

Optional: This step is optional if you're using pre-built images.

Getting Started

To build Docker images for each microservice, navigate to the microservice directory and execute the following commands:

docker build -t <your-registry>/<service-name>:<tag> .
docker push <your-registry>/<service-name>:<tag>

Deploy to Kubernetes 🚀

For each microservice and infrastructure component (Prometheus, Grafana, EFK), apply the Kubernetes manifests or use Helm charts:

kubectl apply -f infra/kubernetes/dev/<service-deployment-file>

Or using Helm

helm install <release-name> infra/helm/<service-chart>

Accessing the Services 🚀

Microservices

Access the microservices through their Ingress URLs or service NodePorts.

Grafana

Access Grafana dashboards for monitoring at http://<grafana-service-ip>:3000.

Kibana

Access Kibana for logs at http://<kibana-service-ip>:5601.

Usage 🔍

For detailed instructions on interacting with the microservices, deploying changes, and using the monitoring and logging setup, see the Usage Guide.

Development 💻

See the Setup Instructions for details on setting up your local development environment and the CI/CD Pipeline configuration for automating builds, tests, and deployments.

Architecture 🏗

For an overview of the platform's architecture, including the microservices and infrastructure setup, refer to the Architecture Document.

License 📄

This project is licensed under the MIT License - see the LICENSE file for details.