I really want to understand how a web system architecture would look like for a website that
-
Provide an online service with tens of thousands of users at any time
-
Provide support to multiple languages so that people from many countries can use it
Basically, I would like to know what considerations have to be taken. Distributed servers (servers in other countries)? Add failover? How is thing whole thing going to work?
I notice that google has google.com, goolge.run, google.cn, etc. What is the rationale behind this? Does each web address serve different or same content?
Any pointer or info is really appreciated.
Regards.
There’s no silver bullet for architecture related tasks. But generally for a large and long living project you should consider following tasks:
Define the target capacities you should start with. You can’t build high-available system in a one iteration. Initially you probably could start with max user sessions = 1000 over the world but you should be ready to scale at the moment. And do not afraid to pay a technical debt.
Pay more attention to the underlying technical details. You couldn’t imagine how this point is important for high-scaled projects. With large amounts of data some general solutions could be replaced with your own ones optimized for you own purposes. That’s related to any circumstances: database scheme, processing requests to server or sorting algorithms. For example having more specific sorting algorithm with very small benefits but on the huge data amount could save your billions. At this level you probably would have to tune your web server at the level of request processing sequence so you should know underlying details and its source code. Open source projects are good in this because you can improve the implementation or fix the bug any time you want.
And finally, you should know some widely-known scaling approaches. Balancing and caching are trivial, it could be sharding, postponed data processing and even total duplication of data (consider when Mark Tsukenberg posts to Facebook there’s more then one posted record in the database because of his wide subscribers community)