ta543 / cloud-native-microservices-platform

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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.

About


Languages

Language:Shell 54.4%Language:JavaScript 29.8%Language:Dockerfile 15.7%