One day last August 2018, I stumbled upon an online petition that sparked my curiosity - We Want Serverless Ruby. At that time, none of the major cloud providers had first-class support for Ruby in their serverless products. There were ~1400 devs signing that petition, and I wondered if there was something about Ruby that made it unsuitable for FaaS. I decided to roll the sleeves and start building what would be the first PoC of faastRuby.

The mission has been the same since day one: make the developer experience better. In this dream, devs don’t have to worry about anything but writing the business logic for their applications. Some might say this goal may be impossible to achieve, but I’d like to think we can at least get closer.

It has been a journey with highs and lows. On the “lows” side, I’d say the worst thing was the impact of not being present enough for my family. I was working a full-time job and doing faastRuby on nights and weekends. Here I want to give a big shout out to my wife. She supported me through this and didn’t cut my head off in the process. Thanks babe, I love you.

On the “highs” side, the highlight was the number of incredible, smart, good and kind people I’ve met, hands down on this journey. I also had an amazing time traveling for talks, sharing my experience and knowledge about something I created and poured my heart into.

I decided a couple of months ago to look for a way to work on faastRuby full time. Today is October 1st, 2019, and I am excited to announce that I am bringing faastRuby into Shopify.

As I start this next chapter, I will be taking down all faastRuby servers.

I’d like to thank all the developers that trusted and embraced this project - I learned a lot chatting with many of you.

To be continued,

Paulo

What happens to my functions?

I encourage you to migrate your workloads to OpenFaaS. Here are some links:

Pull the templates and create a new function:

faas template pull faas new --lang ruby-http homepage

Edit the homepage/handler.rb file to return some HTML:

class Handler def run(body, headers) response_headers = {"content-type": "text/html"} body = "<html>Hello world from the Ruby template</html>" return body, response_headers end end

Add a gem to the homepage/Gemfile if you need additional dependencies.

Deploy: