- Google Container Engine. Project Atomic's Buildah for building containers from scratch. I chose GCE over the AWS equivalent container engine because of the Kubernetes ecosystem.
- May find a use for Google Functions, but I find that generally server-side work is just a proxy to backend data, in which case I feel I'm going to be better off just deploying containers, which are easy enough to scale on GCE. (No hard calculations on this yet, just a hunch based on pricing). Seems like a waste to pay for MB-hours if they're just sitting there doing nothing 90% of the time.
- Google Cloud Datastore. I rarely find a need to deploy SQL to user-facing functionality, but would likely use Google's Cloud SQL for that. Otherwise just pull down the NoSQL and import the data to an offline Postgres instance.
- Golang for server-side language
- Not familiar enough yet with Golang frameworks, but right now leaning toward Revel.
- Typescript as preferred client-side language.
- React, Vue, or Angular4+ for client-side framework.
- Protocol Buffers
- Amazon Route53 for DNS
- Amazon CloudFront, S3 for static resources. I don't feel Google Cloud equivalent front-end store is as feature-complete as Amazon's. One of the main things is Amazon's Route53 "alias" records that allow you to map root domain (ie. without subdomain) to your CloudFront deployment. If Google's infrastructure is capable of this I'm unaware.
- Using Amazon CloudFront also leaves open the ability to use Lambda at the edge where possible.
- LetsEncrypt to manage SSL.
- Google Apps to host email
I'm probably forgetting some stuff, but this should provide a high-level overview.
I'm not committed to it yet (would be a lot of work), but I'm leaning toward eventually writing up a series of blog posts that encapsulates the entire stack in much more detail when I'm confident I'm happy with it and all the holes / question marks are filled.