-
Notifications
You must be signed in to change notification settings - Fork 4
/
index.html.erb
277 lines (213 loc) · 11.4 KB
/
index.html.erb
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
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
<div class="jumbotron">
<div class="alert alert-warning">
<a href="https://aws.amazon.com/blogs/compute/announcing-ruby-support-for-aws-lambda/">29.11.2018 AWS Lambda announced official Ruby Support !</a>
Because of this the author of `serverless-ruby.org` is considering a change of the website format and would appreciate your thoughts and ideas: <a href="https://github.com/equivalent/we_demand_serverless_ruby/issues/17">here</a>.
</div>
<h1 class="display-3">We want FaaS for Ruby !</h1>
<p class="lead">
This is an online petition to show that Ruby community is prepared to
go <a href="https://martinfowler.com/articles/serverless.html">Serverless</a>
and show <a href="https://en.wikipedia.org/wiki/Function_as_a_service" title="e.g.: AWS Lambda, Azure Functions, ...)" >Function as a Service</a>
providers that there is a value and market potential to support Ruby MRI.
</p>
<p class="lead">
Petition was launched 9th of March 2018 and <%= link_to all_signatures_path do %><%= @users_count %> developers <% end %> already signed it !
</p>
<p>
If you are a software developer / CTO who see value in Ruby FaaS for your projects please sign this petition by clicking the green button.
</p>
<% if current_user %>
<p class="text-success">
Thank you ! You've signed the petition.
</p>
<p>
If you ever change your mind and you will want to remove your name from the list
you can do so by clicking this link:
<%= link_to unsign_path, class: 'text-danger',role: "button", data: { confirm: 'Are you sure you want to remove yourself from the list ?'} do %>
Remove myself <%= fa_icon('frown') %>
<% end %>
</p>
<% else %>
<p>
<%= link_to '/auth/github', class: 'btn btn-lg btn-success',role: "button" do %>
Sign the petition with Github <%= fa_icon("github") %>
<% end %>
</p>
<% end %>
</div>
<h2>What is FaaS and Serverless</h2>
<p>
<strong>FaaS (Function as a Service)</strong> is a way how you can execute your code
in the cloud while paying only for execution time (and memory consumption)
without the need of maintaining your infrastructure
(read more <a href="https://en.wikipedia.org/wiki/Function_as_a_service">here</a>).
</p>
<p>
Providers like <a href="https://aws.amazon.com/lambda/">AWS Lambda</a>, <a href="https://azure.microsoft.com/en-us/services/functions/">Azure Functions</a>, ...
already support languages like Java, Python or JavaScript so that you can build complex
Microservice alike web applications without the worry of the infrastructure overhead.
</p>
<p>
Applications built with combination of cloud solutions like FaaS (AWS Lambda, Azure Functions,...),
cloud databases (DynamoDB, Firebase,...), cloud authentication solutions (Auth0, AWS cognito,...)
and other cloud solutions is what we call <strong>Serverless</strong> (read more <a href="https://martinfowler.com/articles/serverless.html">here</a>)
</p>
<p>
FaaS products like AWS Lambda are to "compute" similar what AWS S3 is to "storage".
It's the new era of web application Architecture and Ruby community wants to be in the front line !
</p>
<h2>What is the point of this Website ?</h2>
<p>
The heart of every application is computing power. Serverless is not different.
That's why it's so critical
to have Ruby available for FaaS.
</p>
<p>
Goal of this website is to prove to FaaS providers there is a large demand
from Ruby community in building applications this way with Ruby language
</p>
<p>
All FaaS providers are driven by market value when choosing what programming language
will they support next. If more developers will bother them
with requesting Ruby then more likely it is it will get available.
</p>
<h2>Want to help more ?</h2>
<p>
Please sign the petition by clicking on the green button on top of the page.
</p>
<p>
If you done so and want to help more, please
write a support comment or <%= fa_icon('thumbs-up') %> in these discussion threads: <a href="https://forums.aws.amazon.com/thread.jspa?messageID=758159">AWS Forum</a>,
<a href="https://github.com/Azure/Azure-Functions/issues/705">Microsoft Azure Functions Github</a>. You can also
respond to this <a href="https://twitter.com/awscloud/status/659795641204260864?lang=en">tweet from AWS</a>
</p>
<div class="alert alert-success">
This website can be found in this <a href="https://github.com/equivalent/we_demand_serverless_ruby">Github repo</a>.
Have you found a typo / bug ? Have ideas to improve it? Please raise an issue or create PR. Thank you.
</div>
<h2><%= link_to all_signatures_path do %><strong><%= @users_count %></strong> Developers<% end %> already signed:</h2>
<h4>Latest signatures:</h4>
<%= render 'users' %>
<p class="text-center">
<%= link_to "Show all #{@users_count} signatures", all_signatures_path, class: 'btn btn-success' %>
</p>
<h2 id="existing-faas">Existing FaaS providers and FaaS solutions for Ruby</h2>
<h4>AWS Lambda</h4>
<a href="https://aws.amazon.com/lambda/">AWS Lambda</a> supports Ruby Lang since 29.11.2018 (<a href="https://aws.amazon.com/blogs/compute/announcing-ruby-support-for-aws-lambda/">source</a>).
<h4>IBM Cloud Function</h4>
<p>
<a href="https://www.ibm.com/cloud/functions">IBM Cloud Function</a> is using OpenWhisk for its lambda infrastructure, which supports Ruby.
<a href="https://console.bluemix.net/docs/openwhisk/openwhisk_actions.html#creating-ruby-actions">IBM Cloud Function documentation on how to create Ruby actions</a>
</p>
<h4>FaaStRuby</h4>
<p>
<a href="https://faastruby.io">FaaStRuby</a> is an experimental simple serverless platform for Ruby developers.
</p>
<p>
Functions are triggered via their HTTPS endpoint. They will receive the request body, query parameters, headers and they can have an optional execution context. You can set custom response headers and status code.
</p>
<h4>OpenWhisk</h4>
<p>
<a href="https://medium.com/openwhisk/serverless-ruby-with-docker-and-apache-openwhisk-d64bc071e23a">Serverless Ruby with Docker and Apache OpenWhisk</a>
</p>
<h4>Kubeless</h4>
<p>
<a href="http://kubeless.io/">Kubeless</a> is a Serverless framework
based on <a href="https://kubernetes.io">Kubernetes</a> (container orchestration)
and you are able to run your own FaaS provider that supports Ruby.
</p>
<p>
As you / your team is the one maintaining this FaaS provider you need
to pay for uptime of VMs supporting those
Docker containers (it's not like with AWS Lambda "pay for what you use based on 100ms of usage")
</p>
<p>
This may be a great solution for companies that don't want to lock
their infrastructure to particular provider and are not afraid to
maintain the entire FaaS infrastructure themself.
</p>
<h4>Iron Functions</h4>
<p>
<a href="http://open.iron.io">Iron Functions</a> is an open source serverless
computing platform by <a href="https://www.iron.io">Iron.io</a> with built in
Ruby language support.
</p>
<p>
You can run & maintain this platform yourself or you can use provider
Iron.io to run this for you.
They have a monthly pricing for alocated computing power.
</p>
<ul>
<li><a href="https://github.com/iron-io/functions/tree/master/examples/hello/ruby">ruby examples</a></li>
<li><a href="https://try.iron.io/pricing-worker-monthly/">Iron.io Pricing</a></li>
</ul>
<h4>OpenFaaS</h4>
<p>
<a href="https://github.com/openfaas/faas">OpenFaaS</a> runs on Docker Swarm,
Nomad or Kubernetes.
You can run it on the cloud as well as on your laptop or a bare metal cluster.
(Develpers will have to maintain the FaaS infrastructure)
</p>
<p>
They have a language template for Ruby so you can create
Ruby functions including support for gems.
</p>
<ul>
<li><a href="https://blog.alexellis.io/introducing-functions-as-a-service/">Introduction to OpenFaaS</a></li>
<li><a href="https://github.com/openfaas/workshop">OpenFaaS step by step</a></li>
</ul>
<h4>Serverless Framework with Ruby</h4>
<p>
<a href="https://serverless.com">Serverless.com</a> is framework for building serverless
applications.
</p>
<p>
It seems like they have a <a href="https://serverless.com/framework/docs/providers/spotinst/examples/ruby/">section on Ruby</a> but I've
never tried it out (can anyone confirm how well it works in this <a href="https://github.com/equivalent/we_demand_serverless_ruby/issues/6">discussion</a> ?)
</p>
<p>
I can only recommend it on JS projects.
</p>
<h4>Jets Ruby Serverless Framework</h4>
<p>
<a href="http://rubyonjets.com">Jets</a> is a framework that allows you to create serverless applications with a beautiful language: Ruby. Jets includes everything required to build an application and deploy it to AWS Lambda. Jets offers native-like Lambda performance for Ruby and powerful tools to help you develop in the serverless world. While at the same time, it allows you to use other languages like Node and Python for certain use cases. Jets makes serverless accessible to everyone.</p>
<ul>
<li><a href="https://blog.boltops.com/2018/08/18/introducing-jets-a-ruby-serverless-framework" rel="nofollow">Introducing Jets: A Ruby Serverless Framework on AWS Lambda</a></li>
<li><a href="https://blog.boltops.com/2018/09/25/toronto-serverless-presentation-jets-framework-on-aws-lambda" rel="nofollow">Toronto Serverless Presentation: Jets Framework on AWS Lambda</a></li>
<li><a href="https://blog.boltops.com/2018/09/02/aws-lambda-ruby-support-at-native-speed-with-jets" rel="nofollow">AWS Lambda Ruby Support at Native Speed with Jets</a></li>
</ul>
<div class="alert alert-success" role="alert">
<strong>Hey!</strong> Do you know of any other solution ? Please let me know
<a href="https://github.com/equivalent/we_demand_serverless_ruby/issues">by raising an issue</a>
</div>
<h2>Hacky solutions for other FaaS providers</h2>
<h4>AWS Lambda</h4>
<p>
I recommend you to watch James Thompson talk <a href="https://www.youtube.com/watch?v=3NdFzhIvUQA">"Serverless" Ruby on AWS Lambda</a>
but in principle
there are two "hacky" ways how to try Ruby on AWS Lambda:
</p>
<h5>Run JRuby</h5>
<p>
AWS Lambda supports Java therefore you can run <a href="http://jruby.org">JRuby</a>
on Java Lambda.
</p>
<ul>
<li><a href="https://github.com/plainprogrammer/aws-lambda-jruby">AWS Lambda JRuby</a></li>
</ul>
<h5>Execute Ruby binary from JS/Py AWS Lambda</h5>
<p>
You need to download <a href="https://github.com/phusion/traveling-ruby">Traveling Ruby</a>
(which is binary executable of Ruby v 2.2.2)
place it and all the dependencies (lib, gems,...) to a zip file and then you configure
JavaScript or Python AWS Lambda to run this binary executable of Ruby.
</p>
<p>
So it's JavaScript / Python executing Ruby, therefore really hacky solution
and not recommended for prod.
</p>
<ul>
<li><a href="https://aws.amazon.com/blogs/compute/scripting-languages-for-aws-lambda-running-php-ruby-and-go/">Run traveling Ruby on AWS Lambda (by AWS)</a></li>
<li><a href="http://www.adomokos.com/2016/06/using-ruby-in-aws-lambda.html">Using Ruby in AWS Lambda (Adamokos)</a></li>
<li><a href="https://github.com/stewartlord/serverless-ruby">Serverless framework running Ruby (Traveling Ruby)</a></li>
</ul>