Научная статья на тему 'Method of systems decomposition using microservices architecture'

Method of systems decomposition using microservices architecture Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
207
24
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
МіКРОСЕРВіСИ / МіКРОСЕРВіСНА АРХіТЕКТУРА / ДЕКОМПОЗИЦіЯ СИСТЕМИ / NETFLIX / SPRING / MICROSERVICE / MICROSERVICE ARCHITECTURE / DECOMPOSITION OF SYSTEM

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Stetsenko V.

This article discusses how to decompose a system using a microservice architecture. This architectural approach addresses the challenges of developing a new project, such as the need to have multiple development teams with a diverse set of knowledge, the need for the application to be easy to understand and modify, the need to be flexible in the choice of technologies to develop, and the need to be able to run multiple instances of the application on a large number of servers.

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «Method of systems decomposition using microservices architecture»

14.11.2017 № 754. URL:

http://www.consultant.ru/cons/cgi/online.cgi?req=doc &base=LAW&n=283959&dst=100008&date= 17.10.2 019 (дата обращения: 17.10.2019)

7. Охрана окружающей среды в России: Статистические издания Федеральной службы государственной статистики [Электронный ресурс]. URL: https://gks.ru/folder/210/document/13209 (дата обращения: 17.10.2019)

8. Основные показатели охраны окружающей среды: Информационно-аналитические материалы Федеральной службы государственной статистики [Электронный ресурс]. URL:

https://gks.ru/folder/11110/document/13294 (дата обращения: 17.10.2019)

9. Информация о социально-экономическом положении России: Информационно-аналитические материалы Федеральной службы государственной статистики [Электронный ресурс]. URL: https://gks.ru/compendium/document/50800 (дата обращения: 17.10.2019)

10. Российский статистический ежегодник: Статистические издания Федеральной службы государственной статистики [Электронный ресурс]. URL: https://gks.ru/folder/210/document/12994 (дата обращения: 17.10.2019)

СПОС1Б ДЕКОМПОЗИЦП СИСТЕМ З ВИКОРИСТАННЯМ М1КРОСЕРВ1СНО1 АРХ1ТЕКТУРИ

Стеценко В. О.

Студент факультету iнформатики та обчислювально'1 техтки Нацюнального технЫного утверситету Украти «Кшвський полтехтчний тститут iменi 1горя Сжорського»

METHOD OF SYSTEMS DECOMPOSITION USING MICROSERVICES ARCHITECTURE

Stetsenko V.

Student, Faculty of Informatics and Computer Science, National Technical University of Ukraine "Igor Sikorsky Kyiv Polytechnic Institute "

Анотащя

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

Abstract

This article discusses how to decompose a system using a microservice architecture. This architectural approach addresses the challenges of developing a new project, such as the need to have multiple development teams with a diverse set of knowledge, the need for the application to be easy to understand and modify, the need to be flexible in the choice of technologies to develop, and the need to be able to run multiple instances of the application on a large number of servers.

Ключов1 слова: Мжросервюи, мжросервкна архитектура, декомпозищя системи, Netflix, Spring.

Keywords: Microservice, microservice architecture, decomposition of system, Netflix, Spring.

Вступ

Сьогодш для бiзнесу е доволi великим завдан-ням i викликом створити систему, що буде вiдповiдати усiм тим вимогам, як ставить ринок перед ними. Швидкий рiст IT шфраструктури зумо-влюе швидкi змiни тенденцш в технологiях розробки, що звюно впливае на вже iснуючi системи. Да i при створенш нових систем потрiбно пам'ятати, що система мае вщповщати досить ве-ликiй кiлькостi вимог. Таких от як потреба в мож-ливосл швидко адаптуватись пiд змiни в 1Т сферi, необхiдностi мати систему, що буде витримувати великi навантаження та одночасно бути гнучкою та простою для розумшня, що дозволить просто змшувати команди розробникiв да i спростить сам пошук розробнишв на ринку пращ, що вщповщно збереже бiзнесу значнi кошти. Так яка ж система зможе надати замовнику усi вищезгаданi можли-восл системи? Вщповщдю на це питання буде система побудована на основi мiкросервiсноi архггек-тури [2].

В данш статп буде розглянуто споаб декомпозицп прогрaмноi системи на мжросервюи з урахуванням уах ключових проблем та наведено приклади iх вирiшення. Також буде запропоновано власний пiдхiд до декомпозицii системи використо-вуючи мiкросервiсну aрхiтектури, для спрощення сaмоi системи, адже найбшьшим мiнусом мiкросервiсноi aрхiтектури е и склaднiсть.

Постановка задачi

Принцип мiкросервiсноi aрхiтектури полягае у розбитгi системи на велику кшьшсть малих за роз-мiром автономних, слабко пов'язаних компонента, що вмiють спiлкувaтись мiж собою. Розбиття системи на невелиш, сaмостiйнi модулi дозволяе ро-зробляти кожен компонент використовуючи окре-мий, унiкaльний нaбiр технологiй, що виршуе проблему гнучкостi у побудовi команди розробникiв, адже з даним тдходом кожна команда може вико-ристовувати свiй, окремий стек технологш. Оскiльки кожен автономний компонент системи е вщносно невеликого розмiру, це робить його бiльш

зрозумiлим для розробнишв та проспшим для мо-дифшацп.

Cnoci6 реалiзащi

Для реал!зацп даного завдання пропонуеться розробити систему, яка буде розбита на мжросервюи. Ключовими сервiсами дано! системи будуть API Gateway, Registry/Configuration сервю, UAA(User Account and Authentication) сервер та будь-яка шлькють шших мiкросервiсiв, яш реалiзу-ють бiзнес потреби [3].

Варто розглянути кожен з цих ключових сервiсiв бшьш детально.

• API Gateway

Сервю API Gateway являеться сервiсом, що знаходиться мiж кл1ентською частиною застосунка та серверною частиною, в даному випадку це набiр мiкросервiсiв. Даний сервiс виступае як зворотнiй прока сервер, пов'язуючи запити зробленi з ктенту до серверно! частини. Б№ш того, даний сервiс може забезпечувати рiзнi додатковi функци для застосунку, так1 як аутентифiкацiя, кешування та обробка SSL. В запропонованш архггектур^ до-датково пропонуеться використовувати даний сервiс як Load Balancer та як сервю мотторингу стану системи. Це зменшить складнiсть системи в цшому, адже к1льк1сть сервгав яких потрiбно ро-зробляти, конф^рувати, розгортати на серверi та постшно пiдтримувати зменшиться.

• Registry/Configuration сервю

Даний сервю виступае в данш системи як сервю, що реалiзуе шаблон Service Discovery. Даний сервю постшно працюватиме разом з API Gateway та буде вщповвдати за зв'язок API Gateway з безл1ччю екземплярiв будь-якого мшросервюу. Це працюе наступним чином: здшснюючи запит до сервiсу, кл1ент отримуе мiсце розташування екзем-пляра сервюу шляхом запиту в SR(Service Registry), який знае мiсця розташування вах екземплярiв сервiсу.

Одночасно з цим даний сервю буде виступати i як сервю конфцурацп, що в свою чергу дозволить динамiчно змiнювати конфiгурацiю застосунку без необхiдностi зупиняти чи перезавантажувати усю систему.

• UAA Server

Даний сервю являеться сервюом обл1ку та ав-торизацп користувачiв для захисту мiкросервiсiв системи за допомогою протоколу авторизаци OAuth2 [4].

Приклад використання

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

Пропонуеться використовувати стек Netflix та Java фреймворк Spring.

Стек Netflix складаеться з таких бiблiотек: Netflix Zuul, Netflix Eureka, Netflix Ribbon, Netflix Hys-trix [5].

• Netflix Zuul - бiблiотека яка виступае як прока та фшьтр запипв до серверно1 частини.

• Netflix Eureka - бiблiотека, з допомогою яко! кожен кл1ент може отримати список тдклю-чень певного сервюу i робити запит до пулу цих

сервЫв за допомогою певного алгоритму балансу-вання навантаження.

• Netflix Ribbon - бiблiотека, що вiдповiдаe за балансування навантаження на сервюи та яка е частино Netflix Eureka

• Netflix Hystrix - це бiблiотека, що е ре-алiзацiею шаблона Circuit Breaker. Основна щея по-лягае в тому, щоб зупинити каскадну ввдмову в розподшено! системi сервЫв, що складаеться з ix велико! шлькосп. Це дозволяе вiддавати помилку на обробку на ранньому етат даючи можливiсть "впавшому" сервiсу ввдновити свою працез-датнiсть.

Загалом запропонована система може бути ре-алiзована наступним чином. Для реалiзацii API Gateway необхвдно створити Spring Boot проект. Пюля чого необxiдно додати до сервюу пвдтримку Netflix Zuul. Netflix Zuul буде виступати як основ-ний маршрутизатор та балансувальник навантаження ввд Netflix. Zuul автоматично буде обирати список сервiсiв в Netflix Eureka. Netflix Eureka буде використаний як частина Service Registry сервюу. Далi щоб захистити нашi сервiси, ми будемо використовувати шаблон Token Relay, тдтримуваний OAuth 2.0, а також стандарти JOSE(JavaScript Object Signing and Encryption) та JWT(JSON Web Token) [1]. Це надасть можливють нашим користува-чам вдентифшувати себе та мати доступу до захи-щених сервiсiв, що знаходяться за API Gateway.

Чому саме мжросервкна apxiTeKTypa

Мiкросервiсна архитектура сьогоднi викори-стовуеться вже майже скрiзь. Наразi це скорiше ви-мога, мати застосунок побудований на основi мiкросервiсноi арxiтектури анiж побажання. Адже в еру високонавантажених систем, де все частше застосунки розгорнуп в хмарному сxовищi анiж на фiзичному серверi, мiкросервiси надають безаль-тернативнi переваги. Вiдомими альтернативами для мжросервюно! арxiтектури в арxiтектурному пiдxодi до розробки веб застосункiв е монолгтна ар-xiтектура та сервiс-орiентована арxiтектура. Але вони е не гнучкими, а саме гнучкють та можливють швидко адаптуватись до змш е ключовою необ-xiднiстю для веб-системи сьогодш.

Висновок

В сучасному свiтi, веб-системи стають все б№шими та складнiшими. Тому декомпозицiя системи на мшросервюи е майже безальтернативним рiшенням. В данiй стап був запропонований влас-ний пвдхщ до декомпозицп системи на мшросервюи. Даний пiдxiд допоможе зменшити складнють розробки високонавантажено! системи шляхом зменшення кiлькостi мiкросервiсiв, якi по-трiбно обслуговувати та пiдтримувати, разом с тим збер^ши усi тi переваги, що надають мжросервюи, такi як гнучкють, атомарнiсть та швидку адап-тивнiсть.

Для реалiзацii поставлено! задачi запропоно-вано розробити програмну систему, а в якосл технолопчного стеку використати стек бiблiотек Netflix та веб-фреймворк Spring.

Реалiзацiя дано! системи дозволить прикла-дати значно менше зусиль для розробки складних веб-систем.

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

1. Introduction to JSON Web Tokens [Елек-тронний ресурс] Режим доступу: https://jwt.io/introduction/ (дата звернення 19.11.2019 р.). - Назва з екрана.

2. Microservice Architecture and Design Patterns for Microservices [Електронний ресурс] Режим доступу:

https://medium.com/@madhukaudantha/microservice-architecture-and-design-patterns-for-microservices-

e0e5013fd58a (дата звернення 19.11.2019 р.). -Назва з екрана.

3. Pattern: Microservice Architecture [Елек-тронний ресурс] Режим доступу: https://microservices.io/patterns/microservices.html (дата звернення 19.11.2019 р.). - Назва з екрана.

4. Securing Services with Spring Cloud Gateway [Електронний ресурс] Режим доступу: https://spring.io/blog/2019/08/16/securing-services-with-spring-cloud-gateway (дата звернення 19.11.2019 р.). - Назва з екрана.

5. Spring Cloud Netflix [Електронний ресурс] Режим доступу: https://cloud.spring.io/spring-cloud-netflix/reference/html/ (дата звернення 19.11.2019 р.). - Назва з екрана.

ПЕР СПЕК ТИВН1СТЬ ВДОСКОНАЛЕННЯ ШФОРМАЦШНОГО ПОШУКУ ЗА ДОПОМОГОЮ

ПРЕЦЕДЕНТ1В

Терещенко В.В.

астрант кафедри iнформатики та вищо1 математики Кременчуцький нацюнальний yHiверситет iMeHi Михайла Остроградського, Украта

PERSPECTIVES IN IMPROVEMENT OF INFORMATION SEARCH WITH THE AID OF

PRECEDENTS

Tereschenko V.

postgraduate student of Department of Informatics and Higher Mathematics Kremenchuk Mykhaylo Ostrohradskiy National University, Ukraine

Анотащя

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

Abstract

In this paper, based on the requirements of the present, the principles of information search systems functioning were investigated; the most important tendencies of development are highlighted. Accordingly, a number of scientific works in the field of information search was analyzed. In the course of the research the prospect of using the precedent methodology in the improvement of search methods was established and, in particular, in the construction of information search systems. In particular, it is emphasized that precedent based search organization enables different approaches to solve the problem of intellectualization and personalization of search.

Ключов1 слова: пошукова оптишзащя, пошукова система, пошукова видача, шформацшний пошук.

Keywords: search engine optimization, search engine, search engine results, information search.

У сучасних умовах розвитку шформацшних технологш та пошукових машин виникае потреба у нових методах забезпечення ефективного шформацшного пошуку. Проблема досконалого пошуку i збору шформацп, яка може бути використаною при виршенш важливих завдань в ходi науково-до-слвдно1' дiяльностi, для пiдтримки прийняття ршень в нaуково-технiчнiй, соцiaльнiй та шших сферах за-лишаеться вiдкритою впродовж десятилiть. Це зумовлено феноменом с^мкого перенасичення ш-формaцiйного простору [1].

Ввдомо що сучасна пошукова машина здатна вдосконалюватися в рiзних напрямках: з'являються новi чинники ранжування або змшюеться iх прюри-тет, змiнюеться формат взаемодп iнструментaрiю пошуку з користувачем, посилюються вимоги до

якосп побудови сайтiв, а також з'являються hobî сервiси, що спрощують пошук шформацп. Ввдповщно вимоги до швидкосп пошуку, актуаль-ностi iнформацiï з кожним днем зростають, що в свою чергу впливае на розробку методiв та алго-ритмiв пошуку i подання даних. В свою чергу, ро-звиток комп'ютерноï техшки також тягне за собою суттеве зростання обсягу iнформацiï, що подаеться в електронному виглядi.

Хоча на сьогодшшнш день й iснуе значна шль-кiсть методiв та алгоршшв iнформацiйного пошуку, проте неперервний розвиток ще1 галузi та ви-щезазначенi проблеми вказують на необхщшсть постiйного покращення iснуючих методiв та ро-

i Надоели баннеры? Вы всегда можете отключить рекламу.