I first mentioned this half a year ago during my summer CFUG tour, but a few of you have asked about it recently, and so …
ColdFusion MX Enterprise features support for multiple ColdFusion instances. Although actually, that is less a ColdFusion feature and more a J2EE server feature that ColdFusion users can take advantage of. ColdFusion MX, after all, is a Java application (deployed as an EAR or WAR, like any other Java application). I’ve discussed the benefits and the importance of using multiple instances before, but simply put, using multiple ColdFusion instances provides greater security, greater stability, and greater scalability (almost like having ColdFusion installed on multiple physical servers, but all on one server).
The current shipping version of ColdFusion Enterprise supports the use of multiple instances. If you have an existing J2EE server, you can create multiple EAR or WAR files, and can then deploy them (as you would any other Java application). If you do not have an existing J2EE server, the ColdFusion installer can install JRun 4 for you, and in doing so will also create and deploy the first ColdFusion instance so that you can be up and running immediately. But when you want to deploy additional instances, then things get a little tricky for users without experience in J2EE server administration. You’ll need to use the J2EE server administration tools to create a new server, run the ColdFusion installer to create the EAR or WAR, expand the files (if using JRun), make tweaks to an XML file, then copy the expanded files into the server folders … doable, but not exactly a trivial process. (And unfortunately, this is why so many users have yet to deploy multiple instances).
Blackstone should make this a whole lot simpler. (I say “should” because Blackstone is still in beta and stuff could still change between now and when we ship). Blackstone should have the same three installation options that are present in ColdFusion MX 6.1, but selecting the JRun+CF option in Blackstone installs additional administration screens that make the deployment of instances (and even the creation of clusters of instances) as simple as any other ColdFusion administration processes. You’ll be able to simply fill in a form and hit a button to create a new instance, without needing to use the JRun management tools or the ColdFusion installer, without needing any XML tweaks, and without even knowing what an EAR or WAR file is.
How could this be used? Consider these use cases:
1) You are deploying a brand new application, one that uses its own data sources and is built by a different development team (who need CF Administrator access), and you want the new application to be safely isolated from your existing production applications. Simply create a new instance, launch the ColdFusion Administrator for that new instance, define the data sources and any other needed settings, copy the code, and you are good to go.
2) You are about to deploy an update to your application code, and need to maintain the existing application as a fall-back, just in case something goes wrong. Simply create a new instance, (you could even create a CAR file using the old instance to save data sources and any other needed configuration, launch the ColdFusion Administrator for the new instance and import the CAR file to import those settings), copy the code, associate your Web server to the new instance, stop the old instance (to prevent resources being used unnecessarily), and you are done. If you then need to roll-back, start the old instance, and reassociate your Web server to it. Clean and simple.
3) You have an existing application that is seeing a spike in load (holiday shoppers maybe), and want an additional server running the same application (so that you can handle a greater load, and also provide failover in the event that a server problem occurs). Simply create a new instance, point to the Java package containing the code and settings used for the first instance, and let ColdFusion do its thing. You’ll have a second instance created, configured like the first, and containing the same application as the first. You can then use a second screen to create a cluster (perhaps to enable session sharing between the instances).
You get the idea.
Of course, for those who want more control, JRun will still be installed with its own management software just like it is now, and you can deploy and manage applications just as you can now. But for those of us who simply want to leverage what is undoubtedly the most significant benefit of ColdFusion Enterprise over ColdFusion Standard, Blackstone should make life much simpler.

9 thoughts

  1. That’s all great news but I’m wondering something. Maybe I missed it, but will there be an admin of admins…. Currently, even if I use the JRun Admin I can’t get from there to each instance’s CFAdmin (correct me if I’m wrong). It’s not much of a problem it’s just that it would make it easier. I guess it might be a good opportunity for an app using the CF admin API Blackstone should have. And if you could register other physical servers with it, it would be great. My bookmarks are getting big (3 servers with an average of 10 instances each). πŸ˜‰

  2. Marc, the screen that shows all defined instances has a link next to each which fires the admin for that instance. So, yes.

  3. I have two clusters of 4 CFMX instances where I need to have the DSNs in sync-up among all of them. Is there a way to manage DSNs for all servers in the cluster in one centralized location? I’ve tried registering the DSN through the JMC (Resources > JDBC Data Sources) but CFMX doesn’t recognize it.

  4. At a recent Macromedia event they hinted (I think) that there’ll only be one edition of Blackstone, not a Standard + Enterprise editions. That would be great. Do you know whether this is true?
    Also – any clues about when Blackstone is due to appear?

  5. Anthony, Blackstone is planned for this quarter, and as for editions, we’ve announced nothing yet, but I actually don’t expect any changes at all in how editioning works.

  6. Thanks for that. Looks like we’ll ‘only’ have Blackstone Standard when we upgrade.
    I’m evaluating CF vs Java/JSP/Struts development strategy for my group. I have Java experience but the rest are newbies. Obviously CF is easier to pick up but I’m loathe to drop my skills entirely.
    Articles like yours (see below also) rightly stress Java integratability but I must say you and others neglect to say that this is for Enterprise edition only. From the feature matrices Standard users can’t use JSP tags, servlets, J2EE deployment – we’re "locked out" from using the Java we already know. πŸ™
    http://www.macromedia.com/devnet/mx/coldfusion/articles/struts.html
    http://sys-con.com/story/?storyid=46362&de=1
    (I’ll still enjoy Blackstone when it appears though … πŸ™‚

  7. Does each CF instance need a separate CF license?
    Also, if each CF instance is installed inside a Virtuozzo VPS, does it then need separate license?
    GM

  8. Guennadi, CF is licensed by the number of physical CPUs on the box, not by instance. So no, the same license that allows you to install one instance allows you to install as many as you want on that same box, so no more licenses needed.

Leave a Reply