Deployments should not be taking that long at all if the app code is coming up healthy when it gets started on the VM (for crashes at code startup we also fail the deployments early). If the app comes up but isn't healthy (like serving 500 or not listening on the right port), we try multiple times to get the app started.
Can you share more information about your app and deployments so we can investigate further?
PS: It's worth mentioning we have active development to bring down deployments times and improve the deployment experience.
I hope that helps. A key tenet in the Flexible environment is portability. In the Datastore case, in particular, if you move to Cloud Datastore, that gives you portability across the Cloud Platform offerings or even if you want to run on premises or in a different Cloud provider.
App Engine Flexible is a PaaS (Platform-as-a-Service) with the mission that you bring the code and we do the rest for you. As an example, although we run the app as a Docker container, one doesn't need to understand Docker at all to get started. :-) It's a great place to get started without needing to understand how the infrastructure works. However, if you'd like to go beyond and provide your own Docker container, that works too. That is one of the exciting things we're making available with this new version.
In addition to App Engine Flexible, you can deploy Docker container to both Container Engine and regular GCE VMs in Google Cloud Platform. Each different offering will come with different set of features and different investment level on the user's side. A GCE VM will probably be the one with the ultimate flexibility on what one can do, but will typically require more time investment.
Regarding starting the container lazily and suspending it while inactive, that is not currently supported.
Can you share more information about your app and deployments so we can investigate further?
PS: It's worth mentioning we have active development to bring down deployments times and improve the deployment experience.