Skip to main content

Enterprise Deployment Guide

Complete guide for deploying OmniDaemon in production enterprise environments.

Deployment Overview

OmniDaemon can be deployed across various environments:
  • Cloud (AWS, Azure, GCP)
  • On-Premise (Data centers, private cloud)
  • Hybrid (Mix of cloud and on-prem)
  • Edge (IoT, manufacturing, retail)

Pre-Deployment Checklist

1. Infrastructure Requirements

To Get Started (Minimum):
  • 1 vCPU
  • 1GB RAM
  • 10GB storage
  • Redis server (for event bus + storage)
Production (Depends on Your Use Case): The requirements vary significantly based on:
  • Agent workload type: I/O-bound (API calls, file ops) vs CPU-bound (ML inference, heavy computation)
  • Event throughput: Events per second your system processes
  • Number of consumers: Run one or more consumers per agent for load balancing (you decide based on your needs)
Realistic ranges:
  • Light I/O workloads: 1-2 vCPU, 2-4GB RAM (handles most API-calling agents)
  • Heavy computation: 4-8 vCPU, 8-16GB RAM (ML inference, data processing)
  • Redis server: 2 vCPU, 4GB RAM (scales well for most workloads)
  • Storage: 20GB+ (depends on result retention and metrics volume)

2. Network Requirements

What You Need (Current Implementation):
  • Port 6379 - Redis (for event bus + storage)
  • Port 8765 (optional) - OmniDaemon API if you enable it
Connectivity:
  • Your agent runners need to connect to Redis
  • Low latency connection is preferred but not required
  • If using multiple servers, keep them in same VPC/region for best performance
That’s it! Redis handles both event streaming and storage in the current implementation.

3. Security Requirements

  • TLS certificates for encrypted connections
  • Credentials management (AWS Secrets Manager, HashiCorp Vault)
  • Network security groups/firewall rules
  • IAM roles/service accounts

Deployment Architectures

1. Single Server (Getting Started)

Best for:
  • Development
  • Testing
  • Small-to-medium workloads (most I/O-bound use cases)
What You Actually Need:
Setup:
Scaling on Single Server: You can handle significant load on one server by:
  • Adding more consumers per agent (scale based on your workload)
  • Running multiple agent types on same runner
  • Redis can handle 100K+ ops/sec on modest hardware

2. Multi-Server (Horizontal Scaling)

When to scale horizontally:
  • Single server hits resource limits (CPU/Memory)
  • Need high availability (failover protection)
  • Want to separate different agent types across servers
How horizontal scaling works:
  • Each agent runner connects to the same Redis
  • Redis consumer groups automatically distribute work
  • Just start more agent runner instances - that’s it!
Architecture:
Redis handles:
  • Consumer group coordination (automatic work distribution)
  • Message persistence and replay
  • Load balancing across all consumers
Setup (Docker Compose):
Scaling strategy:
  1. Vertical first: Add consumers per agent (scale based on your workload)
  2. Horizontal next: Add more runner instances (just start them - Redis handles coordination)
  3. Redis scaling: Only when Redis itself becomes bottleneck (rare for most use cases)

3. Kubernetes (Cloud-Native)

Best for:
  • Auto-scaling
  • Cloud deployments (AWS/Azure/GCP)
  • Large-scale production
Architecture:
Kubernetes Manifests:

Environment Configuration

Development

Production


High Availability Setup

Redis Cluster (Event Bus + Storage)

Load Balancing


Monitoring & Observability

Health Checks

Metrics Collection


Security Best Practices

1. Credential Management

AWS Secrets Manager:
HashiCorp Vault:

2. Network Security

3. TLS/SSL


Performance Tuning

1. Agent Runner Optimization

2. Python Performance

3. Resource Limits


Disaster Recovery

1. Backup Strategy

2. Restore Procedure

3. Stream Replay


CI/CD Pipeline

GitHub Actions


Troubleshooting

Common Issues

1. Agent not receiving messages:
2. High memory usage:
3. Slow processing:

Production Checklist

Before going live:
  • Load testing completed (target: 2x expected load)
  • Health checks configured
  • Monitoring dashboards set up
  • Alerts configured (PagerDuty, Slack)
  • Backup/restore tested
  • Disaster recovery plan documented
  • Security audit completed
  • TLS/SSL enabled
  • Secrets management configured
  • CI/CD pipeline working
  • Runbook created for on-call team
  • Performance tuning applied
  • Auto-scaling tested
  • Documentation updated

Next Steps


Need help with deployment? Contact us for enterprise support.