Cloud Networking
Cloud VPC
Provides the private network for the application, database, Kafka, and Kubernetes infrastructure. It separates public-facing access from internal warehouse services.
Cloud Compute
Cloud EC2
Provides the virtual servers on which the Kubernetes cluster and containerized warehouse application run.
Operating System
Ubuntu Server 24.04 LTS
Runs on the EC2 instances and provides the operating environment for Kubernetes and application services.
Containerization
Docker
Packages the warehouse application services and their dependencies into containers.
Container Orchestration
Kubernetes
Deploys and manages the containerized application services. It automatically restarts failed containers and allows application services to scale as warehouse activity increases.
Database
PostgreSQL 14
Stores products, warehouse locations, inventory quantities, stock movements, transfers, and transaction records.
Persistent Database Storage
Cloud EBS
Provides persistent block storage for PostgreSQL database data when PostgreSQL is hosted on EC2.
Real-Time Synchronization
Apache Kafka
Handles inventory events between warehouse services. When stock is received, dispatched, or transferred, an event is published to Kafka so the required services can update inventory information.
Application Deployment
Helm
Packages and deploys the warehouse application services and Kafka components into Kubernetes.
Infrastructure Provisioning
OpenTofu
Creates Cloud infrastructure such as VPC, subnets, EC2 instances, EBS volumes, and Security Groups.
Configuration Automation
Ansible
Configures the Ubuntu EC2 servers and installs required components such as Docker, Kubernetes dependencies, and application software.
Network Security
Cloud Security Groups
Controls network traffic between EC2 instances and restricts access to only the required services and ports.
Server Metrics
Node Exporter
Collects server-level metrics such as CPU, memory, disk, and network usage and provides them to Prometheus.
Monitoring
Prometheus
Collects system, Kubernetes, and application performance metrics for monitoring the health of the warehouse application.
Monitoring Dashboard
Grafana
Displays Prometheus metrics through dashboards, allowing administrators to monitor server resources, pod health, and application performance.