Cloud Provider Migration Guide
This guide helps you migrate from older Zenoo Hub versions to the new cloud provider architecture. The good news: your existing configuration continues to work with zero changes required.Overview of Changes
What Changed
Architecture:- AWS-specific code moved from
backendtocloud-provider-awsmodule - New abstraction layer (
cloud-provider-api) for provider independence - Domain models moved to
hub-domainmodule - Backend now uses adapters to access cloud providers
- Cleaner code organization
- Support for multiple cloud providers
- Better testability
- Easier maintenance
What Didn’t Change
- Configuration: Old
hub.aws.*properties still work - Functionality: All features work exactly the same
- Data: No migration of DynamoDB tables or secrets needed
- API: No changes to Hub Client API or Admin API
Backward Compatibility Guarantee
The new architecture maintains 100% backward compatibility:Migration Strategies
Strategy 1: No Migration (Recommended for Most)
When to Use:- You’re happy with current configuration
- No immediate need for multi-cloud support
- Want to minimize changes
hub.aws.* properties.
Strategy 2: Adopt New Configuration Style
When to Use:- Starting a new deployment
- Want to be explicit about provider selection
- Planning for future multi-cloud support
- Add explicit provider selection:
- Keep existing AWS configuration:
- Test and deploy
- Future-proof configuration
- Clearer intent
- Easier to switch providers later
Strategy 3: Full Migration with Reorganization
When to Use:- Major version upgrade
- Infrastructure refresh
- Opportunity to clean up configuration
- Review current configuration:
- Reorganize configuration with new structure:
- Update dependencies in
build.gradle(if building from source):
- Test in non-production environment:
- Deploy to production
Step-by-Step Migration
Prerequisites
- Backup current configuration
- Review current DynamoDB table structure
- Document current secrets in Secrets Manager
- Access to AWS console for verification
- Non-production environment for testing
Phase 1: Preparation (No Downtime)
1. Inventory Current Resources:- Table prefixes
- Secret prefixes
- IAM roles/permissions
- Multi-region setup (if any)
- Tags
Phase 2: Testing (Non-Production)
1. Update Configuration File: Add new provider configuration to your test environment:- Component registration
- Component retrieval
- Configuration storage/retrieval
- API key creation/validation
- Sharable token operations
Phase 3: Staging Deployment (Limited Downtime)
1. Deploy to Staging:- Monitor error rates
- Check DynamoDB metrics
- Verify Secrets Manager API calls
- Watch for memory leaks or performance degradation
Phase 4: Production Deployment (Planned Downtime)
Option A: Rolling Deployment (No Downtime) 1. Prepare:Phase 5: Verification & Cleanup
1. Production Verification:- All components loading correctly
- Configuration retrieval working
- API keys validating properly
- Sharables creating and expiring
- No error spikes in logs
- DynamoDB metrics normal
- Secrets Manager calls within limits
Rollback Procedures
If Issues Arise
Immediate Rollback:Common Issues and Solutions
Issue: Tables not found Solution:- Verify IAM permissions
- Check secret name format
- Confirm region is correct
- Enable secrets caching
- Check DynamoDB capacity
- Review retry configuration
Testing Checklist
Before migrating to production:Functional Tests
- Component registration and retrieval
- Component updates and versioning
- Configuration storage and retrieval
- API key creation and validation
- Sharable token creation and expiration
- Workflow execution end-to-end
Non-Functional Tests
- Performance comparable to old version
- No memory leaks
- Error handling works correctly
- Logging provides useful information
- Metrics are being collected
Infrastructure Tests
- DynamoDB tables created correctly
- Secrets stored and retrieved
- IAM permissions sufficient
- Multi-region replication (if configured)
- TTL working on sharables table
Post-Migration
Monitoring
Set up these CloudWatch alarms:Optimization
After stabilization: 1. Enable Secrets Caching:Getting Help
If you encounter issues during migration:-
Check the logs:
-
Review configuration:
-
Verify AWS resources:
- Consult documentation:
Summary
The cloud provider migration is designed to be zero-downtime and backward compatible. For most users:- No action required
- Configuration continues to work
- No data migration needed
- All features work the same