I just replaced a poll that I had been hosting on my site for a few months now, I left it online longer than most polls because I wanted to at least 1000 responses (which I now have). The poll asked "What is most compelling about CFMX 6.1?" and gave 5 possible answers. 49% picked "Increased performance" as most compelling, no surprise there. But what did surprise me is that "Multiple instances" and "Enhanced " pretty much tied for 2nd place (with 16% and 15% respectively), I'd have expected "Multiple instances" to rank far higher.
So, are you using multiple instances? And if not, why? I know that cost is a factor, ColdFusion Enterprise costs more, and so for many of you that may very likely be the reason. But lots of you do indeed own ColdFusion Enterprise, are you not installing ColdFusion on top of J2EE? And again, if not, why? Please share.
1) Cost, as you noted. With the increased cost of MX vs. CF just a couple of years ago coupled with the increased competition from New Atlanta (BlueDragon) and tighter IT budgets, companies need to have a more compelling reason than whitepapers and CFUG presentations to upgrade. Don't misunderstand, I understand where the increased costs are coming from (this isn't your daddy's ColdFusion), but price is starting to become a critical factor. Just a couple of years ago, my boss would have never hesitated at the price when I told him we needed to upgrade. However, this go-around, I had to create cost-benefit analysis charts and stuff to prove it was worth the cost to our small company.
2) Between you, Brandon Purcell, Sean Corfield, Christian Cantrell, and many other Macromedia employees, you've certainly disseminated enough "how to" articles, but I still haven't seen a compelling real world case to justify the extra work involved in maintaining multiple instances. One thing I've found out as an MX for J2EE for JRun user for well over a year now, the administration of MX/JRun is infinitely more complex than CF 5 and below. I am still highly frustrated at the lack of real good documentation for JRun. I shouldn't have to rely on Brandon Purcell's unbelievable blog to glean tips on how to setup/test/administer my JRun/MX installation. Our web site is clustered, with one MX instance one each of two web servers. I couldn't fathom doubling that number (2 on each) "just because I can."
Sorry for the long post, but this has come up a couple of times, and I've been looking to be convinced that I've missed something by not using multiple instances. I'll definitely be watching these comments.
I was able to get to CFMX6.1 all because we already have a CFMX6 license (free upgrade). Unless I get another free upgrade, CF server would be a no go area for sometime to come. And sincerely, I am being tempted by Blue Dragon.
For multiple instances, the question we should ask ourselves is not if we should have it but why we should. For a company with a single intranet/web site, multiple instances wouldn't be of too much benefit.
However, for security reasons, which I have painfully discovered, multiple instances is a MUST for ISPs hosting commercial cf sites. Else, you could be asking for a truck load of trouble.
We're still at step one, which is trying to get past problems of getting 6.1 to run dependably for more than a day on our cluster under load on the same hardware that CF 5 did/does, unfortunately.
We've gotten to 4 servers by "throwing another box" at the performance problem as our loads have increased. An interesting point of education, or analysis, would be an answer to this question. And before I ask it, I understand that every situation is different but assuming optimal code (code which is efficient as one can make it) at some point as load increases we are all confronted with a performance issue. So what is the best way to deal with it given increasing loads from a cost perspective and a performance perspective? In other words, is a shop like ours better adding a fifth webserver (box) or would it behoove us to convert our existing infrastructure so that each box could in essence become N number of instances to spread the load? It seems almost counter intuitive to me that two instances on the same machine could be more efficient than two instances on two dedicated machines, but I'm keen to understand this issue because this to me would be a very compelling reason to work with multiple instances. I'm not sure I am asking the question correctly, but I think all I'm trying to understand is if we can use multiple instances to cluster on a single machine the same way we do using multiple machines, and is this an viable approach to dealing with load based performance issues.
We ran across this problem when setting up our dev environment. We wanted Development and Staging on the same box, running under two instances, but a lot of our legacy code relies on various IIS settings. I'm sure we'll make use of multiple instances eventually, but not until we get a fleeting moment to rewrite that code.
- The CFMX / Jrun install is messy. Need more flexability in regards to the default server instance and CMFX install.
- Is Jrun going to be enhanced? It could use some serious improvements. Our Java folks loathe working with it...useability issues.
- Cost is pushing the limits on this productivity technology.
1) Better education as to the why's and how's.
2) Simpler integration.
3) Greater visibility into future JRun plans.
I'll pass these on to the team.