Концепции распределенных систем¶
Распределенная система - система, в которой обработка информации сосредоточена не на одной вычислительной машине, а распределена между несколькими компьютерами.
6 основных характеристик распределенных систем: Совместное использование ресурсов (как аппаратных, так и программных), Открытость (расширения системы путем добавления новых ресурсов), Параллельность, Масштабируемость (возможность добавления новых свойств и методов), Отказоустойчивость (полный сбой в работе системы происходит только при сетевых ошибках), Прозрачность (предоставляется полный доступ к ресурсам в системе, при этом скрыта информация о распределении ресурсов по системе).
Распределенная система - набор соединенных каналами связи независимых компьютеров, которые с точки зрения пользователя некоторого программного обеспечения выглядят единым целым.
SLA¶
- Доступность (Availability)
Процент времени, который сервис является работоспособным.
- Точность (Accuracy)
Процент приемлимой потери данных или их неточности.
- Пропускная способность/мощность (Capacity)
N Запросов в секунду - нагрузка, которую должна выдержать система.
- Задержка (Latency)
Время, за которое система должна отвечать (95% и 99% запросов).
Ссылки:
Горизонтальное и вертикальное масштабирование¶
Горизонтальное масштабирование заключается в добавлении большего количества машин (или узлов) в систему для увеличения пропускной способности (capacity). Горизонтальное масштабирование — это самый популярный способ масштабирования распределённых систем.
Вертикальное масштабирование - (виртуальная) машина с большим числом ядер, лучшей вычислительной мощностью, большей памятью и т.д. В случае с рапределёнными системами, вертикальное масштабирование обычно менее популярно, поскольку оно может быть более дорогостоящим, чем масштабирование горизонтальное.
Архитектуры распределенных систем¶
Выделяется три типа архитектур распределенных систем:
Архитектура клиент/сервер
В этой модели систему можно представить как набор сервисов, предоставляемых серверами клиентам. В таких системах серверы и клиенты значительно отличаются друг от друга.
Трехзвенная архитектура
В этой модели сервер предоставляет клиентам сервисы не напрямую, а посредством сервера бизнес-логики.
Архитектура распределенных объектов
В этом случае между серверами и клиентами нет различий и систему можно представить как набор взаимодействующих объектов, местоположение которых не имеет особого значения. Между поставщиком сервисов и их пользователями не существует различий.