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

Вы можете просто попросить его .index() положение (относительно его братьев и сестер).

$(this).index();   // returns a zero based index position
61
задан Jim Ferrans 3 January 2012 в 03:17
поделиться

9 ответов

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

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

50
ответ дан 24 November 2019 в 17:24
поделиться

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

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

Возможно, это не то, что вы ищете, но это один из лучших обзоров масштабирования «Это то, что мы сделали и почему».

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

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

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

4
ответ дан 24 November 2019 в 17:24
поделиться

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

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

  • Используйте код как можно чаще

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

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

3
ответ дан 24 November 2019 в 17:24
поделиться

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

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

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

1
ответ дан 24 November 2019 в 17:24
поделиться

Для этого я бы предложил эту книгу:

http://www.amazon.com/Scalable-Internet-Architectures-Developers-Library/dp/067232699X/ref=sr_1_1?ie = UTF8 & s = books & qid = 1243267630 & sr = 8-1

Хотя это в основном книга по PHP, идеи одинаковы для любого веб-стека.

0
ответ дан 24 November 2019 в 17:24
поделиться

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

0
ответ дан 24 November 2019 в 17:24
поделиться

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

0
ответ дан 24 November 2019 в 17:24
поделиться

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

1
ответ дан 24 November 2019 в 17:24
поделиться
Другие вопросы по тегам:

Похожие вопросы: