A legacy Windows line-of-business app needs a full guest operating system and vendor-supported OS-level agents, while a new stateless REST API packages cleanly with its runtime. How should the city optimize packaging?
Select an answer to reveal the explanation.
Short Explanation
The old Windows app is like a whole house that needs its own foundation and utilities — that is VM territory. The little stateless API is more like a packed lunch you can drop on any counter — containers shine there. Match the packaging to what each workload actually needs.
Full Explanation
Virtual machines provide a full guest operating system, which suits legacy Windows line-of-business applications that depend on OS-level agents and vendor support matrices tied to that OS. Containers package an application with its runtime and suit new stateless REST APIs that do not need a full guest OS. Optimizing packaging means keeping the legacy app on a VM while preferring containers for the stateless API. Running both only as bare-metal appliances with no virtualization layer abandons cloud density and mobility benefits without solving packaging fit. Forcing the legacy Windows app into a single-process container without an OS often breaks vendor support and agent assumptions. Rewriting both as firmware on IoT sensors is unrelated to the stated packaging problem. Exam caveat: containers are not universally “better”—match packaging to OS dependency and stateful coupling, a frequent Cloud+ application-modernization theme. Operational check: inventory OS agent and driver dependencies for the legacy app, keep it on a hardened VM image with patch cadence, containerize the REST API with health probes and horizontal scaling, and document the dual packaging standard so teams do not force unfit migrations under schedule pressure.