We're running a production operation in Heroku based on NodeJS and Websockets (MeteorJS) for a few months, using 3 instances configured with session affinity. Now, we want to migrate from Heroku to Google App Engine. The problem is, the application uses WebSockets in a way that it's required to run under "sticky sessions".
Looked exhaustively in GAE documentation, and there's no direct reference of how to do it using the app.yaml
, neither how to put them behind a common GCE HTTP(S) Load Balancer, which already supports the Session Affinity configuration.
So, which is the best approach to get it running under GAE with multiple instances?
To give some feedback for future reference, we went with a networking approach. Google App Engine showed a lot of compromises we needed to take in order to make it work, so we moved the application to the Google Kubernetes Engine and configured session affinity in the Load Balancer as described in the link below:
https://cloud.google.com/load-balancing/docs/backend-service#session_affinity