From 06100afdde1d8e9256c2426a6a10e80b17aef379 Mon Sep 17 00:00:00 2001 From: Struchkov Mark Date: Thu, 12 Sep 2024 21:23:35 +0300 Subject: [PATCH] =?UTF-8?q?=D0=92=D0=B5=D1=80=D1=82=D0=B8=D0=BA=D0=B0?= =?UTF-8?q?=D0=BB=D1=8C=D0=BD=D0=BE=D0=B5=20=D0=BC=D0=B0=D1=81=D1=88=D1=82?= =?UTF-8?q?=D0=B0=D0=B1=D0=B8=D1=80=D0=BE=D0=B2=D0=B0=D0=BD=D0=B8=D0=B5.md?= =?UTF-8?q?=20=D0=B8=20=D0=93=D0=BE=D1=80=D0=B8=D0=B7=D0=BE=D0=BD=D1=82?= =?UTF-8?q?=D0=B0=D0=BB=D1=8C=D0=BD=D0=BE=D0=B5=20=D0=BC=D0=B0=D1=81=D1=88?= =?UTF-8?q?=D1=82=D0=B0=D0=B1=D0=B8=D1=80=D0=BE=D0=B2=D0=B0=D0=BD=D0=B8?= =?UTF-8?q?=D0=B5.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- dev/architecture/Throughput.md | 2 +- .../highload/Вертикальное масштабирование.md | 43 +++++++++++++++++++ .../Горизонтальное масштабирование.md | 41 ++++++++++++++++++ meta/zero/00 HighLoad.md | 4 +- 4 files changed, 87 insertions(+), 3 deletions(-) create mode 100644 dev/architecture/highload/Вертикальное масштабирование.md create mode 100644 dev/architecture/highload/Горизонтальное масштабирование.md diff --git a/dev/architecture/Throughput.md b/dev/architecture/Throughput.md index f039f65c..04c5a6bf 100644 --- a/dev/architecture/Throughput.md +++ b/dev/architecture/Throughput.md @@ -30,7 +30,7 @@ Throughput - пропускная способность системы, то е Что влияет на значение Throughput: - Аппаратные ресурсы - **Сетевая инфраструктура**: В сетевых системах скорость и пропускная способность сети, задержки, [потеря пакетов](Потеря%20пакетов.md), а также эффективность протоколов передачи данных играют ключевую роль в определении общей пропускной способности системы. -- **Масштабирование**: Способность системы к [горизонтальному](Горизонтальное%20масштабирование.md) и [вертикальному масштабированию](Вертикальное%20масштабирование.md) также влияет на Throughput. Горизонтальное масштабирование путем добавления дополнительных узлов может увеличить пропускную способность, но также добавляет накладные расходы на синхронизацию и управление. +- **Масштабирование**: Способность системы к [горизонтальному](highload/Горизонтальное%20масштабирование.md) и [вертикальному масштабированию](highload/Вертикальное%20масштабирование.md) также влияет на Throughput. Горизонтальное масштабирование путем добавления дополнительных узлов может увеличить пропускную способность, но также добавляет накладные расходы на синхронизацию и управление. - **Конфигурация системы**: Настройки и конфигурация системы, включая размеры пула соединений, размеры буферов и кэшей, могут влиять на производительность и пропускную способность. *** ## Мета информация diff --git a/dev/architecture/highload/Вертикальное масштабирование.md b/dev/architecture/highload/Вертикальное масштабирование.md new file mode 100644 index 00000000..a86cbc19 --- /dev/null +++ b/dev/architecture/highload/Вертикальное масштабирование.md @@ -0,0 +1,43 @@ +--- +aliases: + - вертикальном масштабировании + - вертикальному масштабированию +tags: + - maturity/🌱 +date: + - - 2024-03-12 +zero-link: + - "[[../../../meta/zero/00 HighLoad|00 HighLoad]]" +parents: +linked: + - "[[Горизонтальное масштабирование]]" +--- +Вертикальное масштабирование представляет собой увеличение мощности существующей машины или сервера путем добавления более мощных процессоров, большего объема оперативной памяти, большей емкости хранения данных и так далее, без добавления дополнительных машин в систему. Это противоположность [горизонтального масштабирования](Горизонтальное%20масштабирование.md), при котором мощность системы увеличивается за счет добавления дополнительных узлов. + +**Плюсы:** +1. **Простота управления**: Управление одной машиной обычно проще, чем управление кластером машин, что упрощает администрирование и техническое обслуживание. +2. **Совместимость с приложениями**: Вертикальное масштабирование часто не требует изменений в архитектуре или конфигурации приложений, что делает его более простым в реализации для некоторых систем. +3. **Меньшая сложность**: Отсутствие необходимости в распределенной обработке данных упрощает архитектуру и может обеспечить более высокую производительность для определенных типов задач. +4. **Немедленное улучшение производительности**: Добавление ресурсов к существующему серверу может обеспечить немедленное улучшение производительности без необходимости перераспределения данных или изменения архитектуры системы. +- Самый простой способ масштабирования + +**Проблемы:** +1. **Ограничения аппаратного обеспечения**: Существует предел, до которого можно улучшить аппаратные характеристики одной машины, что ограничивает максимально достижимое масштабирование. +2. **Высокие затраты**: Мощное аппаратное обеспечение может быть значительно дороже, особенно когда речь идет о высокопроизводительных компонентах. Каждое следующее обновление железа обходится дороже предыдущего. +3. **Риск сбоев**: Увеличение зависимости от одного сервера повышает риск того, что сбой этого сервера приведет к полной недоступности системы. +4. **Простои при апгрейде**: Улучшение аппаратных характеристик сервера часто требует временного отключения и простоя, что может негативно сказаться на доступности сервиса. +*** +## Мета информация +**Область**:: [[../../../meta/zero/00 HighLoad|00 HighLoad]] +**Родитель**:: +**Источник**:: +**Автор**:: +**Создана**:: [[2024-03-12]] +### Дополнительные материалы +- [[Горизонтальное масштабирование]] +### Дочерние заметки +```dataview +LIST +FROM [[]] +WHERE contains(Родитель, this.file.link) or contains(parents, this.file.link) +``` \ No newline at end of file diff --git a/dev/architecture/highload/Горизонтальное масштабирование.md b/dev/architecture/highload/Горизонтальное масштабирование.md new file mode 100644 index 00000000..47e3a342 --- /dev/null +++ b/dev/architecture/highload/Горизонтальное масштабирование.md @@ -0,0 +1,41 @@ +--- +aliases: + - горизонтального масштабирования +tags: + - maturity/🌱 +date: + - - 2024-03-12 +zero-link: + - "[[../../../meta/zero/00 HighLoad|00 HighLoad]]" +parents: +linked: + - "[[Вертикальное масштабирование]]" +--- +Горизонтальное масштабирование это процесс увеличения мощности системы за счет добавления дополнительных узлов в распределенную сеть, а не за счет увеличения мощности уже существующих узлов (как это происходит при [вертикальном масштабировании](Вертикальное%20масштабирование.md)). + +**Плюсы:** +- **Масштабируемость**: Горизонтальное масштабирование позволяет системе легко масштабироваться в соответствии с увеличением нагрузки, добавляя больше машин в кластер. Теоретически бесконечно, но физически есть пределы. +- **Гибкость**: Можно добавлять дополнительные ресурсы по мере необходимости, что позволяет лучше адаптироваться к изменяющимся требованиям без простоев. +- **Надежность и доступность**: Распределение нагрузки и данных между множеством узлов может улучшить общую надежность и доступность системы, так как отказ одного узла не приведет к сбою всей системы. +- **Географическое распределение**: Узлы могут быть географически распределены, что помогает минимизировать задержки и улучшить производительность для пользователей в разных регионах. + +**Проблемы:** +1. **Сложность управления**: Управление множеством узлов и их координация может быть значительно сложнее, чем управление одним мощным сервером. Нужно делать балансировку вызовов. +2. **Сложность разработки**: Разработка приложений, способных эффективно использовать ресурсы в распределенной среде, может быть более сложной, а значит программисты обходятся дороже. +3. **Согласованность данных**: Обеспечение согласованности данных между множеством узлов может представлять собой вызов, особенно в системах, где требуется высокий уровень согласованности. +4. **Затраты на сеть**: Горизонтальное масштабирование может повлечь за собой увеличенные затраты на сетевое оборудование и управление сетью, особенно если узлы географически распределены. +*** +## Мета информация +**Область**:: [[../../../meta/zero/00 HighLoad|00 HighLoad]] +**Родитель**:: +**Источник**:: +**Автор**:: +**Создана**:: [[2024-03-12]] +### Дополнительные материалы +- [[Вертикальное масштабирование]] +### Дочерние заметки +```dataview +LIST +FROM [[]] +WHERE contains(Родитель, this.file.link) or contains(parents, this.file.link) +``` \ No newline at end of file diff --git a/meta/zero/00 HighLoad.md b/meta/zero/00 HighLoad.md index fc0b1f9d..882fef81 100644 --- a/meta/zero/00 HighLoad.md +++ b/meta/zero/00 HighLoad.md @@ -30,8 +30,8 @@ aliases: ## Архитектурные паттерны - [Сервис-ориентированная архитектура](Service%20Oreinted%20Architecture.md) -- [Вертикальное масштабирование](Вертикальное%20масштабирование.md) -- [Горизонтальное масштабирование](Горизонтальное%20масштабирование.md) +- [Вертикальное масштабирование](../../dev/architecture/highload/Вертикальное%20масштабирование.md) +- [Горизонтальное масштабирование](../../dev/architecture/highload/Горизонтальное%20масштабирование.md) - Отложенные вычисления - Асинхронная обработка - Конвейерная обработка