Reading about Puppet often Passenger, Unicorn, and Rack are mentioned, but I can't figure out what the purpose of these are. The website for Passenger says:
Phusion Passenger is a web server and application server for Ruby (Rack) and Python (WSGI) apps. It allows you to run your web apps with the least amount of hassle, by taking care of pretty much all of the heavy lifting for you when it comes to managing your apps' processes and resources.
But why would I want to introduce a new piece of software, when Ruby have its own web server?
Can anyone give an example what problem these solves?