goldb.org home

AS OF MAY 2008, THIS BLOG IS NO LONGER BEING UPDATED.
Visit the new blog at: http://coreygoldberg.blogspot.com



 Wednesday, March 28, 2007

Microsoft IIS - Welcome to Last Decade (Performant CGI)

Wow..
CGI will run well on IIS
Rails will run well on IIS.

Rob Conery on running Ruby on Rails (or other CGI based platforms) on IIS:

"Rails works using CGI - basically an executable that gets run each time a request comes into a web site. Most of the frameworks out there do NOT support multi-threading, so each time a request comes in that requires anything dynamic, CGI is "instanced" and executed. If you have a lot of requests at once, this isn't really a good thing. Now some servers are built to mitigate this (Apache, Lighttpd, etc); IIS is not.

... I would imagine that in the next 6 months we'll see a great addition to IIS 6 and 7 for all the CGI-enabled platforms out there."


hmm.. good to hear. (seriously)
but damn... weren't we doing this 10 years ago with Perl/Apache? :)

#    Comments [2] |
Friday, April 06, 2007 3:28:28 AM (Eastern Standard Time, UTC-05:00)
Well - no :). Apache (if I can use that as an example) has a different architecture than IIS (jump on me if I get this wrong). Apache will forward all requests straight to the dispatcher and let it deal with the execution of the request; IIS uses more of a "plugin" approach. ASP.NET for example runs using an ISAPI dll (aspnet.dll).

The difference here, which is the critical difference, is that Apache doesn't thread these things - it just doesn't care! Now when we're talking a *NIX machine which has a nice low OS profile, it can afford the extra horsepower these CGI apps need. It follows the "scale up" sort of thing.

IIS, on the other hand, doesn't work that way- it would rather thread these things (cause WinServer is not exactly a low-profile OS).

Anyway - your point RE "didn't we have this" - no you didn't. Apache don't thread CGI :). IIS doesn't either for that matter but it's getting very close with this this implementation and "sort of" threads these calls - which means no more synchronous calls and Rails *may* (big FAT maybe) actually benefit from this model.

And, lots of people (like me) and companies running an MS architecture can now run Rails. Which means lots of guys (like me, and possibly you) can now create intranet apps using the ever-cool Rails.

:)
Friday, April 06, 2007 9:07:08 AM (Eastern Standard Time, UTC-05:00)
Rob,
thanks for the insightful response. don't get me wrong I am glad to see this progress (I work in a .NET shop currently but am also a nix hacker, so my allegiances are a little whacky).

> Apache don't thread CGI

hmm.. well Apache added threading in 2.0 (old school apaches had to fork processes for each request).. so I'm not quite sure what that means.

and yes, its good to hear that CGI and Rails will be performant on IIS :)

-Corey
Comments are closed.