Cloud Compute
Cloud EC2
Provides the virtual servers where the Kubernetes cluster runs. The business management microservices are deployed as containers on the Kubernetes worker nodes.
Operating System
Ubuntu Server 24.04 LTS
Provides the operating environment for the EC2 servers. Kubernetes, Docker, and the supporting microservices run on these Ubuntu servers.
Cloud Network
Cloud VPC
Provides the private network for the SaaS application. It allows the Kubernetes nodes, microservices, and PostgreSQL database to communicate securely.
Cloud Storage
Cloud EBS
Provides persistent storage for PostgreSQL. Customer, product, order, and billing data remain available even if a database container is restarted.
Containerization Tool
Docker
Packages the Customer, Product, Order, Billing, and Reporting services into separate containers so each service can run independently.
Container Orchestration Tool
Kubernetes
Runs and manages the Docker containers. It restarts failed services and allows individual microservices to be scaled when business workload increases.
Database
PostgreSQL 14
Stores tenant information, users, customers, products, orders, invoices, and business transactions.
Tenant Data Isolation
PostgreSQL Row-Level Security (RLS)
Uses tenant_id to restrict database records. When a business user requests data, PostgreSQL returns only records belonging to that user's tenant.
API Gateway Tool
Kong
Acts as the entry point for the SaaS application. For example, an order request from a user enters through Kong and is routed to the Order microservice.
Authentication Tool
Keycloak
Authenticates business users during login and provides their identity and tenant information to the application.
Deployment Tool
Helm
Deploys the Customer, Product, Order, Billing, and Reporting microservices into the Kubernetes cluster using Kubernetes configuration packages.
Infrastructure as Code Tool
OpenTofu
Creates the Cloud infrastructure required for the application, including VPC, subnets, EC2 instances, EBS volumes, and security groups.
Tracing Tool
Jaeger
Tracks a request as it moves through different microservices in the SaaS business application and helps identify where delays or failures occur.
Configuration Automation Tool
Ansible
Configures the Ubuntu EC2 servers and installs the required Docker and Kubernetes components.
Monitoring Tool
Prometheus
Collects metrics from the Kubernetes cluster, microservices, PostgreSQL, and EC2 servers, such as CPU usage, memory usage, service health, and database performance.
Monitoring Dashboard Tool
Grafana
Displays the Prometheus metrics in dashboards so administrators can monitor the health and performance of the SaaS application.
Network Security
Cloud Security Groups
Controls which network traffic can reach the EC2 servers and other Cloud resources. For example, database access can be restricted to the application layer.