UzCloth Ulgurji MChJ — Bulutli Tizim Paneli Test qilish

Kiyim-kechak ulgurji kompaniyasi  |  CRM bulut platformasi

System Online
Speed:
🔵 ERP So'rovlari
0
0% of total
🟢 CRM/WMS So'rovlari
0
0% of total
📊 Jami So'rovlar
0
Balance: —
⚡ Requests / sec
0.0
Avg latency: —
🔀 Live Load Balancing Visualisation
🌐
Internet
Public Subnet
⚖️
Nginx LB
Port 80 / 443
Round Robin
📦
ERP Xizmati (Buyurtmalar)
10.0.2.10:3001
0 reqs
🏪
CRM/WMS (Mijozlar & Ombor)
10.0.3.10:3002
0 reqs
📈 Request Distribution
ERP (S1)
0%
0
CRM/WMS (S2)
0%
0
Balance quality:
🏥 Service Health
📦
ERP — Buyurtmalar & Inventar
Uptime: —
Checking…
🏪
CRM/WMS — Mijozlar & Ombor
Uptime: —
Checking…
Health checks via /health endpoint every 10s
🗒️ Live Request Log
# Timestamp Service Type Request ID Hostname Latency
No requests yet — click Send or Start Auto-Refresh
🏗️ Architecture Overview
┌──────────────────────────────────────────────────────────────────────────────┐ │ CLOUD VPC (10.0.0.0/16) │ │ │ │ ┌─────────────────────────────────────────────────────────────────────┐ │ │ │ PUBLIC SUBNET (10.0.1.0/24) Internet Gateway │ │ │ │ ┌───────────────────────────────────────────────────────────────┐ │ │ │ │ │ Nginx Reverse Proxy / Load Balancer │ │ │ │ │ │ Port 80 (HTTP) / 443 (HTTPS) │ │ │ │ │ │ Algorithm: Round Robin │ │ │ │ │ │ Health Check: /health every 30s │ │ │ │ │ └───────────────────────────────────────────────────────────────┘ │ │ │ └──────────────────────────┬────────────────┬───────────────────────-─┘ │ │ │ │ │ │ ┌──────────────────────────▼──┐ ┌────────▼──────────────────────────┐ │ │ │ PRIVATE SUBNET A │ │ PRIVATE SUBNET B │ │ │ │ (10.0.2.0/24) │ │ (10.0.3.0/24) │ │ │ │ ┌──────────────────────┐ │ │ ┌──────────────────────────────┐ │ │ │ │ │ ERP Service 1 │ │ │ │ CRM/WMS Service 2 │ │ │ │ │ │ Node.js Express │ │ │ │ Node.js Express │ │ │ │ │ │ Port: 3001 │ │ │ │ Port: 3002 │ │ │ │ │ │ /health /metrics │ │ │ │ /health /metrics │ │ │ │ │ │ /api/erp │ │ │ │ /api/crm /api/wms │ │ │ │ │ └──────────────────────┘ │ │ └──────────────────────────────┘ │ │ │ └─────────────────────────────┘ └───────────────────────────────────┘ │ │ │ │ ┌───────────────────────────────────────────────────────────────────────┐ │ │ │ MONITORING SUBNET (10.0.4.0/24) │ │ │ │ Prometheus :9090 → Grafana :3000 │ │ │ └───────────────────────────────────────────────────────────────────────┘ │ └──────────────────────────────────────────────────────────────────────────────┘ Internet → IGW → Nginx (Public) → [Round Robin] → Service 1 / Service 2 Prometheus scrapes /metrics from both services every 15s GitHub Actions builds & pushes Docker images on every push to main
📚 Networking Concepts Demonstrated

🌐 VPC & Subnets

Virtual Private Cloud (10.0.0.0/16) divided into public subnet for Nginx (internet-facing) and private subnets for backend services (no direct internet access). Mirrors AWS/GCP VPC design.

⚖️ Load Balancing

Nginx distributes traffic across both backend services using round-robin. Requests alternate between ERP Service 1 and CRM/WMS Service 2, demonstrating horizontal scaling.

🔁 Reverse Proxy

Nginx acts as a reverse proxy — clients connect only to Nginx (public IP). Backend service IPs are hidden. Nginx forwards requests internally using Docker's DNS.

🔥 Firewall / Security Groups

Only Nginx exposes port 80/443 externally. Backend services run on internal Docker network only. This simulates AWS Security Groups restricting inbound access.

🔗 NAT Gateway

Private subnet services reach the internet (e.g. npm install) through a NAT. Inbound traffic is blocked — outbound is allowed. Docker's bridge network applies the same principle.

🏷️ DNS Resolution

Docker Compose creates an internal DNS. Services reach each other by name (service-1, service-2) rather than IP. Nginx upstream block uses these DNS names to forward traffic.

🚪 Gateway

The Internet Gateway allows the public subnet (Nginx) to receive traffic from the internet. Private subnets have no IGW — they are isolated and only reachable via the load balancer.

📈 Horizontal Scaling

Run docker compose up --scale service-1=3 service-2=3 to add replicas. Nginx automatically distributes requests across all instances without any config change.