Магистерский диплом (ВКР) на тему Разработка методике использование единый кодовой базы для веб приложений микросервисной архитектуры
-
Оформление работы
-
Список литературы по ГОСТу
-
Соответствие методическим рекомендациям
-
И еще 16 требований ГОСТа,которые мы проверили
Скачать эту работу всего за 2490 рублей
Ссылку для скачивания пришлем
на указанный адрес электронной почты
на обработку персональных данных
Содержание:
Перечень условных сокращений 2
Введение 3
1 Место и роль микросервисной архитектуры в системе подходов к построению программного обеспечения 6
1.1 Существующие виды архитектур программного обеспечения 6
1.2 Определение и основные особенности микросервисной архитектуры 10
1.3 Постановка задачи работы 15
2 Типовые проектные решения при разработке микросервисных проектов 17
2.1 Анализ видов программного обеспечения, реализуемого на базе микросервисов 17
2.2 Исследование особенностей инструментальных средств, применяемых для разработки микросервисных программных систем 21
2.3 Типовые алгоритмические решения при разработке микросервисного приложения 27
3 Концепция реализации типового приложения, созданного по микросервисной архитектуре 33
3.1 Анализ вариантов и проектирование конкретного способа взаимодействия элементов типового приложения на микросервисах 33
3.2 Особенности разработки отдельных составляющих типового микросервисного приложения 37
3.3 Анализ эффективности разработанного типового решения 42
3.3.1 Результаты тестирования продукта 42
3.3.2 Обоснование экономической эффективности решения 52
Заключение 55
Список использованных источников 57
Приложение. Код разработанного программного обеспечения 61
Введение:
Из-за широкого распространения самых разнообразных компьютерных систем на сегодняшний день остро стоит вопрос наполнения их соответствующим программным обеспечением (ПО). Разработка ПО, начавшись с кроссплатформенной консольной программы типа «Hello, World!», сегодня заключается в использовании мощных, наполненных функциями и компонентами фреймворков и десятков различных технологий программирования и принципов разработки. Параллельно с изменениями в ведении процесса создания ПО менялись требования и к программному обеспечению. Возникали отдельные новые варианты организации ПО, некоторые из которых рано или поздно оказывались неудачными и отмирали, а некоторые наоборот – используются до сих пор достаточно широко.
Под архитектурой всегда подразумевают особенности строения программного обеспечения, хотя точного определения данного понятия не существует и в литературе обнаруживается более сотни разнообразных определений [1]. Очевидно, что при наличии нескольких альтернатив, никогда абсолютно все люди не будут выбирать исключительно одну из них, а всегда будут существовать поклонники каждой из них. Следовательно, выбрать какой-либо один конкретный тип архитектуры ПО невозможно, и даже описать точно все их варианты практически невозможно, ведь нет полной согласованности среди профессионалов ИТ-рынка о сути понятия «архитектура».
Тем не менее, очевидно, что приложения с одинаковой функциональностью, но по-разному устроенные, будут иметь разные значения других показателей (таких, как, например, время или скорость выполнения задачи, величины необходимых ресурсов ПК и т.д.). Таким образом, актуальна задача анализа современных архитектур программного обеспечения и, в частности, популярной на сегодняшний день микросервисной архитектуры, определения наиболее эффективных из них (конечно, с учетом условий разработки и реализации проекта) и особенностей применения в целом.
Целью работы является улучшение проектных характеристик (например, времени разработки и степени масштабируемости продукта, его кроссплатформенности) при разработке программного обеспечения. Этого можно добиться путем применения для разработки одной из прогрессивных современных архитектур, в частности микросервисной. На основе анализа особенностей данного типа архитектуры следует создать универсальные решения, которые можно было бы применять в проектах приложений разнообразной направленности.
Конкретные задачи, подлежащие решению в данной работе, в таком случае следующие:
— анализ предметной области использования различных архитектур программного обеспечения, в частности микросервисной, и постановка задачи на более детальное ее исследование;
– выбор одного или нескольких типов архитектуры для сравнительного анализа и выделения особенностей применения;
– разработка методики применения микросервисной архитектуры на примере программной реализации (с помощью языка общего назначения).
Объектом исследования является процесс разработки программного обеспечения на базе микросервисной архитектуры.
Предметом исследования являются методы реализации ПО на базе микросервисной архитектуры.
Новизна работы заключается в разработке комплекса типовых проектных решений по построению программного обеспечения с микросервисной архитектурой.
Практическое значение работы состоит в разработке типового программного продукта на базе микросервисной архитектуры (шаблона), наполняя который какой-либо конкретной функциональностью, можно более быстро получать готовое работающее решение по сравнению с процессом его разработки «с нуля».
Методы, используемые в работе: методы теории программирования, анализа и синтеза.
В перспективе работа может расширяться в направлении внедрения более конкретной функциональности в разработанный шаблон микросервисного программного продукта.
Заключение:
Таким образом, в данном исследовании рассмотрена микросервисная архитектура, которую целесообразно применять при разработке современных программ (особенно веб-приложений). Проанализированы плюсы и минусы микросервисной архитектуры по сравнению с монолитной и сервисной, выделены основные особенности и черты. Установлено, что такая организация приложений в первую очередь позволяет проводить очень эффективное повторное использование кода. Также достигаются высокие показатели гибкости, кроссплатформенности, скорости разработки и т.д. Ввиду многочисленных преимуществ такого типа организации программных продуктов, было решено создать определенное универсальное решение в виде типичного веб-приложения на основе микросервисов.
В работе разработаны алгоритмические составляющие процесса строительства микросервисной архитектуры, проведены соответствующие проектные решения. Решено создавать типовое веб-приложение с помощью языка РНР. Отдельные элементы системы (микросервисы) наиболее эффективно могут общаться, передавая данные в формате JSON, хотя для простых приложений применима передача простого текста в собственном формате (Plain Text).
В результате создан рабочий программный продукт, функционально представляющий собой типовую систему для работы пользователей на веб-сайтах. Продукт включает 5 типовых микросервисов (авторизации, отображение перечня элементов личного кабинета, выдача детальной информации об одном элементе, смены одного элемента, выдачи новостей), работающих с тремя базами данных (авторизации, новостей и элементов личного кабинета, которые обобщенно называли «заказами»).
Созданный программный продукт был подвергнут тестированию, в результате чего была установлена его стабильность и эффективная работа. Рассмотрена экономическая эффективность решения, основанная на том, что возводить программные продукты на базе микросервисной архитектуры более просто, чем другие, и это может выполнять программист более низкой квалификации (соответственно, с меньшей оплатой труда). Даже для небольшой ИТ-компании экономия может составлять несколько сотен тысяч рублей в месяц, что зависит от степени интенсивности применения микросервисной архитектуры в разрабатываемых компаниями приложениях.
Разработанное каркасное типовое решение, являющееся по своей сути заготовкой для дальнейшей микросервисной реализации, может быть основой для возведения реальных информационных систем, имеющих прикладное значение.
Фрагмент текста работы:
1 МЕСТО И РОЛЬ МИКРОСЕРВИСНОЙ АРХИТЕКТУРЫ В СИСТЕМЕ ПОДХОДОВ К ПОСТРОЕНИЮ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ
1.1 Существующие виды архитектур программного обеспечения
Учитывая вышеупомянутое отсутствие общепринятого понимания понятия «архитектура», проводить классификацию архитектур можно разными способами.
Так, например, построение программного продукта в виде двух взаимодействующих частей, одна из которых (серверная) предоставляет другой (клиентской) определенные ресурсы (обычно информационные, хотя это могут быть вычислительные ресурсы, аппаратные и др.), считается применением архитектуры «клиент-сервер». Такой тип программного обеспечения можно отнести к распределенному с всего лишь двумя уровнями. Принципиально, возможно создание распределенного ПО на основе произвольного количества уровней, причем все программные части комплекса, вообще говоря, могут быть загружены на разных ЭВМ:
— программная часть первого уровня запрашивает определенный ресурс у программной части второго уровня;
— программная часть второго уровня запрашивает другой (или тот же самый) ресурс у программной части третьего уровня;
— процесс повторяется неограниченное количество раз.
Очевидно, из соображений здравого смысла не целесообразно внедрять большое количество уровней в распределенных системах и в реальности их число редко превышает 3. Наиболее распространенными архитектурами распределенного ПО являются именно «клиент-сервер», то есть двухуровневая модель, а также трехуровневая модель с одним отдельным выделенным слоем для базы данных.
Часто под архитектурой подразумевают особенности распределения всего кода программного обеспечения на несколько составляющих, в