Containerization is one route for modernizing an application, not a requirement for every workload. A modern application may already be containerized, integrated with CI/CD, and running on Anthos. A traditional Linux or Windows monolith may instead be a candidate for containerization with M4A. Once on Anthos, an application can be refactored further toward microservices; containerizing it does not itself complete that refactoring. section 15.3.4
Choose the deployment path component by component:
- Identify the application or component, assess whether it is suitable, and use Anthos Migrate to containerize suitable targets. section 16.2.1
- Consider a GCE VM first for a business-critical application when adopting new operational patterns would add too much risk. Teams can learn Kubernetes and Anthos with less critical workloads before revisiting it. section 16.2.1
- Keep a component on a VM when licensing, support readiness, compliance, interactions with other applications, or hardware investments make containerization unsuitable. Applications needing particular drivers or legacy support may also be migrated directly as VMs and refactored later. section 16.2.1 section 15.3.4
The high-level Java modernization flow illustrates where the suitability decision and containerization step fit in a broader application plan. section 16.2.1

