Hello Thomas,
By contrast to the standard environment, the Compute Engine environment would compare with a server you might simply run at home, in which case you have to provide what is automatically offered in the app engine standard environment. There is no scalability, so using one instance might prove not enough for your traffic. Your mentioned “decent uptime” depends on the envisaged traffic generated by your app, in that case. You are right about the CentOS; Google Compute Engine does not automatically update the operating system or the software on your instances. There is a 99.95% guaranteed uptime in the SLA.
An excellent alternative would be the flexible environment, that offers some services similar to the standard environment, especially important among these being scalability. You are right, you can simply adapt your app to the Flexible Environment using Google Cloud Client libraries.
Hello Thomas,
Exactly as you supposed: the <vm>true</vm> entry now needs to read <env>flex</env> in your appengine-web.xml, or env: flex in the app.yaml file.
You can see your logs in detail at /var/log/app_engine/custom_logs, as described in the “Using Cloud logging in App Engine apps” document.
Hallo Thomas,
What were you attempting to do exactly, when these logs got recorded? What was the exact command for deployment? If you tried to deploy to the flexible environment, was the standard environment app modified appropriately prior to the deployment attempt? You need to adapt your app to the Flexible Environment using Google Cloud Client libraries. In doing so, you might have overseen some networking aspects: error 1053 is returned in Windows for “Software caused connection abort.”
Hello Thomas,
Reproducing your code with Datastore access, I can see access times in the order of 200 to 300 ms, but for only one write and one final read. By contrast, your code accesses the Datastore for 28 times at each request, and it is there that the difference in timing is generated. Your application writes data in the Datastore and immediately reads it to eventually return it to the user via the servlet’s get request. This is time-consuming. Data may be cached in Memcache and saved asynchronously by a separate background process.
If you are using the Datastore, Google recommends that you design your application so that it will not need to update an entity group more than once per second for a sustained period of time. There is no difference in performance between the current version of the flex environment and previous ones.
Trying various combinations for the config parameters of the appengine-maven-plugin, I do not encounter any error. You may consider re-checking your local networking parameters. Providing more detail on the matter should bring more clarity.