One year on Google Cloud - Whats great, Whats not
We spent a year running DripStat on Google Cloud. This is a purely technical view of our experience with it.
1 - No Reboots. Ever!
In a whole year, not a single VM ever rebooted! Google's Live Migration tech does a super good job. We were spoilt to the point of sometimes thinking whether we really need those replicas..
2 - Flexible VM sizes
We don't use Docker, so having the ability to create a VM exactly the size we needed was very welcome.
3 - Extremely fast VM creation
New VMs were spun in seconds, compared to minutes for other cloud providers.
1 - Cloud SQL
We found Google Cloud SQL to be much inferior to AWS RDS. We also found it to be very slow. While 2nd Gen Cloud SQL claims to be much better, it was still in Beta at that time. The fact that it has no option for PostgreSQL eventually meant we had to use RDS.
2 - Subpar PAAS Services
Google Cloud simply doesn't have the breadth of services like AWS. The ones that do exist felt nowhere near as mature as their AWS counterparts. We tried using Google Cloud DataStore and its APIs were in terrible shape and the network latency was too high. We eventually ended up not using any of Google Cloud's PAAS services.
3 - Network issues
While the VMs were stable, we frequently encountered network issues, even inside the Virtual Network. Time and again we would see the network latencies among VMs spike up for a few minutes. Once we had a network issue with the load balancer that took many, many hours to resolve.
4 - No Connection Draining APIs
Connection Draining allows you to detach your VMs from the load balancer, while ensuring that the 'requests in flight' complete properly. This is used everytime we deploy our code.
The AWS load balancer has explicit APIs to start/stop draining of instances attached to a load balancer. Google Cloud has no such thing. It relies on an extremely crude method of a custom health check url giving errors to put a VM in draining state. This meant we had to write some custom code get GCloud Load Balancers to drain our VMs while not being actually unhealthy.
5 - Ubuntu Repositories
Apparently Ubuntu maintains a separate copy of its 'apt' repo for google cloud. The Ubuntu images on Google Cloud point to this repo. However, once the Ubuntu version in question goes out of maintenance period, the repo is completely obliterated. To the point where
apt-get update also wont work. The only workaround then is to modify the Ubuntu apt config to point to the central 'apt' repo. We thus learnt (the hard way) to always use the Ubuntu LTS versions. This though is more an issue on Ubuntu's side than Google's.
If you simply want to use VMs and don't care about rest of the PAAS stuff, Google Cloud is absolutely amazing. We haven't seen the kind of VM stability on any other cloud provider.