For our first software as a service (SaaS) product (Clipboard), we chose our technologies very carefully. Our choices, in the end, have proven essential to making a successful product. Our stack of technologies looks like this:
Operating System: Red Hat Enterprise Linux 5 Server
This is almost always a no-brainer and we knew our operating system would be Linux. In particular, we’re running Red Hat’s Enterprise Linux 5 Server. There’s not much to say on this decision, because our managed hosting provider Rackspace made that decision for us…not that we would have made a different one.
Web Server: Litespeed
This was a decision we made with great care because our framework decision dictated that we choose an optimized solution for running Ruby. Of course, we could have chosen Apache, but there is a little bit of a memory dance you have to play when running Apache and Ruby. We’re no strangers to configuring or running Apache, but we’re always open to new and, possibly, better servers. There are many choices available, but we’re very happy with our final selection.
The Litespeed web server, while not exactly open source (there is a free version available) is one of the easiest web servers to configure and manage I’ve ever had the pleasure to deploy. Within four or five minutes, the server is up and running and is infinitely configurable and has proven fast.
Database Server: MySQL
This is definitely the de-facto database server for open-source applications. With few exceptions, MySQL is the first database server selected for web applications. We’ve been using MySQL server to serve our applications for as long as we’ve been in business. I, personally, have been using MySQL for almost 6 years. It was an easy choice.
Language and Framework: Ruby/Ruby on Rails
The choice of language was actually more difficult than we thought it would be. Our original inclination was to use PHP. We’ve got extensive experience using PHP, but we were looking for something even easier to develop in. At first, we turned to CakePHP, which is a fantastic framework for developing applications. But after running through a few early prototypes, we were a little leery about it’s viability in the long run.
We had heard about Ruby for a while, but it was definitely outside of our normal experience. However, we were impressed by the many large applications already running on Ruby-On-Rails. The most well-known is Basecamp (run by 37 Signals, the original developers of the ROR framework), the project management application we use to collaborate with our clients. With that proven track record, we started creating prototypes of Clipboard in Ruby and were incredibly impressed. First and foremost, Ruby is an elegant programming language and semantically matched our programming style. Even more so, Ruby on Rails is an impressive framework with a very complete and customizable set of functionality. It made development easier than we’d ever dreamed and resulted in 20-30,000 lines less of code when compared to applications of similar size and scope developed in VB .NET. It was a fantastic improvement on our productivity.
So, there you have it. That’s how we arrived at the decisions for Clipboard’s stack. For more information on Clipboard, go to www.geteventclipboard.com.