Suggested technologies for reimplementing stackoverflow.com
If you were going to reimplement SO now, what technologies would you use? What technologies would you use if you were restricted to Java technologies开发者_运维技巧.
And here's the answer I was writing.
This is an interesting question, because SO is actually architected in a very conventional way for web applications, but doesn't share a lot of characteristics with the usual web application. in particularly, it needs to be highly scaleable, but the business rules and data storage requirements are not complex.
So, using today's technology, I'd use
conventional javascript; SO uses jquery, that'd be fine.
I'd use a workpool-oriented web application like Unicorn for easy scalability.
I'd use Hadoop and Cassandra to store questions and comments.
I'd implement the scoring and ranking rules using MapReduce across the database.
Conveniently, most of these are available from Java, although I'd prefer a scripting language like Ruby or Python.
I would avoid the usual Java EE based world. In my opinion -- and I was a very early user of Java EE at Sun -- that techno.logy is overheavy. I'd also avoid Windows-based servers; they're hard to manage and comparatively expensive. (I can build the server hardware for about the same price as the OS license.)
I wouldn't have a server rack sitting at the corner of my office :) , have it in Cloud.
btw here is an overview of current architecture
Scale OUT rather than scale UP.
精彩评论