Best practices по проектированию отказоустойчивого web-приложения
Добрый день!
В целях саморазвития хочу получить теоретические знания и практический опыт в сфере построения web-сервиса.
Подскажите, где посмотреть best practices, какие архитектуры рименяете вы, какие считаете наиболее выгодными в плане отказоустойчивости, масштабируемости, выносливости под серьезными нагрузками и легкости конфигурирования?
Интересуют такие моменты, как корректная балансировка нагрузки, отказоустойчивость, кеширующие сервера, базы данных (опять таки отказоустойчивость), бэкенды.
Заранее спасибо
p.s. зачем нужны nosql db и какую роль они могли бы сыграть в запрашиваемых схемах