|
Mailing Lists
|
Home /
Groups /
ColdFusion Community (CF-Community)
How much can ColdFusion handle?
BankofAmerica.com uses it for their public facing online banking system ** Private ** 05/02/12 09:29 A I'd also say that you need to look at using the appropriate technology ** Private ** 05/02/12 12:49 P This is probably the reality of the situation. My questions about what ** Private ** 05/02/12 06:38 P > I was wondering how much use CF can really handle either as a server ** Private ** 05/02/12 09:36 A Cam is and always will be my hero. When I grow up I want to be just like ** Private ** 05/02/12 09:50 A I have so many heroes on here it's sick, from Cam to Judah to Dino (of ** Private ** 05/02/12 10:48 A On Wed, May 2, 2012 at 12:30 PM, Larry C. Lyons <larryclyons@gmail.com>wrote: ** Private ** 05/02/12 12:43 P On Thu, May 3, 2012 at 1:41 PM, Maureen <mamamaureen@gmail.com> wrote: ** Private ** 05/03/12 01:47 P why not test it? Set up your application, download jMeter and set up a ** Private ** 05/02/12 12:25 P On Wed, May 2, 2012 at 11:34 AM, Larry C. Lyons <larryclyons@gmail.com>wrote: ** Private ** 05/02/12 12:37 P Sections of it during their preso. If I remember correct Mike Dinowitz ** Private ** 05/02/12 12:40 P I was wondering how much use CF can really handle either as a server product or middleware. I am not talking about situations where throwing hardware at performance issues can get one by, but to the point where choosing the right middleware/application backend software can make or break an application. Facebook, for example. Throwing hardware at something like Facebook is not going to help performance issues in the software. Facebook is built using PHP, but they do some fancy compiling on the PHP to make it faster. Their backend is also a bit more complex than a MSSQL server farm. Twitter abandoned Ruby on Rails for its server side processing because Rails couldn't keep up. I know MySpace was using CF for a while, but CF was unfairly blamed for MySpace's reliability problems, so it isn't a good measuring stick. Can ColdFusion run something like Facebook/Twitter, or would inefficiencies stack up to make it completely unworkable no matter the scale of the hardware? I looked for case studies on google but most that looked promising either returned 404s or Service Unavailable messages. > Facebook, for example. Throwing hardware at something > like Facebook is not going to help performance issues in the > software. Facebook is built using PHP, but they do some > fancy compiling on the PHP to make it faster. > ... > Can ColdFusion run something like Facebook/Twitter, ... There's no inherent reason ColdFusion couldn't run it, but you'd be spending a lot more on hardware and licensing than you would probably be sane to do. Once you get to that scale, every architecture decision becomes critical. Something that makes a 2% difference in efficiency at any level can cost or save millions of dollars. At that scale, ColdFusion's licensing costs alone would be a deal-breaker for anyone with even a rudimentary understanding of economics (sure, there is Railo and others but I'm focusing on Adobe ColdFusion here). At scale, the right tool for the right job becomes critical. ColdFusion's primary value, in my opinion, comes from making difficult tasks easy for developers so that solutions can be put into production more quickly and increasing productivity of a development team. Can ColdFusion scale? Absolutely, if you know what you're doing and have appropriate resources to support it, but the same could be said of any mature technology. There's nothing stopping you from standing up a pair of large load balancers in front of a cluster of CF servers backed by a cluster of SQL Servers, but it won't be inexpensive. Assuming your architecture is sound and the right resources are coming from the right places (e.g. images/css/javascript being loaded from a CDN, proper caching being used across the board, good database design, etc.) there is no reason ColdFusion can't be part of a well-designed architecture aside from the cost. The question you should be asking is which platform is best and most cost effective for YOU at the scale YOU expect to achieve, and how does that scale factor in with your goals (e.g. is it okay to start with ColdFusion and limited resources and get something online more quickly and then, if you become the next Facebook, is it okay to rework your platform into something that will scale at a better cost effectiveness?). -Just Whew....that looks like it came out of a text book. Well said Justin. I'd add that i think CF sometimes suffers, undeservedly, from it's ease-of-use. I use myself as an example. CF was my first coding language, and I spit out a lot of code. As things became more complex, my apps weren't running very efficiently. Why? My code was an absolute jumbled mess of unnecessary loops and god knows what else. CF's ease of use allowed me to generate a large out put of working code, when I barely knew what i was doing. Without proper supervision, that can be dangerous :) ----- Excess quoted text cut - see Original Post for more ----- BankofAmerica.com uses it for their public facing online banking system amongst a bunch of other technology.. So it must be scalable to some degree. I understand the infrastructure running the transactions is an entirely different kettle of fish, but I think that shows some fairly heavy use in the marketplace. and its probably a cheaper price point if its all done in *nix environments, right? ----- Excess quoted text cut - see Original Post for more ----- > Whew....that looks like it came out of a text book. > Well said Justin. Thanks, my usual responsibilities toe the line between ColdFusion development and server/network design and administration so these are the kinds of problems I eat for breakfast every day. :) -Justin I'd also say that you need to look at using the appropriate technology in the right spots. CF is great for all sorts of things. But it was built for an html/db-centric world. Those parts are often still important in applications. However, a lot of functionality in modern applications has moved to a more data-centric and asynchronous world. Thus the rise of key-value stores (Cassandra, Redis, Couch, etc), non-http protocols like Thrift, distributed caching, queuing/messaging technologies for Pub/Sub (JMS, Hazelcast, RabbitMQ, ActiveMQ), etc. Most all of these technologies can be used along with CF though some are easier than others. Facebook was able to scale not only by rewriting PHP to be more efficient, but also by investing heavily in areas outside of the main scripting language. Cassandra, for example, was created by Facebook for their NoSQL needs. If I recall correctly, they also did some significant work on and contributions to memcached. So, I'd say the answer is: yes, CF can scale. However, you'll get better results by choosing the appropriate technologies for different portions of the application and having a solid understanding of the way they need to play together in order to maximize performance and minimize complexity. There is no one true solution that will automatically do all of that at once. Cheers, Judah ----- Excess quoted text cut - see Original Post for more ----- This is probably the reality of the situation. My questions about what CF can handle were more academic. Thanks for all of the responses peoples. On 5/1/2012 10:31 PM, Justin Scott wrote: (e.g. is it okay to start > with ColdFusion and limited resources and get something online more > quickly and then, if you become the next Facebook, is it okay to > rework your platform into something that will scale at a better cost > effectiveness?). > > > -Just > I was wondering how much use CF can really handle either as a server > product or middleware. I am not talking about situations where throwing > hardware at performance issues can get one by, but to the point where > choosing the right middleware/application backend software can make or > break an application. Technically speaking, CF can scale very well. Virtually (or maybe literally) no-one has the scale problems of Fabebook, so I would call foul on the premise of this entire question. Many clients come to me claiming they expect this sort of traffic, but 99.99% of them are completely full of shit. One wasn't, though they still didn't even come close to Facebook on scale. Having said that, I think that the two number one problems with scaling up CF to "Facebook scale". First - cost. Justin already mentioned this, and it's a very valid point. Scaling means lots of servers, no matter how bad-ass your platform is. If the world of PHP, there are certainly lots of costs of scaling out to a bunch of servers, but the license for the PHP isn't one of them. In the CF world you pay for each. Even using VMs alongside the most cost effective CF licensing model, you're going to pay out the ass. I have no idea how many servers Facebook runs today, but in 2009 this article<http://www.datacenterknowledge.com/archives/2009/10/13/facebook-now-has-30000-servers/> claims that they run 30k servers (surely way more by now). Assuming only a third of those are PHP servers, that 10K servers. Even at 10 VMs per Enterprise license, at full retain price you're talking about $7.4 million dollars in licensing. Of course, Adobe might give you a steep discount, which would take the price down lower, but even at $1 million, would you pay that when PHP is free? Really though, CF doesn't live in the Silicon Valley startup space. Sure, startups use CF sometimes, but really CF lives in the corporate world, and in government. It's rare to see anything similar to FB built in CF. Pud ( http://pud.com/) has built a few things with it, including FuckedCompany, TinyLetter, and Fandalism, but that's the exception. The second problem I see getting to Facebook scale is the fact that CF is closed source. Sure, CF scales well, but occasionally it doesn't. For example, CF8 had a huge problem with UUID generation that slows servers down tremendously. In an open source software environment that would get patched by the startup's engineers, even if it didn't make it back into the product (though it probably would make it back in). In the world of CF, however, we all had to wait till CF9 came out to see the fix. Sure, in the meantime we could all code around it, or just not use UUIDs - but why do that when you could fix it yourself? Aside from those two issues, I think that CF scales very well. That one client I was talking about that wasn't full of shit about it's scale? When Sumo Consulting helped relaunch PGA.com in 2003, it ran on 2 (TWO!!!!) CF6.0 servers and managed to scale up to over 10 million pageviews/hour. We made lots of technical decisions that helped achieve this, including liberal use of caching servers, image farms, etc, but we did it, and this was on a relatively weak V6.0 release of CF as well... Admittedly though, PGA.com still isn't the same problem as Facebook because it has lots of generalized, non-individualized content. If we cached the leaderboard for 10 seconds that represented thousands of cache hits. That made things easy. Facebook shows different stuff to each person so the cache chunks are much smaller. That makes things harder. Having said all of the above, I really do think that Railo solves both of these problems. you can choose to license it for support. or not. you can also get into the source and patch anything you need to in order to speed it up. I don't know how this will all shake out, but Pud (my Silicon Valley example) has switched from CF to Railo, for the very reasons I stated above. So - yes it can scale, but as with any question "it depends". -Cameron -- Cameron Childress -- p: 678.637.5072 im: cameroncf facebook <http://www.facebook.com/cameroncf> | twitter<http://twitter.com/cameronc> | google+ <https://profiles.google.com/u/0/117829379451708140985> Cam is and always will be my hero. When I grow up I want to be just like Cam. <3 On Wed, May 2, 2012 at 9:35 AM, Cameron Childress <cameronc@gmail.com>wrote: ----- Excess quoted text cut - see Original Post for more ----- I dunno - I do live in the big bad city... :) -Cameron > Cam is and always will be my hero. When I grow up I want to be just like > Cam. <3 I have so many heroes on here it's sick, from Cam to Judah to Dino (of course), and tons of others......ya'all are better and smarter at everything than I am. It's humbling. On Wed, May 2, 2012 at 9:29 AM, Cameron Childress <cameronc@gmail.com>wrote: ----- Excess quoted text cut - see Original Post for more ----- I have to disagree with you about the licensing issue. Both Railo and Open BlueDragon are enterprise ready application servers, as capable as Adobe CF. Since you can download them as WAR files, its not difficult to deploy them to multiple JBoss or Tomcat servers and clusters. While the community server edition of PHP is free, the enterprise Zend Server's cost is more akin to Adobe CF Enterprise edition. Given the performance costs of the community server under load, you need the Zend Server for any large scale site or one where you expect to have a significant load. On Wed, May 2, 2012 at 9:35 AM, Camer ----- Excess quoted text cut - see Original Post for more ----- Seconded. Ralio enterprise wide is where it's at.. http://twitter.com/#!/pud/status/1788251045 ----- Excess quoted text cut - see Original Post for more ----- On Wed, May 2, 2012 at 12:30 PM, Larry C. Lyons <larryclyons@gmail.com>wrote: > I have to disagree with you about the licensing issue. Both Railo I mentioned Railo as a solution against cost. -Cameron ... Using Railo would solve the cost problem On Wed, May 2, 2012 at 6:35 AM, Camer > First - cost. Justin already mentioned this, and it's a very valid point. > Scaling means lots of servers, no matter how bad-ass your platform is. If > the world of PHP, there are certainly lots of costs of scaling out to a > bunch of servers, but the license for the PHP isn't one of them. In the CF > world you pay for each. Even using VMs alongside the most cost effective CF > licensing model, you're going to pay out the ass On Thu, May 3, 2012 at 1:41 PM, Maureen <mamamaureen@gmail.com> wrote: > Using Railo would solve the cost problem It solves both problems, as I mentioned further down in the email. Admittedly, it was long... -Cameron ... TL:DR On Thu, May 3, 2012 at 10:46 AM, Camer ----- Excess quoted text cut - see Original Post for more ----- why not test it? Set up your application, download jMeter and set up a bunch of test cases. Then using those test cases and jmeter have about 200 concurrent visitors hit the site. Better yet set up a jmeter master slave testing system and have 5 or more machines each running jmeter and a similar set of test cases and simultaneous visitors each. That should give you a good idea of what it can handle. One suggestion though I'd optimize the heck out of the web, database and the CF application servers first ----- Excess quoted text cut - see Original Post for more ----- BTW what happened with MySpace was not due to CF. It was due to the fact that their code sucked. Their solution was to throw hardware at it. I was at one CFUnited several years ago where the MySpace development team gave a preso on their system. In the Q&A session afterwards they were verbally ripped apart over the bad code. When they moved over to BlueDragon.Net the code problems increased. So in the end CF just became a convenient scapegoat to hide some bad coding practices etc. ----- Excess quoted text cut - see Original Post for more ----- On Wed, May 2, 2012 at 11:34 AM, Larry C. Lyons <larryclyons@gmail.com>wrote: ----- Excess quoted text cut - see Original Post for more ----- They actually showed you guys their code?????? That's weird. Sections of it during their preso. If I remember correct Mike Dinowitz may have been there and saw the same preso. But the code sucked. ----- Excess quoted text cut - see Original Post for more -----
|
May 18, 2013
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||