Reading material for server architectures [closed]
I am currently part of a team working on a new large-scale project consisting of a web platform with content consumed through an API by various mobile devices. We really anticipate a lot of traffic during the first months of launch so really good planning on capacity, scalability, redundancy and availability of the services is a must.
I'd like some reading recommendations (web, books) on matters regarding good practices about server architectures like where to put the web server, where to put the database, where to put the mail server, how to make master/slave configurations, caching, load balancing and stuff like that.
I don't really want to dig deep into the subject since I am just the guy who came up with the concept but also the leading developers on one of the mobile platforms. I have pretty solid experience with basic systems administration but I'll have to expand my knowledge on the topic so I can guide the platform development team and plan hosting requirements.
Also, is there some kind of independent consultants specializing on stuff like that? In case I find myself in trouble.. :P
For capacity planing you probably want to read the nice works of Neil J. Gunther. Especially his new work is really excellent:
- http://www.amazon.com/Guerrilla-Capacity-Planning-Tactical-Applications/dp/3540261389/
or John Allspaw's
- http://www.amazon.com/Art-Capacity-Planning-Being-Growth/dp/0596518579/
and for the operational POV:
- http://www.amazon.com/Web-Operations-Keeping-Data-Time/dp/1449377440/
Allspaw is the guy who's in charge of operations at flickr.
General books about high availability, disaster recovery and distributed systems should also be easy to find on amazon or where you get your books from. It really helps a lot to understand the general problems so that you guys can understand the particular solutions.
Never ever underestimate proper application architecture and please do yourself and your team a favor by implementing instrumentation in your application - can't stress this one enough.
Be aware that for any of the things you asked literature for are topics that need to be handled from people that are experts on exactly that topic as all of them are extremely broad and need deep expertise to be implemented properly. Also they are nothing like sysadmin fundamentals or basics. There's also a big dependence on the exact product that you're going to use!
Regarding the consulting companies - name your products or describe your architecture (if possible) and I can recommend some companies that I worked with on a similar project as an infrastructure consultant.
I would highly recommend reading Oreilly's Beautiful Architectures (More focused on the actual programs that will be running) and Cloud Application Architectures (more focused on the system itself) .
Here are the links:
http://oreilly.com/catalog/9780596517984/
http://oreilly.com/catalog/9780596156374/
Hope that helps, RayQuang