Users frequently ask me for platforms and operating system recommendations, wanting to know which is best for ColdFusion. And having just answered this one yet again, I am posting it here so as to be able to refer people to it in the future ...
There is no recommended operating system for ColdFusion, and ColdFusion should not be driving your OS decision. From a ColdFusion perspective, there is not a lot of difference between Windows or Linux or anything else. ColdFusion runs in a JVM, and the same core ColdFusion bits run in the JVM regardless of underlying platform. The only real exception to this is Windows specific functionality (like COM support), but core ColdFusion is the same any all operating systems (since CFMX).
So, which OS should you use for your ColdFusion server? I'd not get too hung up on which OS is better for ColdFusion, as just explained, ColdFusion really does not care what the underlying platform and OS is. The deciding factors have to be all the reasons that generally go into OS decision making, things like what in house experience and expertise you have, cost (taking into account ongoing costs and maintenance costs and more), platforms already in use for other servers, and so on.
And as long as you end up deciding on a platform that ColdFusion supports, you're all set.
(j/k of course... I'm fairly sure it's not supported)
=)
1) More people run CF on Windows than on Linux/Unix. There's a better chance someone else has experienced the same issues you are facing.
2) Official support for Linux is limited to RHEL3, RHEL4, SUSE8, and SUSE9. Most virtual/dedicated servers standardize on CentOS, Debian, Fedora, or other "free" distributions. Unless you use an officially supported distro, you're on your own when you run into any issues, may have to compile your own JRun connector, have to deal with package incompatibilities, etc.
3) ColdFusion's release cycle is more like the release cycle of Windows than a typical Linux application. As your distro is upgraded, you may have to stick with older versions of various packages (even on RHEL, CF relies on deprecated libraries such as xorg-x11-deprecated-libs) or risk breaking CF. Not as much a problem on the Windows side.
4) Adobe knows Windows far better. For example, it took over 3 weeks for me to get an answer from Adobe Support on whether RHEL4 (x86_64) with Sun JDK 1.4.2_11 (i586) is officially supported, or whether official support is limited to RHEL4 (i386). (Apparently x86_64 is not supported, though "it might work" since 64-bit Linux is normally able to execute 32-bit Linux code.)
It's easy to install and configure, plays nicely with different versions of windows and windows servers, intergrates with IIS and I prefer to use MS SQL Server.
So i'd actually say that your database choie might dictate the operating system also, as you can't get some DB's for Linux but you can get them all for Windows, so why lock yourself in.
Also support is a big issue, people seem to have a lot more issues with Linux, Apache. Not because CF doesn't support it, but because there are so many variants of Linux and Apache that you just might be doing something that not many people have done or experienced.
Once running however, Coldfusion is incredibly stable on both platforms.
I would have to disagree with the view the it depends on your database. Again, any business should be running a separate database server to for reliability, security, etc. So we run RHEL4 linux servers for ColdFusion which talk to our Windows 2003 Server boxes running MSSQL server and another linux box running mySQL. None of the CF servers are running their own databases.
Anyone else on linux?
The same is true when picking a server platform to run your apps on. In most cases, any given company is going to have an in-house expertise around Linux/Win, whatever. This should be leveraged as much as possible. A linux admin is always going to deal with a Linux box better than a Win box and vice versa.
Unless you are going to be getting new employees, choose something that's going to take advantage of the skillsets of your employees.
All in all, I don't think you can go wrong with any OS as long as you are using CF!
coldfusionmx > file runtime/lib/wsconfig/1/mod_jrun20.so
runtime/lib/wsconfig/1/mod_jrun20.so:
ELF 32-bit MSB dynamic lib SPARC Version 1, dynamically linked, not stripped, no debugging information available
Michael, um, no. 'Abandoned' implies that it was one supported and then we stopped doing so. That, of course, is incorrect. There was no support for Mac OSX in CFMX as Mac OSX was a non issue then, there is minimal (very minimal) support in CFMX7 as Max OSX become somewhat more relevant then. And Scorpio will support Mac OSX properly. No abandonment here, just sane business decisions. And no, I am not going to debate the point, but suffice it to say that while OSX has become a very important development platform, it has utterly failed as a server platform. Which means that in all likelihood we'll ave lots of downloads of the free Developer's Edition for Mac OSX, but that won't translate into many sales. And, considering the cost associated with testing and supporting each additional platform, it was tough to justify before. We're doing it now, but you've been complaining as if this were a personal attack for a long time now, and it isn't. It's called business.
--- Ben
Which is either true... or false. If ColdFusion runs on a JVM and doesn't really "care" about the underlying platform, then supporting OS X PPC or OS X 886, Windows, Solaris, Linux, or any platform running a JVM should be trivial. If, as you imply, testing and supporting additional platforms is a time consuming and non-trivial process, and a major business case needs to be made for doing so, then it's pretty obvious that it does care, and that its JVM-based platform "indepencence" is really just a marketing bullet point.
Sorry, it's just the way I see it.
--- Ben
Also, do remember that Mac OS X is NOT a linux or UNIX port. It's closest neighbor is BSD. Which means engineering a port is not untrivial. In fact, moving a Java app over to BSD that needs to handle detailed threading the way that app servers do is a lot of work.
Sure, according to Sun should compile well, but ever notice that every OS linux flavor of any major Java app (say... Eclipse for example) has its own binary set?
This kind of annoying nonsense is part why I left Java.
But since Apple made the shift to Intel, you can no longer buy PPC systems, including XServes. There is, however, a rather lengthy set of CFMX7 on Intel instructions floating around that basically boils down to installing CF in a certain way and then recompiling the Apache connectors. Do so, and it's reported that CFMX7 will run under OS X just fine (thought that's an unsupported configuration).
Which is the other half of the issue. It already ran under OS X (BSD/Mach) and apparently still does so under the right conditions. But rather than fix the installer and connector (which they'd eventually have to do anyway) and ship an update, they've effectively abandoned it until Scorpio (MX8) ships.
But thanks for the insights.
We´ve read several articles about Coldfusion Performance, JVM Tuning and so on. So, if you just change the JVM Garbage Collector, Coldfusion can behaves differently, it´s worth to say that if you swap the Operational System Coldfusion can behave differently, too. Even because different OSs can give you different options to tuning.
I think there are Operational Systems where performance problems tend to ocurr earlier ou later.
Personally I´d like to see a Coldfusion´s Performance Benchmark with Linux, Solaris and Windows
Another interisting thing to think is that few years ago, in the Macromedia´s Age, it´s Coldfusion Servers were Solaris. So, what did make Macromedia choose Solaris?
In our experience, those lengthy CFMX install instructions for Intel Macs work some of the time. I got it working on one machine, and then not on another, even though I thought they had identical configurations. Its a pain to get working, and to me not worth the hassle. Especially since it is unsupported.
In the meantime, since you are running Intel Mac, might I not just suggest Bootcamp until Scorpio comes out? Thats what I tell co-workers who refuse to just connect to our UNIX and Linux servers which host the dev servers here. That works for me from on-site or off-site.
Finally, I think 'abandoned' is the wrong word. Adobe never 'supported' Intel Mac for CF, so how can they abandon it? I can tell you that our PowerPC Mac staff have no problems with running CF. So Adobe has abandoned nothing, just refused to spend a lot of expensive engineering time on a project that would be rendered obsolete when in a short time Scorpio would be released. Makes sense to me.
And assuming Scorpio is released this summer as rumored, it will have been two years since the Intel announcement. Forgive me, but that's not exactly a short period of time in anyone's book.
Moving on, Boot Camp isn't really a good development option because of the rebooting and corresponding workflow issues, nor is it suitable for a production environment. But there is another good option for development. Two actually.
Now I use windows 2000/windows 2003.
I think those os is strong for normal and It's easy to install and configure with windows servers, intergrates with IIS.
And DB system i like to use ms sql server.