Deployment Overview
OSO Kafka Backup can be deployed in several ways depending on your infrastructure and requirements.
Deployment Options
| Method | Best For | Management | Scalability |
|---|---|---|---|
| Bare Metal | Traditional servers, VMs | Manual | Manual |
| Docker | Containerized environments | Manual/Compose | Manual |
| Kubernetes | K8s clusters (manual) | kubectl/Helm | Manual |
| Kubernetes Operator | Production K8s | CRDs/GitOps | Automatic |
Quick Decision Guide
Use Bare Metal When
- Running on traditional servers or VMs
- Simple single-node deployments
- Direct filesystem access required
- Minimal container overhead desired
Use Docker When
- Local development and testing
- CI/CD pipelines
- Simple container deployments
- Docker Compose environments
Use Kubernetes When
- Running on Kubernetes clusters
- Need manual control over backup scheduling
- Using external job schedulers (Argo, Airflow)
- Not ready for operator pattern
Use Kubernetes Operator When
- Production Kubernetes deployments
- GitOps workflows (ArgoCD, Flux)
- Automated scheduled backups
- Multi-tenant environments
- Need declarative backup management
System Requirements
Minimum Requirements
| Resource | Requirement |
|---|---|
| CPU | 1 core |
| Memory | 256 MB |
| Disk | 10 GB (+ backup storage) |
| Network | Access to Kafka brokers |
Recommended for Production
| Resource | Requirement |
|---|---|
| CPU | 2-4 cores |
| Memory | 1-2 GB |
| Disk | 100 GB SSD (for local storage) |
| Network | 1 Gbps to Kafka and storage |
Sizing Guidelines
| Kafka Cluster Size | CPU | Memory | Notes |
|---|---|---|---|
| Small (< 100 partitions) | 1 core | 512 MB | Single instance |
| Medium (100-500 partitions) | 2 cores | 1 GB | Increase parallelism |
| Large (500+ partitions) | 4 cores | 2 GB | Consider multiple instances |
Network Requirements
Outbound Connections
| Service | Port | Protocol | Required |
|---|---|---|---|
| Kafka Brokers | 9092 (or custom) | TCP | Yes |
| AWS S3 | 443 | HTTPS | If using S3 |
| Azure Blob | 443 | HTTPS | If using Azure |
| GCS | 443 | HTTPS | If using GCS |
Security Considerations
- Use TLS for Kafka connections in production
- Use IAM roles/service accounts for cloud storage (avoid static credentials)
- Restrict network access to backup service
- Encrypt data at rest in storage backend
Storage Backend Setup
Before deploying, configure your storage backend:
| Backend | Setup Guide |
|---|---|
| AWS S3 | AWS S3 Setup |
| Azure Blob | Azure Blob Setup |
| Google Cloud Storage | GCS Setup |
Enterprise Edition
All deployment methods above also apply to the enterprise edition. The enterprise binary is a drop-in replacement that adds Schema Registry backup, Confluent RBAC backup, and more. To use the enterprise edition:
- Homebrew:
brew install osodevops/tap/kafka-backup-enterprise(instead ofkafka-backup) - Docker:
osodevops/kafka-backup-enterprise:latest(instead ofghcr.io/osodevops/kafka-backup) - Binary: Download from the enterprise releases page
See the Enterprise Installation Guide for full details.
Next Steps
-
Choose your deployment method:
-
Configure cloud storage (if applicable):
-
For production Kubernetes: