Дипломная работа: Разработка сайта для ведения блога с элементами социальных сетей

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

Нагрузочное тестирование (англ. load testing) -- подвид тестирования производительности, сбор показателей и определение производительности и времени отклика программно-технической системы или устройства в ответ на внешний запрос с целью установления соответствия требованиям, предъявляемым к данной системе (устройству).

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

Нагрузочное тестирование проводится с помощью сервиса loaddy.com. Сценарий тестирования включает в себя такие параметры как:

· Тип нагрузки: равномерная или нарастающая;

· Время проверки: от 1 до 15 минут;

· Количество посетителей.

Во время тестирования проверяется доступность сайта, время ответа от сервера, время загрузки страницы. Результаты тестирования при максимальной нагрузке за 1.5 минут показаны на рисунке 4.2.

Рисунок 4.2 - Результаты нагрузочного тестирования

При максимальной нагрузке сервер быстро и корректно обрабатывает запросы. Нагрузочное тестирование пройдено успешно.

Приложение прошло все этапы тестирования. Тестирование приложения считаем успешным.

5. Опытная эксплуатация

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

5.1 Настройка сервера

Для работы приложения требуется сервер, на котором будет установлен контейнер сервлетов Tomcat 9.

Apache Tomcat (также называемый Tomcat Server) реализует несколько спецификаций Java EE, включая Java Servlet, JavaServer Pages (JSP), Java EL и WebSocket, и предоставляет среду веб-сервера HTTP "на чистой Java", в которой может выполняться код Java.

Tomcat разрабатывается и поддерживается открытым сообществом разработчиков под эгидой Apache Software Foundation, выпускается под лицензией Apache License 2.0 и является программным обеспечением с открытым исходным кодом.

Было принято решение арендовать виртуальный приватный сервер. Виртуальный частный сервер (VPS) -- это виртуальная машина, продаваемая как услуга интернет-хостингом. Виртуальный выделенный сервер (VDS) также имеет аналогичное значение.

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

Сервер был арендован у компании Heroku. Основные характеристики:

· Процессор: Intel Xeon 1vCPU

· Оперативная память: 512Мб

· SSD диск: 10 Гб

· Лимит интернет-траффика: 1 Тб в месяц

5.2 Настройка инструментов для автоматического развертывания приложения

Для хранения исходного кода, а также непрерывного процесса развертывания приложения использована платформа GitHub.

GitHub, дочерняя компания Microsoft, является американской веб-службой хостинга для контроля версий с помощью Git. В основном используется для компьютерного кода. Он предлагает все функции распределенного контроля версий и управления исходным кодом (SCM) в Git, а также добавляет свои собственные функции.

В репозитории было создано две ветки: master и wip (от английского work in progress). Такое количество веток оптимально, для разработки приложения одним человеком. На ветке wip идет основная разработка приложения. На ветку master сливаются стабильные этапы развития проекта.

Для того чтобы активировать процесс непрерывного развертывания необходимо настроить и активировать систему CI/CD. В разработке программного обеспечения CI / CD или CICD могут относиться к объединенным методам непрерывной интеграции и непрерывной доставки и / или непрерывного развертывания.

В программной инженерии непрерывная интеграция (CI) -- это практика объединения рабочих копий всех разработчиков в общую магистраль несколько раз в день. Грэди Буч впервые предложил термин CI в своем методе 1991 года, хотя он не выступал за интеграцию несколько раз в день. Экстремальное программирование (XP) приняло концепцию CI и выступало за интеграцию более одного раза в день - возможно, десятки раз в день.

Непрерывная доставка (CD или CDE) -- это подход к разработке программного обеспечения, при котором команды производят программное обеспечение в короткие циклы, гарантируя, что программное обеспечение может быть выпущено надежно в любое время, а при выпуске программного обеспечения - вручную. Он направлен на создание, тестирование и выпуск программного обеспечения с большей скоростью и частотой. Этот подход помогает снизить стоимость, время и риск внесения изменений, допуская более постепенные обновления приложений в рабочей среде. Простой и повторяющийся процесс развертывания важен для непрерывной доставки.

СD отличается от непрерывного развертывания, аналогичного подхода, при котором программное обеспечение также производится в короткие циклы, но посредством автоматического развертывания, а не ручного развертывания.

Непрерывное развертывание (CD) -- это подход к разработке программного обеспечения, при котором функциональные возможности программного обеспечения часто предоставляются посредством автоматического развертывания. CD отличается от непрерывной доставки, аналогичного подхода, при котором функциональные возможности программного обеспечения также часто предоставляются и считаются потенциально способными к развертыванию, но фактически не развертываются.

После того как была произведена настройка CI/CD, при каждом новом коммите будет запускаться автоматическая сборка и тестирование приложения. Если изменения будут добавлены на ветку master, то произойдет сборка, тестирование и загрузка приложения на сервер. Благодаря процессам непрерывного развертывания, внесение изменений в проект проходит автоматическую проверку и загрузку на сервер.

Заключение

Целью дипломного проекта стала разработка сайта для Интернет-блоггинга. Для достижения цели был проведен аналитический обзор, в ходе которого были поставлены задачи, которые будет решать данный продукт, проведен анализ существующих решений, определены категории пользователей и бизнес-правила. В ходе проектирования была создана use-case диаграмма, выбраны средства разработки, спроектирована схема базы данных, а также произведено проектирование пользовательского интерфейса. Разработка программного продукта проходила в два этапа. Первым этапом была разработка серверной части, в которой содержится бизнес-логика и работа с базой данных. Вторым этапом была разработана клиентская часть, которая обрабатывает взаимодействие с пользователем. Тестирование программного продукта состояло из четырех частей: модульного тестирования серверной части, тестирования верстки клиентской части, системного тестирования, нагрузочного тестирования.

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

Список литературы

1. Н. А. Гайдамакин Автоматизированные информационные системы, базы и банки данных. Вводный курс: Учебное пособие. - М.: Гелиос АРВ, 2002. - 368 с., ил.

2. С.Ю. Ржеуцкая Базы данных. Теоретические и языковые основы: Учеб. пособие. - Вологда: ВоГУ, 2016. - 112 с.

3. Главное - Живой Журнал. [Электронный ресурс]. - Режим доступа: https://www.livejournal.com/.. - Заглавие с экрана.

4. Топ-10 лучших бесплатных платформ для создания блога. [Электронный ресурс]. - Режим доступа: http://www.optimization.com.ua/articles/top-free-online-blogging.html - Заглавие с экрана.

5. Spring Framework [Электронный ресурс]. - Режим доступа: https://spring.io/.. - Заглавие с экрана.

6. Hibernate (библиотека) [Электронный ресурс]. - Режим доступа: https://dic.academic.ru/dic.nsf/ruwiki/192528/.. - Заглавие с экрана.

7. Jetty - Servlet Engine [Электронный ресурс]. - Режим доступа: https://www.eclipse.org/jetty/.. - Заглавие с экрана.

8. GitHub: [Электронный ресурс]. URL: https://github.com/.

Источник: https://otherreferats.allbest.ru/download/1181514/