Features:
- User-friendly ticket creation and management.
- Microservices architecture for scalability and modularity.
- Docker containers for consistent deployment environments.
- GKE (Google Kubernetes Engine) orchestration for scaling and management.
- Google Cloud Load Balancing for routing and load balancing.
Technologies:
- Node.js: Backend development
- React.js (Next.js): Frontend user interface
- Docker: Containerization of microservices
- Google Kubernetes Engine (GKE): Container orchestration
- Google Cloud Load Balancing: Load balancing
Getting Started:
Follow these instructions to set up and run the project locally for development or testing purposes. Make sure you have Docker and GKE installed.
- Clone the repository:
git clone https://github.com/edsphinx/ecommerce-microservices.git
- Navigate to the project folder:
cd e-commerce-microservices
- Set up GKE:
- Create a GKE cluster:
gcloud container clusters create e-commerce-cluster --num-nodes=3
- Deploy the application to the GKE cluster:
kubectl apply -f k8s/
- Create a GKE cluster:
- Configure Google Cloud Load Balancing:
- Set up an Ingress resource in GKE:
apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: ecommerce-ingress spec: rules: - host: ecommerce.yourdomain.com http: paths: - path: / pathType: Prefix backend: service: name: e-commerce-service port: number: 80
- Apply the Ingress resource:
kubectl apply -f ingress.yaml
- Set up an Ingress resource in GKE:
Architecture: The project follows a microservices architecture to ensure scalability, modularity, and maintainability. Docker containers encapsulate each microservice, and GKE manages container orchestration.
Microservices Architecture:
- User Service: Handles user authentication and management.
- Product Service: Manages product catalog and details.
- Order Service: Processes and manages customer orders.
- Payment Service: Handles payment processing and transactions.
- Notification Service: Manages user notifications and communications.
Explanation of the Microservices Architecture:
- User Service: Interacts with a managed database service like Google Cloud SQL or Firestore for user data.
- Product Service: Stores product information in Google Cloud SQL or Firestore.
- Order Service: Manages order details and state, communicating with the Payment Service and Notification Service.
- Payment Service: Integrates with external payment gateways, ensuring secure transactions.
- Notification Service: Sends email/SMS notifications using services like SendGrid or Twilio.
Each microservice runs in its own Docker container, managed by GKE. The Google Cloud Load Balancing service ensures efficient routing and load balancing, providing a scalable and reliable eCommerce platform.
Conclusion: By leveraging GCP-specific tools and services, this eCommerce system platform ensures enhanced scalability, efficiency, and ease of management while maintaining a robust and modular architecture.