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