Should You Choose Ruby on Rails For Your SaaS Product Technology Stack?
The SaaS model has turned the IT industry upside down with its many benefits and incidentally brought popularity to a previously less-known programming language called Ruby. How did it happen, and how do SaaS and Ruby on Rails work?
If you follow the IT industry closely, it seems that every day there is new proof for the popular statement famously included by Andreessen Horowitz in an essay published in 2011: software is eating the world. And the proof had been mounting for years, way before Mr. Horowitz published his article.
One of the biggest driving motors of the global software revolution is the SaaS distribution model. The second driver behind this revolution is the technology that underlies the SaaS applications that we use every day – and one of the most game-changing technologies for SaaS development was Ruby On Rails (RoR).
I bet that you know about these things, but we dug deep to uncover the nuanced details of how SaaS works, how Ruby On Rails fits into the SaaS technology stack, and what are the business benefits of SaaS and RoR.
SaaS Software Distribution Model – What Should You Know?
1. What is SaaS?
Although the invention of SaaS can be traced back to the 1960’s, when it really started growing in popularity was at the beginning of the 21st century thanks to Salesforce – currently world’s most well-known enterprise tool for customer relationship management, making the company one of the biggest cloud computing businesses in the world with a market cap of over $100 billion.
From a purely technical point of view, SaaS is an essential part of cloud computing architectures.
SaaS is applied in different ways across the modern IT ecosystem – for instance, it found uses in fields like SDN (Software Defined Networking), IOT (Internet of Things), as well as Mobile Cloud Computing.
In the business world, the term is as popular as it is vague because non-technical managers and developers often have different definitions based on what they see as the biggest benefit of this model.
The basic definition of SaaS is:
“Software distribution model that consists in providing a piece of software, application or service to multiple customers or tenants through the Internet (multi-tenant) […] providing access and use on a recurring fee basis.”
The scale of modern SaaS solutions requires a smart way to handle large numbers of user requests in a short time.
This makes the load balancer (sometimes exchanged for a reverse proxy in front of the servers for faster response times and increased security) one of the essential parts of the SaaS application architecture.
2. Business and User benefits of SaaS
SaaS might not seem revolutionary at the moment, but it’s only because we all use cloud-based SaaS applications (your CRM for example). When it was first introduced, the disruptive power of this innovative distribution model changed the software market forever.
The biggest disruption was the massive reduction in development and distribution costs. For one thing, software providers gained a cashflow-friendly digital distribution model that works much like a paid subscription.
What else did SaaS change for providers?
- Significantly reduced time needed for software maintenance
- Made it easier to scale
- Reduced integration costs
- Shortened time-to-market and product cycles
These are just a few examples, without even mentioning the many benefits that SaaS brings to users.
It’s no longer necessary to install software on your device, you can just pay for access and use it at any time, in any place, as long as you have internet access. You don’t have to worry about updates, because you always get the newest version of the product straight from the provider.
Okay, that all sounds great, but it comes at a cost. Achieving these benefits requires solving several significant development challenges.
3. SaaS Technical Requirements
There are two essential characteristics that are necessary for a great SaaS user experience: security and speed.
Why? Let’s take Gmail as an example.
At the beginning of 2016, it was reported that the number of people using Google’s in-browser email client has exceeded 1 billion users.
While the front of the application, the user interface, is a huge part of the overall experience, what makes the interface usable here is the technology that ensures users will:
- Receive the emails that they’re waiting for
- Send emails without worrying that they won’t get delivered
- Use their account while safe from third-party or hacker interference
- Access inboxes packed with thousands of emails, within seconds, from any device with internet access
And that’s just Gmail – Google has 6 more products with over 1 billion users (not all of them SaaS per se, but they do have the essential characteristics of the model).
To create a piece of software that can be scaled to 1 billion users and still be fast and secure is an impressive achievement. In order to achieve this, security needs to be a big part of the production process from the very beginning, even before any code is actually written.
Many strategic decisions need to be made in the planning stage, for instance, what type of infrastructure will host the application?
There is no need to invest in building an infrastructure thanks to platforms like AWS or Azure, which come from Amazon and Microsoft adopting the SaaS model to sell their vast computing power in different Infrastructure-as-a-Service packages that provide databases, servers, development environments and endless niche products that save time in product development.
With these decisions made, it’s time to actually code the application.
That involves building the right infrastructure to securely handle user data in a way that doesn’t allow anybody to access it without permission, but also putting in special countermeasures for cyber attacks like XML wrapping attacks, WSDL scanning, Denial of Service (DoS) and Distributed Denial of Service (DDoS).
The architecture of SaaS products also requires building safe and fast APIs to enable easy communication with other services, which adds more tasks to the product development roadmap.
That’s a lot of work – and we haven’t even started on the graphical interface or designing user interactions, this is just the tip of the iceberg; the barebones foundations of a functioning application.
Luckily, 2004 brought us the introduction of a special piece of technology that has taken the SaaS development world, and the whole web development industry, by storm.
How Ruby On Rails Rocked the SaaS World?
1. What is Ruby?
Ruby is a programming language that was created in the early 1990s by Japanese computer scientist Yukihiro Matsumoto.
Mr. Matsumoto wanted to create a language meant to be understood by humans first, and computers second.
It wasn’t very popular outside of Japan for a long time – until the introduction of Rails in 2004.
Since then, Ruby on Rails development has blown up in popularity, turning many custom software development companies into Ruby on Rails agencies.
2. What is Rails?
Rails is a web application framework, and like other frameworks, it consists of pre-written code libraries that developers can use to build complex structures without having to write every single line of cold manually.
Some say that if it weren’t for Rails, the IT industry might have never started using Ruby on a large scale, and there might have never been such a thing as a Ruby on Rails agency.
Thanks to Rails, developers around the world found that “Ruby somehow enables programmers in a special kind of way that is hard to explain”, and that “Ruby makes programmers happy”.
No wonder – it’s a versatile, powerful toolset for building the backbones of virtually any type of web application, and just by making programmers happy it already carries significant business benefits for SaaS companies.
Hundreds of thousands of applications, including big names like GitHub, Shopify, Airbnb, Twitch, SoundCloud, and Zendesk were built with Ruby on Rails. Why?
Before we answer that question, let’s remind ourselves where Ruby on Rails fits in the web application technology stack:
Ruby on Rails is a server-side technology, and it can be used with a plethora of other technologies as part of your product’s technology stack.
It’s worth mentioning here, that the best Ruby on Rails companies don’t just use RoR – in order to build fully-functioning products they need to know several other technologies, so remember that if you’re not sure how to choose a web development company.
3. Business Benefits of Ruby on Rails
One of the benefits of RoR is that it’s open-source – so it doesn’t cost you anything to get it if your project needs it.
An even bigger benefit is the huge, helpful Ruby on Rails community. There are many open-source technologies but few of them have a community as tightly-knit and resourceful as RoR.
From a business perspective, this means that developers spend less time troubleshooting thanks to ready-made solutions and practical advice from other RoR programmers.
The time savings from this are insane: “On average, Rails teams can construct and fashion applications up to 40% faster than those using other frameworks.”
This makes Ruby on Rails agencies very efficient compared to companies using other technologies.
Testing and quality assurance are essential parts of building quality software. Rails enable developers to excel in testing as well, as it is focused on bug-free development.
It provides a handy, but a powerful testing tool and the framework inherently encourages Test Driven Development and Behaviour Driven Development, pushing developers to write bug-free applications.
What’s more, Ruby on Rails makes it easy to scale your application.
And remember how we said that building an API is a necessary requirement for SaaS products?
Well, Rails is deeply embedded with RESTful architecture (Representational State Transfer), which is used to build REST APIs for easy communication between services.
So if you need to handle, for example, 4 millions of connections per second like Shopify, Rails will make it easier to achieve than other technologies. As a cherry on top, here’s what Tobias Lutke, CEO of Shopify had to say about Rails:
“It’s crazy that people are suggesting Shopify has been successful despite Rails. Shopify has been successful BECAUSE OF Rails!”
All of these benefits make Ruby On Rails the technology of choice for many product development teams that want to build the next big thing, and they are the reason why the market for Ruby on Rails agencies is so big.
Saas + Ruby: Wrapping It Up
And so we reach the final conclusion – if you’re planning to build a SaaS product, consider adding Ruby On Rails to your tech stack (just in case you’re currently looking for a Ruby on Rails agency, check out Ideamotive!).
SaaS is a model for software distribution that has several uses across the IT ecosystem. It disrupted the software industry because it’s cost-efficient and good for your long-term cash-flow, but it also poses unique challenges, like achieving speed and security when your web application is processing millions of requests per second.
One of the best technologies that allow developers to solve these challenges is Ruby on Rails – a rich, open-source framework for building web applications.
If you are interested in building your SaaS product with Ruby on Rails, check out this amazing blog post by Paweł Urbanek who built a simple SaaS solution for Slack anonymous messaging called Abot. The article contains plenty of useful information about post-development process, including hosting and marketing of SaaS app.
At Ideamotive, we’re big fans of Ruby on Rails web development, but that’s not all that we do. If you’re looking for a custom software development company, drop us a line and tell us about your project!
We hope you enjoyed this trip through the nuances and details of SaaS and Ruby on Rails. Questions? Drop us a line!