System architecture
Blnk operates as a distributed system with three core components:- API Server: Manages incoming HTTP requests and API operations.
- Worker: Processes background jobs and handles asynchronous tasks.
- Migration Service: Oversees database schema updates and management.
- PostgreSQL: Primary database.
- Redis: Used for caching and message queues.
- Typesense: Provides search functionality.
- Jaeger (optional): Enables distributed tracing.
Deployment options
Choose the deployment model that matches your scale and operational needs:-
Single-server deployment
- Best for development and smaller production workloads
- Lower operational overhead
- Faster setup and maintenance
-
Kubernetes deployment
- Best for large-scale production workloads
- High availability and horizontal scaling
- Teams with existing Kubernetes experience
1: Single-server deployment
Prerequisites
Make sure you have the following:
- Linux server (Ubuntu 20.04 LTS or newer recommended)
- Docker Engine 20.10+
- Docker Compose 2.0+
- Managed PostgreSQL instance
- Managed Redis instance
Configuration
Create or update your
blnk.json file. For configuration details, see Advanced configuration.blnk.json
Create a "docker-compose.yml" file
Add the following configuration. It includes the API server, worker, and supporting services.
docker-compose.yml
2: Kubernetes deployment
Blnk provides Kubernetes manifests to help you deploy and operate Blnk in containerized environments. Use the official manifests and instructions:infrastructure/k8s-manifests
Blnk Kubernetes Manifests
kubectl is installed, run:
kubectl
Production considerations
1. Security
- Network security
- Enable SSL/TLS for all external connections
- Implement proper network policies
- Use secret management solutions
- Regular security updates
- Access control
- Implement proper authentication
- Use role-based access control
- Regular audit of access patterns
2. Monitoring
- System metrics
- CPU utilization
- Memory usage
- Disk I/O
- Network traffic
- Application metrics
- Request latency
- Error rates
- Queue depths
- Processing times
3. Backup and Recovery
- Database backups
- Regular automated backups
- Point-in-time recovery capability
- Backup testing procedures
- Configuration management
- Version control for configurations
- Documentation of deployment procedures
- Disaster recovery planning
Troubleshooting guide
If you run into deployment issues, check these areas first:- Database connectivity
- Verify network security groups
- Check connection strings
- Validate database credentials
- Worker processing
- Monitor Redis connectivity
- Check worker logs
- Verify queue configuration
- Migration issues
- Verify database permissions
- Check migration logs
- Validate schema versions
Support resources
- Log analysis
- Check application logs (
docker-compose logsorkubectl logs) - Review system logs
- Monitor error tracking systems
- Check application logs (
- Performance issues
- Review resource utilization
- Check database performance
- Monitor network latency
- Additional support
- Technical documentation
- Community forums
- Support channels