Skip to content

Commit e3223e9

Browse files
committed
comments
1 parent a9572dc commit e3223e9

File tree

1 file changed

+100
-56
lines changed

1 file changed

+100
-56
lines changed

articles/app-service/migrate-gateway-based-vnet-integration.md

Lines changed: 100 additions & 56 deletions
Original file line numberDiff line numberDiff line change
@@ -47,41 +47,108 @@ Gateway-based integration can't be used in the following scenarios:
4747
| **Cross-region connectivity** | Through global peering only | Direct connection supported |
4848
| **Performance** | Native virtual network performance | VPN overhead |
4949
| **Scaling** | Better resource utilization | Limited by gateway capacity |
50+
| **Cost** | No extra charges | VPN Gateway charges ($19-$525/month) + bandwidth costs |
5051

5152
## Prerequisites
5253

5354
Before beginning the migration, ensure you have:
5455

5556
* **App Service plan**: A Basic, Standard, Premium, PremiumV2, PremiumV3, or Elastic Premium plan
56-
* **Virtual network**: An Azure Resource Manager virtual network in the same region as your app
57+
* **Virtual network**: A virtual network in the same region as your app
5758
* **Subnet**: An empty subnet or a new subnet dedicated for virtual network integration
5859
* **Permissions**: Appropriate RBAC permissions to configure virtual network integration
5960
* **Planning**: Understanding of your current networking requirements and dependencies
6061

6162
## Migration planning and preparation
6263

63-
The migration process is a disconnect/connect operation that might cause brief downtime. Proper planning minimizes issues with your applications.
64+
> [!IMPORTANT]
65+
> The migration process is a disconnect/connect operation that **will cause downtime**. Virtual network integration is slot-specific and doesn't swap during deployment slot operations, requiring careful planning to minimize impact on your applications.
66+
67+
### Understanding downtime and impact
68+
69+
The migration involves a complete disconnection from gateway-based integration before connecting to regional integration. During this process:
70+
71+
- Your app loses connectivity to virtual network resources
72+
- Dependencies on private endpoints, service endpoints, or internal services are interrupted
73+
- Downtime typically lasts 2-5 minutes depending on configuration complexity, but can be even longer
74+
75+
### Migration strategies
76+
77+
Choose the strategy that best fits your downtime tolerance and operational requirements:
78+
79+
#### Option 1: Blue-green deployment (minimal downtime)
80+
81+
**Best for: Production workloads requiring minimal downtime**
82+
83+
1. **Create a new App Service plan** in the same region
84+
2. **Set up regional virtual network integration** on the new plan
85+
3. **Deploy your application** to the new plan with regional integration
86+
4. **Test thoroughly** to ensure connectivity works as expected
87+
5. **Switch traffic** using Azure Traffic Manager, Application Gateway, or DNS changes
88+
6. **Decommission** the old plan after verifying stability
89+
90+
#### Option 2: Deployment slot testing (minimal downtime)
91+
92+
**Best for: Thorough testing with brief production downtime**
93+
94+
Since virtual network integration is slot-specific, you can test regional virtual network integration on a staging slot:
95+
96+
1. **Prepare the integration subnet** in advance
97+
2. **Configure regional VNet integration on your staging slot** using the prepared subnet
98+
3. **Test your application thoroughly** on the staging slot with regional integration
99+
4. **When ready, disconnect gateway-based integration from production** and configure regional integration on production
100+
5. **Swap slots** to promote the tested code
101+
102+
> [!NOTE]
103+
> Virtual network configurations remain with their respective slots after swapping. Your production slot will have the tested application code and the newly configured regional virtual network integration.
104+
105+
#### Option 3: Direct migration (planned downtime)
106+
107+
**Best for: Applications that can tolerate brief downtime**
108+
109+
1. **Schedule during low-traffic periods** (nights, weekends)
110+
2. **Prepare all configurations** in advance
111+
3. **Notify stakeholders** of the planned maintenance
112+
4. **Have rollback procedures** ready
113+
114+
## Premigration preparation steps
64115

65116
### Step 1: Assess your current setup
66117

67118
1. **Document existing connections**: Note which apps use gateway-based integration
68119
2. **Identify dependencies**: Catalog resources accessed through the current integration
69120
3. **Review networking rules**: Document any NSGs, route tables, or firewall rules
70-
4. **Plan downtime**: Schedule migration during maintenance windows
121+
4. **Evaluate downtime tolerance**: Determine acceptable maintenance windows
122+
5. **Plan rollback strategy**: Prepare procedures to revert if issues occur
71123

72-
### Step 2: Subnet planning and requirements
124+
### Step 2: Plan your subnet configuration
73125

74-
The subnet used for regional virtual network integration must meet [specific requirements](./overview-vnet-integration.md#subnet-requirements). You can either have one subnet per plan or take advantage of the [multi-plan subnet join feature](./overview-vnet-integration.md#subnet-requirements) to connect apps from different plans to the same subnet.
126+
The subnet used for regional virtual network integration must meet [specific requirements](./overview-vnet-integration.md#subnet-requirements):
75127

76128
* **Size**: Minimum `/28` (16 addresses), recommended `/26` (64 addresses) for production
77129
* **Delegation**: Must be delegated to `Microsoft.Web/serverFarms`
78130
* **Availability**: Can't be used by other services simultaneously
79131
* **Location**: Must be in the same virtual network you want to integrate with
80132

133+
#### Subnet sizing guidance
134+
135+
| Scenario | Recommended Size | Max App Instances |
136+
|----------|------------------|-------------------|
137+
| Development/Test | `/28` (16 addresses) | 11 instances |
138+
| Production | `/26` (64 addresses) | 59 instances |
139+
| Multi-plan subnet join | `/26` or larger | Varies by plans |
140+
81141
> [!TIP]
82142
> Always provision double the IP addresses of your expected maximum scale to accommodate platform upgrades and scaling operations.
83143
84-
### Step 3: Create or prepare the integration subnet
144+
#### Multi-plan subnet join
145+
146+
You can connect multiple App Service plans to the same subnet using the [multi-plan subnet join feature](./overview-vnet-integration.md#subnet-requirements). This approach:
147+
- Requires a minimum `/26` subnet
148+
- Allows resource consolidation
149+
- Supports plans across different subscriptions (subnet can be in different subscription)
150+
151+
### Step 3: Create the integration subnet
85152

86153
# [Azure portal](#tab/portal)
87154

@@ -116,13 +183,13 @@ Set-AzVirtualNetwork -VirtualNetwork $vnet
116183

117184
---
118185

119-
## Migration procedure
186+
## Performing the migration
120187

121-
### Same-region migration (most common)
188+
### Same-region migration (most common scenario)
122189

123-
When migrating from gateway-based integration to regional integration within the same region:
190+
For apps currently using gateway-based integration in the same region:
124191

125-
![Diagram showing migration from gateway-based to regional virtual network integration](media/migrate-gateway-based-vnet-integration/same-region-migration.png)
192+
:::image type="content" source="mmedia/migrate-gateway-based-vnet-integration/same-region-migration.png" alt-text="Diagram showing migration from gateway-based to regional virtual network integration.":::
126193

127194
#### Step 1: Disconnect gateway-based integration
128195

@@ -195,14 +262,16 @@ After integration is complete, test your app's connectivity to virtual network r
195262
2. **DNS resolution**: Confirm DNS queries resolve correctly for private resources
196263
3. **Performance testing**: Monitor application performance after the migration
197264

198-
### Cross-region migration considerations
265+
### Cross-region migration
199266

200-
If you're currently using gateway-based integration to connect to a virtual network in a different region, you can set up [virtual network peering](../virtual-network/virtual-network-peering-overview.md):
267+
If you're currently using gateway-based integration to connect to a virtual network in a different region:
201268

202-
1. Create a virtual network in your app's region
203-
2. Establish virtual network peering between regions
204-
3. Set up regional virtual network integration with the local virtual network
205-
4. Configure routing to access cross-region resources through peering
269+
Set up [virtual network peering](../virtual-network/virtual-network-peering-overview.md) to enable regional integration:
270+
271+
1. **Create a virtual network** in your app's region
272+
2. **Establish virtual network peering** between regions
273+
3. **Set up regional virtual network integration** with the local virtual network
274+
4. **Configure routing** to access cross-region resources through peering
206275

207276
## Post-migration configuration and optimization
208277

@@ -216,53 +285,28 @@ After successfully migrating to regional virtual network integration, you can ta
216285
* Connect to Azure services using [private endpoints](./overview-vnet-integration.md#private-endpoints) for enhanced security
217286
* Set up [private DNS zones](./overview-vnet-integration.md#azure-dns-private-zones) for name resolution of private endpoints
218287

219-
## Troubleshooting common issues
220-
221-
### Connectivity problems
222-
223-
**Issue**: App can't reach virtual network resources after migration
224-
225-
**Solutions**:
226-
1. Verify subnet delegation is set to `Microsoft.Web/serverFarms`
227-
2. Check NSG rules allow required traffic
228-
3. Ensure Route All is enabled if needed
229-
4. Confirm DNS resolution is working
230-
231-
### Performance issues
232-
233-
**Issue**: Slower performance after migration
288+
## Troubleshooting
234289

235-
**Solutions**:
236-
1. Monitor network latency to virtual network resources
237-
2. Review and optimize NSG and UDR configurations
238-
3. Consider enabling NAT Gateway for better SNAT port availability
239-
4. Check for bandwidth limitations in network appliances
240-
241-
### IP address exhaustion
242-
243-
**Issue**: Running out of IP addresses in integration subnet
244-
245-
**Solutions**:
246-
1. Move to a larger subnet (can't resize existing subnet)
247-
2. Implement multi-plan subnet join to consolidate plans
248-
3. Monitor and right-size your App Service plan instances
249-
250-
### DNS resolution issues
251-
252-
**Issue**: Can't resolve private DNS names
253-
254-
**Solutions**:
255-
1. Configure Azure DNS private zones
256-
2. Set up custom DNS servers in virtual network settings
257-
3. Verify private endpoint DNS configuration
290+
For common issues and solutions after migration, see [Troubleshoot virtual network integration](/troubleshoot/azure/app-service/troubleshoot-vnet-integration-apps).
258291

259292
## Next steps
260293

261294
After successfully migrating to regional virtual network integration, explore these related articles:
262295

296+
**Configuration guides:**
263297
* [Enable virtual network integration in Azure App Service](./configure-vnet-integration-enable.md)
264-
* [Configure virtual network integration routing](./configure-vnet-integration-routing.md)
298+
* [Configure virtual network integration routing](./configure-vnet-integration-routing.md)
265299
* [Azure NAT Gateway integration](./overview-nat-gateway-integration.md)
300+
301+
**Learn more about App Service networking:**
266302
* [App Service networking features overview](./networking-features.md)
267303
* [Virtual network integration overview](./overview-vnet-integration.md)
268-
* [Troubleshoot virtual network integration](/troubleshoot/azure/app-service/troubleshoot-vnet-integration-apps)
304+
* [Troubleshoot virtual network integration](/troubleshoot/azure/app-service/troubleshoot-vnet-integration-apps)
305+
306+
**Related tutorials:**
307+
* [Tutorial: Isolate back-end communication with Virtual Network integration](./tutorial-networking-isolate-vnet.md)
308+
309+
**Azure networking documentation:**
310+
* [Azure Virtual Network documentation](../virtual-network/index.yml)
311+
* [Azure private endpoints](../private-link/private-endpoint-overview.md)
312+
* [Azure NAT Gateway](../virtual-network/nat-gateway/nat-overview.md)

0 commit comments

Comments
 (0)