Deployment & Infrastructure
Relevant source files
The following files were used as context for generating this wiki page:
The BankChase platform utilizes a multi-layered infrastructure designed for high performance, security, and scalability. The system supports various deployment strategies, ranging from containerized local development using Docker Compose to production-grade orchestration with Kubernetes (EKS/GKE) and managed cloud services like Vercel and AWS ECS Fargate.
The infrastructure is built to support a hybrid backend architecture, primarily utilizing a high-performance Go core server for high-throughput operations (10,000+ transfers/second) and a Node.js/TypeScript API for development and specialized banking logic. This setup is complemented by a hybrid database strategy involving PostgreSQL for structured ledgers and MongoDB for flexible data types like notifications and analytics.
Multi-Platform Deployment Architecture
BankChase is designed to be environment-agnostic, supporting three primary production deployment paths: AWS (EC2/ECS), Kubernetes, and Vercel.
Infrastructure Components
The following diagram illustrates the high-level relationship between the deployment services and the core application modules.
The diagram depicts the routing from client interfaces through orchestration layers to the specialized backend services and their respective data stores.
Sources: PRODUCTION_BANKING_SERVER_COMPLETE.md:213-241, DEPLOYMENT.md:158-198
Containerization and Orchestration
Docker and Local Development
For local development, BankChase uses docker-compose to orchestrate the API, PostgreSQL, and Redis services. This ensures environment parity across developer machines.
| Service | Image | Default Port | Purpose |
|---|---|---|---|
api | ghcr.io/bensilva2/bankchase:latest | 8000 | FastAPI / Node application |
postgres | postgres:15-alpine | 5432 | Relational ledger and RBAC data |
redis | redis:7-alpine | 6379 | Idempotency and rate limiting |
Sources: DEPLOYMENT.md:144-156, docker-compose.yml:4-45
Kubernetes Deployment
Production environments leverage Kubernetes for horizontal auto-scaling (HPA) and high availability. The deployment configuration defines resource limits and probes to ensure service health.
# Example Kubernetes Resource Mapping
spec:
replicas: 3
template:
spec:
containers:
- name: bankchase-server
image: ghcr.io/bensilva2/bankchase:v0.1.0
ports:
- containerPort: 8080
livenessProbe:
httpGet:
path: /health
port: 8080
Sources: go-server/k8s/deployment.yaml:1-55, DEPLOYMENT.md:198-212
Continuous Integration & Delivery (CI/CD)
The project utilizes GitHub Actions for automated building and publishing of artifacts to the GitHub Container Registry (ghcr.io) and GitHub Packages.
Build and Push Workflow
The sequence illustrates the automated pipeline triggered by code changes to ensure artifacts are ready for deployment.
Sources: DEPLOYMENT.md:46-75, DEPLOYMENT.md:118-135
Server Configuration and Scaling
The application is optimized for specific performance metrics, particularly the Go Core server which handles the primary transaction ledger.
Scaling Strategy
- Vertical Scaling: Managed via AWS ECS Fargate task definitions, specifying CPU and Memory units (e.g.,
t3.mediumequivalent for EC2). - Horizontal Scaling: Handled by Kubernetes HPA based on CPU utilization or request throughput.
- Performance Targets: The infrastructure is tuned to support 10,000+ transfers per second with sub-100ms initialization times.
Sources: PRODUCTION_BANKING_SERVER_COMPLETE.md:80-90, DEPLOYMENT_GUIDE.md:200-215
Security and Monitoring
Infrastructure Security
Infrastructure security is enforced through multiple layers:
- mTLS: Mutual TLS authentication for cross-border network communication.
- Webhook Security: HMAC-SHA256 signature verification for provider events.
- Secrets Management: Sensitive keys (JWT, DB passwords) are injected via environment variables or managed secrets (AWS Secrets Manager/Kubernetes Secrets).
Health Monitoring
The platform exposes health endpoints for automated monitoring tools:
/health: General API status./health/db: Database connectivity verification.
Sources: PRODUCTION_BANKING_SERVER_COMPLETE.md:15-30, DEPLOYMENT.md:267-276
The BankChase infrastructure provides a robust foundation for secure, high-speed banking operations, ensuring that the platform can scale from local development to global production traffic seamlessly.