Scaling Virtual Network Function Deployments
This guide covers scaling strategies, multi-zone deployments, and managing VNF growth on the Evolution Platform.
Scaling Strategies
The Virtual Network Edge API supports three primary scaling approaches:
1. Deployment Mode Scaling
Scale vertically by changing deployment architecture:
| Mode | Use Case | Characteristics |
|---|---|---|
| Single | Development, low-traffic | Single VM, basic redundancy |
| Dual | Production, standard HA | Redundant VMs, failover capable |
| Cluster | Enterprise, high-demand | Multi-node, distributed, maximum availability |
2. Flavor-Based Scaling
Scale resources within a zone by changing VM specifications:
# List available flavors
curl -X GET 'https://api.orange.com/evolutionplatform/vnfaaservice/api/v1/virtualnetworkfunctionmodels/model-uuid/flavors' \
-H 'Authorization: Bearer YOUR_ACCESS_TOKEN'
Flavor Characteristics:
- CPU: vCPU count (2, 4, 8, 16+)
- RAM: Memory allocation (4GB, 8GB, 16GB+)
- Disk: Storage capacity (50GB, 100GB, 500GB+)
- DPDK: Data Plane Development Kit support for packet processing
3. Geographic Scaling
Scale horizontally across multiple zones (Points of Presence):
# List available zones
curl -X GET 'https://api.orange.com/evolutionplatform/vnfaaservice/api/v1/virtualnetworkfunctionmodels/model-uuid/zones' \
-H 'Authorization: Bearer YOUR_ACCESS_TOKEN'
Vertical Scaling: Upgrading Flavor
Upgrade a VNF instance to a larger flavor for increased capacity.
Step 1: Verify Current Configuration
curl -X GET 'https://api.orange.com/evolutionplatform/vnfaaservice/api/v1/projects/project-uuid/virtualnetworkfunctions/vnf-uuid' \
-H 'Authorization: Bearer YOUR_ACCESS_TOKEN'
Response:
{
"id": "vnf-uuid",
"name": "prod-vnf-01",
"deploymentCharacteristic": {
"virtualMachineName": "vnf-prod-01",
"flavorId": "flavor-small", // Current: 4 CPU, 8GB RAM
"state": "up"
}
}
Step 2: Undeploy Current Instance
To scale, first undeploy the running instance:
curl -X POST 'https://api.orange.com/evolutionplatform/vnfaaservice/api/v1/projects/project-uuid/virtualnetworkfunctions/vnf-uuid/actions/undeploy' \
-H 'Authorization: Bearer YOUR_ACCESS_TOKEN'
Response:
{
"id": "job-undeploy-1",
"state": "processing",
"type": "undeploy",
"messages": [
{
"type": "informational",
"message": "Stopping VNF services..."
}
]
}
Monitor the undeployment job:
curl -X GET 'https://api.orange.com/evolutionplatform/vnfaaservice/api/v1/jobs/job-undeploy-1' \
-H 'Authorization: Bearer YOUR_ACCESS_TOKEN'
Step 3: Update VNF with Larger Flavor
Once undeployed, update the VNF configuration with a larger flavor:
curl -X PUT 'https://api.orange.com/evolutionplatform/vnfaaservice/api/v1/projects/project-uuid/virtualnetworkfunctions/vnf-uuid' \
-H 'Authorization: Bearer YOUR_ACCESS_TOKEN' \
-H 'Content-Type: application/json' \
-d '{
"name": "prod-vnf-01",
"description": "Production VNF - upgraded",
"virtualNetworkFunctionModelId": "model-uuid",
"imageVersion": "7.2.0",
"deploymentMode": "dual",
"deploymentCharacteristics": {
"virtualMachineName": "vnf-prod-01",
"zoneId": "zone-1",
"flavorId": "flavor-large", // Upgraded: 8 CPU, 16GB RAM
"publicIpAddresses": ["ipv4"]
},
"technicalCharacteristics": []
}'
Step 4: Redeploy with New Configuration
Redeploy the VNF with the upgraded resources:
curl -X POST 'https://api.orange.com/evolutionplatform/vnfaaservice/api/v1/projects/project-uuid/virtualnetworkfunctions/vnf-uuid/actions/deploy' \
-H 'Authorization: Bearer YOUR_ACCESS_TOKEN'
Downtime Estimate:
- Undeployment: 2-5 minutes
- Redeployment: 5-10 minutes
- Total: 7-15 minutes expected downtime
Horizontal Scaling: Multi-Zone Deployment
Deploy VNF instances across multiple zones for geographic distribution and resilience.
Step 1: Identify Target Zones
List available zones for your VNF model:
curl -X GET 'https://api.orange.com/evolutionplatform/vnfaaservice/api/v1/virtualnetworkfunctionmodels/model-uuid' \
-H 'Authorization: Bearer YOUR_ACCESS_TOKEN'
Response excerpt:
{
"zones": [
{
"id": "zone-paris",
"name": "Paris POP",
"region": "EU-WEST",
"countryCode": "FR"
},
{
"id": "zone-london",
"name": "London POP",
"region": "EU-WEST",
"countryCode": "UK"
},
{
"id": "zone-amsterdam",
"name": "Amsterdam POP",
"region": "EU-WEST",
"countryCode": "NL"
}
]
}
Step 2: Create VNF in Secondary Zone
Create a new VNF instance in a different zone:
curl -X POST 'https://api.orange.com/evolutionplatform/vnfaaservice/api/v1/projects/project-uuid/virtualnetworkfunctions' \
-H 'Authorization: Bearer YOUR_ACCESS_TOKEN' \
-H 'Content-Type: application/json' \
-d '{
"name": "prod-vnf-london",
"description": "Production VNF - London zone",
"virtualNetworkFunctionModelId": "model-uuid",
"imageVersion": "7.2.0",
"deploymentMode": "dual",
"deploymentCharacteristics": {
"virtualMachineName": "vnf-london-01",
"zoneId": "zone-london",
"flavorId": "flavor-medium",
"publicIpAddresses": ["ipv4"]
}
}'
Step 3: Deploy Multi-Zone Setup
Deploy the secondary instance:
curl -X POST 'https://api.orange.com/evolutionplatform/vnfaaservice/api/v1/projects/project-uuid/virtualnetworkfunctions/vnf-uuid-london/actions/deploy' \
-H 'Authorization: Bearer YOUR_ACCESS_TOKEN'
Step 4: Configure Load Balancing
For seamless multi-zone operation, configure load balancing across zones:
Example Configuration:
Zone 1 (Paris) - 50% traffic
Zone 2 (London) - 50% traffic
Primary: Paris (zone-paris)
Secondary: London (zone-london)
Failover: Automatic on primary zone failure
Implement this at your DNS or application level (outside API scope).
Deployment Mode Scaling
Upgrade from single to dual or cluster mode for increased availability.
Single to Dual Mode
Transition a production VNF from single to dual (HA) mode:
# Step 1: Undeploy
curl -X POST 'https://api.orange.com/evolutionplatform/vnfaaservice/api/v1/projects/project-uuid/virtualnetworkfunctions/vnf-uuid/actions/undeploy' \
-H 'Authorization: Bearer YOUR_ACCESS_TOKEN'
# Wait for undeployment to complete...
# Step 2: Update to dual mode
curl -X PUT 'https://api.orange.com/evolutionplatform/vnfaaservice/api/v1/projects/project-uuid/virtualnetworkfunctions/vnf-uuid' \
-H 'Authorization: Bearer YOUR_ACCESS_TOKEN' \
-H 'Content-Type: application/json' \
-d '{
"deploymentMode": "dual",
"deploymentCharacteristics": {
"virtualMachineName": "vnf-prod-01",
"zoneId": "zone-1",
"flavorId": "flavor-medium",
"publicIpAddresses": ["ipv4"]
}
}'
# Step 3: Redeploy with HA
curl -X POST 'https://api.orange.com/evolutionplatform/vnfaaservice/api/v1/projects/project-uuid/virtualnetworkfunctions/vnf-uuid/actions/deploy' \
-H 'Authorization: Bearer YOUR_ACCESS_TOKEN'
Monitoring Scaling Operations
Track all scaling operations through the Jobs API:
# List all jobs for a VNF
curl -X GET 'https://api.orange.com/evolutionplatform/vnfaaservice/api/v1/projects/project-uuid/virtualnetworkfunctions/vnf-uuid/jobs' \
-H 'Authorization: Bearer YOUR_ACCESS_TOKEN'
Job Tracking:
{
"content": [
{
"id": "job-deploy-1",
"type": "deploy",
"state": "succeeded",
"startDate": "2024-06-24T10:00:00Z",
"endDate": "2024-06-24T10:12:00Z",
"messages": [
{
"type": "informational",
"message": "Deployment completed successfully"
}
]
},
{
"id": "job-update-1",
"type": "update",
"state": "succeeded",
"messages": []
}
]
}
Scaling Best Practices
Planning Scaling Operations
-
Schedule During Maintenance Windows
- Coordinate with stakeholders
- Plan for expected downtime
- Communicate changes in advance
-
Test in Non-Production First
- Scale a dev/test instance first
- Verify all configurations work
- Document any issues found
-
Monitor Resource Utilization
- Track CPU, memory, and disk usage
- Plan scaling before hitting 80% capacity
- Consider seasonal demand patterns
Executing Scaling Changes
-
Create Backup Configuration
- Save current settings
- Document for rollback if needed
-
Execute During Low Traffic
- Minimize impact on users
- Coordinate with on-call teams
-
Verify After Scaling
- Confirm VNF is active
- Test connectivity and functionality
- Monitor logs for errors
-
Document Changes
- Update runbooks
- Record configuration versions
- Track performance improvements
Scaling Scenarios
Scenario 1: Holiday Traffic Surge
Problem: Peak traffic expected during holidays
Solution:
1. Create 2nd instance in secondary zone (pre-holiday)
2. Test load balancing configuration
3. Enable automatic failover
4. Monitor during peak period
5. Scale down after holidays
Scenario 2: Performance Degradation
Problem: VNF running slowly under load
Solution:
1. Check flavor resource usage
2. Upgrade to larger flavor (vertical scale)
3. OR add instance in another zone (horizontal scale)
4. Monitor performance improvement
5. Adjust load balancing if needed
Scenario 3: Zone Maintenance
Problem: Required maintenance in primary zone
Solution:
1. Ensure secondary zone deployment ready
2. Shift traffic to secondary zone
3. Perform maintenance on primary
4. Verify primary recovered
5. Return to normal configuration
Next Steps
- Deploying VNFs - Review deployment basics
- Security Configuration - Set up security for scaled deployments
- API Reference - Explore all VNF endpoints