Copy link to clipboard
I am helping a client update their existing ColdFusion 8 server environment to ColdFusion 2018. They currently run many (hundreds) of websites through a single instance of ColdFusion 8 Standard Edition on Windows Server. Is this model still supported by ColdFusion 2018 Standard Edition, or does this require an Enterprise Edition license to do so?
Aside from all of the obvious changes to code required to make the upgrade (there will be a development and staging environment setup to test everything before the new servers go live), the client is worried that the license for Standard Edition may not cover their specific use case any longer.
Can someone shed some light? I cannot find the answer here nor through the official license documentation. Perhaps I'm misinterpreting it, but it doesn't appear to touch on this specific use case.
Copy link to clipboard
Kindred, so let's be clear: you are asking if CF can handle multiple hundreds of web SITES, not users (though that can be implied also). And you ask if there's a change from CF8 to CF2018 Standard that may affect that.
First, you don't say if the CF8 was Standard or Enterprise. That could be helpful to know.
Second, on the surface, no, there's no reason to think or assert that somehow CF 2018 Standard can't handle "multiple hundreds of web sites", if CF8 was able.
Then again, I'm sure you're moving from an old box to a new one, right? And probably from an old OS to a new one, right? And perhaps even updating the DB you use? And of course your web server version will likely change. Was it Windows and IIS? Linux and Apache? or some other combination?
I ask all this because ALL these factors could just as readily lead you to find that your "move" fails--but not because of CF, so do be careful when trying to understand when things might go amiss. It's easy to blame CF.
Now, back to the question of whether CF8 was Enterprise or Standard: if it was Enterprise, and you are moving to CF2018 Standard, there's no aspect specific to that change which will make it that new CF implementation can't "handle as many web sites". But there is an aspect of that which may affect whether it can handle "as many users".
CF Standard differs from Enterprise in at least one key matter that relates to that: Standard implements something called the "enterprise feature router", by which CF essentially single-threads access to certain tags, like cfdocument (for creating PDFs) and some more. What this means is that while ONE request is processing a CFDOCUMENT, no OTHER request that wants to use that tag will be allowed to run, until that first one completes. Often there's no problem, but if ever a given CFDOCUMENT hangs up, and other frequently run requests want to ALSO use that tag, that can suddenly make CF seem to be "hung up", if all available request threads (set in the CF Admin "max simult requests" setting) get used up waiting on that CFDOCUMENT.
But back to the question solely of SITES, no, there's no difference in CF Std or Enterprise (or 2018 vs 8) about how many "sites" CF can handle. Of course, such sites are setup in the web server (like IIS or Apache), and then CF is connected to those sites (with the wsconfig tool, which looks nearly identical in CF2018 to what it did in CF8). But there is no limit to how many "sites" CF can be configured to run.
I WILL note, however, that since CF10, there is a change in CF with respect to how that web server connector configuration works. There is a new need to properly TUNE these connectors (especially for use with IIS, but also with Apache). There are two key factors: one being how many sites use a given connector (in terms of some settings in a workers.properties file for each connector)--and then also another need to configure a CF setting relative to how MANY connectors there are and how they are configured (in terms of a maxthreads setting for the AJP connector within the server.xml file).
In CF10 and 11, the default settings for these things basically only suited a single-site setup out of the box. And in CF2016 and above, the defaults are confgured to suite a two-site setup. Once you have many sites using a given connector, or of you decide to create many connectors, then there are very different settings that are needed. This info is covered in a blog post that Adobe shared back in 2014, relative to CF11. The info shared then is as relevant today (in 2016 and 2018) as then, other than this change in the default values. You will want to read that blog post (which is a bit of a mess, sadly), as well as some of the many comments that were shared. It's here:
Or I will say that if you have trouble deciphering it, or setting things up, I can help do it, on a consulting basis, remotely, and any day this week or in weeks to come, if you'd like such help. More at carehart.org/consulting.
Or you can ask questions here, and others may well chime in with more info, whether on things I shared or still other matters for you to consider. Hope that's helpful.
I just thought of one more thing: you say your client is concerned as much about "licensing". To be clear, there's nothing in the CF license (in CF8 or CF2018 or in between) that relates to how many "sites" CF can run (in Standard or Enterprise).
It's worth nothing that most of the recent CF versions have indicated how CF is licensed "per core" (with CF Standard supporting up to 2 cores, per license purchased, and Enterprise supporting up to 8 cores, per license purchased), where you are expected to buy the right "number" of licenses for your machines number of cores.
BTW, one can view the license for any CF version via the license.html file stored in the root of your CF instance, or some can be found online also. More in a blog post I did here.
Next, while it's NOT new compared to the license in CF8, do note that the CF license has always had limitations about how CF may be used, especially with an assertion against operating as a "service bureau".
In the recent EULA's, it says you are restricted from:
"(a) using the Software on behalf of third parties; (b) renting, leasing, lending, or granting other rights in the Software including rights on a membership or subscription basis; (c) providing use of the Software in a computer service business, third party outsourcing facility or service, service bureau arrangement, time sharing basis, or as part of a hosted service; or (d) using any component, library, or other technology included with the Software other than solely in connection with its use of the Software.".
In the CF9 license, the oldest I could find, it prohibits:
"(a) using the Software on behalf of third parties; (b) renting, leasing, lending or granting other rights in the Software including rights on a membership or subscription basis; (c) providing use of the Software in a computer service business, third party outsourcing facility or service, service bureau arrangement, time sharing basis, or as part of a hosted service; or (d) using any component, library, or other technology included with the Software other than solely in connection with its use of the Software. Notwithstanding the foregoing, with respect to a Production Software License only, Licensee is permitted to host the Software (including the accompanying Macromedia JRun Software) for use by persons other than Authorized Users."
The reason I bring all this up is that there have been instances in the past year or so of people reporting here that Adobe sales folks sent them a "survey" offering to "help them", which asked questions that helped determine if they were offering web sites that made money using CF to serve such sites, which they (these Adobe sales folks) asserted were operating as a "saas model" and which they felt violated the "service bureau" limit above. That's in the old ones and new ones.
But what's new are these occasions of some folks (but not everyone) being chased down for violating this term, and negotiating an annual license instead of the perpetual one (sometimes for numbers they found acceptable, or as often not).
And of course, that's led some to choose to leave CF, or try to move to Lucee, etc.--but I will add that some of the folks hit with this learned that if they switched to running their CF with a host, then their HOSTING company's license DID allow them to operate such a saas business.
To be clear, I am not a lawyer. But since you mention licensing, and having hundreds of sites And this whole matter was covered in considerable detail in a very long thread last year, here.
Your client will want to at least be aware of this situation.
You have provided a fantastic amount of information here that fully satisfies my original question about the number of websites a single instance of ColdFusion 2018 Standard can support. The other factors (number of concurrent users, web server in use, memory, connector, etc) will all get addressed during testing, so there are no worries there.
The reason this came up is because the client attempted to upgrade to CF10 Standard Edition several years ago and found that it immediately buckled under the load. This was likely due to other factors, such as the underlying Java runtime's memory limitations or other platform specific factors, and not CF10 itself as you touched upon.
I do want to point out that I did state that the client is running ColdFusion 8 Standard Edition in the second sentence of my original post.
I find the mention of users moving to Lucee an interesting topic as well. This client also attempted to move to Lucee and found that the Lucee platform is not well suited to running concurrent websites without a full rewrite of their underlying systems. It's too involved for this post to get into, but the bottom line was that Lucee doesn't support adding sites without restarting the service unless you setup your web server to proxy all requests to one main web context in Lucee and then have Lucee determine which website should respond to the request. While this would have been fine in some cases, their specific setup required a full rewrite of how all of their systems work to support this model and it was deemed cost prohibitive.
Thank you again for your help!
So, how well does CF 2018 (enterprise OR standard) support hundreds of concurrent USERS? I am finding very little information on this topic online. From my understanding of reading the EULA there does not appear to be any licensing details concerning users. But from a PERFORMANCE perspective, can it handle hundreds of concurrent users? Thanks in advance.
This is really hard to answer, because a "user" is not a unit of measurement. Some sites can support thousands of concurrent users. Some ... can't. Some support more users by reducing the amount of work done per user. There are all kinds of ways this can be done.
That said, one of my favorite sites to bring up when I hear a question like this is the National Park Service site (https://www.nps.gov/). It's one of the most heavily used sites in the US. It uses ColdFusion. Several thousand NPS employees keep content updated, and millions of regular people like me look at that content.
Dave Watts, Eidolon LLC
To be clear, I was writing my previous reply (above) while Dave was writing his (or vice-versa). I just mean I had not read his before I wrote mine. I don't want it to seem I was speaking to contradict him. Not at all. As usual, he conveys the points more succinctly. 🙂
Thank you all SO much, you have been most helpful. Our developer is still trying to determine if Std will work for our needs, but based on the fact that we have at least 8 cores in our server, I think enterprise is about the same cost, so we may as well upgrade.
That's a good point, June5. Glad you connected those dots. In that case, Enterprise would indeed see the better choice.
For those not seeing the point being made, Std is licensed per 2 cores, and Enterprise is licensed per 8 cores. This is discussed in various places, perhaps most clearly in the EULA, and I have a post on how to find those for any CF version:
I hope this won't open a renewed discussion of how terrible it is (in the mind of some) that Adobe charges for ColdFusion at all. That horse has been beaten to death in many, many other places.
It can support millions of concurrent users. I'm not exaggerating.
It does depends (to a degree) on what you mean by "concurrent": people "logged in" to your app and sitting in browsers looking at your site all at once? people hitting enter at the same moment? It could support millions of the former, for sure.
As for the latter (millions hitting enter at once), that would depend on the size of the computer (cpu, memory, configuraiton, and more). On a low-powered machine, nothing could support millions of users hitting enter at once: not php, not ruby, not node (though node folks will find a way to quibble with my assertion).
To be clear, and specific to your question: no, there is no limit in CF Std regarding how many "concurrent" users CF can handle at once. One should usually be able to handle the same number whether Std or Enterprise.
And no, there's not some built-in limiter that makes code in CF Std run inherently slower than Ent, not at all.
That said, it is true that there are various aspects of Std that are limited compared to Enterprise (as discussed in the CF buying guide). And if you happened to hit any of THOSE limits, then CF Std would NOT be able to handle as many "concurrent users" as Enterprise, if by that you mean multiple users "running requests at once".
Indeed, one of the most egregious limits is what it refers to there (in the footnotes) as the "enterprise feature router". That mechanism is what controls the items identified in that page as "limited" in Standard (only several). But the way it works is that only ONE request at a time can run the things indicated as limited.
An example is cfdocument, which produces PDF from CFML/HTML. Only one request at a time can run, executing that tag (across all requests, all apps). And most of the time, it's no big deal, because it shouldn't take long to create a PDF, right?
But if something happens so that even ONE user is running that tag and the code within it runs for a minute, then for that entire minute, NO ONE ELSE who runs a CF page that does a cfdocument will be able to run that page. They will hang.
And now, CF can't even handle 2 concurrent requests (let along 10, 100, or 1 million). Is that a problem that you should expect? Well, no. Could it happen, unexpectedly? Well, yes.
Should that make one choose CF Enterprise over Standard? It has been the thing that pushed some over that edge (or over the edge of leaving CF). They could also fix things so that the hanging pages don't hang. That's what I do for a living, and I know I have helped some people not leave CF Std or not leave CF (or not buy bigger, badder hardware, or go to multiple concurrent instances/servers, when instead they could solve the problem that led them to think that was their only choice).
But bottom line: yes, CF can handle far more than 100 "concurrent" users, in nearly any app, and on nearly any license. But there are certainly some situations where Std may hit this limit. Only you can decide (through testing, or based on concern with this info) if you should "go to Enterprise" instead.
Hope that was helpful.