Тема: Масштабирование веб-приложений
Закажите новую по вашим требованиям
Представленный материал является образцом учебного исследования, примером структуры и содержания учебного исследования по заявленной теме. Размещён исключительно в информационных и ознакомительных целях.
Workspay.ru оказывает информационные услуги по сбору, обработке и структурированию материалов в соответствии с требованиями заказчика.
Размещение материала не означает публикацию произведения впервые и не предполагает передачу исключительных авторских прав третьим лицам.
Материал не предназначен для дословной сдачи в образовательные организации и требует самостоятельной переработки с соблюдением законодательства Российской Федерации об авторском праве и принципов академической добросовестности.
Авторские права на исходные материалы принадлежат их законным правообладателям. В случае возникновения вопросов, связанных с размещённым материалом, просим направить обращение через форму обратной связи.
📋 Содержание
1. Подходы к созданию масштабируемых веб-приложений 6
1. Специфика масштабирования веб-приложений 6
2. Типовые архитектуры веб-приложений и их масштабируемость 7
3. Средства языка программирования Go для разработки
масштабируемых веб-приложений 9
2. Описание приложения «KtoZa» 11
3. Архитектура приложения «KtoZa» 13
4. Реализация программного комплекса 16
1. Реализация клиентской части 16
2. Реализация серверной части 23
5. Тестирование приложения 28
Заключение 32
Список литературы 33
📖 Введение
Аналогичным образом, различаются и подходы к реализации систем. Методы, применяемые при создании небольших приложений, ориентированных на небольшое число пользователей, например, интернет-магазина, могут быть неприменимы к созданию глобальных вычислительных систем. В то же время, технологии промышленной разработки и, в особенности, методы оптимизации, применяемые в разработке крупнейших веб-приложений, порождают избыточную сложность при создании малых приложений, и даже могут ухудшить их работу.
В связи с вышеперечисленными проблемами встаёт вопрос масштабирования веб-приложения, то есть изменения его производительности в зависимости от нагрузки. Различают вертикальное и горизонтальное направления масштабирования.
Вертикальное масштабирование. Данное направление предусматривает увеличение вычислительной мощности среды запуска приложения. В связи с высокой стоимостью высокопроизводительных серверов, техническими и временными ограничениями данный способ имеет ограниченную применимость. Тем не менее он может особенно успешно применяться в облачных средах, где вычислительную мощь среды можно изменить с минимальными временными и финансовыми затратами.
Горизонтальное масштабирование. Этот способ заключается в увеличении числа запущенных экземпляров приложения и распределении нагрузки между ними. Вместе с тем, архитектура приложения значительно усложняется, требуются дополнительные затраты на поддержание работы системы, а также необходимо внедрение дополнительных компонентов приложения, таких как служба балансировки нагрузки. Тем не менее, данный способ является основным методом повышения отказоустойчивости.
Таким образом, для создания масштабируемых приложений требуются особые архитектурные и технологические решения, способные обеспечить горизонтальную и вертикальную масштабируемость.
✅ Заключение
Для данного приложения разработана архитектура, наиболее точно со¬ответствующая специфике работы приложения. Реализована клиентская часть приложения на основе AngularJS, с учетом принципов построения одностраничных приложений. Создана серверная часть, разделяющая функциональность между M- и R- сервером, с учетом различий в нагрузке между этими серверами. Разработка серверной части осуществлена с помощью средств языка Go, ориентированного на построение веб-сервисов и многопоточную обработку данных. Взаимодействие частей приложения осуществляется по протоколам HTTP 1.1 и WebSocket. Возможна компиляция и запуск приложения как на серверах с операционной системой Windows, так и на Linux- серверах. Для серверной части реализован WebAPI, что позволяет использовать сторонние клиенты приложения. Объем реализации составил около 3000 строк кода, из них около 2000 — серверная часть приложения. Исходный код программы доступен по адресу: https://github.com/VeselovAlex/KtoZa .
Проведено тестирование отказоустойчивости и производительности приложения в различных конфигурациях запуска и при различной нагрузке. Результаты тестирования соответствуют ожидаемым и демонстрируют выполнение требований по производительности и отказоустойчивости.



