Cloudstate - Next Generation Serverless
"We predict that serverless computing will grow to dominate the future of cloud computing."
—Berkeley CS dept, 'Cloud computing simplified: a Berkeley view on serverless computing'
Bringing stateful services, fast data/streaming, and the power of reactive technologies to the Cloud Native ecosystem breaks down the final impediment standing in the way of a Serverless platform for general-purpose application development — with true elastic scalability, high resilience, and global deployment, in the Kubernetes ecosystem.
The Serverless movement today is very focused on the automation of the underlying infrastructure, but it has to some extent ignored the equally complicated requirements at the application layer, where the move towards Fast Data, streaming, and event-driven stateful architectures creates all sorts of new challenges for operating systems in production.
Stateless functions are a great tool that has its place in the cloud computing toolkit, but for Serverless to reach the grand vision that the industry is demanding of a Serverless world while allowing us to build modern data-centric real-time applications, we can't continue to ignore the hardest problem in distributed systems: managing state—your data.
The Cloudstate project takes on this challenge and paves the way for Serverless 2.0. It consists of two things:
- A standards effort — defining a specification, protocol between the user functions and the backend, and a TCK.
- A reference implementation — implementing the backend and a set of client API libraries in different languages.
Cloudstate's reference implementation is leveraging Knative, gRPC, Akka Cluster, and GraalVM running on Kubernetes, allowing applications to not only scale efficiently, but to manage distributed state reliably at scale while maintaining its global or local level of data consistency, opening up for a whole range of new addressable use-cases.
Join us in making this vision a reality!
Are you interested in helping out making this vision a reality? We would love to have you! All contributions are welcome: ideas, criticism, praise, code, bug fixes, docs, buzz, etc.
The GitHub Issue Tracker is a good place to raise issues, including bug reports and feature requests.
You can also follow us on Twitter.