This is what the CNCF is trying to achieve with Kubernetes as a foundation for managing compute/containerized workloads. If we lay down the right set of abstractions for app developers then the theory is the workloads become somewhat portable. Think of it as the core AWS services generalized as kubernetes services -- and k8s (or even stuff on top in theory) could still be managed by the provider.
The problem for the CNCF and its projects is you can almost always move quicker if subscribing to the walled gardens of the major vendors... even if the experience is less than optimal and definitely not portable.
Hopefully this changes over the next year as better abstractions (think Fn Project/Knative/Rook/someDB) and even some standards (cloudevents) emerge.
That said I suppose data could be traditional DB's (sql/nosql) managed by k8s... not sure about this yet.