Горизонтальное и вертикальное масштабирование веб приложения

Содержание

Слайд 2

Веб-приложение

клиент-серверное приложение, в котором клиентом выступает браузер, а сервером — веб-сервер. Логика

Веб-приложение клиент-серверное приложение, в котором клиентом выступает браузер, а сервером — веб-сервер.
веб-приложения распределена между сервером и клиентом, хранение данных осуществляется, преимущественно, на сервере, обмен информацией происходит по сети. Одним из преимуществ такого подхода является тот факт, что клиенты не зависят от конкретной операционной системы пользователя, поэтому веб-приложения являются кроссплатформенными сервисами. Веб-приложения стали широко популярными в конце 1990-х — начале 2000-х годов.

Слайд 4

Масштабируемость (англ. scalability) — в электронике и информатике означает способность системы, сети

Масштабируемость (англ. scalability) — в электронике и информатике означает способность системы, сети
или процесса справляться с увеличением рабочей нагрузки (увеличивать свою производительность) при добавлении ресурсов (обычно аппаратных). Масштабируемость — важный аспект электронных систем, программных комплексов, систем баз данных, маршрутизаторов, сетей и т. п., если для них требуется возможность работать под большой нагрузкой. Система называется масштабируемой, если она способна увеличивать производительность пропорционально дополнительным ресурсам. Масштабируемость можно оценить через отношение прироста производительности системы к приросту используемых ресурсов. Чем ближе это отношение к единице, тем лучше. Также под масштабируемостью понимается возможность наращивания дополнительных ресурсов без структурных изменений центрального узла системы.

Слайд 5

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

Специфика масштабирования веб-приложений Как и многие другие методы оптимизации программ, вертикальное масштабирование
на специфику предметной области приложения. В случае веб-приложения можно выделить некоторые существенные для мас-
штабирования особенности:
 приложение ориентировано на выполнение большого числа одно-
временных запросов (как правило, больше количества вычисли-
тельных ядер/процессоров в системе);
 запросы могут исполняться за существенно различное время. В то
же время задержка исполнения других запросов из-за одного,
время исполнения которого велико, недопустима;
 выполнение запроса может быть приостановлено в связи с ограни-
ченной пропускной способностью сети и/или задержками при чте-
нии/записи данных. Эти ситуации должны обрабатываться во из-
бежание простоя системы;
 возникает необходимость в долгоживущих процессах, например,
для поддержания постоянного соединения или передачи значи-
тельного объема данных. Обилие подобных процессов при непра-
вильной архитектуре способно парализовать работу системы;
 аварийные ситуации при исполнении запроса не должны преры-
вать исполнение других запросов.

Слайд 6

Различают два способа масштабирования: вертикальное и горизонтальное:

Различают два способа масштабирования: вертикальное и горизонтальное:

Слайд 7

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

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

Слайд 8

Горизонтальное масштабирование
Этот способ заключается в увеличении числа запущенных экземпляров приложения и

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

Слайд 9

Вертикальное масштабирование подразумевает увеличение производительности приложения при добавлении ресурсов (процессора, памяти, диска)

Вертикальное масштабирование подразумевает увеличение производительности приложения при добавлении ресурсов (процессора, памяти, диска)
в рамках одного узла (хоста). Горизонтальное масштабирование характерно для распределённых приложений и подразумевает рост производительности приложения при добавлении ещё одного узла (хоста).
Понятно, что самым простым способом будет простое обновление железа (процессора, памяти, диска) – то есть вертикальное масштабирование. Кроме того, этот подход не требует никаких доработок приложения. Однако, вертикальное масштабирование очень быстро достигает своего предела, после чего разработчику и администратору ничего не остаётся кроме как перейти к горизонтальному масштабированию приложения.

Слайд 11

Средства языка программирования Go для разработки масштабируемых веб-приложений

Хорошим примером языковых технологий,

Средства языка программирования Go для разработки масштабируемых веб-приложений Хорошим примером языковых технологий,
ориентированных на создание масштабируемых приложений является язык Go, разработанный в 2009г. Ключевой особенностью данного языка является реализация идей языка CSP, предложенного Т. Хоаром в 1978 г., в частности идеи процессов, общающихся между собой при помощи каналов.

.