Подтвердить что ты не робот

Как разработать масштабируемые приложения?

Как вы разрабатываете/архивируете масштабируемое приложение? Любое предложение книг или веб-сайтов, которые могли бы помочь понять, как масштабировать приложения?

Спасибо

4b9b3361

Ответ 1

За последний год мне пришлось придумать этот вопрос для проекта, над которым работает моя компания, и я нашел эти ресурсы чрезвычайно полезными: Todd Hoff highscalability.com; Масштабируемые интернет-архитектуры, Тео Шлосснагле; и Создание масштабируемых веб-сайтов, Cal Henderson. Highscalability.com, в частности, укажет вам на множество хороших презентаций, учебников, книг и документов, и это отличное место для начала. Все советы практичны и основаны на опыте на таких сайтах, как Flickr, Twitter и Google.

Кстати, масштабируемость не является производительностью. Совершенно масштабируемая система - это система с фиксированными предельными издержками для добавления дополнительных пользователей или пропускной способности.

Ответ 2

Это приятное чтение в livejournal и то, как они масштабировали свое приложение с течением времени.

danga.com/words/2004_mysqlcon/mysql-slides.pdf [PDF]

Возможно, это не та вещь, которую вы ищете, но это один из лучших "Это то, что мы сделали и почему" просматриваем при масштабировании.

Ответ 3

Здесь уже есть отличные ответы. В некоторых книгах и ссылках вы найдете несколько общих шаблонов мышления.

  • Напишите как можно меньше кода

  • Код повторного использования как можно больше

  • Не перечеркивайте или не абстрагируйте свой дизайн

  • Разделите вещи на модульные области, которые могут работать отдельно или несколько систем. Тяжелая обработка должна быть оставлена ​​в отдельной системе.

Ответ 4

  • Я склонен думать, что масштабируемость тесно связана с ремонтопригодностью. И, кажется, часто упускают из виду, что люди тратят только короткие приложения разработки, а в остальное время поддерживают.

  • Кроме того, масштабирование почти наверняка связано с данными (которые более гибкие, чем код), поэтому вам нравится все больше и больше, поэтому стоимость доступа к хранилищу должна оставаться между O(1) и O(n).

  • Совершенно масштабируемое приложение для меня - это тот, который я мог бы копировать из среды в другую (аналогичную) среду, настраивать несколько значений и запускать ее для расширения области выполнения всего приложения.

Ответ 5

Прежде чем приступать к технике, вы должны знать, что область применения холодная. Что ожидает клиент/бизнес-единица с точки зрения производительности и каковы критические области отказа? У Скотта Гензельмана был отличный подкаст относительно предмета.

Некоторые из предложенных лакомых кусочков: не используйте кеширование, если вам не нужно; обслуживающие файлы быстрее, чем сбор фрагментов из базы данных; знайте, как обрабатывать время сервера peek; знайте, какими будут ваши пики.

Опять же, сначала узнайте область использования, чтобы узнать, нужна ли вам .

Ответ 6

Независимо от того, что вы делаете, вы не можете проектировать систему с самого начала, чтобы быть масштабируемым для всех ваших потребностей. Часто, как только вы запускаете свою систему, вы найдете узкие места, где вы меньше всего их ожидаете (т.е. Пропускная способность локальной сети). Во всяком случае, мой совет определенно также highscalability.com:)

Ответ 8

Это именно то, что вам нужно! Руководство по архитектуре приложений было создано командой Microsoft Patterns and Practices, чтобы помочь архитекторам...

Ответ 9

Это хорошее введение к теме: В IBM developerWorks было несколько интересных руководств по использованию шаблонов архитектуры для приложений, которые масштабируются: здесь и здесь.