Тип работы:
Предмет:
Язык работы:


МЕТОДОЛОГИЯ ИСПОЛЬЗОВАНИЯ ЕДИНОЙ КОДОВОЙ БАЗЫ ДЛЯ ОБЕСПЕЧЕНИЯ РАБОТЫ МНОЖЕСТВА ВЕБ-ПРИЛОЖЕНИЙ С ПРИМЕНЕНИЕМ МИКРОСЕРВИСНОЙ АРХИТЕКТУРЫ

Работа №49207

Тип работы

Дипломные работы, ВКР

Предмет

информатика

Объем работы72
Год сдачи2018
Стоимость4275 руб.
ПУБЛИКУЕТСЯ ВПЕРВЫЕ
Просмотрено
81
Не подходит работа?

Узнай цену на написание


Введение 3
1. Анализ имеющихся решений 5
1.1. Multitenancy 5
1.2. Multi-Instance 8
2. Разработка методологии 10
2.1. Требования к разрабатываемой методологии 10
2.2. Центральная идея методологии 11
2.3. Модульность 11
2.4. Реализация модульности — микросервисная архитектура 12
2.5. Структура веб-приложений 21
2.6. Хранение кода 26
2.7. Сборка и развёртывание 26
2.8. Обобщение 29
3. Апробация методологии 31
3.1. Постановка задачи 31
3.2. Выбор технологий 36
3.3. Проектирование 46
3.4. Разработка 50
3.5. Развёртывание 51
3.6. Итоги 53
Заключение 54
Глоссарий 56
Список источников 60
Приложение 1 63
Приложение 2


При разработке веб-приложений существует ряд ситуаций, когда необходимо ввести в эксплуатацию несколько веб-приложений с идентичной базовой функциональностью, но в то же время сохранить индивидуальность каждого веб-приложения из этого множества. Такая индивидуальность может выражаться в пользовательском интерфейсе, его дизайне или в дополнительных функциях свойственных только этому отдельно взятому веб-приложению.
Проблема, рассматриваемая в данной работе, состоит в том, что на сегодняшний день отсутствует какая-либо выработанная методология использования единой кодовой базы для обеспечения работы множества веб-приложений, которая бы предоставляла возможность централизованного обновления всех приложений и возможность потенциального отделения любого из таких веб-приложений в самостоятельное и независимое от множества приложение.
Актуальность работы обосновывается следующим образом. Поддержка веб-приложений, как и разработка, сопряжена с затратами. Прежде всего это затраты, связанные со временем. В ситуациях, когда одной командой производится разработка или поддержка нескольких однотипных веб-приложений, возникает возможность сократить издержки, исключив необходимость внесения одинаковых изменений в исходный код каждого из веб-приложений.
Целью данной работы является разработка методологии использования единой кодовой базы для обеспечения работы множества веб-приложений и применение этой методологии при разработке реальных приложений.
В рамках данной работы будет произведён реинжиниринг двух однотипных веб-приложений с целью максимального обобщения их кодовых баз.
Таковыми веб-приложениями являются Агримарт и МирСтроек.Ру.
Для достижения цели необходимо выполнить следующие задачи:
1. произвести анализ имеющихся решений проблемы;
2. выявить их недостатки;
3. описать решение, способное устранить эти недостатки;
4. применить данное решение на примере разработки двух однотипных веб-приложений.

Возникли сложности?

Нужна помощь преподавателя?

Помощь в написании работ!


В результате выполнения данной работы была разработана и апробирована методология позволяющая использовать единую кодовую базу для обеспечения работы нескольких веб-приложений. В рамках апробации методологии был успешно произведён реинженеринг двух независимых функционирующих веб-приложений с целью обобщениях их кодовых баз. Разработка и применение методологии позволили упростить процесса параллельной разработки и поддержки двух схожих по функциональности приложений. Цель работы достигнута.
В процессе выполнения данной работы были решены следующие задачи:
• разработана методология, объединяющая в себе идеи микросервисной архитектуры и идеи подхода Multi-Instance;
• на основе разработанной методологии спроектированы 2 веб-приложения;
• произведен полный реинженеринг двух веб-приложений с применением методологии.
Также выработан план дальнейших действий:
• доработать портал Агримарт и произвести его развёртывание в production-среду;
• выполнить перенос имеющихся пользовательских данных со старой версии портала Агримарт;
• произвести сбор метрик, позволяющих определить пригодность подхода Single-Page Application для его применения при разработки пользовательского интерфейса для МирСтроек.Ру;
• разработать пользовательский интерфейс для МирСтроек.Ру;
• произвести развёртывание портала МирСтроек.Ру в production-среду;
• выполнить перенос имеющихся пользовательских данных со старой версии портала МирСтроек.Ру.



1. Amit Ashwini. What Are The Pros And Cons Of Multi-tenancy [Электронный ресурс] // URL: https://medium.com/swlh/what-are-the- pros-and-cons-of-multi-tenancy-in-rails-application-547d0f9c205f(дата обращения: 12.05.2018)
2. Martin Fowler. Patterns of Enterprise Application Architecture / Martin Fowler, David Rice, Matthew Foemmel, Edward Hieatt, Robert Mee, Randy Stafford.—Addison-Wesley, 2002.—560 p.
3. Eric Evans. Domain-Driven Design: Tackling Complexity in the Heart of Software / Eric Evans.—Addison-Wesley, 2003.—560 p.
4. Stevens, Myers, Constantine. Structured design. IBM Systems Journal, 1974, 13(2), 115-139. doi:10.1147/sj.132.0115
5. Sam Newman. Building Microservices: Designing Fine-Grained Systems / Sam Newman.—O'Reilly, 2015.—282 p.
6. Vaughn Vernon. Implementing Domain-Driven Design / Vaughn Vernon.— Addison-Wesley, 2013.—612 p.
7. Karl Matthias, Sean P. Kane. Docker: Up and Running / Karl Matthias, Sean P. Kane.—O'Reilly, 2015.—230 p.
8. Balint Sera. On the separation of front-end and backend [Электронный ресурс] // medium.com. URL: https://medium.com/@balint_sera/on-the- separation-of-front-end-and-backend-7a0809b42820(дата обращения: 09.02.2018)
9. Simone Johnson. Six Reasons We Split Front-end and Back-end Code Into Two Git Repositories [Электронный ресурс] // quickleft.com/blog. URL: https://quickleft.com/blog/six-reasons-we-split-front-end-and-back-end- code-into-two-git-repositories-working-with-github-repositories/(дата
обращения: 10.02.2018)
10. Maarten Hus. The case for separating front- and back-end [Электронный ресурс] // dontpanic.42.nl - блог. URL: http://dontpanic.42.nl/2014/10/the- case-for-separating-front-and-back.html(дата обращения: 10.02.2018)
11.Somak Das. Code repository for micro-services: mono repository or multiple repositories [Электронный ресурс] // medium.com. URL: https://medium.com/@somakdas/code-repository-for-micro-services-mono- repository-or-multiple-repositories-d9ad6a8f6e0e(дата обращения: 15.05.2018)
12. Node.js v10.4.0 Documentation — HTTP [Электронный ресурс] // nodejs.org. URL: https://nodejs.org/dist/latest- v10.x/docs/api/http.html#http_http_createserver_options_requestlistener(дата обращения: 16.05.2018)
13. Module Count [Электронный ресурс] // modulecounts.com. URL: http://www.modulecounts.com/(дата обращения: 20.05.2018)
14. Liang Zan. Three Tips for Managing Complexity in Node.js Projects [Электронный ресурс] // Liang Zan — Blog. URL: http://blog.liangzan.net/blog/2013/08/12/three-tips-for-managing- complexity-in-node-dot-js-projects/(дата обращения: 21.05.2018)
15. PostgreSQL vs MySQL [Электронный ресурс] // 2ndQuadrant. URL: https://www.2ndquadrant.com/en/postgresql/postgresql-vs-mysql/(дата обращения: 22.05.2018)
16. Mark Richards. Microservices AntiPatterns and Pitfalls / Mark Richards.— O'Reilly, 2016.—55 p.
17.Server Rendering [Электронный ресурс] // redux.js.org. URL: https://redux.js.org/recipes/server-rendering(дата обращения: 22.05.2018)
18.Server Side Rendering with React and Redux [Электронный ресурс] // Udemy. URL: https://www.udemy.com/server-side-rendering-with-react- and-redux/(дата обращения: 22.05.2018)
19. ReactDOMServer [Электронный ресурс] // reactjs.org. URL: https://reactjs.org/docs/react-dom-server.html(дата обращения: 22.05.2018)
20. Create a swarm [Электронный ресурс] // docs.docker.com. URL: https://docs.docker.com/engine/swarm/swarm-tutorial/create-swarm/(дата обращения: 25.05.2018)
21. Protect the Docker daemon socket [Электронный ресурс] // docs.docker.com. URL: https://docs.docker.com/engine/security/https/(дата обращения: 25.05.2018)
22. Trmfik — Swarm cluster [Электронный ресурс] // docs.docker.com. URL: https://docs.traefik.io/user-guide/swarm/(дата обращения: 27.05.2018)


Работу высылаем на протяжении 30 минут после оплаты.




©2025 Cервис помощи студентам в выполнении работ