Skip to content

Commit b89ff26

Browse files
authored
Add FAQ for migrating to AKS from multi-container Web App
Added FAQ section covering migration from multi-container Web App to AKS, including application rewriting, environment variables, scaling, and cost considerations.
1 parent c47ccdd commit b89ff26

1 file changed

Lines changed: 112 additions & 0 deletions

File tree

0_Azure/8_AzureApps/demos/1_Compute/0_fromMulti-containerWebApp_toAKS.md

Lines changed: 112 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -261,6 +261,118 @@ From [Disk type comparison](https://learn.microsoft.com/en-us/azure/virtual-mach
261261
- Networking Costs: Minimize cross-region traffic;` keep AKS and app services in same region.`
262262
- Reserved Instances: For predictable workloads, `reserve VMs for 1–3 years to save up to ~57%.`
263263

264+
## FAQ
265+
266+
1. Do I need to rewrite my application? `R/ Usually **no**. If your app already runs in containers, the main changes are:`
267+
- Converting **docker-compose.yml** into **Kubernetes manifests** or **Helm charts**.
268+
- Externalizing configuration into ConfigMaps/Secrets.
269+
- Ensuring containers are stateless.
270+
271+
> The application code rarely needs modification unless it relies on App Service‑specific features.
272+
273+
274+
2. How do I migrate my docker-compose setup to Kubernetes? `R/ Typical mapping:`
275+
- `services:` → Kubernetes Deployments + Services
276+
- `volumes:` → PersistentVolumeClaims
277+
- `environment:` → ConfigMaps + Secrets
278+
- `ports:` → Container ports + Ingress
279+
> Tools that help:
280+
- **kompose** (automatic conversion)
281+
- **Helm** (recommended for production)
282+
- **Draft** or **Bridge to Kubernetes** for dev workflows
283+
284+
3. What about environment variables and secrets? `R/ In App Service, env vars are injected automatically. In AKS:`
285+
- Use **ConfigMaps** for non‑sensitive settings.
286+
- Use **Secrets** for sensitive values.
287+
- Use **Azure Key Vault** + CSI driver for secure secret injection.
288+
289+
4. How do I expose my application publicly? `R/ In App Service, exposure is automatic. In AKS, you choose:`
290+
- **Ingress Controller** (NGINX, AGIC, Traefik) — most common
291+
- **LoadBalancer Service** — simple but less flexible
292+
- **Service Mesh** (Istio, Linkerd) — advanced traffic control
293+
294+
5. How do I handle logging and monitoring?
295+
`R/`
296+
> - App Service → Application Insights
297+
> - AKS → You can still use App Insights, but most teams add:
298+
- **Prometheus** for metrics
299+
- **Grafana** for dashboards
300+
- **Azure Monitor for Containers** for cluster health
301+
- **OpenTelemetry** for tracing
302+
303+
6. What about scaling? `R/ AKS gives you more options:`
304+
- **Horizontal Pod Autoscaler (HPA)**
305+
- **KEDA** for event‑driven autoscaling
306+
- **Cluster Autoscaler** for node scaling
307+
- **Virtual Nodes** for burst workloads
308+
309+
> This is a major upgrade from App Service’s simpler autoscaling rules.
310+
311+
7. How do I deploy to AKS? `R/ Common approaches:`
312+
- **Azure DevOps Pipelines** or **GitHub Actions**
313+
314+
> AKS supports more sophisticated deployment strategies than App Service.
315+
316+
8. What are the cost considerations? `R/ AKS can be cheaper *or* more expensive depending on:`
317+
- Node size and count
318+
- Whether you use spot nodes
319+
- Whether you use managed add‑ons
320+
- How well you autoscale
321+
322+
> - App Service is predictable but less flexible.
323+
> - AKS rewards optimization.
324+
325+
9. What are the common migration pitfalls? `R/ Teams often run into:`
326+
- Missing health probes → pods restart endlessly
327+
- Incorrect Ingress configuration → app unreachable
328+
- Not externalizing config → containers fail on startup
329+
- Over‑provisioning nodes → unnecessary cost
330+
- Forgetting persistent storage → data loss
331+
- Not setting resource limits → noisy neighbor issues
332+
333+
10. How long does a typical migration take? `R/ Depends on complexity:`
334+
- **Simple 2–3 container app** → 1–2 weeks
335+
- **Medium microservice app** → 4–8 weeks
336+
- **Large distributed system** → 3–6 months
337+
338+
> Most of the time is spent on:
339+
- Infrastructure setup
340+
- CI/CD redesign
341+
- Observability
342+
- Security and networking
343+
344+
11. Can I run both environments during migration? `R/ Yes — and you should. Common patterns:`
345+
- **Side‑by‑side testing**
346+
- **Blue/green cutover**
347+
- **Gradual traffic shifting** via Ingress or Front Door
348+
349+
> This reduces risk dramatically.
350+
351+
12. What’s the recommended folder structure for AKS deployments? `R/ A clean structure might look like:`
352+
353+
```
354+
/deploy
355+
/helm
356+
/app
357+
values.yaml
358+
templates/
359+
/manifests
360+
deployment.yaml
361+
service.yaml
362+
ingress.yaml
363+
/src
364+
(your application code)
365+
```
366+
367+
13. What Azure services pair well with AKS?
368+
- **Azure Container Registry (ACR)**
369+
- **Azure Key Vault**
370+
- **Azure Monitor**
371+
- **Azure Front Door**
372+
- **Azure Load Testing**
373+
- **Azure Files / Azure Disks**
374+
- **Azure Service Bus / Event Grid / Event Hubs**
375+
264376
<!-- START BADGE -->
265377
<div align="center">
266378
<img src="https://img.shields.io/badge/Total%20views-1497-limegreen" alt="Total views">

0 commit comments

Comments
 (0)