Requirements for us
- Use REST API for receiving requests
- Requests a system we are developing spike up about 50 req/sec or almost 0 req/sec
- The project doesn't have a developer or operator exclusively
- We use Google Cloud Platform
TL;DR
- We decided to use Google App Engine because It matches our need
- Cloud Dataflow doesn't match our need because It doesn't have REST API
- Google Kurbernes Engine has a lot of customizability It might be an overpowered for our needs.
Comparing
Requesting | Deployment | Monitoring | Price | |
GAE | REST API | It manages using Docker Container It might deploy from Cloud Build | Uses STACKDRIVER TRACE | Automatically stop instances when no requests. |
GKE | REST API | It manages using Docker Container and Kubernetes config file. It might deploy from Cloud Build | Uses STACKDRIVER TRACE | Instances are be running when no request |
Cloud Dataflow | It doesn't have some REST API implementation. the streaming mode in Cloud Dataflow | It stores a pipeline code as a template to Google Cloud Storage and then executes with cron, REST API and so on. | Uses STACKDRIVER TRACE and the monitoring interface for Cloud Dataflow | The batch mode is only charged par batch. The streaming mode charge us while instances are running. |