Kubernetes, Mesos/DC/OS and the various other options are all valid solutions if you need to run in many diverse environments. Titus runs (ran?) on top of Mesos before they built an ECS integration.
That being said, there's interesting benefits to the approach of not trying to abstract the IaaS and deeply integrating with one or two clouds instead. You get to leverage much more of the cloud(s) you've decided to adopt if you don't immediately try to abstract them away.
I actually thought about mentioning Convox in this vein, as it is intended to be for AWS only.
> You get to leverage much more of the cloud(s) you've decided to adopt if you don't immediately try to abstract them away.
It depends on the services. For the bulk services (blobstores, VMs, networking, queues, databases etc) the big 3 support, you can usually have some degree of migration without too much pain, if you're using one of the platforms correctly.
For example, on migrating a Cloud Foundry platform from AWS to GCP, you can switch your service brokers from AWS to GCP. Apps that ask for a database won't, in general, know or care who's providing it.
Another thing is that a fair amount of the specialising services now have portable alternatives. A good platform can integrate these on an equal basis. At the moment there's an effort to extract the Cloud Foundry service broker model so that it can also be used by other platforms, so this will become even easier with time.
Where AWS still have a sustained lead is on sheer breadth of offerings. But my hunch is that Google know this is the first real opportunity to produce a second revenue stream comparable with advertising. They're going to brute force their way to near-parity with a lot of engineering and money.