Loading source
Pulling the file list, source metadata, and syntax-aware rendering for this listing.
Source from repo
GitHub Copilot for Azure plugin providing Azure service management and development assistance inside Claude Code and IDEs.
Files
Skill
Size
Entrypoint
Format
Open file
Syntax-highlighted preview of this file as included in the skill package.
references/services/container-apps/spring-apps-to-aca.md
1# Spring Boot to Azure Container Apps Migration23> Migrate Spring Boot applications from Azure Spring Apps, VMs, or other platforms to Azure Container Apps with containerization, deployment, and Spring Cloud integration.45## Overview67This migration enables you to move existing Spring Boot applications from Azure Spring Apps (or any platform) to Azure Container Apps with minimal code changes.89## Migration Scenarios1011| Source Platform | Target Platform | Migration Path |12|----------------|-----------------|----------------|13| Azure Spring Apps | Azure Container Apps | Assess → Containerize → Deploy → Spring Cloud components |14| Spring Boot on VMs | Azure Container Apps | Assess → Containerize → Deploy |15| Spring Boot (other cloud) | Azure Container Apps | Assess → Containerize → Deploy |1617## Service Mapping1819| Spring Apps Feature | Container Apps Equivalent |20|-------------------|---------------------------|21| App Deployment | Container App |22| Service Registry (Eureka) | Managed Eureka for Spring (`eureka-server-for-spring`); alt: Dapr service invocation + internal DNS |23| Config Server | Managed Config Server for Spring (`config-server-for-spring`); alt: Azure App Configuration + Key Vault |24| Spring Cloud Gateway | Managed Gateway for Spring; alt: Azure API Management / Container Apps ingress |25| Distributed Tracing | Application Insights |26| Log Streaming | Log Analytics Workspace |2728## Pre-Migration Assessment2930Assess your Spring Boot application for migration readiness:3132- **Local State**: Check for in-memory sessions, singletons, file-based state → [spring-assessment-guide.md](spring-assessment-guide.md#local-state-assessment)33- **File System**: Identify file writes, temp files, shared storage needs → [spring-assessment-guide.md](spring-assessment-guide.md#file-system-usage)34- **Platform Compatibility**: Verify Java 17+, Spring Boot 3.x support → [spring-assessment-guide.md](spring-assessment-guide.md#platform-compatibility)35- **External Resources**: Inventory databases, message brokers, caches → [spring-assessment-guide.md](spring-assessment-guide.md#external-resources-inventory)3637## Migration Workflow38391. **Assess** — Analyze application for migration readiness40> Present findings and complexity rating to user. Ask: "Assessment complete — proceed with containerization?"412. **Containerize** — Create Dockerfile, build image, push to ACR423. **Provision** — Create Container Apps environment, configure logging434. **Deploy** — Deploy container to Azure Container Apps445. **Optimize** — Add Spring Cloud components (Config, Eureka, Gateway)4546See [spring-deployment-guide.md](spring-deployment-guide.md) for detailed phase-by-phase instructions.4748## Key Differences from Azure Spring Apps4950| Aspect | Azure Spring Apps | Container Apps |51|--------|-------------------|----------------|52| Deployment Unit | JAR/WAR | Container Image |53| Service Discovery | Built-in Eureka | Managed Eureka component (or Dapr / DNS) |54| Configuration Management | Built-in Config Server | Managed Config Server component (or App Configuration) |55| Scaling | Auto-scaling | HTTP/CPU/Memory/Custom metrics |56| Networking | VNet injection | VNet integration + Internal ingress |5758## Best Practices5960- Use managed identity for Azure resource access (no connection strings)61- Store secrets in Azure Key Vault, reference via environment variables62- Use Application Insights for observability63- Enable Log Analytics for centralized logging64- Use Azure Files for persistent storage if needed6566## Next Steps After Migration6768After successful migration:691. Configure Spring Cloud components (optional)702. Set up CI/CD pipeline with GitHub Actions / Azure DevOps713. Configure custom domains and SSL certificates724. Implement autoscaling rules735. Hand off to `azure-prepare` for infrastructure optimization74