Шаблоны разработки (или методы) для Масштабируемости

Очень похожий вопрос, с полезными ответами, задали ранее: , Как я определяю более темный или более легкий цветной вариант данного цвета?

Короткий ответ: умножьте значения RGB на константу, если Вы просто нуждаетесь "достаточно хороший", переводите в HSV при требовании точности.

25
задан Chris Ballance 17 September 2009 в 16:04
поделиться

4 ответа

Несколько шаблонов, которые приходят на ум:

  • Приложение без сохранения состояния
  • Слабая связь
  • Асинхронность
  • Ленивая загрузка
  • Кэширование
  • Параллелизм
  • Разделение
  • Маршрутизация

Некоторые ресурсы:

45
ответ дан 28 November 2019 в 18:19
поделиться

Сделайте приложение максимально не зависимым от состояния. Будет легче адаптироваться к ферме серверов.

10
ответ дан 28 November 2019 в 18:19
поделиться

Книги POSA (шаблонно-ориентированная архитектура программного обеспечения) являются отличным источником таких шаблонов.

POSA 4 , в частности, касается распределенных вычислений, но все разделы посвящены полный шаблонов масштабируемости.

2
ответ дан 28 November 2019 в 18:19
поделиться

Ничего не бесплатно - все сводится к приемлемым компромиссам для достижения целей вашего бизнеса. Основными переменными являются:

  • Стоимость
  • Доступность
  • Согласованность
  • Живучесть (например, допуск разделения)

Отличная статья для чтения по этой теме.

Я считаю хорошей метрикой было бы изучить "стоимость / пользователь" кривой и попробуйте поддерживать ее в линейном режиме (при условии, что приемлемая стоимость на пользователя является известным параметром: -)

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

В конце концов, я считаю, что нужно спросить себя: для типа отказа X сколько » пользователи "могут быть затронуты и как долго?

Где-то всегда будет SPOF (Single Point Of Failure), но можно спроектировать систему так, чтобы этот SPOF был перемещен ближе к конечным точкам (например, к пользователям). Однако во многих случаях SPOF находится вне контроля приложения, например сетевой POP недоступен.

В любом случае, я мог бы потратить часы на эту тему ...

-)

Шаблоны проектирования действительно играют роль, но главное - это общая архитектура. Можно было бы быть очень тщательным на уровне модуля, но, как следствие, упущены ограничения на уровне сети и масштабируемость.

В конце концов, я считаю, что нужно спросить себя: для типа отказа X сколько » пользователи "могут быть затронуты и как долго?

Где-то всегда будет SPOF (Single Point Of Failure), но можно спроектировать систему так, чтобы этот SPOF перемещался ближе к конечным точкам (например, пользователям). Однако во многих случаях SPOF находится вне контроля приложения, например сетевой POP недоступен.

В любом случае, я мог бы потратить часы на эту тему ...

-)

Шаблоны проектирования играют роль, но главное - это общая архитектура. Можно было бы быть очень тщательным на уровне модуля, но упущенные ограничения на уровне сети и масштабируемость страдают, как следствие.

В конце концов, я считаю, что нужно спросить себя: для типа отказа X сколько » пользователи "могут быть затронуты и как долго?

Где-то всегда будет SPOF (Single Point Of Failure), но можно спроектировать систему так, чтобы этот SPOF был перемещен ближе к конечным точкам (например, пользователям). Однако во многих случаях SPOF находится вне контроля приложения, например сетевой POP недоступен.

В любом случае, я мог бы потратить часы на эту тему ...

В конце концов, я считаю, что нужно спросить себя: для типа отказа X сколько «пользователей» может быть затронуто и как долго?

Всегда будет SPOF (Single Point) Of Failure) где-то, но можно спроектировать систему так, чтобы этот SPOF был перемещен ближе к конечным точкам (например, пользователям). Однако во многих случаях SPOF находится вне контроля приложения, например сетевой POP недоступен.

В любом случае, я мог бы потратить часы на эту тему ...

В конце концов, я считаю, что нужно спросить себя: для типа сбоя X сколько «пользователей» могут быть затронуты и как долго?

Всегда будет SPOF (Single Point) Of Failure) где-то, но можно спроектировать систему так, чтобы этот SPOF был перемещен ближе к конечным точкам (например, пользователям). Однако во многих случаях SPOF находится вне контроля приложения, например сетевой POP недоступен.

В любом случае, я мог бы потратить часы на эту тему ...

6
ответ дан 28 November 2019 в 18:19
поделиться
Другие вопросы по тегам:

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