2. Deployment Options
• Heroku - PaaS
• Shared Web Hosting
• Virtual Private Server
• Amazon Web Services - IaaS
3. Heroku - PaaS
• No setup & no system administration
- Easy to deploy
• Free when using one web process
- Pay as you scale
• App will idle after inactivity if only using one
process (“dyno”)
• Additional “dyno” + database > 5MB is
$50/month
4. Shared Web Hosting
• Cheap - $5 to $10 per month
• Web hosting control panel (i.e. cPanel) to
configure web server & web application
• Limited to what is on the server
• Not recommended
- Constrained by CPU usage
5. Virtual Private Server
• Starts at around $25 per month
• Extremely flexible, can load anything you want
• System administration knowledge required
- Must maintain server
• Good for one or two standalone servers
6. Amazon Web Services - IaaS
• Building a virtual data center
• Netflix runs on AWS
• Can load instances with a pre-built O/S
• Pay as you scale
• Most expensive option
7. Running Rails
• WEBrick should only be used in a
development environment
• Need a web server to handle static
requests
- Images, HTML, JavaScript, CSS
• Need a Ruby web application server to
handle Rails requests (i.e. Unicorn,
Thin, or Passenger)
8. Web Server
• Apache & Nginx the two most popular
choices
• Rack is used as an interface between
the web server and Rails
9. Apache
• Most popular web server and has the
many options & features
• Process-based web server
• Good for handling dynamic content via
modules
10. Nginx
• Light weight web server that only
handles static content
• Event-based web server
• Low memory usage
11. Apache or Nginx
• Pick one - either works
• Nginx better on a VPS because of low
memory usage
• Apache is full-featured
• Nginx does a few things well
12. Rails Web App Servers
• Phusion Passenger, Thin, and Unicorn
currently the most widely used Rails app
servers
• Can be installed as a web server plugin
or as a separate Ruby Gem
13. Phusion Passenger
• Acts as an Apache or Nginx module
• Philosophy – same as Rails (DRY,
convention over configuration)
• Easy to deploy & maintain
- No separate configuration file
14. Thin
• Event based Rails server
• Philosophy – tiny, fast, and secure
• Used by Heroku
18. Which One?
• People have built scalable sites with all
three
• Thin & Unicorn need configuration,
Passenger does not
• Performance depends on the
application
- “Hello World” apps not useful for profiling