Я создаю веб-приложение и у меня есть пара быстрых вопросов.Из того, что я узнал, не следует беспокоиться о масштабируемости при первоначальной сборке приложения, а начинать беспокоиться только при увеличении трафика.Тем не менее, это мое первое веб-приложение, и я не совсем уверен, стоит ли мне использовать подход, в котором я разрабатываю вещи специальным образом, а затем "исправляю" их.Я читал истории о том, как люди начинают с приложения, которое получает миллионы пользователей в неделю или две.Не то чтобы я столкнулся с такой же ситуацией, но я не могу не задаться вопросом, как эти люди делают это?
В настоящее время я купил учетную запись общего хостинга на Lunarpages, и это заставило меня начать создавать и тестироватьприложение.Однако мне интересно узнать, как создать такое же приложение в масштабируемой форме с использованием облака, например, Amazon EC2.Насколько я понимаю, я вижу пару компонентов:
- Существует балансировщик нагрузки, который сначала получает запросы, а затем решает, куда направить каждый запрос
- Этот запрос затем обрабатываетсясерверная реплика, которая затем обрабатывает запрос и обновляет (если требуется) базу данных и отправляет ответ клиенту
- Если поступает аналогичный запрос, то механизм кэширования, такой как memcached, запускается и возвращает объекты изкеш
- черный ящик, который обрабатывает репликацию базы данных
В частности, я пытаюсь сделать следующее:
- Настройка балансировщика нагрузки (моя домашняя работаобнаружил, что HAProxy является одним из таких балансировщиков нагрузки)
- Настройка репликации для синхронизации баз данных
- Использование memcached
- Настройка Apache для работы с несколькими веб-серверами
- Приложение с разделами для использования Amazon EC2 и Amazon S3 (мое приложение должно бытьна хранение)
- Наконец, как мне избежать ожогов при использовании сервисов Amazon?Поскольку это всего лишь этап обучения, я, вероятно, могу работать с 2-3 серверами с простым балансировщиком нагрузки и репликацией, но пока не захочу избежать случайной выплаты денег.
Я не могу найтиресурсы по отдельным темам, но я не могу найти то, что начинается с общей картины.Может кто-нибудь, пожалуйста, помогите мне начать?