in reply to Getting pure CGI application to run under FastCGI on IIS

Hmmmmm....

First of all, I am of the opinion that “what you are setting out to do, is very worthy to do, and that it surely needs to be done.” I am also of the opinion that it can be done.

However, both you and your boss (and the business owners) need to understand that this will represent a very fundamental change in the environment in which this “huge, ugly, and mission critical” application expects to run. A whole lot of bugs and deficiencies that have been successfully “glossed over” for all of these ten years are going to come bubbling-up to the surface. And, they will howl. It is not realistic to expect that you can give a positive completion-date ... or cost ... at this juncture. But there's a business justification to do it, regardless. It will pay off.

(“Trust me...”)  ...  (“I said, trust me, dammit!”)  ... (“Can you spell m-o-n-s-t-e-r--d-o-t--c-o-m?”)

:-D

In my view, “Windows and IIS have nothing to do with it.” You would surely encounter these problems anywhere. Therefore, my recommendation would be ... to perservere.

You should first obtain management buy-in ... and I feel that it ought to be summarily granted ... that “we are going to do this.” Then, having obtained that papal blessing, approach the task very systematically. Flush out all of the issues that you can find, and explicitly enumerate them. Rank them into priority and then start shooting them down. One by one. Your “mission-critical monster” will morph into a much better monster, and hence it will be money well-spent. But you will lose some hair-follicles along the way...

Replies are listed 'Best First'.
Re^2: Getting pure CGI application to run under FastCGI on IIS
by oyse (Monk) on Feb 05, 2009 at 11:47 UTC

    Thanks. This was exactly the kind of feedback I was looking for. I wish you could have said that this would be trivial, but you can't get everything :)

    I also think that this conversion is something that probably has to be done, but management buy-in is going to be difficult. We have a limited amount of resources so arguing for using good chunk of our available time on this is going to be difficult. I will probably try to get it to work more or less flawlessly on a small and recently implemented part of the application as a proof of concept. Then I can use that to showcase how much more responsive the application feels and convince them to do the conversion for the rest of the application as well. Given that I can actually get it to work of course.

    BTW I am still interested to hear others experience with doing this type of conversion and on getting it to work both under CGI and FastCGI.

      (Shrug...)   So you have to make a compelling business-case for it. And then they have to decide if they want to spend the money to do it now. Or, just as likely, they may come back to you and ask how they can do some worthwhile piece of it.

      You of course absolutely must prove the engineering viability of the project first. And, you must establish that there is an acceptable amount of business risk, because the risk of this change is quite-substantial and “they can always throw more silicon at it.”

      If, and only if, both the viability and the risk-management of the proposition can be established (in the eyes of a non-technical devil's advocate), and you can come up with a believable budget and timeline (with “escape paths” that can be taken in the event of an unforseen snag), then “this is a worthy project that very-likely ought to be done.” But you're gonna be put in the dock for this one, and grilled heavily. Expect that.

      Fair warning:   the business decision could go either way. The technical risk scares me, even from this distance. It's a big gamble if it succeeds, and a big fat “sunk cost” if it doesn't. And all of that is no reflection whatsoever upon you.

      In fact, I think that I would spend some time play-acting, taking the devil's advocate position yourself and arguing-like-hell that:   “It would be absolutely insane to think about even touching that thing! This is our product! It's what stands between us and the unemployment line! You must be out of your mind!” Think of every possible thing that the company could do “instead,” and argue every one of those alternatives mightily. Because that's exactly what the managers are going to be wrestling with, too.

      Try to think of every angle. You say, for instance, that “we can host it, or we can install it on a customer site.” Uh oh... How much are all those installs gonna cost? What if a customer doesn't want to install it? What if half of them do and half of them don't? How certain are we that everyone who wants to install it will succeed in doing so? What if an obscure technical problem crops up and suddenly a happy customer turns into an unhappy one? What sort of test-plan and rollout-plan will be needed to prove that it's as stable as what we have now? Why shouldn't we let a 100,000-line sleeping dog lie? Where's that ROI now? Still there? “Good...! Is it ready yet?” :-D