Skip to main content

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:

ModeUse CaseCharacteristics
SingleDevelopment, low-trafficSingle VM, basic redundancy
DualProduction, standard HARedundant VMs, failover capable
ClusterEnterprise, high-demandMulti-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

  1. Schedule During Maintenance Windows

    • Coordinate with stakeholders
    • Plan for expected downtime
    • Communicate changes in advance
  2. Test in Non-Production First

    • Scale a dev/test instance first
    • Verify all configurations work
    • Document any issues found
  3. Monitor Resource Utilization

    • Track CPU, memory, and disk usage
    • Plan scaling before hitting 80% capacity
    • Consider seasonal demand patterns

Executing Scaling Changes

  1. Create Backup Configuration

    • Save current settings
    • Document for rollback if needed
  2. Execute During Low Traffic

    • Minimize impact on users
    • Coordinate with on-call teams
  3. Verify After Scaling

    • Confirm VNF is active
    • Test connectivity and functionality
    • Monitor logs for errors
  4. 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