Lightweight ArchitecturePosted: February 3, 2006
Original Article: “Google, Amazon, and Yahoo! point enterprise developers towards “lightweight” architecture” – Open Resource, InfoWorld.
Quite a few folks are beginnning to realize that most big websites, including Yahoo!, Google and Amazon.com, run on lightweight architecture. To define lightweight architecture, it is helpful to define its opposite:
Heavyweight architecture means you are running complicated infrastructure software like J2EE with complicated API’s on a small cluster of expensive SMP machines.
Lightweight architecture means you are running straightforward, usually open source, software stacks with service oriented API’s on large clusters of commodity machines.
Overall, the article does describe the industry trend correctly. I can’t think of a good reason why Google, Yahoo, or Amazon would want to transition to J2EE. Their architectures are cost-effective and scale well. But I beg to differ with Peter’s complex use of the word complicated. A Development team can complicate applications & API’s built on even the simplest of frameworks. It is not hard to see that. Also suspect is the use of the word ‘Heavyweight’.
If anyone from the J2EE community is reading this, would it be accurate to equate your site with a Hummer?
Peter Yared is also responsible for the alarmist piece in Business Week – “Java it’s so Nineties“.
Could the people out there who regularly rubbish Java (and other frameworks) publish anything close to a definitive study that either proves, or disproves the efficacy of one architecture over another? I would really like to see a piece that takes a complex web application and benchmarks the application of each possible framework in implementing it. Metrics must include not only developer productivity, must also talk about performance, scalability, power and ease of expression, adaptability, defect rates, time to fix, interoperability, code re-use, framework tools and other aspects.
It is so easy to mouth off. Here is one side by side code comparision [“Ruby/Python/C++ Java comparision” – DMH2000] of popular frameworks.