The history of cloud has been continuous abstraction of infrastructure essentially enabled with trust. The more you trust the cloud the more you will rely on it for your solutions.
In 2006 AWS created the EC2 service which abstracted the datacenter, server hardware, hypervisor, networking, and associated security. The datacenter abstraction lowers costs, time to market, and operational risk. It took ten years for cloud to become mainstream and many firms now have a cloud first strategy. No longer are we only migrating monolithic apps but building new native cloud solutions.
In 2014 AWS introduced Lambda which abstracts the O/S and offers a compute service. This server abstraction again lowers costs, time to market, and operational risk. Since companies are becoming cloud savvy the adoption to serverless will be faster. Perhaps in five years it will supplant IaaS.
Today, we see a collection of isolated clouds, each rich with their own set of services. The future is on-demand intercloud applications.
While you can enjoy cloud services natively, anticipate whole clouds and services becoming abstracted with frameworks (serverless.com) and by cloud services themselves (Auth0). As always, there are advantages and disadvantages to abstracting.
Deployments will require a new strategy, new coding patterns.
For example, serverless.com has a good article on some patterns to consider. If anyone is interested in speaking about patterns please contact us to give a talk.
The Graph Pattern is an interesting use of GraphQL, an abstraction of data access and relationships, between clients and servers.
serverless.com is working on the Graph Gateway Pattern which uses the Microservices Pattern with GraphQL