With the Enterprise version of Coldfusion MX 7, a CF developer has the ability to deploy your applications as .EAR files on multiple instances of the JRun application server (or any other J2EE compatible application server, such as BEA WebLogic, IBM Websphere, etc, even open source Tomcat, although that isn't supported by Adobe) . This redundancy enables fault tolerance, which is especially useful in a shared hosting environment . That is, should one instance of the application server fail for 1 application, this would not crash all applications relying on the Coldfusion server. Instead, each application can utilize its own instance of the JRun (or other J2EE) application server.
If you are not familiar with this, the following is a good article, as is Ben Forta's Advanced Coldfusion development book (a veritable CF bible) is a phenomenal reference:
The J2EE implementation of Coldfusion discussed above exists for really a single shared server environment, as the LICENSE restricts .EAR deployment to a maximum of 2 CPU's. The marketing material is not immediately clear on this, so be aware, that J2EE deployment is unlimited in terms of application server instances, but is limited to TWO CPUs. If I am incorrect on this, someone please provide clarification, but I'm somewhat certain after days of looking into this, that this is the case.
There are still distinct advantages there -- not only the capability for application server redundancy (and clustering), but also the ability to deploy as .EAR files enables the development process to be one that contains a bundled and dated version. While its common and certainly best practice to utilize version control such as CVS and Subversion, it's not common in the Coldfusion community to bundle and deploy applications as .EAR files. This is evidenced by the options available at most Coldfusion hosting sites, which consists mainly of FTP-ing files to your folder. (it should be noted there are small disadvantages to .EAR deployment, if you require frequent small changes to files, but this disadvantage can be significantly nulled out with the use of Apache ANT as a build, zip, ftp, and deploy tool). .EAR file deployment has the distinct process advantage of being able to quickly snap back to dated versions of one's web application instantly. As long as there weren't schema changes to the database, a developer can simply deploy an .EAR file to the application's directory and it will effectively 'unzip' the application and all its dependencies. .EAR file deployment can also be made easy through the use of mature deployment tools such as Apache ANT.
That brings me to my question. As CFMX 7 enterprise enables isolation and redundancy at the application-server level, Solaris 10 has the capability for Containers (aka 'Zones') for isolation and redundancy at the server level itself. The following is a summarized description of Solaris 10 Container capabilities from Sun's website:
My question to Adobe and the Coldfusion MX Community:
- "Build customized, isolated containers—each with their own IP address, file system, users, and assigned resources—to safely and easily consolidate systems
- Guarantee sufficient CPU and memory resource allocation to applications while retaining the ability to use idle resources as needed
- Reserve and allocate a specific CPU or group of CPUs for the exclusive use of the container
- Automatically recover from potentially catastrophic system problems by leveraging the combined functionality of Predictive Self Healing and Solaris Containers"
How would the implementation of multiple Sun Solaris 10 Containers affect the licensing of Coldfusion MX 7? If a server had 2 CPU's but was configured for multiple Solaris Zones, would the Enterprise License still apply in such a way that enabled unlimited instances of the application server throughout these Zones? Or is each Zone treated separately as a CPU? It would seem to me, since there are two processors, the enterprise license would allow for this type of integration with Solaris 10 Zones, but I cannot find any documentation on this on Adobe's Coldfusion site or in the license. Can anyone at Adobe help clarify this?