После окончания школы компьютерных наук и выхода в «реальный мир» в качестве инженера-программиста, работающего над веб-приложениями, я был ошеломлен объемом информации, которую нужно узнать о правильном масштабировании веб-приложений. Некоторые темы/вопросы, которые недавно появились у меня:
- РСУБД против хранения неструктурированных данных.
- Преимущества и недостатки шардинга для баз данных, поисковых индексов и т. д.
- Какие сетевые файловые системы масштабируются? Какие нет?
- Стоимость соединений HTTP и БД.
- Доставка статического контента, почему бы не хранить изображения в базе данных и т. д.
- Почему лучше использовать один пул потоков, чем постоянно создавать новые?
- Подробнее о memcached и альтернативах.
- Общие операции, связанные с процессором, и операции, связанные с вводом-выводом.
- Узкие столы...
- Лучшее понимание файлов cookie...
- WSDL, REST, SOAP...
- ORM, Спящий режим...
- Миллиард других модных словечек...
Я ищу книгу или небольшой набор книг, которые будут охватывать широкий набор тем, связанных с созданием масштабируемых веб-приложений, включая темы, не относящиеся к веб-приложениям. Хотя я могу легко найти конкретную информацию по каждой из вышеперечисленных тем, я ищу книги, которые (а) поднимут больше связанных тем/вопросов, с которыми я еще не сталкивался, и (б) свяжут темы вместе как насколько это возможно.
Кажется, некоторые ключевые категории для меня:
- Производительность и настройка БД
- Масштабируемость сетевых серверов/файловых систем/связи
- Общие вопросы производительности и параллелизма
- Общие веб-темы (например, файлы cookie)
(хотя это не полный список, и вы можете подумать о более важных категориях для кого-то в моей ситуации).
Я также хотел бы больше сосредоточиться на основах, чем на мельчайших подробностях новейших и лучших технологий. Я думаю, что важно, чтобы я изучил свои инженерные основы, прежде чем глубоко погрузиться в какую-то случайную новую технологию.
Итак, вернемся к вопросу: есть ли книги, которые вы бы порекомендовали кому-то в моей ситуации? Любые другие методы для быстрого создания широты знаний?
Спасибо!