- Introduced Aggregator.sol for Chainlink-compatible oracle functionality, including round-based updates and access control. - Added OracleWithCCIP.sol to extend Aggregator with CCIP cross-chain messaging capabilities. - Created .gitmodules to include OpenZeppelin contracts as a submodule. - Developed a comprehensive deployment guide in NEXT_STEPS_COMPLETE_GUIDE.md for Phase 2 and smart contract deployment. - Implemented Vite configuration for the orchestration portal, supporting both Vue and React frameworks. - Added server-side logic for the Multi-Cloud Orchestration Portal, including API endpoints for environment management and monitoring. - Created scripts for resource import and usage validation across non-US regions. - Added tests for CCIP error handling and integration to ensure robust functionality. - Included various new files and directories for the orchestration portal and deployment scripts.
5.6 KiB
5.6 KiB
Global Multi-Region Deployment Strategy
Overview
This deployment strategy ensures:
- Validator nodes in ALL non-US Commercial Azure regions
- Same validator VM size across ALL regions (for consistency)
- RPC nodes in ALL regions (core backbone, internally networked)
- System and sentry nodes distributed as needed based on quotas
Deployment Requirements
Validator Nodes
- Location: ALL non-US Commercial Azure regions (42 regions)
- VM Size:
Standard_D4_v2(4 vCPUs) - SAME across ALL regions - Count: 1 validator per region (minimum for consensus)
- Family: Dv2 Family
- Purpose: Consensus and block validation
RPC Nodes (Core Backbone)
- Location: ALL non-US Commercial Azure regions (42 regions)
- VM Size:
Standard_D8s_v6(8 vCPUs) - SAME across ALL regions - Count: 1 RPC node per region (core backbone)
- Family: Dsv6 Family
- Purpose: Internal networking, core backbone infrastructure
System Nodes
- Location: ALL regions (required for AKS)
- VM Size:
Standard_D2_v2(2 vCPUs) - Count: 1 system node per region
- Family: Dv2 Family
- Purpose: AKS system pool
Sentry Nodes
- Location: Distributed as needed based on quotas
- VM Size:
Standard_D4_v2(4 vCPUs) - Count: 0-1 per region (distributed)
- Family: Dv2 Family
- Purpose: P2P connectivity, can be distributed
All Non-US Commercial Azure Regions (42)
- Belgium Central
- Brazil South
- Brazil Southeast
- Canada Central
- Canada East
- Central India
- Chile Central
- East Asia
- France Central
- France South
- Germany North
- Germany West Central
- Indonesia Central
- Israel Central
- Italy North
- Japan East
- Japan West
- Jio India Central
- Jio India West
- Korea Central
- Korea South
- Malaysia West
- Mexico Central
- New Zealand North
- North Europe
- Norway East
- Norway West
- Poland Central
- Qatar Central
- South Africa North
- South Africa West
- Southeast Asia
- South India
- Spain Central
- Sweden Central
- Switzerland North
- Switzerland West
- UAE Central
- UAE North
- UK South
- UK West
- West Europe
- West India
Per-Region Configuration
Standard Configuration (All Regions)
| Node Type | VM Size | vCPUs | Family | Count | Required |
|---|---|---|---|---|---|
| System | Standard_D2_v2 | 2 | Dv2 | 1 | Yes (AKS) |
| Validators | Standard_D4_v2 | 4 | Dv2 | 1 | Yes (ALL regions) |
| Sentries | Standard_D4_v2 | 4 | Dv2 | 0-1 | Optional |
| RPC | Standard_D8s_v6 | 8 | Dsv6 | 1 | Yes (ALL regions) |
| Total | 14-18 | 3-4 |
Quota Requirements Per Region
- Dv2 Family: 6-10 vCPUs (system: 2, validators: 4, sentries: 0-4)
- Dsv6 Family: 8 vCPUs (RPC: 8)
- Total: 14-18 vCPUs per region
Total Deployment Summary
Global Resources
- Total Regions: 42 (all non-US Commercial Azure)
- Total Validator Nodes: 42 (1 per region)
- Total RPC Nodes: 42 (1 per region - core backbone)
- Total System Nodes: 42 (1 per region - AKS)
- Total Sentry Nodes: 0-42 (distributed as needed)
- Total Nodes: 126-168 nodes
Total vCPUs
- Dv2 Family: 252-420 vCPUs (6-10 per region × 42)
- Dsv6 Family: 336 vCPUs (8 per region × 42)
- Total: 588-756 vCPUs
Key Design Principles
1. Validator Consistency
- Same VM size (
Standard_D4_v2) across ALL regions - Ensures consistent performance and behavior
- Simplifies monitoring and management
2. RPC Backbone
- RPC nodes in ALL regions for core backbone
- Internally networked for high availability
- Critical infrastructure component
3. Flexible Distribution
- System nodes: Required in all regions (AKS)
- Sentry nodes: Distributed based on quotas and needs
- Allows optimization per region
Deployment Steps
1. Enable Global Multi-Region
cd terraform
cp terraform.tfvars.multi-region terraform.tfvars
# Edit terraform.tfvars to set enable_multi_region = true
2. Review Configuration
The configuration in terraform/multi-region-global.tf includes:
- All 42 non-US Commercial Azure regions
- Standard validator VM size across all regions
- RPC nodes in all regions
- Flexible system/sentry distribution
3. Deploy
terraform init
terraform plan -out=tfplan
terraform apply tfplan
Monitoring
Per-Region Metrics
- Validator Health: Monitor all 42 validator nodes
- RPC Backbone: Monitor all 42 RPC nodes
- Quota Usage: Track quota consumption per region
- Performance: Compare performance across regions
Global Metrics
- Total Validators: 42 (all regions)
- Total RPC Nodes: 42 (all regions)
- Geographic Distribution: Global coverage
- Consensus Health: Monitor validator consensus
Cost Estimate
Monthly Costs (Approximate)
- Per Region: ~$200-300/month (3-4 nodes)
- Total (42 regions): ~$8,400-12,600/month
Note: Costs vary based on VM sizes, usage, and Azure pricing
Benefits
- Global Coverage: 42 regions provide worldwide presence
- Consistent Validators: Same VM size ensures uniform behavior
- Resilient Backbone: RPC nodes in all regions for redundancy
- Flexible Scaling: System/sentry nodes can be adjusted per region
- High Availability: Geographic redundancy across all regions
Next Steps
- ✅ Configure global multi-region Terraform
- ⏳ Verify quotas in all 42 regions
- ⏳ Deploy primary regions first
- ⏳ Deploy remaining regions
- ⏳ Configure cross-region networking
- ⏳ Set up global monitoring
- ⏳ Deploy Besu network nodes