Just to make sure I've got this right, the main (or one of the main) change between AEM Managed Service and Cloud as a Service seems to be auto scaling capabilities? i.e. in Managed Services the customer has to decide the fixed number of instances required whereas in cloud service the auto-scaling capabilities will take care of this? Any more thoughts on exactly how the scaling is handled?
One other question, it seems upgrades will be pushed as and when available without any manual work required by the system admins. But the most effort usually spent on upgrade is to make the application code (backend, component code, etc) compatible with the newer version - how is this proposed to be handled?
Under the hood, AEM as a Cloud Service (AEMaaCS) and AEM Managed Services are completely different beasts. AEMaaCS is built on Kubernetes (K8) running docker containers with a shared store, so adding more instances can be done automatically by the K8 orchestrator. Managed Services on the other hand provisions VM's so they can't scale them without semi-manual intervention either changing the instance type or adding new instances.
Regarding upgrades, theoretically, this should be handled by the regression testing built into Cloud Manager. Essentially it will build a copy of the App + AEM Feature Model and run regression tests against that, but frankly I'm concerned as well as IMO the issues you find in upgrades usually aren't discoverable via compilation or testing. This is one of the questions I posed to Cedric Huesler on Twitter: https://twitter.com/KlcoDanR/status/1217063177810214912