This repository has been archived by the owner on Mar 18, 2022. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 6
/
old.html
247 lines (209 loc) · 15.7 KB
/
old.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="x-ua-compatible" content="ie=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link href='https://fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,700&display=swap' rel='stylesheet'>
<link rel="stylesheet" type="text/css" href="dist/css/site.css?v=02">
<!-- OneTrust Cookies Consent Notice start -->
<script src="https://cdn.cookielaw.org/scripttemplates/otSDKStub.js" type="text/javascript" charset="UTF-8" data-domain-script="c3a30abe-4934-45a2-ba48-823fa026fc64" ></script>
<script type="text/javascript">
function OptanonWrapper() {
OneTrust.InsertHtml('<iframe src="https://www.youtube.com/embed/J3PyYmdTsnQ" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>', 'video-one', null, {deleteSelectorContent: true}, '4');
OneTrust.InsertHtml('<iframe src="https://www.youtube.com/embed/rEZG-Vf0qJI" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>', 'video-two', null, {deleteSelectorContent: true}, '4');
}
</script>
<!-- OneTrust Cookies Consent Notice end -->
<!-- Google Tag Manager -->
<script type="text/plain" class="optanon-category-2">(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
})(window,document,'script','dataLayer','GTM-WWL9BXX');</script>
<!-- End Google Tag Manager -->
<link rel="icon" type="image/x-icon" href="favicon.ico"/>
<link rel="canonical" href="https://cloudstate.io" />
<title>Distributed State Management for Serverless - Cloudstate</title>
<meta name="description" content="Cloudstate allows developers to rapidly build stateful, highly scalable serverless applications." />
<!-- Schema.org markup for Google+ -->
<meta itemprop="name" content="Distributed State Management for Serverless - Cloudstate">
<meta itemprop="description" content="Cloudstate allows developers to rapidly build stateful, highly scalable serverless applications.">
<meta itemprop="image" content="https://cloudstate.io/dist/images/cloudstate-distributed-state-management-for-serverless.png">
<!-- Twitter Card data -->
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:site" content="@cloudstateio">
<meta name="twitter:title" content="Distributed State Management for Serverless - Cloudstate">
<meta name="twitter:description" content="Cloudstate allows developers to rapidly build stateful, highly scalable serverless applications.">
<meta name="twitter:creator" content="@cloudstateio">
<!-- Twitter summary card with large image must be at least 280x150px -->
<meta name="twitter:image:src" content="https://cloudstate.io/dist/images/cloudstate-distributed-state-management-for-serverless.png">
<!-- Open Graph data -->
<meta property="og:title" content="Distributed State Management for Serverless - Cloudstate" />
<meta property="og:type" content="article" />
<meta property="og:url" content="https://cloudstate.io" />
<meta property="og:image" content="https://cloudstate.io/dist/images/cloudstate-distributed-state-management-for-serverless.png" />
<meta property="og:description" content="Cloudstate allows developers to rapidly build stateful, highly scalable serverless applications." />
<meta property="og:site_name" content="Cloudstate" />
</head>
<body>
<div id="lightbend-banner" class="lightbend-banner cloudstate full-width" data-category="OSS Lightbend Banner Impression" data-label="Cloudstate Banner Impression">
<div class="wrapper">
<div class="brand">
<a class="oss-track-link-label" data-category="OSS Lightbend Banner Clicks" data-label="Lightbend Logo - Cloudstate Banner" href="https://www.lightbend.com?r=oss-banner-cloudstate" target="_blank">
<img class="lightbend-logo" src="/dist/images/banner-logos/lightbend-reverse.svg" alt="Lightbend" title="Lightbend">
</a>
</div>
<div class="nav">
<a class="banner-btn oss-track-link-label" data-category="OSS Lightbend Banner Clicks" data-label="Enhance your Cloudstate app with Lightbend [Button] - Cloudstate Banner" href="https://www.lightbend.com/cloudstate-by-lightbend?r=oss-banner-cloudstate" target="_blank">
<span>Enhance your Cloudstate app with</span>
<img class="lightbend-logo" src="/dist/images/banner-logos/lightbend-reverse.svg" alt="Lightbend" title="Lightbend">
</a>
<div class="drop-down">
<svg class="svg-chevon-circle-down" version="1.1" id="Chevron_circled_down" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 20 20" enable-background="new 0 0 20 20" xml:space="preserve">
<path fill="#ffffff" d="M12.505,8.698L10,11L7.494,8.698c-0.198-0.196-0.518-0.196-0.718,0c-0.197,0.196-0.197,0.515,0,0.71l2.864,2.807
c0.199,0.196,0.52,0.196,0.717,0l2.864-2.807c0.199-0.195,0.198-0.514,0-0.71C13.024,8.502,12.704,8.502,12.505,8.698z M10,0.4
c-5.302,0-9.6,4.298-9.6,9.6c0,5.303,4.298,9.6,9.6,9.6s9.6-4.297,9.6-9.6C19.6,4.698,15.302,0.4,10,0.4z M10,18.354
c-4.615,0-8.354-3.74-8.354-8.354c0-4.614,3.739-8.354,8.354-8.354c4.613,0,8.354,3.74,8.354,8.354
C18.354,14.614,14.613,18.354,10,18.354z" />
</svg>
<div class="drop-down-content">
<div class="lightbend-family">
<a href="https://akka.io" class="akka oss-track-link-label" data-category="OSS Lightbend Banner Clicks" data-label="Akka - Logo Tag Line - Cloudstate Banner">
<img class="akka-full-color-logo" src="/dist/images/banner-logos/akka-full-color.svg" alt="Akka by Lightbend" title="Akka by Lightbend">
</a>
<a href="https://cloudflow.io" class="cloudflow oss-track-link-label" data-category="OSS Lightbend Banner Clicks" data-label="Cloudflow - Logo Tag Line - Cloudstate Banner">
<img class="cloudflow-full-color-logo" src="/dist/images/banner-logos/cloudflow-full-color.svg" alt="Cloudflow by Lightbend" title="Cloudflow by Lightbend">
</a>
<a href="https://www.lagomframework.com" class="lagom oss-track-link-label" data-category="OSS Lightbend Banner Clicks" data-label="Lagom - Logo Tag Line - Cloudstate Banner">
<img class="lagom-full-color-logo" src="/dist/images/banner-logos/lagom-full-color.svg" alt="Lagom Framework by Lightbend" title="Lagom Framework by Lightbend">
</a>
<a href="https://www.playframework.com" class="play oss-track-link-label" data-category="OSS Lightbend Banner Clicks" data-label="Play - Logo Tag Line - Cloudstate Banner">
<img class="play-full-color-logo" src="/dist/images/banner-logos/play-full-color.svg" alt="Play Framework by Lightbend" title="Play Framework by Lightbend">
</a>
<a href="https://www.scala-lang.org" class="scala oss-track-link-label" data-category="OSS Lightbend Banner Clicks" data-label="Scala - Logo Tag Line - Cloudstate Banner">
<img class="scala-full-color-logo" src="/dist/images/banner-logos/scala-full-color.svg" alt="Scala by Lightbend" title="Scala by Lightbend">
</a>
<div class="cloudstate current">
<img class="cloudstate-full-color-logo" src="/dist/images/banner-logos/cloudstate-full-color.svg" alt="Cloudstate by Lightbend" title="Cloudstate by Lightbend">
<span>From the creators of <strong>Cloudstate</strong>, get developer assistance and expert support from Lightbend.</span>
<a class="oss-track-link-label" data-category="OSS Lightbend Banner Clicks" data-label="Learn More [Button] - Cloudstate Banner" href="https://www.lightbend.com/cloudstate-by-lightbend?r=oss-banner-cloudstate" target="_blank">Learn More</a>
</div>
</div>
<div class="title">The Lightbend Family</div>
</div>
</div>
</div>
</div>
</div>
<article id="scrollarea">
<header>
<span>
<img src="/dist/images/logos/cloudstate-horizontal-white.svg" alt="Cloudstate Logo" title="Cloudstate Logo">
<h1>Distributed State Management for Serverless</h1>
</span>
</header>
<nav id="toc" class="toc">
<ul>
<li><a href="#why">Why?</a></li>
<li><a href="#what">What?</a></li>
<li><a href="#contribute">Contribute</a></li>
<li><a href="docs">Documentation</a></li>
</ul>
</nav>
<main>
<section id="why" class="why">
<h3>Why?</h3>
<blockquote>
<p>“We predict that serverless computing will grow to dominate the future of cloud computing.”</p>
<footer>—Berkeley CS Dept, <a href="https://arxiv.org/abs/1902.03383">Cloud computing simplified: a Berkeley view on serverless computing</a></footer>
</blockquote>
<p>
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 <em>Serverless platform for general-purpose application development</em>—with true elastic scalability, high resilience, and global deployment, in the Kubernetes ecosystem.
</p>
<p>
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.
</p>
<p>
Stateless functions is 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.
</p>
<p>The Cloudstate project takes on this challenge and paves the way for Serverless 2.0. It consists of two things:</p>
<ol>
<li><strong>A standards effort</strong>—defining a specification, protocol between the user functions and the backend, and a TCK.</li>
<li><strong>A reference implementation</strong>—implementing the backend and a set of client API libraries in different languages.</li>
</ol>
<p>
Cloudstate's reference implementation is leveraging <a href="https://cloud.google.com/knative/">Knative</a>, <a href="https://grpc.io/">gRPC</a>, <a href="https://doc.akka.io/docs/akka/current/index-cluster.html">Akka Cluster</a>, and <a href="https://www.graalvm.org/">GraalVM</a> running on <a href="https://kubernetes.io/">Kubernetes</a>, 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.
</p>
<p>
Read more about why we started the Cloudstate project, the limitations of current Serverless platforms, and the way Cloudstate are addressing them, and the new use-cases it opens up for in <a href="https://cloudstate.io/docs/">the documentation</a>.
</p>
<p>
<a href="#contribute">Join us</a> in making this vision a reality!
</p>
<hr class="icon">
<p>Jonas Bonér, CTO and co-founder of <a href="https://www.lightbend.com">Lightbend</a> and creator of <a href="https://akka.io">Akka</a>, talks about the need for Serverless to evolve to handle state at KubeCon Barcelona 2019:</p>
<div class="flex-video">
<div id="video-one" class="cookie-warning">
<a class="optanon-allow-all" onclick="OneTrust.AllowAll();">Accept cookies to view video</a>
<span>Alternatively you can watch the video <a href="https://www.youtube.com/watch?v=J3PyYmdTsnQ" target="_blank">here on YouTube</a></span>
</div>
</div>
</section>
<section id="what" class="icons">
<h3>What?</h3>
<!-- This would be nice if each list item was paired with a graphic -->
<div class="what-list">
<dl>
<dt><span><img src="dist/images/state.svg"></span>State</dt>
<dd>Provides scalable, configurable, state management strategies to relieve this responsibility from the developers.</dd>
</dl>
<dl class="what-icons">
<dt><span><img src="dist/images/operations.svg"></span>Operations</dt>
<dd>Scale services intelligently and provide in depth observability.</dd>
</dl>
<dl class="what-icons">
<dt><span><img src="dist/images/productivity.svg"></span>Productivity</dt>
<dd>Allow developers to focus on their domain problem, rather than how state is managed.</dd>
</dl>
</div>
</section>
<section class="what">
<p>Cloudstate is a specification, protocol, and reference implementation for providing distributed state management patterns suitable for Serverless computing. The current supported and envisioned patterns include:</p>
<ul class="">
<li>Event Sourcing</li>
<li>Conflict-Free Replicated Data Types (<a href="https://en.wikipedia.org/wiki/Conflict-free_replicated_data_type">CRDTs</a>)</li>
<li>Key-Value storage</li>
<li>P2P messaging</li>
<li>CQRS read side projections</li>
</ul>
<p>Cloudstate is polyglot, which means that services can be written in any language that supports gRPC, and with language specific libraries provided that allow idiomatic use of the patterns in each language. Cloudstate can be used either by itself, in combination with a Service Mesh, or it is in envisioned that it will be integrated with other Serverless technologies such as <a href="https://knative.dev">Knative</a>.</p>
<p>
Read more about the design, architecture, techniques, and technologies behind Cloudstate in <a href="https://cloudstate.io/docs/contribute/architecture.html">this section in the documentation</a>.
</p>
<hr class="icon">
<p>Watch this live-coding screencast by James Roper to learn more:</p>
<div class="flex-video">
<div id="video-two" class="cookie-warning">
<a class="optanon-allow-all" onclick="OneTrust.AllowAll();">Accept cookies to view video</a>
<span>Alternatively you can watch the video <a href="https://www.youtube.com/watch?v=rEZG-Vf0qJI" target="_blank">here on YouTube</a></span>
</div>
</div>
</section>
<section id="contribute" class="contribute">
<h3>Contribute</h3>
<p>Are you interested in being part of Cloudstate? We would love to have you!</p>
<p>Our <a href="https://groups.google.com/forum/#!forum/cloudstate">mailing list</a> and <a href="https://gitter.im/CloudState-IO/community">Gitter channel</a> are good places to start with open ended discussions about Cloudstate. The <a href="https://github.com/cloudstateio/cloudstate/issues">GitHub issue tracker</a> is a good place to raise issues, including bug reports and feature requests. You can also <a href="https://twitter.com/CloudstateIO">follow us on Twitter</a>.</p>
<br>
<p class="text-center">
<a href="https://github.com/cloudstateio"><img src="dist/images/github-blue.svg"></a>
</p>
</section>
</main>
</article>
<footer>
<a href="/"><img src="/dist/images/logos/cloudstate-stacked-white.svg" alt="Cloudstate Logo" title="Cloudstate Logo"></a>
<p>© Cloudstate <script>document.write(new Date().getFullYear());</script> | <a href="https://www.lightbend.com/legal/privacy" target="_blank">Privacy Policy</a> | <a href="/cookie">Cookie Listing</a> | <a class="optanon-toggle-display">Cookie Settings</a></p>
</footer>
</body>
</html>