KR101977602B1 - Apparatus and method for managing microservice - Google Patents

Apparatus and method for managing microservice Download PDF

Info

Publication number
KR101977602B1
KR101977602B1 KR1020170090456A KR20170090456A KR101977602B1 KR 101977602 B1 KR101977602 B1 KR 101977602B1 KR 1020170090456 A KR1020170090456 A KR 1020170090456A KR 20170090456 A KR20170090456 A KR 20170090456A KR 101977602 B1 KR101977602 B1 KR 101977602B1
Authority
KR
South Korea
Prior art keywords
specific
virtual
virtual application
environment
app
Prior art date
Application number
KR1020170090456A
Other languages
Korean (ko)
Other versions
KR20190008724A (en
Inventor
배영규
Original Assignee
에스케이브로드밴드주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 에스케이브로드밴드주식회사 filed Critical 에스케이브로드밴드주식회사
Priority to KR1020170090456A priority Critical patent/KR101977602B1/en
Publication of KR20190008724A publication Critical patent/KR20190008724A/en
Application granted granted Critical
Publication of KR101977602B1 publication Critical patent/KR101977602B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
    • G06Q50/10Services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/16Analogue secrecy systems; Analogue subscription systems
    • H04N7/173Analogue secrecy systems; Analogue subscription systems with two-way working, e.g. subscriber sending a programme selection signal

Landscapes

  • Business, Economics & Management (AREA)
  • Tourism & Hospitality (AREA)
  • Engineering & Computer Science (AREA)
  • General Health & Medical Sciences (AREA)
  • General Business, Economics & Management (AREA)
  • Human Resources & Organizations (AREA)
  • Marketing (AREA)
  • Primary Health Care (AREA)
  • Strategic Management (AREA)
  • Physics & Mathematics (AREA)
  • Economics (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Theoretical Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Stored Programmes (AREA)

Abstract

본 발명은, 마이크로서비스(microservice) 제공에 최적화된 마이크로서비스 개발환경이 실현되도록 하는, 새로운 가상화 기반 마이크로서비스 개발환경 구현 방안을 개시하고 있다.The present invention discloses a new virtualization-based micro-service development environment implementation method that realizes a micro-service development environment optimized for microservice provision.

Description

마이크로서비스관리장치 및 방법{APPARATUS AND METHOD FOR MANAGING MICROSERVICE}[0001] APPARATUS AND METHOD FOR MANAGING MICROSERVICE [0002]

본 발명은 마이크로서비스(microservice) 제공에 최적화된 마이크로서비스 개발환경이 실현되도록 하는, 새로운 가상화 기반 마이크로서비스 개발환경 구현 방안에 관한 것이다.The present invention relates to a new virtualization-based microservice development environment implementation method that realizes a microservice development environment optimized for providing a microservice.

서비스의 규모가 커지고 복잡도가 증가하면서 보다 효율적이면서도 변경과 조합이 용이한 구조의 아키텍처에 대한 관심이 증가하고 있다. 특히, 하나의 큰 애플리케이션을 여러 개의 작은 애플리케이션으로 쪼개어 변경과 조합이 가능하도록 만든 마이크로서비스 아키텍처가 주목 받고 있다.As the scale of service and complexity increase, there is an increasing interest in architecture that is more efficient and easy to change and combine. In particular, micro-services architectures have attracted attention, making it possible to break down a large application into multiple smaller applications and make changes and combinations.

이러한 마이크로서비스 아키텍처는, 독립적인 단위의 애플리케이션이기 때문에 변경이 용이하고 그 변경이 다른 서비스에 미치는 영향이 적으며, 부하가 집중되는 특정서비스를 위해 전체 애플리케이션을 스케일 아웃할 필요가 없기 때문에 불필요한 자원의 낭비를 감소시켜 효율적인 자원사용이 가능하도록 하는 등의 장점을 갖는다.Because these micro-service architectures are applications that are independent units, they are easy to change, their impact on other services is minimal, and there is no need to scale out the entire application for a particular load-intensive service, Thereby reducing waste and enabling efficient resource use.

한편, 최근 IPTV서비스는 컨텐츠에 대한 업데이트가 빈번하게 발생함에 따라 잦은 편성 변경으로 인해 UI 변경 역시 빈번하게 이루어지고 있다. 또한, 사전 예고된 이벤트성 컨텐츠가 송출되는(예: 사회적 빅이슈, 대통령선거 중계방송 등) 상황뿐만 아니라, 사전에 예고되지 않은 이벤트(예: 고객요청)가 돌발적으로 발생하는 상황 등이 증가됨에 따라 트래픽 변경이 빈번하게 발생되고 있다.Meanwhile, as the IPTV service frequently updates contents, frequent UI change is frequently performed due to frequent change of organization. In addition, situations such as sudden occurrence of unexpected events (for example, customer requests) as well as situations where advance notice of the eventful contents are transmitted (for example, social big issues, presidential election broadcasts, etc.) Traffic changes are occurring frequently.

이에, 이처럼 IPTV서비스와 관련되는 트래픽 변경이 빈번하게 발생하는 상황에서도 안정적인 서비스를 제공하기 위해서는 마이크로서비스 개발환경이 마이크로서비스 제공에 최적화되어야만 한다.Accordingly, in order to provide a stable service even in the case where the traffic change related to the IPTV service frequently occurs, the micro service development environment must be optimized for providing micro services.

그러나, 현재 마이크로서비스 아키텍처를 기반으로 하는 마이크로서비스 개발환경에서는 개발자가 일일이 수동으로 테스트 환경을 설정한 다음, 신규/갱신되는 마이크로서비스에 대한 검증을 수행하여 배포하므로, 트래픽 변경이 빈번하게 발생하는 상황에서 신속하게 대응하지 못하는 한계점이 존재한다.However, in a micro-service development environment based on the current micro-service architecture, a developer manually sets a test environment manually, and then performs verification and distribution of new / updated micro-services. Therefore, There is a limit that can not respond quickly.

또한, 신규/갱신되는 마이크로서비스가 상용 수준의 기능을 갖도록 하기 위해서는 개발자가 매번 환경정보를 변경하면서 다수의 테스트 과정을 수행되어야만 하는 번거로움이 있다.In addition, in order for a new / updated micro-service to have commercial-level functions, there is a problem that a developer has to perform a plurality of test procedures while changing environment information every time.

이에, 본 발명에서는, 마이크로서비스 테스트 과정에서의 개발자의 개입을 최소화할 수 있으며, 트래픽 변경이 빈번하게 발생하는 상황에서도 안정적으로 마이크로서비스가 제공될 수 있도록 하는, 가상화 기반 마이크로서비스 개발환경 구현 방안을 제안하고자 한다.Accordingly, the present invention provides a virtualization-based micro service development environment implementation method that can minimize the developer's intervention in the micro service testing process and stably provide the micro service even in the case where frequent traffic change occurs I would like to propose.

본 발명은 상기한 사정을 감안하여 창출된 것으로서, 본 발명에서 도달하고자 하는 목적은, 상세하게는 마이크로서비스(microservice) 제공에 최적화된 마이크로서비스 개발환경이 실현되도록 함으로써, 기존과 달리 마이크로서비스 테스트 과정에서의 개발자의 개입을 최소화할 수 있으며, 트래픽 변경이 빈번하게 발생하는 상황에서도 안정적으로 마이크로서비스가 제공되도록 하는 기술에 관한 것이다. SUMMARY OF THE INVENTION The present invention has been made in view of the above circumstances, and an object of the present invention is to provide a micro service development environment optimized for providing a micro service, The present invention relates to a technology for minimizing the intervention of a developer in the Internet and providing a stable micro-service even in a case where traffic change frequently occurs.

상기 목적을 달성하기 위한 본 발명의 제 1 관점에 따른 마이크로서비스관리장치는, 개발자단말로부터 적어도 하나의 마이크로서비스 중 특정마이크로서비스와 관련되는 개발결과정보가 확인되는 경우, 상기 개발결과정보에 대한 환경정보를 확인한 결과를 기반으로 상기 개발결과정보에 대한 수신여부를 결정하는 결정부; 상기 개발자단말로부터 상기 개발결과정보가 업로드된 경우, 상기 개발결과정보와 상기 환경정보를 기반으로 가상환경에서 실행 가능한 특정가상앱을 생성하는 생성부; 및 상기 특정마이크로서비스에 해당하는 특정컨텐츠가 제공될 수 있도록 상기 특정가상앱을 배포하는 운영관리부를 포함하는 것을 특징으로 한다.To achieve the above object, according to a first aspect of the present invention, there is provided a micro-service management apparatus, when development result information related to a specific micro-service among at least one micro-service is confirmed from a developer terminal, A determination unit for determining whether to receive the development result information based on a result of checking the information; A generation unit configured to generate a specific virtual application executable in a virtual environment based on the development result information and the environment information when the development result information is uploaded from the developer terminal; And an operation management unit for distributing the specific virtual application so that specific contents corresponding to the specific micro service can be provided.

상기 환경정보는 상기 특정가상앱이 가상환경에서 실행되도록 하는 풀(Pool)형태의 메타데이터그룹을 포함하며, 상기 결정부는, 상기 메타데이터그룹이 특정플랫폼에서 지원되는지의 여부를 확인한 결과를 기반으로 상기 개발결과정보에 대한 수신여부를 결정하는 것을 특징을 한다.Wherein the environment information includes a pool-type metadata group for allowing the specific virtual application to be executed in a virtual environment, and the determination unit determines, based on a result of checking whether the metadata group is supported by a specific platform And determines whether to receive the development result information.

상기 결정부는, 상기 메타데이터그룹이 상기 특정플랫폼에서 지원되는 경우, 상기 특정가상앱의 생성이 가능한 것으로 판단하여 상기 개발결과정보의 업로드를 요청하는 요청메시지를 상기 개발자단말로 전송하며, 상기 메타데이터그룹이 상기 특정플랫폼에서 지원되지 않는 경우, 상기 특정가상앱의 생성이 불가능한 것으로 판단하여 종료알림메시지를 상기 개발자단말로 전송하는 것을 특징으로 한다.Wherein the determining unit determines that generation of the specific virtual application is possible when the metadata group is supported by the specific platform and transmits a request message for requesting upload of the development result information to the developer terminal, When the group is not supported by the specific platform, it is determined that the specific virtual application can not be created, and the end notification message is transmitted to the developer terminal.

상기 가상환경은, 상기 특정가상앱의 테스트 수행과 관련되는 제1 가상환경과, 기 생성된 마이크로서비스와 관련되는 가상앱이 정식으로 상용 배포되어 있는 제2 가상환경을 포함하며, 상기 생성부는, 상기 제2 가상환경에 상기 특정컨텐츠를 제공하는 기 생성된 해당 가상앱이 존재하는지의 여부를 확인한 결과를 기반으로 상기 메타데이터그룹 중 특정메타데이터세트를 선택하고, 상기 특정메타데이터세트와 상기 개발결과정보를 패키징하여 상기 특정가상앱을 생성하는 것을 특징으로 한다.Wherein the virtual environment includes a first virtual environment related to the test execution of the specific virtual application and a second virtual environment in which the virtual application related to the created micro service is formally commercially distributed, Selecting a specific metadata set among the metadata groups based on a result of checking whether a corresponding virtual application that provides the specific content is present in the second virtual environment, And the result information is packaged to generate the specific virtual application.

상기 생성부는, 상기 제2 가상환경에 상기 기 생성된 해당 가상앱이 존재하지 않으면, 상기 특정가상앱이 신규 배포되는 것으로 판단하며, 상기 개발자단말의 개발자가 선정한 우선순위가 높은 메타데이터세트 순서를 기반으로 상기 메타데이터그룹 중 상기 특정메타데이터세트를 결정하며, 상기 제2 가상환경에 상기 기 생성된 해당 가상앱이 존재하면, 상기 특정컨텐츠의 업데이트를 수행하기 위해 갱신 배포되는 것으로 판단하여, 상기 기 생성된 해당 가상앱의 메타데이터세트와 관련도가 높은 메타데이터세트 순서를 기반으로 상기 메타데이터그룹 중 상기 특정메타데이터세트를 결정하는 것을 특징으로 한다.Wherein the generation unit determines that the specific virtual application is newly deployed if the pre-generated virtual application does not exist in the second virtual environment, and the generation unit acquires a metadata set sequence having a high priority selected by the developer of the developer terminal Determining that the specific metadata set of the metadata group is updated based on the predetermined metadata set and updating and distributing the specific content set to update the specific content if the pre-created virtual application exists in the second virtual environment, The specific metadata set of the metadata group is determined on the basis of the metadata set of the corresponding virtual application and the order of the metadata set having a high degree of relevance.

상기 운영관리부는, 상기 제1 가상환경에서의 상기 특정가상앱에 대한 테스트결과가 기 설정된 기준등급이상이고 상기 제2 가상환경에 상기 기 생성된 해당 가상앱이 존재하는 경우, 상기 기 생성된 해당 가상앱 대신 상기 특정가상앱이 배포되도록 라우팅정보를 변경하며, 상기 제1 가상환경에서의 상기 특정가상앱에 대한 테스트결과가 기 설정된 기준등급이상이고 상기 제2 가상환경에 상기 기 생성된 해당 가상앱이 존재하지 않는 경우, 상기 특정가상앱의 라우팅정보를 신규 설정하는 것을 특징으로 한다.When the test result of the specific virtual application in the first virtual environment is equal to or higher than a preset reference level and the pre-created corresponding virtual application exists in the second virtual environment, the operation management unit Changing the routing information so that the specific virtual application is distributed instead of the virtual application, and changing the routing information so that the test result for the specific virtual application in the first virtual environment is equal to or higher than a predetermined reference level, And if the app does not exist, the routing information of the specific virtual application is newly set.

상기 제2 가상환경에 상기 특정정상앱에 대한 배포가 완료된 후 상기 특정마이크로서비스에서 기준 이상의 응답지연이 발생하는 경우, 상기 특정마이크로서비스가 기 설정된 저장소에서 지연차단정보를 확인할 수 있도록 원격에서 설정정보를 변경하는 장애관리부를 더 포함하는 것을 특징으로 한다.When a response delay of a criterion or more occurs in the specific micro-service after the distribution of the specific normal application is completed in the second virtual environment, And a failure management unit for changing the operation mode of the mobile communication terminal.

상기 목적을 달성하기 위한 본 발명의 제 2 관점에 따른 마이크로서비스관리장치의 동작방법은, 개발자단말로부터 적어도 하나의 마이크로서비스 중 특정마이크로서비스와 관련되는 개발결과정보가 확인되는 경우, 상기 개발결과정보에 대한 환경정보를 확인한 결과를 기반으로 상기 개발결과정보에 대한 수신여부를 결정하는 결정단계; 상기 개발자단말로부터 상기 개발결과정보가 업로드된 경우, 상기 개발결과정보와 상기 환경정보를 기반으로 가상환경에서 실행 가능한 특정가상앱을 생성하는 생성단계; 및 상기 특정마이크로서비스에 해당하는 특정컨텐츠가 제공될 수 있도록 상기 특정가상앱을 배포하는 운영관리단계를 포함하는 것을 특징으로 한다.According to a second aspect of the present invention, there is provided a method of operating a microservice management device, comprising the steps of: when development result information associated with a specific micro service among at least one micro service is identified from a developer terminal, Determining whether to receive the development result information based on a result of checking environment information on the development result information; A generation step of generating a specific virtual application executable in a virtual environment based on the development result information and the environment information when the development result information is uploaded from the developer terminal; And an operation management step of distributing the specific virtual application so that specific contents corresponding to the specific micro service can be provided.

상기 환경정보는 상기 특정가상앱이 가상환경에서 실행되도록 하는 풀(Pool)형태의 메타데이터그룹을 포함하며, 상기 결정단계는, 상기 메타데이터그룹이 특정플랫폼에서 지원되는지의 여부를 확인한 결과를 기반으로 상기 개발결과정보에 대한 수신여부를 결정하는 것을 특징을 한다.Wherein the environment information includes a pool-type metadata group for allowing the specific virtual application to be executed in a virtual environment, and the determining step determines whether or not the metadata group is supported by a specific platform, And determines whether to receive the development result information.

상기 결정단계는, 상기 메타데이터그룹이 상기 특정플랫폼에서 지원되는 경우, 상기 특정가상앱의 생성이 가능한 것으로 판단하여 상기 개발결과정보의 업로드를 요청하는 요청메시지를 상기 개발자단말로 전송하며, 상기 메타데이터그룹이 상기 특정플랫폼에서 지원되지 않는 경우, 상기 특정가상앱의 생성이 불가능한 것으로 판단하여 종료알림메시지를 상기 개발자단말로 전송하는 것을 특징으로 한다.Wherein the determining step determines that generation of the specific virtual application is possible when the metadata group is supported by the specific platform and transmits a request message for requesting upload of the development result information to the developer terminal, When the data group is not supported by the specific platform, it is determined that the specific virtual application can not be created, and the end notification message is transmitted to the developer terminal.

상기 가상환경은, 상기 특정가상앱의 테스트 수행과 관련되는 제1 가상환경과, 기 생성된 마이크로서비스와 관련되는 가상앱이 정식으로 상용 배포되어 있는 제2 가상환경을 포함하며, 상기 생성단계는, 상기 제2 가상환경에 상기 특정컨텐츠를 제공하는 기 생성된 해당 가상앱이 존재하는지의 여부를 확인한 결과를 기반으로 상기 메타데이터그룹 중 특정메타데이터세트를 선택하고, 상기 특정메타데이터세트와 상기 개발결과정보를 패키징하여 상기 특정가상앱을 생성하는 것을 특징으로 한다.Wherein the virtual environment includes a first virtual environment related to a test execution of the specific virtual application and a second virtual environment in which a virtual application related to the created micro service is formally commercially distributed, Selecting a specific metadata set of the metadata group based on a result of checking whether a corresponding virtual application that provides the specific content is present in the second virtual environment, And the development result information is packaged to generate the specific virtual application.

상기 생성단계는, 상기 제2 가상환경에 상기 기 생성된 해당 가상앱이 존재하지 않으면, 상기 특정가상앱이 신규 배포되는 것으로 판단하며, 상기 개발자단말의 개발자가 선정한 우선순위가 높은 메타데이터세트 순서를 기반으로 상기 메타데이터그룹 중 상기 특정메타데이터세트를 결정하며, 상기 제2 가상환경에 상기 기 생성된 해당 가상앱이 존재하면, 상기 특정컨텐츠의 업데이트를 수행하기 위해 갱신 배포되는 것으로 판단하여, 상기 기 생성된 해당 가상앱의 메타데이터세트와 관련도가 높은 메타데이터세트 순서를 기반으로 상기 메타데이터그룹 중 상기 특정메타데이터세트를 결정하는 것을 특징으로 한다.Wherein the generation step determines that the specific virtual application is newly deployed if the pre-generated virtual application does not exist in the second virtual environment, Determining that the specific metadata set of the metadata group is updated based on the predetermined metadata set and updating the specific content set to update the specific content if the pre-created virtual application exists in the second virtual environment, And the specific metadata set of the metadata group is determined based on the metadata set of the corresponding virtual application and the metadata set having a high degree of relevance.

상기 운영관리단계는, 상기 제1 가상환경에서의 상기 특정가상앱에 대한 테스트결과가 기 설정된 기준등급이상이고 상기 제2 가상환경에 상기 기 생성된 해당 가상앱이 존재하는 경우, 상기 기 생성된 해당 가상앱 대신 상기 특정가상앱이 배포되도록 라우팅정보를 변경하며, 상기 제1 가상환경에서의 상기 특정가상앱에 대한 테스트결과가 기 설정된 기준등급이상이고 상기 제2 가상환경에 상기 기 생성된 해당 가상앱이 존재하지 않는 경우, 상기 특정가상앱의 라우팅정보를 신규 설정하는 것을 특징으로 한다.Wherein, when the test result of the specific virtual application in the first virtual environment is equal to or higher than a predetermined reference level and the pre-generated virtual application exists in the second virtual environment, Changing the routing information so that the specific virtual application is distributed instead of the virtual application, and changing the routing information so that the test result for the specific virtual application in the first virtual environment is equal to or greater than a predetermined reference level, And when the virtual application does not exist, the routing information of the specific virtual application is newly set.

상기 제2 가상환경에 상기 특정정상앱에 대한 배포가 완료된 후 상기 특정마이크로서비스에서 기준 이상의 응답지연이 발생하는 경우, 상기 특정마이크로서비스가 기 설정된 저장소에서 지연차단정보를 확인할 수 있도록 원격에서 설정정보를 변경하는 장애관리단계를 더 포함하는 것을 특징으로 한다.When a response delay of a criterion or more occurs in the specific micro-service after the distribution of the specific normal application is completed in the second virtual environment, And a failure management step of changing a state of the failure.

이에, 본 발명에 따른 마이크로서비스관리장치 및 방법에 의하면, 마이크로서비스(microservice) 제공에 최적화된 마이크로서비스 개발환경이 실현되도록 함으로써, 기존과 달리 마이크로서비스 테스트 과정에서의 개발자의 개입을 최소화할 수 있어 서비스 이용에 따른 사용자 만족도를 향상시킬 수 있음은 물론, 트래픽 변경이 빈번하게 발생하는 상황에서도 신속하고 안정적으로 마이크로서비스를 제공할 수 있어 전반적인 마이크로서비스의 성능을 향상시키는 효과를 도출한다.Therefore, according to the micro-service management apparatus and method according to the present invention, a micro-service development environment optimized for providing a micro-service can be realized, thereby minimizing developer intervention in the micro-service testing process It is possible to improve the user satisfaction according to the use of the service and to provide the micro service quickly and stably even when the traffic change frequently occurs, thereby improving the performance of the overall micro service.

도 1은 본 발명의 실시예에 따른 마이크로서비스관리장치가 적용되는 통신 구조의 일례를 나타내는 도면이다.
도 2는 본 발명의 실시예에 따른 마이크로서비스관리장치의 구성을 나타내는 블록도이다.
도 3은 본 발명의 실시예에 따른 통신구조 내 구성들에 의한 동작흐름을 나타내는 순서도이다.
1 is a diagram illustrating an example of a communication structure to which a micro-service management apparatus according to an embodiment of the present invention is applied.
2 is a block diagram illustrating a configuration of a micro-service management apparatus according to an embodiment of the present invention.
3 is a flow chart illustrating operational flows by configurations within a communication structure according to an embodiment of the present invention.

본 명세서에서 사용되는 기술적 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아님을 유의해야 한다. 또한, 본 명세서에서 사용되는 기술적 용어는 본 명세서에서 특별히 다른 의미로 정의되지 않는 한, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 의미로 해석되어야 하며, 과도하게 포괄적인 의미로 해석되거나, 과도하게 축소된 의미로 해석되지 않아야 한다. 또한, 본 명세서에서 사용되는 기술적인 용어가 본 발명의 사상을 정확하게 표현하지 못하는 잘못된 기술적 용어일 때에는, 당업자가 올바르게 이해할 수 있는 기술적 용어로 대체되어 이해되어야 할 것이다. 또한, 본 발명에서 사용되는 일반적인 용어는 사전에 정의되어 있는 바에 따라, 또는 전후 문맥상에 따라 해석되어야 하며, 과도하게 축소된 의미로 해석되지 않아야 한다.It is noted that the technical terms used herein are used only to describe specific embodiments and are not intended to limit the invention. It is also to be understood that the technical terms used herein are to be interpreted in a sense generally understood by a person skilled in the art to which the present invention belongs, Should not be construed to mean, or be interpreted in an excessively reduced sense. Further, when a technical term used herein is an erroneous technical term that does not accurately express the spirit of the present invention, it should be understood that technical terms that can be understood by a person skilled in the art are replaced. In addition, the general terms used in the present invention should be interpreted according to a predefined or prior context, and should not be construed as being excessively reduced.

이하, 첨부된 도면을 참조하여 본 발명에 따른 바람직한 실시예를 상세히 설명하되, 도면 부호에 관계없이 동일하거나 유사한 구성 요소는 동일한 참조 번호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다. 또한, 본 발명을 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다. 이하, 첨부된 도면을 참조하여 본 명세서의 실시예에 대하여 설명한다.Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings, wherein like reference numerals refer to like or similar elements throughout the several views, and redundant description thereof will be omitted. In the following description, well-known functions or constructions are not described in detail since they would obscure the invention in unnecessary detail. Hereinafter, embodiments of the present invention will be described with reference to the accompanying drawings.

이하, 첨부된 도면을 참조하여 본 발명의 실시예에 대하여 설명한다. Hereinafter, embodiments of the present invention will be described with reference to the accompanying drawings.

도 1은 본 발명의 실시예에 따른 마이크로서비스관리장치가 적용되는 통신구조를 보여주고 있다. FIG. 1 shows a communication structure to which a micro-service management apparatus according to an embodiment of the present invention is applied.

도 1에 도시된 바와 같이, 본 발명이 적용될 통신 환경은 IPTV서비스가 제공될 수 있도록 마이크로서비스 아키텍처 기반의 마이크로서비스 개발환경을 통해 마이크로서비스를 생성 및 제공하는 시스템 환경일 수 있으며, 개발자단말(100), 고객단말(200) 및 마이크로서비스관리장치(300)를 포함하는 구성을 가질 수 있다.As shown in FIG. 1, the communication environment to which the present invention is applied may be a system environment for creating and providing a micro service through a micro service development environment based on a micro service architecture so that an IPTV service can be provided. ), A customer terminal (200), and a micro-service management apparatus (300).

개발자단말(100)은, 마이크로서비스 아키텍처 기반의 마이크로서비스 개발환경을 통해 IPTV서비스와 관련되는 적어도 하나의 마이크로서비스가 생성될 수 있도록, 마이크로서비스와 관련되는 개발결과정보를 생성하는 단말일 수 있다.The developer terminal 100 may be a terminal for generating development result information related to a micro service so that at least one micro service related to an IPTV service can be generated through a micro service development environment based on a micro service architecture.

여기서, 마이크로서비스 개발환경은, 마이크로서비스관리장치(300)가 마이크로서비스에 해당하는 컨텐츠 제공을 위해 개발자에게만 전용으로 제공하는 OS기반 가상환경일 수 있다. 이러한, 마이크로서비스 개발환경은, 특정플랫폼(예: PaaS)을 기반으로 마이크로서비스 생성과 관련되는 테스트, 배포, 운영, 장애관리 등과 같은 전반적인 개발과정을 지원할 수 있다.Here, the micro-service development environment may be an OS-based virtual environment that the micro-service management apparatus 300 provides only for developers to provide contents corresponding to micro-services. Such a micro-service development environment can support an overall development process, such as testing, deployment, operation, fault management, etc., associated with micro-service creation based on a specific platform (e.g., PaaS).

이에, 개발자단말(100)에는, 마이크로서비스 개발환경에 접속하여 전반적인 개발과정을 운영할 수 있도록 특정플랫폼(예: PaaS)과 관련되는 클라이언트 툴(예: PaaS Client Tool, 이하, PaaS툴)이 탑재된다.The developer terminal 100 is provided with a client tool (e.g., PaaS Client Tool, hereinafter referred to as PaaS tool) associated with a specific platform (e.g., PaaS) so as to access the micro- do.

고객단말(200)은, 마이크로서비스에 해당하는 컨텐츠를 이용하는 고객의 단말일 수 있으며, IPTV서비스와 관련된 애플리케이션이 설치된 장치를 일컫는다. 이러한, 고객단말(200)은, 애플리케이션의 실행 상태에서 IPTV서비스와 관련된 서비스를 요청하고, 요청에 따라 마이크로서비스관리장치(300)로부터 서비스에 해당하는 컨텐츠가 수신되는 경우, 이를 자신의 화면상에 출력하거나, 또는 다른 단말의 화면상에 출력되도록 중계하는 역할을 수행할 수 있다.The customer terminal 200 may be a terminal of a customer using content corresponding to a micro-service, and refers to a device in which an application related to an IPTV service is installed. When the contents corresponding to the service are received from the micro-service management apparatus 300 according to the request, the customer terminal 200 requests the service related to the IPTV service in the execution state of the application, Or relay the information to be output on the screen of another terminal.

이러한 고객단말(200)은, 마이크로서비스관리장치(300)와 유선 또는 무선으로 연동할 수 있으며, 예컨대 스마트폰, 태블릿 PC, PDA, 및 노트북, 셋탑박스 등과 IPTV서비스와 관련된 애플리케이션이 설치될 수 있는 장치는 모두 포함될 수 있을 것이다. 이하에서는 설명의 편의를 위해 고객단말(200)이 셋탑박스인 것으로 언급하여 설명하도록 하겠다. The customer terminal 200 may be connected to the micro-service management apparatus 300 in a wired or wireless manner. For example, a smart phone, a tablet PC, a PDA, a notebook, a set-top box, All devices may be included. Hereinafter, for convenience of description, it is described that the customer terminal 200 is a set-top box.

마이크로서비스관리장치(300)는, IPTV서비스와 관련되는 적어도 하나의 마이크로서비스가 생성되도록 마이크로서비스 개발환경을 지원하는 한편, IPTV서비스를 이용하는 고객에게 마이크로서비스에 해당하는 컨텐츠가 제공되도록 전반적인 시스템 운영을 제어하는 장치로서, 특히 본 발명에서 제공하고자 하는 서비스 즉, 마이크로서비스 테스트 과정에서의 개발자의 개입을 최소화하며, 트래픽 변경이 빈번하게 발생하는 상황에서도 안정적으로 마이크로서비스가 제공될 수 있도록 하는, 가상화 기반 마이크로서비스 개발환경이 실현되도록 하는 장치이다.The micro-service management apparatus 300 supports the micro-service development environment so that at least one micro-service related to the IPTV service is generated, and performs overall system operation to provide contents corresponding to the micro-service to the customer using the IPTV service The present invention relates to a method and apparatus for controlling a micro-service based on a virtualization service, which minimizes a developer's intervention in a micro-service testing process and can reliably provide micro- It is a device that enables the micro service development environment to be realized.

이와 관련하여, 도 2에는 본 발명의 마이크로서비스관리장치(300)의 구성이 보다 구체적으로 도시되어 있다.In this regard, FIG. 2 shows the configuration of the micro-service management apparatus 300 of the present invention in more detail.

도 1 및 도 2를 참고하면, 본 발명의 마이크로서비스관리장치(300)는, 개발자단말(100)로부터 적어도 하나의 마이크로서비스 중 특정마이크로서비스와 관련되는 개발결과정보가 확인되는 경우, 개발결과정보에 대한 환경정보를 확인한 결과를 기반으로 개발결과정보에 대한 수신여부를 결정하는 결정부(310), 개발자단말(100)로부터 개발결과정보가 업로드된 경우, 개발결과정보와 환경정보를 기반으로 가상환경에서 실행 가능한 특정가상앱(APP)을 생성하는 생성부(320), 및 특정마이크로서비스에 해당하는 컨텐츠가 제공될 수 있도록 특정가상앱(APP)을 배포하는 운영관리부(330)를 포함하는 구성을 가질 수 있다.1 and 2, when the development result information related to a specific micro service among at least one micro service is identified from the developer terminal 100, the micro service managing device 300 of the present invention generates development result information A determination unit 310 for determining whether to receive the development result information based on the result of checking the environment information about the environment information of the developer terminal 100, A generation unit 320 for generating a specific virtual application (APP) executable in an environment, and an operation management unit 330 for distributing a specific virtual application (APP) so that contents corresponding to a specific micro service can be provided. Lt; / RTI >

또한, 마이크로서비스관리장치(300)는, 가상환경, 즉 특정가상앱(APP)의 테스트 수행과 관련되는 제1 가상환경과, 기 생성된 마이크로서비스와 관련되는 가상앱이 정식으로 상용 배포되어 있는 제2 가상환경에서 전반적인 앱실행이 이루어지도록 제어하는 가상환경관리부(340), 및 IPTV서비스를 제공하는 과정에서 발생되는 장애를 관리하는 장애관리부(350)를 더 구비할 수 있다.In addition, the micro-service management apparatus 300 may be configured so that the first virtual environment related to the test execution of the virtual environment, that is, the specific virtual app (APP), and the virtual application related to the pre- A virtual environment management unit 340 for controlling the overall application execution in the second virtual environment, and a failure management unit 350 for managing faults generated in the process of providing the IPTV service.

여기서, 제1 가상환경에서 테스트 완료된 특정가상앱이 제2 가상환경에 상용 배포되는 경우에는, 마이크로서비스(1,2,..) 별 해당하는 컨텐츠가 각 데이터베이스(DB1,DB2,..)에 매칭되어 저장된다.Here, when the specific virtual apps tested in the first virtual environment are commercially distributed in the second virtual environment, corresponding contents for the micro services (1,2, ..) are stored in the databases DB1, DB2, And stored.

이에, 게이트웨이(360)는, 데이터베이스(DB1,DB2,..)에 저장된 컨텐츠 또는 컨텐츠를 조합하여 IPTV서비스를 제공할 수 있게 된다.Accordingly, the gateway 360 can provide an IPTV service by combining contents or contents stored in the databases DB1, DB2, ...

이상의 결정부(310), 생성부(320), 운영관리부(330), 가상환경관리부(340) 및 장애관리부(350)를 포함하는 마이크로서비스관리장치(300)의 구성 전체 내지는 적어도 일부는, 프로세서에 의해 실행되는 소프트웨어 모듈 형태 또는 하드웨어 모듈 형태로 구현되거나, 소프트웨어 모듈과 하드웨어 모듈이 조합된 형태로도 구현될 수 있다.All or at least a part of the micro-service management apparatus 300 including the determination unit 310, the generation unit 320, the operation management unit 330, the virtual environment management unit 340, Or in the form of a software module or a hardware module, or a combination of a software module and a hardware module.

결국, 본 발명의 실시예에 따른 마이크로서비스관리장치(300)는, 마이크로서비스(microservice) 제공에 최적화된 마이크로서비스 개발환경이 실현되도록 함으로써, 기존과 달리 마이크로서비스 테스트 과정에서의 개발자의 개입을 최소화하면서도, 트래픽 변경이 빈번하게 발생하는 상황에서도 안정적으로 마이크로서비스를 제공할 수 있게 되는 데, 이하에서는 이를 위한 마이크로서비스관리장치(300) 내 각 구성에 대해 구체적으로 설명하기로 한다.As a result, the micro-service management apparatus 300 according to the embodiment of the present invention realizes a micro-service development environment optimized for provision of a micro-service, thereby minimizing the developer's intervention in the micro-service testing process In addition, the micro-service management apparatus 300 can stably provide micro-services even in a situation where frequent traffic changes occur. Hereinafter, each configuration in the micro-service management apparatus 300 will be described in detail.

결정부(310)는, 개발자단말(100)로부터 확인되는 개발결과정보에 대한 수신여부를 결정한다.The determination unit 310 determines whether or not to receive the development result information confirmed by the developer terminal 100. [

보다 구체적으로, 결정부(310)는, 적어도 하나의 마이크로서비스 중 특정마이크로서비스와 관련되는 개발결과정보가 개발자단말(100) 내 PaaS툴을 통해 확인되면, 개발결과정보에 대한 환경정보를 확인한 결과를 기반으로 개발결과정보에 대한 수신여부를 결정한다.More specifically, when the development result information related to a specific micro-service among at least one micro-service is confirmed through the PaaS tool in the developer terminal 100, the determination unit 310 determines the environment information of the development result information And determines whether or not to receive the development result information.

여기서, 개발결과정보는, 개발자/데브옵스(DevOps) 파이프라인에서 기본 검증이 완료된 개발빌드결과물(예: War, jar 파일)일 수 있으며, 실행 가능한 특정가상앱(APP)의 기능이 담겨진 파일 개념으로, 그 자체만으로는 실행될 수 없다.Here, the development result information may be a development build result (e.g., War, jar file) that has been basicly verified in the developer / DevOps pipeline, and may include a file concept It can not be executed by itself.

이러한, 개발결과정보에 담겨진 특정가상앱(APP)이 실행되기 위해서는, 개발언어(예: Java, C# 등)가 동작될 수 있도록 하는 기능(예: 런타임(Runtime), 리소스정보 등)과 관련되는 프로그램실행환경정보와, 특정가상앱(APP)이 동작될 수 있도록 하는 기능(예: 라이브러리, 클라이언트 에이전트 등)과 관련되는 프레임워크환경정보(Framework) 등을 포함하는 환경정보가 필요하다.In order for a specific virtual application (APP) contained in the development result information to be executed, it is necessary to use a function (e.g., a runtime, a resource information, etc.) for enabling a development language Environment information including program execution environment information and framework environment information (Framework) related to a function (e.g., library, client agent, etc.) for allowing a specific virtual application (APP) to operate is required.

즉, 환경정보는, 특정가상앱이 가상환경에서 실행되도록 하는 프로그램실행환경정보와 프레임워크환경정보가 풀(Pool)형태를 이루는 하나의 메타데이터세트이거나, 또는 이러한 하나 이상의 메타데이터세트가 구비된 메타데이터그룹일 수 있다. 이하에서는, 환경정보가 메타데이터그룹인 것으로 언급하여 설명하도록 하겠다.That is, the environment information may be a metadata set in which the program execution environment information and the framework environment information for causing a specific virtual application to be executed in a virtual environment form a pool form, Metadata group. Hereinafter, it will be described that the environment information is a metadata group.

결국, 메타데이터그룹에는, 개발자의 설정에 따라 최소 하나의 메타데이터세트가 포함된다. 예를 들어, 특정가상앱(APP)의 개발언어가 "Java"이며, 프로그램실행환경정보에는 개발언어와 관련된 Java런타임이 포함되어야 하며, 프레임워크환경정보에는 특정가상앱(APP)이 동작하는데 필요한 라이브러리1 또는 라이브러리2가 포함될 수 있는 것으로 가정하면, 개발자는 프로그램실행환경정보(Java런타임)와 프레임워크환경정보(라이브러리1)를 메타데이터세트1로 설정하며, 프로그램실행환경정보(Java런타임)와 프레임워크환경정보(라이브러리2)를 메타데이터세트2로 설정한 후, 메타데이터세트1 및 메타데이터세트2를 포함하는 메타데이터그룹을 생성할 수 있다.As a result, the metadata group includes at least one metadata set according to the setting of the developer. For example, the development language of a specific virtual app (APP) is " Java ", the program execution environment information should include the Java runtime related to the development language, and the framework environment information Assuming that library 1 or library 2 can be included, the developer sets the program execution environment information (Java runtime) and framework environment information (library 1) as metadata set 1, and the program execution environment information (Java runtime) After setting the framework environment information (library 2) to the metadata set 2, a metadata group including the metadata set 1 and the metadata set 2 can be created.

이처럼 개발자가 단일 메타데이터세트가 아닌, 메타데이터그룹을 설정하는 것은, 후술하게 될 특정가상앱(APP)에 대한 테스트 과정에서 메타데이터그룹에 포함되는 메타데이터세트가 개발자의 제어 없이도 특정순서에 따라 자동으로 변경되면서 테스트될 수 있도록 하여, 특정가상앱(APP)에 대한 테스트 과정에서 개발자의 개입이 최소화되도록 하기 위함이다.Setting a metadata group instead of a single metadata set as described above means that a metadata set included in a metadata group in a test process for a specific virtual application (APP) to be described later is stored in a specific order So that the developer's intervention in the testing process for a specific virtual app (APP) can be minimized.

이에, 결정부(310)는, 환경정보에 포함되는 메타데이터그룹을 검출하고, 검출된 메타데이터그룹이 특정플랫폼(예: PaaS)에서 지원되는지의 여부를 확인한 결과를 기반으로 개발결과정보에 대한 수신여부를 결정할 수 있게 된다.The determination unit 310 detects the metadata group included in the environment information, and determines whether the detected metadata group is supported by a specific platform (e.g., PaaS) It is possible to decide whether or not to receive.

즉, 메타데이터그룹이 특정플랫폼(예: PaaS)에서 지원되는 경우, 결정부(310)는, 특정가상앱(APP)의 생성이 가능한 것으로 판단한다. 이후, 결정부(310)는, 개발결과정보의 업로드를 요청하는 요청메시지를 생성하고, 이를 개발자단말(100)로 전송한다.That is, when the metadata group is supported by a specific platform (for example, PaaS), the determination unit 310 determines that generation of a specific virtual app (APP) is possible. Then, the determination unit 310 generates a request message for requesting upload of the development result information, and transmits the request message to the developer terminal 100.

한편, 메타데이터그룹이 특정플랫폼(예: PaaS)에서 지원되지 않는 경우, 결정부(310)는, 특정가상앱(APP)의 생성이 불가능한 것으로 판단한다. 이후, 결정부(310)는, 특정가상앱(APP)의 생성이 불가능함을 알리기 위해 종료알림메시지를 생성하고, 이를 개발자단말(100)로 전송한다.On the other hand, when the metadata group is not supported by a specific platform (e.g., PaaS), the determination unit 310 determines that creation of a specific virtual app (APP) is impossible. Then, the determination unit 310 generates a termination notification message to notify that the specific virtual app (APP) can not be generated, and transmits the termination notification message to the developer terminal 100.

전술과 같이 메타데이터그룹이 특정플랫폼(예: PaaS)에서 지원되는지의 여부를 확인하는 것은, 마이크로서비스 별로 생성되는 가상앱이 가상환경에서 실행되기 위해서는 가상앱 별로 요구되는 환경정보가 상이(예: 가상앱1의 런타임 C#, 가상앱2의 런타임 Java)할 수 있는데, 특정플랫폼(예: PaaS)에서 특정런타임(C#런타임)을 지원하지 않는 경우에는 개발결과정보가 업로드되기 이전에 신속하게 해당 가상앱이 지원 불가능함을 개발자에게 알리기 위함이다.As described above, whether or not the metadata group is supported by a specific platform (for example, PaaS) is that in order for a virtual application generated for each microservice to be executed in a virtual environment, the environment information required for each virtual application is different (Runtime C # for virtual app 1, runtime Java for virtual app 2). If a particular platform (e.g. PaaS) does not support a specific runtime (C # runtime) This is to inform the developer that the app is not available.

생성부(320)는, 가상환경에서 실행 가능한 특정가상앱(APP)을 생성한다.The generation unit 320 generates a specific virtual app (APP) executable in the virtual environment.

보다 구체적으로, 생성부(320)는, 개발자단말(100)로부터 특정마이크로서비스와 관련되는 개발결과정보가 업로드된 경우, 개발결과정보와 환경정보를 기반으로 가상환경에서 실행 가능한 특정가상앱(APP)을 생성한다.More specifically, when the development result information related to a specific micro service is uploaded from the developer terminal 100, the generation unit 320 generates a specific virtual application (APP) that can be executed in the virtual environment based on the development result information and environment information ).

여기서, 가상환경은, 특정가상앱(APP)의 테스트 수행과 관련되는 제1 가상환경과, 기 생성된 마이크로서비스와 관련되는 가상앱이 정식으로 상용 배포되어 있는 제2 가상환경을 포함할 수 있다.Here, the virtual environment may include a first virtual environment related to a test execution of a specific virtual application (APP) and a second virtual environment in which a virtual application related to the created micro service is formally commercially distributed .

즉, 생성부(320)는, 제2 가상환경에서 특정마이크로서비스에 해당하는 컨텐츠를 제공하는 기 생성된 해당 가상앱(이하, 기 생성된 해당 가상앱)이 존재하는 지의 여부를 확인한 결과를 기반으로 메타데이터그룹 중 특정메타데이터세트를 선택한다.In other words, the generation unit 320 determines whether or not a corresponding virtual application (hereinafter referred to as a previously created corresponding virtual application) providing content corresponding to a specific micro-service exists in the second virtual environment, A specific metadata set among the metadata groups is selected.

이처럼 기 생성된 해당 가상앱이 제2 가상환경에 존재하는 지의 여부를 확인하는 것은, 특정마이크로서비스가 신규 배포되는 것인지 아니면, 업데이트를 위해 갱신 배포되는 것인지를 확인하기 위함이다.Whether or not the pre-generated virtual application exists in the second virtual environment is to confirm whether the specific micro-service is newly distributed or is updated and updated.

이에, 생성부(320)는, 제2 가상환경에 기 생성된 해당 가상앱이 존재하지 않으면, 특정가상앱(APP)이 신규 배포되는 것으로 판단할 수 있게 되며, 제2 가상환경에 기 생성된 해당 가상앱이 존재하면, 특정가상앱(APP)이 갱신 배포되는 것으로 판단할 수 있게 된다.If the corresponding virtual application created in the second virtual environment does not exist, the generating unit 320 can determine that the specific virtual app (APP) is newly distributed, and if the virtual application is created in the second virtual environment If the virtual application exists, it can be determined that the specific virtual app (APP) is updated and distributed.

이후, 생성부(320)는, 특정가상앱(APP)이 신규 배포인 경우에는, 신규 배포임을 알리는 제1 배포식별자를 특정가상앱(APP)에 매칭하여 저장하며, 특정가상앱(APP)이 갱신 배포인 경우에는, 갱신 배포임을 알리는 제2 배포식별자를 특정가상앱(APP)에 매칭하여 저장한다.Then, when the specific virtual app (APP) is a new distribution, the generating unit 320 matches and stores the first distribution identifier indicating the new distribution to the specific virtual app (APP) In the case of the update distribution, the second distribution identifier indicating the update distribution is matched to the specific virtual app (APP) and stored.

이하에서는, 먼저 신규 배포일 때 특정가상앱(APP)이 생성되는 과정을 살펴보도록 하겠다.Hereinafter, a process of generating a specific virtual app (APP) at the time of new distribution will be described first.

생성부(320)는, 특정가상앱(APP)이 신규 배포인 경우에는, 개발자단말(100)의 개발자가 선정한 우선순위가 높은 메타데이터세트 순서를 기반으로 메타데이터그룹 중 특정메타데이터세트를 결정한다.When the specific virtual app (APP) is newly distributed, the generation unit 320 determines a specific metadata set among the metadata groups based on the metadata set sequence having a high priority selected by the developer of the developer terminal 100 do.

이처럼 특정가상앱(APP)이 신규 배포인 경우에는, 제2 가상환경에서 기 배포된 가상앱 중에서는 특정마이크로서비스에 해당하는 특정컨텐츠가 상용 수준으로 제공되도록 하는데 참고할만한 가상앱이 존재하지 않으므로, 생성부(320)는, 특정가상앱(APP)을 개발한 개발자가 미리 선정한 우선순위가 높은 메타데이터세트 순서를 기반으로 특정메타데이터세트를 결정하게 된다. In the case where the specific virtual app (APP) is a new distribution, since there is no virtual application to which specific contents corresponding to a specific micro service are provided at a commercial level among the virtual apps previously distributed in the second virtual environment, The creator 320 determines a specific metadata set based on a high-priority metadata set sequence previously selected by a developer who has developed a specific virtual app (APP).

즉, 생성부(320)는, 우선순위가 높은 메타데이터세트 순서에 따라 특정메타데이터세트를 결정하여 특정가상앱을 생성한다. That is, the generator 320 determines a specific metadata set according to the metadata set sequence having a high priority, and generates a specific virtual app.

예를 들어, 특정가상앱(APP)에 대한 환경정보로서 2개의 메타데이터세트1,2이 확인되며, 개발자가 미리 선정한 우선순위가 메타데이터세트1>메타데이터세트 2인 경우, 생성부(320)는, 우선순위가 가장 높은 메타데이터세트1을 특정메타데이터세트로 결정한 후 세부 특정가상앱1(이하, 특정가상앱1)을 생성한다. 이후, 생성부(320)는, 다음으로 우선순위가 높은 메타데이터세트2를 특정메타데이터세트로 결정한 후 세부 특정가상앱2(이하, 특정가상앱2)를 생성한다.For example, if two metadata sets 1 and 2 are identified as environment information for a specific virtual application (APP), and the metadata set 1> metadata set 2 is selected in advance by the developer, the generation unit 320 ), After determining the metadata set 1 having the highest priority as a specific metadata set, generates a detailed specific virtual app 1 (hereinafter referred to as a specific virtual app 1). Then, the generation unit 320 generates a detailed specific virtual app 2 (hereinafter referred to as a specific virtual app 2) after determining the next higher priority metadata set 2 as a specific metadata set.

결국, 특정가상앱(APP)에는, 메타데이터세트의 개수(예: 2개)에 대응하는 개수로 생성된 특정가상앱1,2가 포함되게 된다.As a result, the specific virtual app (APP) includes the specific virtual apps 1 and 2 generated in the number corresponding to the number of metadata sets (for example, two).

다음으로, 갱신 배포일 때 특정가상앱(APP)이 생성되는 과정을 살펴보도록 하겠다.Next, let's look at the process of creating a specific virtual app (APP) at the time of update distribution.

생성부(320)는, 특정가상앱(APP)이 갱신 배포인 경우에는, 기 생성된 해당 가상앱에 대한 업데이트를 위해 특정가상앱을 생성하는 것이므로, 기 생성된 해당 가상앱의 메타데이터세트와 관련도가 높은 메타데이터세트 순서를 기반으로 메타데이터그룹 중 특정메타데이터세트를 결정한다.If the specific virtual app (APP) is the update distribution, the generation unit 320 generates a specific virtual application for updating the previously generated virtual application. Therefore, A specific metadata set among the metadata groups is determined based on the order of the metadata sets having a high degree of relevance.

이처럼 특정가상앱(APP)이 갱신 배포인 경우, 제2 가상환경에서 기 배포된 가상앱 중에서는 특정마이크로서비스에 해당하는 특정컨텐츠가 상용 수준으로 제공되도록 하는데 참고할만한 기 생성된 해당 가상앱이 존재하므로, 생성부(320)는, 기 생성된 해당 가상앱의 메타데이터세트와 관련도가 높은 메타데이터세트 순서를 기반으로 메타데이터그룹 중 특정메타데이터세트를 결정하게 된다.In the case where the specific virtual app (APP) is the update distribution, among the virtual apps previously deployed in the second virtual environment, there is a corresponding virtual app that is prepared to provide specific contents corresponding to a specific micro service at a commercial level Therefore, the generator 320 determines a specific metadata set of the metadata group based on the metadata set of the corresponding virtual application, which has been generated, and the order of the metadata set having a high degree of association.

즉, 생성부(320)는, 기 생성된 해당 가상앱의 메타데이터세트와 관련도가 높은 메타데이터세트 순서에 따라 특정메타데이터세트를 결정하여 특정가상앱을 생성한다.That is, the generation unit 320 determines a specific metadata set according to a metadata set sequence having a high degree of association with the meta data set of the created virtual application, and generates a specific virtual app.

이처럼 메타데이터그룹에 포함되는 메타데이터세트(예: Java런타임-라이브러리1, Java런타임-라이브러리2) 중 기 생성된 해당 가상앱의 메타데이터세트(예: Java런타임-라이브러리1)와 관련도가 높은 메타데이터세트 순서를 결정하기 위해서는, 기 생성된 해당 가상앱과 특정가상앱의 개발언어가 동일(예: Java)/호환 가능해야 하며, 기 생성된 해당 가상앱에 해당하는 컨텐츠가 제2 가상환경에서 기준 이상의 서비스 품질을 갖는 것이 바람직할 것이다.As such, it has a high degree of relevance to the metadata set (for example, Java runtime - library 1) of the corresponding virtual application created among the metadata sets (for example, Java runtime - library 1 and Java runtime - library 2) In order to determine the metadata set order, it is necessary that the corresponding developed virtual application and the specific virtual application have the same development language (for example, Java) / compatibility and the content corresponding to the created virtual application is the second virtual environment It is desirable to have a service quality higher than the standard.

이에, 생성부(320)는, 특정가상앱(APP)과 관련되는 메타데이터그룹 내 메타데이터세트를 기 생성된 해당 가상앱의 메타데이터세트와 관련도가 높은 순서로 정렬하고, 정렬된 메타데이터세트 순서에 따라 특정메타데이터세트를 결정하여 특정가상앱을 생성할 수 있게 되는 것이다.The generation unit 320 arranges the metadata sets in the metadata group related to the specific virtual app (APP) in the descending order of degree of association with the metadata sets of the corresponding virtual application, It is possible to create a specific virtual app by determining a specific metadata set according to the set order.

예를 들어, 특정가상앱(APP)에 대한 환경정보로서 2개의 메타데이터세트1(Java런타임-라이브러리1) 및 메타데이터세트2(Java런타임-라이브러리2)가 확인되며, 기 생성된 해당 가상앱의 메타데이터세트(Java런타임-라이브러리1)인 경우, 생성부(320)는, 기 생성된 해당 가상앱의 메타데이터세트(Java런타임-라이브러리1)와의 관련도가 메타데이터세트1(Java런타임-라이브러리1)가 더 높은 것으로 판단하고, 관련도가 높은 순서인 메타데이터세트1(Java런타임-라이브러리1)> 메타데이터세트2(Java런타임-라이브러리2)로 정렬한다. For example, two metadata sets 1 (Java runtime-library 1) and metadata set 2 (Java runtime-library 2) are confirmed as environment information for a specific virtual app (APP) (Java runtime-library 1), the generation unit 320 determines whether the relevance of the generated virtual application's metadata set (Java runtime-library 1) to the meta data set 1 (Java runtime- (Java runtime-library 1)> metadata set 2 (Java runtime-library 2), which is the order of relevance, is determined.

이후, 생성부(320)는, 정렬순서가 높은 메타데이터세트1(Java런타임-라이브러리1)를 특정메타데이터세트로 결정한 후 특정가상앱1을 생성한다. 동일하게, 생성부(320)는, 다음 정렬순서의 메타데이터세트2(Java런타임-라이브러리2)를 특정메타데이터세트로 결정한 후 특정가상앱2를 생성한다.Then, the generating unit 320 generates a specific virtual app 1 after determining the metadata set 1 (Java runtime-library 1) having a high sort order as a specific metadata set. Likewise, the generator 320 creates a specific virtual app 2 after determining the metadata set 2 (Java runtime-library 2) of the next sort order as a specific metadata set.

결국, 특정가상앱(APP)에는, 메타데이터세트의 개수(예: 2개)에 대응하는 개수로 생성된 특정가상앱1,2가 포함되게 된다.As a result, the specific virtual app (APP) includes the specific virtual apps 1 and 2 generated in the number corresponding to the number of metadata sets (for example, two).

운영관리부(330)는, 특정마이크로서비스에 해당하는 특정컨텐츠가 제공될 수 있도록 특정가상앱(APP)을 배포한다.The operation management unit 330 distributes a specific virtual app (APP) so that specific contents corresponding to a specific micro service can be provided.

보다 구체적으로, 운영관리부(330)는, 생성부(320)로부터 특정가상앱(APP)의 생성이 완료되면, 특정가상앱(APP)에 대한 테스트 수행을 위해 제1 가상환경에 특정가상앱(APP)이 배포되도록 제어한다.More specifically, when the generation of the specific virtual app (APP) is completed from the generation unit 320, the operation management unit 330 transmits a specific virtual application (APP) to the first virtual environment APP) is distributed.

이때, 특정가상앱(APP)에는, 메타데이터세트의 개수(예: 2개)에 대응하는 개수로 생성된 특정가상앱1,2가 포함되어 있다. 이하에서는, 설명의 편의 상, 특정가상앱(APP)에 특정가상앱1,2이 포함되어 있으며, 특정가상앱을 구분하는 식별자(1,2)의 순서는 테스트를 수생하는 순서인 것으로 언급하여 설명하도록 하겠다.At this time, the specific virtual app (APP) includes the specific virtual apps 1 and 2 generated in a number corresponding to the number of metadata sets (for example, two). Hereinafter, for convenience of explanation, it is assumed that a specific virtual app (APP) includes specific virtual apps 1 and 2, and the order of identifiers (1, 2) for distinguishing a specific virtual app is referred to as a test order Let me explain.

즉, 운영관리부(330)는, 특정가상앱(APP)에 포함된 특정가상앱1,2를 검출한 후 제1 가상환경에 배포한다. That is, the operation management unit 330 detects specific virtual apps 1 and 2 included in a specific virtual app (APP), and distributes the detected virtual apps 1 and 2 to the first virtual environment.

이후, 운영관리부(330)는, 테스트 수생순서가 앞서는 특정가상앱1로부터 메타데이터세트1을 검출하고, 메타데이터세트1에 포함되는 프로그램실행환경정보(예: Java런타임)와 프레임워크환경정보(예: 라이브러리1)를 기반으로 테스트가 수행되도록 하여 테스트결과1를 생성한다. Thereafter, the operation management unit 330 detects the metadata set 1 from the specific virtual app 1 preceded by the test aquatic order, and stores the program execution environment information (e.g., Java runtime) and framework environment information For example, library 1) to generate a test result 1.

이어서, 운영관리부(330)는, 다음 테스트 수행순서를 갖는 특정가상앱2로부터 메타데이터세트2를 검출하고, 메타데이터세트2에 포함되는 프로그램실행환경정보(예: Java런타임)와 프레임워크환경정보(예: 라이브러리2)를 기반으로 테스트가 수행되도록 하여 테스트결과2를 생성한다.Subsequently, the operation management unit 330 detects the metadata set 2 from the specific virtual app 2 having the next test execution order, and stores the program execution environment information (e.g., Java run time) included in the metadata set 2 and the framework environment information (E.g., library 2) to generate a test result 2.

전술에 따라 특정가상앱(APP)에 포함된 특정가상앱1,2의 테스트결과1,2의 생성이 완료되면, 운영관리부(330)는, 테스트결과1,2 중 기 설정된 기준등급 이상인 테스트결과를 검출한다. 이하에서는, 설명의 편의 상, 테스트결과1이 기준등급 이상인 것으로 언급하여 설명을 이어가도록 하겠다.When generation of the test results 1 and 2 of the specific virtual apps 1 and 2 included in the specific virtual app (APP) is completed according to the above-described procedure, the operation management unit 330 obtains the test result . Hereinafter, for convenience of explanation, it will be described that the test result 1 is equal to or more than the reference grade, and the description will be continued.

여기서, 기준등급은, 특정가상앱(APP)에 포함되는 특정가상앱1,2에 대한 테스트를 수행했을 때 신규/갱신 배포되는 특정가상앱(APP)이 상용 수준의 기능을 갖는지의 여부를 확인하기 위해 개발자에 의해 미리 설정되는 정보일 수 있으며, 다수의 실험/테스트를 통해 획득될 수 있다.Here, the reference level indicates whether or not a particular virtual app (APP) to be newly / updated distributed has a function of a commercial level when the specific virtual apps 1 and 2 included in the specific virtual app (APP) are tested And may be obtained through a number of experiments / tests.

이후, 운영관리부(330)는, 특정가상앱1의 테스트결과1이 상용 수준의 기능을 갖는 것으로 판단하고, 특정가상앱1이 제2 가상환경에 배포될 수 있도록 라우팅정보를 확인한다.Thereafter, the operation management unit 330 determines that the test result 1 of the specific virtual app 1 has a commercial level function, and confirms the routing information so that the specific virtual app 1 can be distributed to the second virtual environment.

이처럼 라우팅정보를 확인하기 위해서는, 특정가상앱(APP)에 매칭되어 있는 배포식별자를 확인한 결과를 기반으로 배포속성이 확인되어야 한다.In order to confirm the routing information, the distribution attribute should be confirmed based on the result of checking the distribution identifier matched to the specific virtual app (APP).

이에, 운영관리부(330)는, 특정가상앱(APP)에 제1 배포식별자가 매칭되어 있으면 특정가상앱(APP)이 신규 배포인 것으로 확인하며, 특정가상앱(APP)에 제2 배포식별자가 매칭되어 있으면 특정가상앱(APP)이 갱신 배포인 것으로 확인한다.Accordingly, if the first distribution identifier is matched to the specific virtual app (APP), the operation management unit 330 confirms that the specific virtual app (APP) is the new distribution, and if the second distribution identifier If it is matched, it is confirmed that the specific virtual app (APP) is the update distribution.

전술에 따라 배포속성을 확인한 결과, 특정가상앱(APP)이 신규 배포 것으로 확인되면, 운영관리부(330)는, 제2 가상환경에 특정가상앱(APP)과 관련되는 기 생성된 해당 가상앱이 존재하지 않을 것이므로, 특정가상앱의 라우팅정보를 신규 설정하여 특정가상앱(APP), 즉 특정가상앱1이 제2 가상환경에 배포되도록 제어한다.If it is confirmed that the specific virtual application (APP) is newly distributed as a result of checking the distribution property in accordance with the above-described procedure, the operation management unit 330 determines whether the corresponding virtual application related to the specific virtual app (APP) Therefore, the routing information of the specific virtual application is newly set and the specific virtual app (APP), that is, the specific virtual app 1 is controlled to be distributed to the second virtual environment.

결국, 운영관리부(330)는, 제1 가상환경에서의 특정가상앱1에 대한 테스트결과가 기 설정된 기준등급이상이고 제2 가상환경에 기 생성된 해당 가상앱이 존재하지 않으면, 특정가상앱(APP), 즉 특정가상앱1이 신규 배포되는 것이므로, 특정가상앱1의 라우팅정보를 신규 설정한다.As a result, when the test result for the specific virtual app 1 in the first virtual environment is equal to or higher than the preset reference level and the corresponding virtual app created in the second virtual environment does not exist, APP), i.e., the specific virtual app 1 is newly distributed, so that the routing information of the specific virtual app 1 is newly set.

한편, 특정가상앱(APP)이 갱신 배포 것으로 확인되면, 운영관리부(330)는, 제2 가상환경에 특정가상앱(APP)과 관련되는 기 생성된 해당 가상앱이 존재할 것이므로, 기 생성된 해당 가상앱 대신 특정가상앱(APP), 즉 특정가상앱1이 제2 가상환경에 배포되도록 라우팅정보를 변경한다.On the other hand, if it is confirmed that the specific virtual app (APP) is update distribution, the operation management unit 330 will have a corresponding virtual application related to the specific virtual app (APP) in the second virtual environment. Instead of a virtual application, a specific virtual application (APP), that is, a specific virtual app 1, is changed to be distributed to the second virtual environment.

결국, 운영관리부(330)는, 제1 가상환경에서의 특정가상앱1에 대한 테스트결과가 기 설정된 기준등급이상이고 제2 가상환경에 기 생성된 해당 가상앱이 존재하면, 특정가상앱(APP), 즉 특정가상앱1이 갱신 배포되는 것이므로, 기 생성된 해당 가상앱의 라우팅정보를 삭제한 후 특정가상앱1의 라우팅정보로 교체한다.If the test result for the specific virtual app 1 in the first virtual environment is equal to or higher than the predetermined reference level and the corresponding virtual app created in the second virtual environment exists, ), That is, the specific virtual app 1 is updated and updated, so that the routing information of the corresponding virtual application is deleted and replaced with the routing information of the specific virtual app 1.

전술과 같이 특정가상앱(APP)에 서로 다른 환경정보를 갖는 세부 특정가상앱들이 구비되도록 함에 따라, 신규/갱신되는 마이크로서비스가 상용 수준의 기능을 갖도록 하기 위해 개발자가 매번 환경정보를 일일이 변경하지 않더라도 다양한 환견정보를 기반으로 동적 테스트를 수행한 효과가 발생되므로, 마이크로서비스 테스트 과정에서의 개발자의 개입을 최소화할 수 있게 되는 것이다.As described above, the detailed virtual appliances having different environment information are provided in a specific virtual app (APP), so that the developer does not change the environment information every time so that the new / updated micro service has commercial level functions It is possible to minimize the intervention of the developer in the micro-service testing process because the dynamic test is performed based on the various types of information.

한편, 장애관리부(350)는, IPTV서비스를 제공하는 과정에서 발생되는 서비스장애를 관리하는 데, 특히 제2 가상환경에 특정가상앱(APP)에 대한 배포가 완료된 이후 발생되는 서비스장애를 원격에서 관리하는 역할을 수행한다. Meanwhile, the failure management unit 350 manages a service failure occurring in the process of providing the IPTV service. In particular, the failure management unit 350 manages a service failure occurring after the distribution of a specific virtual app (APP) It plays a role to manage.

여기서, 서비스장애는, 제2 가상환경에 특정가상앱(APP)에 대한 배포가 완료된 후, 특정마이크로서비스에 해당하는 특정컨텐츠가 고객단말(200)로 제공되는 과정에서 서버 리소스 부족이나 네트워크 문제 등으로 인해 발생되는 응답지연 등일 수 있다. 이하에서는, 설명의 편의 상, 서비스장애가 응답지연인 것으로 언급하여 설명하도록 하겠다.Here, the service failure occurs when a specific virtual application (APP) is distributed to a second virtual environment and specific contents corresponding to the specific micro service are provided to the customer terminal 200, And the like. Hereinafter, for convenience of explanation, it will be described that the service failure is the response delay.

즉, 장애관리부(350)는, 응답지연(latency)이 발생하게 되면, 특정마이크로서비스가 적어도 하나의 지연차단정보가 저장된 해당 저장소를 확인할 수 있도록 원격에서 설정정보를 변경한다.That is, when the latency occurs, the failure management unit 350 changes setting information remotely so that the specific micro-service can check the corresponding storage where at least one delay blocking information is stored.

여기서, 설정정보는, 특정마이크로서비스가 자신에 구비된 전체 저장소 중 적어도 하나의 지연차단정보가 저장된 해당 저장소(예: 운영툴 저장소)를 찾을 수 있도록 하는 파라미터값일 수 있다.Here, the setting information may be a parameter value for allowing a specific micro-service to search for a corresponding storage (e.g., an operation tool storage) storing at least one delay blocking information among the entire storage provided therein.

한편, 지연차단정보는, 기준 이상의 응답지연(latency)이 발생 시, 고객단말(200) 상에 서비스장애 상황이 그대로 노출되는 것을 방지하기 위한 정보(예: 추천 VOD 리스트 등)일 수 있다.On the other hand, the delay blocking information may be information (e.g., a recommended VOD list or the like) for preventing a service fault situation from being exposed directly on the customer terminal 200 when latency above a reference occurs.

이에, 특정마이크로서비스는, 응답지연이 발생하게 되면, 장애관리부(350)로부터 수신되는 설정정보를 기반을 해당 저장소를 검출한 후 해당 저장소에 저장된 지연차단정보를 고객단말(200)로 제공할 수 있게 되는 것이다.Accordingly, when a response delay occurs, the specific micro-service may detect the corresponding storage based on the setting information received from the fault management unit 350 and provide the delay blocking information stored in the corresponding store to the customer terminal 200 It will be.

전술과 같이 장애관리부(350)와 특정마이크로서비스가 원격으로 연동되기 위해서는 특정마이크로서비스 내 운영툴(admin page, Application performance monitoring 툴 등)이나 소스형상관리툴 등이 탑재되는 것이 바람직할 것이다.As described above, it is desirable that a specific micro-service management tool (an application performance monitoring tool or the like) or a source configuration management tool is installed in order to link the fault management unit 350 and a specific micro-service remotely.

즉, 장애관리부(350)로부터 원격에서 설정정보인 파라미터값(예: Circuitbreaker_config_version=1.2)이 수신되면, 특정마이크로서비스 내 운영툴은, 주기적인 폴링/푸시서비스를 이용한 pub/sub 형태로 설정정보의 변경여부를 마이크로서비스로 알리게 된다.That is, when a parameter value (for example, Circuitbreaker_config_version = 1.2), which is setting information, is received remotely from the fault management unit 350, the specific micro-service in-operation tool transmits the setting information in the form of pub / sub using periodic polling / The micro-service will be notified of the change.

이에, 특정마이크로서비스는, 운영툴을 통해 전달되는 설정정보를 기반을 해당 저장소를 검출한 후 해당 저장소에 저장된 지연차단정보를 검출하여 고객단말(200)로 제공할 수 있게 된다.Accordingly, the specific micro-service can detect delay blocking information stored in the corresponding storage after detecting the setting based on the configuration information transmitted through the operation tool, and provide the delay blocking information to the customer terminal 200.

결국, 기존과 달리 특정마이크로서비스의 소스코드에 직접적으로 코딩을 수행하여 빌드한 후 배포하는 과정을 수행하지 않고도, 운영툴에 정해진 저장소에서 설정정보를 검출하게 됨에 따라, 런타임 중에도 별도의 소스코딩, 빌드, 배포과정 없이 무중단으로 지연차단정보를 제공할 수 있게 된다.As a result, the configuration information is detected from the repository defined in the operation tool without performing the process of building and distributing the code directly to the source code of the specific micro service, unlike the conventional method. Therefore, Build, and deploy processes without delay.

이하에서는, 도 3을 참조하여, 본 발명의 실시예에 따른 통신구조 내 구성들의 동작 흐름을 보다 구체적으로 설명하겠다. 도 3에서는 설명의 편의를 위해 전술의 도 1 및 도 2에서 언급한 참조번호를 언급하여 설명하도록 하겠다.Hereinafter, with reference to FIG. 3, the operation flow of the configurations in the communication structure according to the embodiment of the present invention will be described in more detail. In FIG. 3, the reference numerals mentioned in FIGS. 1 and 2 will be described for convenience of explanation.

마이크로서비스관리장치(300) 내 결정부(310)는, 개발자단말(100)의 PaaS툴을 통해 적어도 하나의 마이크로서비스 중 특정마이크로서비스와 관련되는 개발결과정보가 확인되면, 개발결과정보에 대한 환경정보를 확인한 결과를 기반으로 개발결과정보에 대한 수신여부를 결정한다(S100-S107).The determination unit 310 in the micro-service management apparatus 300 determines whether the development result information related to a specific micro-service among at least one micro-service is confirmed through the PaaS tool of the developer terminal 100, And determines whether to receive the development result information based on the result of checking the information (S100-S107).

보다 구체적으로, 결정부(310)는, 환경정보에 포함되는 메타데이터그룹을 검출하고, 검출된 메타데이터그룹이 특정플랫폼(예: PaaS)에서 지원되는지의 여부를 확인한 결과를 기반으로 개발결과정보에 대한 수신여부를 결정한다.More specifically, the determination unit 310 detects the metadata group included in the environment information, and based on the result of checking whether the detected metadata group is supported by a specific platform (e.g., PaaS) As shown in FIG.

즉, 메타데이터그룹이 특정플랫폼(예: PaaS)에서 지원되는 경우, 결정부(310)는, 특정가상앱(APP)의 생성이 가능한 것으로 판단한다. 이후, 결정부(310)는, 개발결과정보의 업로드를 요청하는 요청메시지를 생성하고, 이를 개발자단말(100)로 전송한다.That is, when the metadata group is supported by a specific platform (for example, PaaS), the determination unit 310 determines that generation of a specific virtual app (APP) is possible. Then, the determination unit 310 generates a request message for requesting upload of the development result information, and transmits the request message to the developer terminal 100.

한편, 메타데이터그룹이 특정플랫폼(예: PaaS)에서 지원되지 않는 경우, 결정부(310)는, 특정가상앱(APP)의 생성이 불가능한 것으로 판단한다. 이후, 결정부(310)는, 특정가상앱(APP)의 생성이 불가능함을 알리기 위해 종료알림메시지를 생성하고, 이를 개발자단말(100)로 전송한다.On the other hand, when the metadata group is not supported by a specific platform (e.g., PaaS), the determination unit 310 determines that creation of a specific virtual app (APP) is impossible. Then, the determination unit 310 generates a termination notification message to notify that the specific virtual app (APP) can not be generated, and transmits the termination notification message to the developer terminal 100.

전술에 따라 개발자단말(100)로부터 특정마이크로서비스와 관련되는 개발결과정보가 업로드된 경우, 생성부(320)는, 개발결과정보와 환경정보를 기반으로 가상환경에서 실행 가능한 특정가상앱(APP)을 생성한다(S108-S110).When the development result information related to a specific micro service is uploaded from the developer terminal 100 according to the above description, the generator 320 generates a specific virtual application (APP) executable in the virtual environment based on the development result information and the environment information, (S108 - S110).

여기서, 가상환경은, 특정가상앱(APP)의 테스트 수행과 관련되는 제1 가상환경과, 기 생성된 마이크로서비스와 관련되는 가상앱이 정식으로 상용 배포되어 있는 제2 가상환경을 포함할 수 있다.Here, the virtual environment may include a first virtual environment related to a test execution of a specific virtual application (APP) and a second virtual environment in which a virtual application related to the created micro service is formally commercially distributed .

즉, 생성부(320)는, 제2 가상환경에서 특정마이크로서비스에 해당하는 컨텐츠를 제공하는 기 생성된 해당 가상앱(이하, 기 생성된 해당 가상앱)이 존재하는 지의 여부를 확인한 결과를 기반으로 메타데이터그룹 중 특정메타데이터세트를 선택한다.In other words, the generation unit 320 determines whether or not a corresponding virtual application (hereinafter referred to as a previously created corresponding virtual application) providing content corresponding to a specific micro-service exists in the second virtual environment, A specific metadata set among the metadata groups is selected.

이처럼 기 생성된 해당 가상앱이 제2 가상환경에 존재하는 지의 여부를 확인하는 것은, 특정마이크로서비스가 신규 배포되는 것인지 아니면, 업데이트를 위해 갱신 배포되는 것인지를 확인하기 위함이다.Whether or not the pre-generated virtual application exists in the second virtual environment is to confirm whether the specific micro-service is newly distributed or is updated and updated.

이에, 생성부(320)는, 제2 가상환경에 기 생성된 해당 가상앱이 존재하지 않으면, 특정가상앱(APP)이 신규 배포되는 것으로 판단할 수 있게 되며, 제2 가상환경에 기 생성된 해당 가상앱이 존재하면, 특정가상앱(APP)이 갱신 배포되는 것으로 판단할 수 있게 된다.If the corresponding virtual application created in the second virtual environment does not exist, the generating unit 320 can determine that the specific virtual app (APP) is newly distributed, and if the virtual application is created in the second virtual environment If the virtual application exists, it can be determined that the specific virtual app (APP) is updated and distributed.

이후, 생성부(320)는, 특정가상앱(APP)이 신규 배포인 경우에는, 신규 배포임을 알리는 제1 배포식별자를 특정가상앱(APP)에 매칭하여 저장하며, 특정가상앱(APP)이 갱신 배포인 경우에는, 갱신 배포임을 알리는 제2 배포식별자를 특정가상앱(APP)에 매칭하여 저장한다.Then, when the specific virtual app (APP) is a new distribution, the generating unit 320 matches and stores the first distribution identifier indicating the new distribution to the specific virtual app (APP) In the case of the update distribution, the second distribution identifier indicating the update distribution is matched to the specific virtual app (APP) and stored.

이하에서는, 먼저 신규 배포일 때 특정가상앱(APP)이 생성되는 과정을 살펴보도록 하겠다.Hereinafter, a process of generating a specific virtual app (APP) at the time of new distribution will be described first.

생성부(320)는, 특정가상앱(APP)이 신규 배포인 경우에는, 개발자단말(100)의 개발자가 선정한 우선순위가 높은 메타데이터세트 순서를 기반으로 메타데이터그룹 중 특정메타데이터세트를 결정한다.When the specific virtual app (APP) is newly distributed, the generation unit 320 determines a specific metadata set among the metadata groups based on the metadata set sequence having a high priority selected by the developer of the developer terminal 100 do.

이처럼 특정가상앱(APP)이 신규 배포인 경우에는, 제2 가상환경에서 기 배포된 가상앱 중에서는 특정마이크로서비스에 해당하는 특정컨텐츠가 상용 수준으로 제공되도록 하는데 참고할만한 가상앱이 존재하지 않으므로, 생성부(320)는, 특정가상앱(APP)을 개발한 개발자가 미리 선정한 우선순위가 높은 메타데이터세트 순서를 기반으로 특정메타데이터세트를 결정하게 된다. In the case where the specific virtual app (APP) is a new distribution, since there is no virtual application to which specific contents corresponding to a specific micro service are provided at a commercial level among the virtual apps previously distributed in the second virtual environment, The creator 320 determines a specific metadata set based on a high-priority metadata set sequence previously selected by a developer who has developed a specific virtual app (APP).

즉, 생성부(320)는, 우선순위가 높은 메타데이터세트 순서에 따라 특정메타데이터세트를 결정하여 특정가상앱을 생성한다. That is, the generator 320 determines a specific metadata set according to the metadata set sequence having a high priority, and generates a specific virtual app.

예를 들어, 특정가상앱(APP)에 대한 환경정보로서 2개의 메타데이터세트1,2이 확인되며, 개발자가 미리 선정한 우선순위가 메타데이터세트1>메타데이터세트 2인 경우, 생성부(320)는, 우선순위가 가장 높은 메타데이터세트1을 특정메타데이터세트로 결정한 후 세부 특정가상앱1(이하, 특정가상앱1)을 생성한다. 이후, 생성부(320)는, 다음으로 우선순위가 높은 메타데이터세트2를 특정메타데이터세트로 결정한 후 세부 특정가상앱2(이하, 특정가상앱2)를 생성한다.For example, if two metadata sets 1 and 2 are identified as environment information for a specific virtual application (APP), and the metadata set 1> metadata set 2 is selected in advance by the developer, the generation unit 320 ), After determining the metadata set 1 having the highest priority as a specific metadata set, generates a detailed specific virtual app 1 (hereinafter referred to as a specific virtual app 1). Then, the generation unit 320 generates a detailed specific virtual app 2 (hereinafter referred to as a specific virtual app 2) after determining the next higher priority metadata set 2 as a specific metadata set.

결국, 특정가상앱(APP)에는, 메타데이터세트의 개수(예: 2개)에 대응하는 개수로 생성된 특정가상앱1,2가 포함되게 된다.As a result, the specific virtual app (APP) includes the specific virtual apps 1 and 2 generated in the number corresponding to the number of metadata sets (for example, two).

다음으로, 갱신 배포일 때 특정가상앱(APP)이 생성되는 과정을 살펴보도록 하겠다.Next, let's look at the process of creating a specific virtual app (APP) at the time of update distribution.

생성부(320)는, 특정가상앱(APP)이 갱신 배포인 경우에는, 기 생성된 해당 가상앱에 대한 업데이트를 위해 특정가상앱을 생성하는 것이므로, 기 생성된 해당 가상앱의 메타데이터세트와 관련도가 높은 메타데이터세트 순서를 기반으로 메타데이터그룹 중 특정메타데이터세트를 결정한다.If the specific virtual app (APP) is the update distribution, the generation unit 320 generates a specific virtual application for updating the previously generated virtual application. Therefore, A specific metadata set among the metadata groups is determined based on the order of the metadata sets having a high degree of relevance.

이처럼 특정가상앱(APP)이 갱신 배포인 경우, 제2 가상환경에서 기 배포된 가상앱 중에서는 특정마이크로서비스에 해당하는 특정컨텐츠가 상용 수준으로 제공되도록 하는데 참고할만한 기 생성된 해당 가상앱이 존재하므로, 생성부(320)는, 기 생성된 해당 가상앱의 메타데이터세트와 관련도가 높은 메타데이터세트 순서를 기반으로 메타데이터그룹 중 특정메타데이터세트를 결정하게 된다.In the case where the specific virtual app (APP) is the update distribution, among the virtual apps previously deployed in the second virtual environment, there is a corresponding virtual app that is prepared to provide specific contents corresponding to a specific micro service at a commercial level Therefore, the generator 320 determines a specific metadata set of the metadata group based on the metadata set of the corresponding virtual application, which has been generated, and the order of the metadata set having a high degree of association.

즉, 생성부(320)는, 기 생성된 해당 가상앱의 메타데이터세트와 관련도가 높은 메타데이터세트 순서에 따라 특정메타데이터세트를 결정하여 특정가상앱을 생성한다.That is, the generation unit 320 determines a specific metadata set according to a metadata set sequence having a high degree of association with the meta data set of the created virtual application, and generates a specific virtual app.

이처럼 메타데이터그룹에 포함되는 메타데이터세트(예: Java런타임-라이브러리1, Java런타임-라이브러리2) 중 기 생성된 해당 가상앱의 메타데이터세트(예: Java런타임-라이브러리1)와 관련도가 높은 메타데이터세트 순서를 결정하기 위해서는, 기 생성된 해당 가상앱과 특정가상앱의 개발언어가 동일(예: Java)/호환 가능해야 하며, 기 생성된 해당 가상앱에 해당하는 컨텐츠가 제2 가상환경에서 기준 이상의 서비스 품질을 갖는 것이 바람직할 것이다.As such, it has a high degree of relevance to the metadata set (for example, Java runtime - library 1) of the corresponding virtual application created among the metadata sets (for example, Java runtime - library 1 and Java runtime - library 2) In order to determine the metadata set order, it is necessary that the corresponding developed virtual application and the specific virtual application have the same development language (for example, Java) / compatibility and the content corresponding to the created virtual application is the second virtual environment It is desirable to have a service quality higher than the standard.

이에, 생성부(320)는, 특정가상앱(APP)과 관련되는 메타데이터그룹 내 메타데이터세트를 기 생성된 해당 가상앱의 메타데이터세트와 관련도가 높은 순서로 정렬하고, 정렬된 메타데이터세트 순서에 따라 특정메타데이터세트를 결정하여 특정가상앱을 생성할 수 있게 되는 것이다.The generation unit 320 arranges the metadata sets in the metadata group related to the specific virtual app (APP) in the descending order of degree of association with the metadata sets of the corresponding virtual application, It is possible to create a specific virtual app by determining a specific metadata set according to the set order.

예를 들어, 특정가상앱(APP)에 대한 환경정보로서 2개의 메타데이터세트1(Java런타임-라이브러리1) 및 메타데이터세트2(Java런타임-라이브러리2)가 확인되며, 기 생성된 해당 가상앱의 메타데이터세트(Java런타임-라이브러리1)인 경우, 생성부(320)는, 기 생성된 해당 가상앱의 메타데이터세트(Java런타임-라이브러리1)와의 관련도가 메타데이터세트1(Java런타임-라이브러리1)가 더 높은 것으로 판단하고, 관련도가 높은 순서인 메타데이터세트1(Java런타임-라이브러리1)> 메타데이터세트2(Java런타임-라이브러리2)로 정렬한다. For example, two metadata sets 1 (Java runtime-library 1) and metadata set 2 (Java runtime-library 2) are confirmed as environment information for a specific virtual app (APP) (Java runtime-library 1), the generation unit 320 determines whether the relevance of the generated virtual application's metadata set (Java runtime-library 1) to the meta data set 1 (Java runtime- (Java runtime-library 1)> metadata set 2 (Java runtime-library 2), which is the order of relevance, is determined.

이후, 생성부(320)는, 정렬순서가 높은 메타데이터세트1(Java런타임-라이브러리1)를 특정메타데이터세트로 결정한 후 특정가상앱1을 생성한다. 동일하게, 생성부(320)는, 다음 정렬순서의 메타데이터세트2(Java런타임-라이브러리2)를 특정메타데이터세트로 결정한 후 특정가상앱2를 생성한다.Then, the generating unit 320 generates a specific virtual app 1 after determining the metadata set 1 (Java runtime-library 1) having a high sort order as a specific metadata set. Likewise, the generator 320 creates a specific virtual app 2 after determining the metadata set 2 (Java runtime-library 2) of the next sort order as a specific metadata set.

결국, 특정가상앱(APP)에는, 메타데이터세트의 개수(예: 2개)에 대응하는 개수로 생성된 특정가상앱1,2가 포함되게 된다.As a result, the specific virtual app (APP) includes the specific virtual apps 1 and 2 generated in the number corresponding to the number of metadata sets (for example, two).

전술에 따라 생성부(320)로부터 특정가상앱(APP)의 생성이 완료되면, 운영관리부(330)는, 특정가상앱(APP)에 대한 테스트 수행을 위해 제1 가상환경에 특정가상앱(APP)이 배포되도록 하여 테스트결과가 생성되도록 한 후, 테스트결과를 기반으로 제2 가상환경에 특정가상앱(APP)이 배포되도록 제어한다(S111-S119).When generation of a specific virtual app (APP) is completed in accordance with the above-described procedure, the operation management unit 330 acquires a specific virtual application (APP) in the first virtual environment for performing a test for the specific virtual app (APP) (S111-S119) to distribute the specific virtual application (APP) to the second virtual environment based on the test result.

이때, 특정가상앱(APP)에는, 메타데이터세트의 개수(예: 2개)에 대응하는 개수로 생성된 특정가상앱1,2가 포함되어 있다. 이하에서는, 설명의 편의 상, 특정가상앱(APP)에 특정가상앱1,2이 포함되어 있으며, 특정가상앱을 구분하는 식별자(1,2)의 순서는 테스트를 수생하는 순서인 것으로 언급하여 설명하도록 하겠다.At this time, the specific virtual app (APP) includes the specific virtual apps 1 and 2 generated in a number corresponding to the number of metadata sets (for example, two). Hereinafter, for convenience of explanation, it is assumed that a specific virtual app (APP) includes specific virtual apps 1 and 2, and the order of identifiers (1, 2) for distinguishing a specific virtual app is referred to as a test order Let me explain.

즉, 운영관리부(330)는, 특정가상앱(APP)에 포함된 특정가상앱1,2를 검출한 후 제1 가상환경에 배포하여 테스트결과를 생성한다.That is, the operation management unit 330 detects specific virtual apps 1 and 2 included in a specific virtual app (APP), distributes the virtual apps 1 and 2 to the first virtual environment, and generates a test result.

이후, 운영관리부(330)는, 테스트 수생순서가 앞서는 특정가상앱1로부터 메타데이터세트1을 검출하고, 메타데이터세트1에 포함되는 프로그램실행환경정보(예: Java런타임)와 프레임워크환경정보(예: 라이브러리1)를 기반으로 테스트가 수행되도록 하여 테스트결과1를 생성한다. Thereafter, the operation management unit 330 detects the metadata set 1 from the specific virtual app 1 preceded by the test aquatic order, and stores the program execution environment information (e.g., Java runtime) and framework environment information For example, library 1) to generate a test result 1.

이어서, 운영관리부(330)는, 다음 테스트 수행순서를 갖는 특정가상앱2로부터 메타데이터세트2를 검출하고, 메타데이터세트2에 포함되는 프로그램실행환경정보(예: Java런타임)와 프레임워크환경정보(예: 라이브러리2)를 기반으로 테스트가 수행되도록 하여 테스트결과2를 생성한다.Subsequently, the operation management unit 330 detects the metadata set 2 from the specific virtual app 2 having the next test execution order, and stores the program execution environment information (e.g., Java run time) included in the metadata set 2 and the framework environment information (E.g., library 2) to generate a test result 2.

전술에 따라 특정가상앱(APP)에 포함된 특정가상앱1,2의 테스트결과1,2의 생성이 완료되면, 운영관리부(330)는, 테스트결과1,2 중 기 설정된 기준등급 이상인 테스트결과를 검출한다. 이하에서는, 설명의 편의 상, 테스트결과1이 기준등급 이상인 것으로 언급하여 설명을 이어가도록 하겠다.When generation of the test results 1 and 2 of the specific virtual apps 1 and 2 included in the specific virtual app (APP) is completed according to the above-described procedure, the operation management unit 330 obtains the test result . Hereinafter, for convenience of explanation, it will be described that the test result 1 is equal to or more than the reference grade, and the description will be continued.

여기서, 기준등급은, 특정가상앱(APP)에 포함되는 특정가상앱1,2에 대한 테스트를 수행했을 때 신규/갱신 배포되는 특정가상앱(APP)이 상용 수준의 기능을 갖는지의 여부를 확인하기 위해 개발자에 의해 미리 설정되는 정보일 수 있으며, 다수의 실험/테스트를 통해 획득될 수 있다.Here, the reference level indicates whether or not a particular virtual app (APP) to be newly / updated distributed has a function of a commercial level when the specific virtual apps 1 and 2 included in the specific virtual app (APP) are tested And may be obtained through a number of experiments / tests.

이후, 운영관리부(330)는, 특정가상앱1의 테스트결과1이 상용 수준의 기능을 갖는 것으로 판단하고, 특정가상앱1이 제2 가상환경에 배포될 수 있도록 라우팅정보를 확인한다.Thereafter, the operation management unit 330 determines that the test result 1 of the specific virtual app 1 has a commercial level function, and confirms the routing information so that the specific virtual app 1 can be distributed to the second virtual environment.

이처럼 라우팅정보를 확인하기 위해서는, 특정가상앱(APP)에 매칭되어 있는 배포식별자를 확인한 결과를 기반으로 배포속성이 확인되어야 한다.In order to confirm the routing information, the distribution attribute should be confirmed based on the result of checking the distribution identifier matched to the specific virtual app (APP).

이에, 운영관리부(330)는, 특정가상앱(APP)에 제1 배포식별자가 매칭되어 있으면 특정가상앱(APP)이 신규 배포인 것으로 확인하며, 특정가상앱(APP)에 제2 배포식별자가 매칭되어 있으면 특정가상앱(APP)이 갱신 배포인 것으로 확인한다.Accordingly, if the first distribution identifier is matched to the specific virtual app (APP), the operation management unit 330 confirms that the specific virtual app (APP) is the new distribution, and if the second distribution identifier If it is matched, it is confirmed that the specific virtual app (APP) is the update distribution.

전술에 따라 배포속성을 확인한 결과, 특정가상앱(APP)이 신규 배포 것으로 확인되면, 운영관리부(330)는, 제2 가상환경에 특정가상앱(APP)과 관련되는 기 생성된 해당 가상앱이 존재하지 않을 것이므로, 특정가상앱의 라우팅정보를 신규 설정하여 특정가상앱(APP), 즉 특정가상앱1이 제2 가상환경에 배포되도록 제어한다.If it is confirmed that the specific virtual application (APP) is newly distributed as a result of checking the distribution property in accordance with the above-described procedure, the operation management unit 330 determines whether the corresponding virtual application related to the specific virtual app (APP) Therefore, the routing information of the specific virtual application is newly set and the specific virtual app (APP), that is, the specific virtual app 1 is controlled to be distributed to the second virtual environment.

결국, 운영관리부(330)는, 제1 가상환경에서의 특정가상앱1에 대한 테스트결과가 기 설정된 기준등급이상이고 제2 가상환경에 기 생성된 해당 가상앱이 존재하지 않으면, 특정가상앱(APP), 즉 특정가상앱1이 신규 배포되는 것이므로, 특정가상앱1의 라우팅정보를 신규 설정한다.As a result, when the test result for the specific virtual app 1 in the first virtual environment is equal to or higher than the preset reference level and the corresponding virtual app created in the second virtual environment does not exist, APP), i.e., the specific virtual app 1 is newly distributed, so that the routing information of the specific virtual app 1 is newly set.

한편, 특정가상앱(APP)이 갱신 배포 것으로 확인되면, 운영관리부(330)는, 제2 가상환경에 특정가상앱(APP)과 관련되는 기 생성된 해당 가상앱이 존재할 것이므로, 기 생성된 해당 가상앱 대신 특정가상앱(APP), 즉 특정가상앱1이 제2 가상환경에 배포되도록 라우팅정보를 변경한다.On the other hand, if it is confirmed that the specific virtual app (APP) is update distribution, the operation management unit 330 will have a corresponding virtual application related to the specific virtual app (APP) in the second virtual environment. Instead of a virtual application, a specific virtual application (APP), that is, a specific virtual app 1, is changed to be distributed to the second virtual environment.

결국, 운영관리부(330)는, 제1 가상환경에서의 특정가상앱1에 대한 테스트결과가 기 설정된 기준등급이상이고 제2 가상환경에 기 생성된 해당 가상앱이 존재하면, 특정가상앱(APP), 즉 특정가상앱1이 갱신 배포되는 것이므로, 기 생성된 해당 가상앱의 라우팅정보를 삭제한 후 특정가상앱1의 라우팅정보로 교체한다.If the test result for the specific virtual app 1 in the first virtual environment is equal to or higher than the predetermined reference level and the corresponding virtual app created in the second virtual environment exists, ), That is, the specific virtual app 1 is updated and updated, so that the routing information of the corresponding virtual application is deleted and replaced with the routing information of the specific virtual app 1.

전술과 같이 특정가상앱(APP)에 서로 다른 환경정보를 갖는 세부 특정가상앱들이 구비되도록 함에 따라, 신규/갱신되는 마이크로서비스가 상용 수준의 기능을 갖도록 하기 위해 개발자가 매번 환경정보를 일일이 변경하지 않더라도 다양한 환견정보를 기반으로 동적 테스트를 수행한 효과가 발생되므로, 마이크로서비스 테스트 과정에서의 개발자의 개입을 최소화할 수 있게 되는 것이다.As described above, the detailed virtual appliances having different environment information are provided in a specific virtual app (APP), so that the developer does not change the environment information every time so that the new / updated micro service has commercial level functions It is possible to minimize the intervention of the developer in the micro-service testing process because the dynamic test is performed based on the various types of information.

전술에 따라 라우팅정보의 신규설정/변경이 완료되면, 고객단말(200)은, 특정마이크로서비스에 해당하는 특정컨텐츠를 수신할 수 있게 된다.When the new setting / changing of the routing information is completed in accordance with the above-described procedure, the customer terminal 200 can receive the specific contents corresponding to the specific micro-service.

한편, 장애관리부(350)는, 제2 가상환경에 특정가상앱(APP)이 배포된 후 특정컨텐츠가 제공되는 과정에서 발생되는 서비스장애를 원격에서 관리한다(S120-S123). Meanwhile, the failure management unit 350 remotely manages the service failure occurring in the process of providing the specific content after the specific virtual app (APP) is distributed in the second virtual environment (S120-S123).

여기서, 서비스장애는, 제2 가상환경에 특정가상앱(APP)에 대한 배포가 완료된 후, 특정마이크로서비스에 해당하는 특정컨텐츠가 고객단말(200)로 제공되는 과정에서 서버 리소스 부족이나 네트워크 문제 등으로 인해 발생되는 응답지연 등일 수 있다. 이하에서는, 설명의 편의 상, 서비스장애가 응답지연인 것으로 언급하여 설명하도록 하겠다.Here, the service failure occurs when a specific virtual application (APP) is distributed to a second virtual environment and specific contents corresponding to the specific micro service are provided to the customer terminal 200, And the like. Hereinafter, for convenience of explanation, it will be described that the service failure is the response delay.

즉, 장애관리부(350)는, 응답지연(latency)이 발생하게 되면, 특정마이크로서비스가 적어도 하나의 지연차단정보가 저장된 해당 저장소를 확인할 수 있도록 원격에서 설정정보를 변경한다.That is, when the latency occurs, the failure management unit 350 changes setting information remotely so that the specific micro-service can check the corresponding storage where at least one delay blocking information is stored.

여기서, 설정정보는, 특정마이크로서비스가 자신에 구비된 전체 저장소 중 적어도 하나의 지연차단정보가 저장된 해당 저장소(예: 운영툴 저장소)를 찾을 수 있도록 하는 파라미터값일 수 있다.Here, the setting information may be a parameter value for allowing a specific micro-service to search for a corresponding storage (e.g., an operation tool storage) storing at least one delay blocking information among the entire storage provided therein.

한편, 지연차단정보는, 기준 이상의 응답지연(latency)이 발생 시, 고객단말(200) 상에 서비스장애 상황이 그대로 노출되는 것을 방지하기 위한 정보(예: 추천 VOD 리스트 등)일 수 있다.On the other hand, the delay blocking information may be information (e.g., a recommended VOD list or the like) for preventing a service fault situation from being exposed directly on the customer terminal 200 when latency above a reference occurs.

이에, 특정마이크로서비스는, 응답지연이 발생하게 되면, 장애관리부(350)로부터 수신되는 설정정보를 기반을 해당 저장소를 검출한 후 해당 저장소에 저장된 지연차단정보를 고객단말(200)로 제공할 수 있게 되는 것이다.Accordingly, when a response delay occurs, the specific micro-service may detect the corresponding storage based on the setting information received from the fault management unit 350 and provide the delay blocking information stored in the corresponding store to the customer terminal 200 It will be.

결국, 기존과 달리 특정마이크로서비스의 소스코드에 직접적으로 코딩을 수행하여 빌드한 후 배포하는 과정을 수행하지 않고도, 운영툴에 정해진 저장소에서 설정정보를 검출하게 됨에 따라, 런타임 중에도 별도의 소스코딩, 빌드, 배포과정 없이 무중단으로 지연차단정보를 제공할 수 있게 된다.As a result, the configuration information is detected from the repository defined in the operation tool without performing the process of building and distributing the code directly to the source code of the specific micro service, unlike the conventional method. Therefore, Build, and deploy processes without delay.

이상에서 설명한 바와 같이 본 발명에 따른 마이크로서비스관리장치 및 방법에 의하면, 마이크로서비스(microservice) 제공에 최적화된 마이크로서비스 개발환경이 실현되도록 함으로써, 기존과 달리 마이크로서비스 테스트 과정에서의 개발자의 개입을 최소화할 수 있어 서비스 이용에 따른 사용자 만족도를 향상시킬 수 있음은 물론, 트래픽 변경이 빈번하게 발생하는 상황에서도 신속하고 안정적으로 마이크로서비스를 제공할 수 있어 전반적인 마이크로서비스의 성능을 향상시키는 효과를 도출한다. As described above, according to the micro-service management apparatus and method of the present invention, a micro-service development environment optimized for provision of a micro-service is realized, thereby minimizing the developer's intervention in the micro-service testing process It is possible to improve the user satisfaction according to the use of the service, and it is possible to provide the micro service quickly and stably even when the traffic change frequently occurs, thereby improving the performance of the overall micro service.

본 발명의 실시예들은, 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.Embodiments of the present invention may be implemented in the form of program instructions that can be executed through various computer means and recorded on a computer readable medium. The computer-readable medium may include program instructions, data files, data structures, and the like, alone or in combination. The program instructions recorded on the medium may be those specially designed and constructed for the present invention or may be available to those skilled in the art of computer software. Examples of computer-readable media include magnetic media such as hard disks, floppy disks and magnetic tape; optical media such as CD-ROMs and DVDs; magnetic media such as floppy disks; Magneto-optical media, and hardware devices specifically configured to store and execute program instructions such as ROM, RAM, flash memory, and the like. Examples of program instructions include machine language code such as those produced by a compiler, as well as high-level language code that can be executed by a computer using an interpreter or the like. The hardware devices described above may be configured to operate as one or more software modules to perform the operations of the present invention, and vice versa.

지금까지 본 발명을 바람직한 실시 예를 참조하여 상세히 설명하였지만, 본 발명이 상기한 실시 예에 한정되는 것은 아니며, 이하의 특허청구범위에서 청구하는 본 발명의 요지를 벗어남이 없이 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 누구든지 다양한 변형 또는 수정이 가능한 범위까지 본 발명의 기술적 사상이 미친다 할 것이다.While the present invention has been particularly shown and described with reference to exemplary embodiments thereof, it is to be understood that the invention is not limited to the disclosed exemplary embodiments, but, on the contrary, It will be understood by those skilled in the art that various changes in form and details may be made therein without departing from the spirit and scope of the invention as defined by the appended claims.

본 발명의 마이크로서비스관리장치 및 방법에 따르면, 마이크로서비스(microservice) 제공에 최적화된 마이크로서비스 개발환경이 실현되도록 함으로써, 기존과 달리 마이크로서비스 테스트 과정에서의 개발자의 개입을 최소화할 수 있으며, 트래픽 변경이 빈번하게 발생하는 상황에서도 안정적으로 마이크로서비스를 제공할 수 있다는 점에서, 기존 기술의 한계를 뛰어 넘음에 따라 관련 기술에 대한 이용만이 아닌 적용되는 장치의 시판 또는 영업의 가능성이 충분할 뿐만 아니라 현실적으로 명백하게 실시할 수 있는 정도이므로 산업상 이용가능성이 있는 발명이다.According to the micro-service management apparatus and method of the present invention, a micro-service development environment optimized for provision of a micro-service can be realized, thereby minimizing developer intervention in the micro-service testing process, Since the micro-service can be stably provided even in a frequent occurrence, the possibility of commercialization or sales of the applicable device, not only the use of the related technology but the existing technology, is sufficient, This is an invention that is industrially applicable because it can be practically done.

100 : 개발자단말 200 : 고객단말
300 : 마이크로서비스관리장치 310 : 결정부
320 : 생성부 330 : 운영관리부
340 : 가상환경관리부 330 : 장애관리부
360 : 게이트웨이
100: Developer terminal 200: Customer terminal
300: Micro-service management apparatus 310:
320: Generation unit 330: Operation management unit
340: virtual environment management unit 330:
360: Gateway

Claims (14)

개발자단말로부터 적어도 하나의 마이크로서비스 중 특정마이크로서비스와 관련되는 개발결과정보가 확인되는 경우, 상기 개발결과정보에 대한 환경정보를 확인한 결과를 기반으로 상기 개발결과정보에 대한 수신여부를 결정하는 결정부;
상기 개발자단말로부터 상기 개발결과정보가 업로드된 경우, 상기 개발결과정보와 상기 환경정보를 기반으로 가상환경에서 실행 가능한 특정가상앱을 생성하는 생성부; 및
상기 특정마이크로서비스에 해당하는 특정컨텐츠가 제공될 수 있도록 상기 특정가상앱을 배포하는 운영관리부
를 포함하며,
상기 생성부는,
상기 가상환경에 기 생성된 해당 가상앱이 존재하지 않으면, 상기 특정가상앱이 신규 배포되는 것으로 판단하며, 상기 개발자단말의 개발자가 선정한 우선순위가 높은 메타데이터세트 순서를 기반으로 메타데이터세트를 결정하며,
상기 가상환경에 상기 기 생성된 해당 가상앱이 존재하면, 상기 특정컨텐츠의 업데이트를 수행하기 위해 갱신 배포되는 것으로 판단하여, 상기 기 생성된 해당 가상앱의 메타데이터세트와의 관련도를 기반으로 메타데이터세트를 결정하는 것을 특징으로 하는 마이크로서비스관리장치.
Determining whether to receive the development result information based on a result of checking environment information on the development result information when development result information related to a specific micro service among at least one micro service is identified from the developer terminal, ;
A generation unit configured to generate a specific virtual application executable in a virtual environment based on the development result information and the environment information when the development result information is uploaded from the developer terminal; And
And an operation management unit for distributing the specific virtual application so that specific contents corresponding to the specific micro-
/ RTI >
Wherein the generation unit comprises:
Determining that the specific virtual application is newly distributed if the corresponding virtual application already created in the virtual environment does not exist and determining a metadata set based on the metadata set sequence having a high priority selected by the developer of the developer terminal In addition,
Determining whether the corresponding virtual application exists in the virtual environment and updating and distributing the virtual application in order to update the specific content; Wherein the data set is determined based on the data set.
제 1 항에 있어서,
상기 환경정보는 상기 특정가상앱이 가상환경에서 실행되도록 하는 풀(Pool)형태의 메타데이터그룹을 포함하며,
상기 결정부는,
상기 메타데이터그룹이 특정플랫폼에서 지원되는지의 여부를 확인한 결과를 기반으로 상기 개발결과정보에 대한 수신여부를 결정하는 것을 특징을 하는 마이크로서비스관리장치.
The method according to claim 1,
The environment information includes a pool-type metadata group for allowing the specific virtual application to be executed in a virtual environment,
Wherein,
And determines whether to receive the development result information based on a result of checking whether the metadata group is supported by a specific platform.
제 2 항에 있어서,
상기 결정부는,
상기 메타데이터그룹이 상기 특정플랫폼에서 지원되는 경우, 상기 특정가상앱의 생성이 가능한 것으로 판단하여 상기 개발결과정보의 업로드를 요청하는 요청메시지를 상기 개발자단말로 전송하며,
상기 메타데이터그룹이 상기 특정플랫폼에서 지원되지 않는 경우, 상기 특정가상앱의 생성이 불가능한 것으로 판단하여 종료알림메시지를 상기 개발자단말로 전송하는 것을 특징으로 하는 마이크로서비스관리장치.
3. The method of claim 2,
Wherein,
And transmits a request message for requesting upload of the development result information to the developer terminal when it is determined that generation of the specific virtual application is possible when the metadata group is supported by the specific platform,
And transmits the end notification message to the developer terminal when it is determined that the specific virtual application can not be generated if the metadata group is not supported by the specific platform.
제 2 항에 있어서,
상기 가상환경은,
상기 특정가상앱의 테스트 수행과 관련되는 제1 가상환경과, 기 생성된 마이크로서비스와 관련되는 가상앱이 정식으로 상용 배포되어 있는 제2 가상환경을 포함하며,
상기 생성부는,
상기 제2 가상환경에 상기 특정컨텐츠를 제공하는 기 생성된 해당 가상앱이 존재하는지의 여부를 확인한 결과를 기반으로 상기 메타데이터그룹 중 특정메타데이터세트를 선택하고, 상기 특정메타데이터세트와 상기 개발결과정보를 패키징하여 상기 특정가상앱을 생성하는 것을 특징으로 하는 마이크로서비스관리장치.
3. The method of claim 2,
The virtual environment includes:
A first virtual environment related to the test execution of the specific virtual application and a second virtual environment in which a virtual application related to the created micro service is formally commercially distributed,
Wherein the generation unit comprises:
Selecting a specific metadata set among the metadata groups based on a result of checking whether a corresponding virtual application that provides the specific content is present in the second virtual environment, And package the result information to generate the specific virtual application.
제 4 항에 있어서,
상기 생성부는,
상기 제2 가상환경에 상기 기 생성된 해당 가상앱이 존재하지 않으면, 상기 특정가상앱이 신규 배포되는 것으로 판단하며, 상기 개발자단말의 개발자가 선정한 우선순위가 높은 메타데이터세트 순서를 기반으로 상기 메타데이터그룹 중 상기 특정메타데이터세트를 결정하며,
상기 제2 가상환경에 상기 기 생성된 해당 가상앱이 존재하면, 상기 특정컨텐츠의 업데이트를 수행하기 위해 갱신 배포되는 것으로 판단하여, 상기 기 생성된 해당 가상앱의 메타데이터세트와 관련도가 높은 메타데이터세트 순서를 기반으로 상기 메타데이터그룹 중 상기 특정메타데이터세트를 결정하는 것을 특징으로 하는 마이크로서비스관리장치.
5. The method of claim 4,
Wherein the generation unit comprises:
Determining that the specific virtual application is newly distributed if the pre-generated virtual application does not exist in the second virtual environment, and determining whether the specific virtual application is newly distributed based on the meta data set sequence having a high priority selected by the developer of the developer terminal Determining the particular metadata set of data groups,
Determining whether the corresponding virtual application exists in the second virtual environment and updating and distributing the updated virtual application in order to update the specific content; Wherein the specific metadata set of the metadata group is determined based on a data set order.
제 5 항에 있어서,
상기 운영관리부는,
상기 제1 가상환경에서의 상기 특정가상앱에 대한 테스트결과가 기 설정된 기준등급이상이고 상기 제2 가상환경에 상기 기 생성된 해당 가상앱이 존재하는 경우, 상기 기 생성된 해당 가상앱 대신 상기 특정가상앱이 배포되도록 라우팅정보를 변경하며,
상기 제1 가상환경에서의 상기 특정가상앱에 대한 테스트결과가 기 설정된 기준등급이상이고 상기 제2 가상환경에 상기 기 생성된 해당 가상앱이 존재하지 않는 경우, 상기 특정가상앱의 라우팅정보를 신규 설정하는 것을 특징으로 하는 마이크로서비스관리장치.
6. The method of claim 5,
The operation management unit,
When the test result of the specific virtual application in the first virtual environment is equal to or higher than a predetermined reference level and the pre-created corresponding virtual application exists in the second virtual environment, Change the routing information so that the virtual app is deployed,
If the test result of the specific virtual application in the first virtual environment is equal to or higher than a preset reference level and the pre-created corresponding virtual application does not exist in the second virtual environment, The micro-service management apparatus comprising:
제 4 항에 있어서,
상기 제2 가상환경에 상기 특정가상앱에 대한 배포가 완료된 후 상기 특정마이크로서비스에서 기준 이상의 응답지연이 발생하는 경우, 상기 특정마이크로서비스가 기 설정된 저장소에서 지연차단정보를 확인할 수 있도록 원격에서 설정정보를 변경하는 장애관리부를 더 포함하는 것을 특징으로 하는 마이크로서비스관리장치.
5. The method of claim 4,
When a response delay of a criterion or more occurs in the specific micro-service after the distribution of the specific virtual application is completed in the second virtual environment, the setting micro- And a failure management unit for changing the micro-service management unit.
개발자단말로부터 적어도 하나의 마이크로서비스 중 특정마이크로서비스와 관련되는 개발결과정보가 확인되는 경우, 상기 개발결과정보에 대한 환경정보를 확인한 결과를 기반으로 상기 개발결과정보에 대한 수신여부를 결정하는 결정단계;
상기 개발자단말로부터 상기 개발결과정보가 업로드된 경우, 상기 개발결과정보와 상기 환경정보를 기반으로 가상환경에서 실행 가능한 특정가상앱을 생성하는 생성단계; 및
상기 특정마이크로서비스에 해당하는 특정컨텐츠가 제공될 수 있도록 상기 특정가상앱을 배포하는 운영관리단계
를 포함하며,
상기 생성단계는,
상기 가상환경에 기 생성된 해당 가상앱이 존재하지 않으면, 상기 특정가상앱이 신규 배포되는 것으로 판단하며, 상기 개발자단말의 개발자가 선정한 우선순위가 높은 메타데이터세트 순서를 기반으로 메타데이터세트를 결정하며,
상기 가상환경에 상기 기 생성된 해당 가상앱이 존재하면, 상기 특정컨텐츠의 업데이트를 수행하기 위해 갱신 배포되는 것으로 판단하여, 상기 기 생성된 해당 가상앱의 메타데이터세트와의 관련도를 기반으로 메타데이터세트를 결정하는 것을 특징으로 하는 마이크로서비스관리장치의 동작방법.
A determination step of determining whether to receive the development result information based on a result of checking environment information on the development result information when development result information related to a specific micro service among at least one micro service is identified from a developer terminal ;
A generation step of generating a specific virtual application executable in a virtual environment based on the development result information and the environment information when the development result information is uploaded from the developer terminal; And
An operation management step of distributing the specific virtual application so that specific contents corresponding to the specific micro service can be provided
/ RTI >
Wherein the generating comprises:
Determining that the specific virtual application is newly distributed if the corresponding virtual application already created in the virtual environment does not exist and determining a metadata set based on the metadata set sequence having a high priority selected by the developer of the developer terminal In addition,
Determining whether the corresponding virtual application exists in the virtual environment and updating and distributing the virtual application in order to update the specific content; Wherein the data set is determined based on the data set.
제 8 항에 있어서,
상기 환경정보는 상기 특정가상앱이 가상환경에서 실행되도록 하는 풀(Pool)형태의 메타데이터그룹을 포함하며,
상기 결정단계는,
상기 메타데이터그룹이 특정플랫폼에서 지원되는지의 여부를 확인한 결과를 기반으로 상기 개발결과정보에 대한 수신여부를 결정하는 것을 특징을 하는 마이크로서비스관리장치의 동작방법.
9. The method of claim 8,
The environment information includes a pool-type metadata group for allowing the specific virtual application to be executed in a virtual environment,
Wherein,
And determining whether to receive the development result information based on a result of checking whether the metadata group is supported by a specific platform.
제 9 항에 있어서,
상기 결정단계는,
상기 메타데이터그룹이 상기 특정플랫폼에서 지원되는 경우, 상기 특정가상앱의 생성이 가능한 것으로 판단하여 상기 개발결과정보의 업로드를 요청하는 요청메시지를 상기 개발자단말로 전송하며,
상기 메타데이터그룹이 상기 특정플랫폼에서 지원되지 않는 경우, 상기 특정가상앱의 생성이 불가능한 것으로 판단하여 종료알림메시지를 상기 개발자단말로 전송하는 것을 특징으로 하는 마이크로서비스관리장치의 동작방법.
10. The method of claim 9,
Wherein,
And transmits a request message for requesting upload of the development result information to the developer terminal when it is determined that generation of the specific virtual application is possible when the metadata group is supported by the specific platform,
Wherein if the metadata group is not supported by the specific platform, it is determined that the specific virtual application can not be created, and the end notification message is transmitted to the developer terminal.
제 9 항에 있어서,
상기 가상환경은,
상기 특정가상앱의 테스트 수행과 관련되는 제1 가상환경과, 기 생성된 마이크로서비스와 관련되는 가상앱이 정식으로 상용 배포되어 있는 제2 가상환경을 포함하며,
상기 생성단계는,
상기 제2 가상환경에 상기 특정컨텐츠를 제공하는 기 생성된 해당 가상앱이 존재하는지의 여부를 확인한 결과를 기반으로 상기 메타데이터그룹 중 특정메타데이터세트를 선택하고, 상기 특정메타데이터세트와 상기 개발결과정보를 패키징하여 상기 특정가상앱을 생성하는 것을 특징으로 하는 마이크로서비스관리장치의 동작방법.
10. The method of claim 9,
The virtual environment includes:
A first virtual environment related to the test execution of the specific virtual application and a second virtual environment in which a virtual application related to the created micro service is formally commercially distributed,
Wherein the generating comprises:
Selecting a specific metadata set among the metadata groups based on a result of checking whether a corresponding virtual application that provides the specific content is present in the second virtual environment, And the result information is packaged to generate the specific virtual application.
제 11 항에 있어서,
상기 생성단계는,
상기 제2 가상환경에 상기 기 생성된 해당 가상앱이 존재하지 않으면, 상기 특정가상앱이 신규 배포되는 것으로 판단하며, 상기 개발자단말의 개발자가 선정한 우선순위가 높은 메타데이터세트 순서를 기반으로 상기 메타데이터그룹 중 상기 특정메타데이터세트를 결정하며,
상기 제2 가상환경에 상기 기 생성된 해당 가상앱이 존재하면, 상기 특정컨텐츠의 업데이트를 수행하기 위해 갱신 배포되는 것으로 판단하여, 상기 기 생성된 해당 가상앱의 메타데이터세트와 관련도가 높은 메타데이터세트 순서를 기반으로 상기 메타데이터그룹 중 상기 특정메타데이터세트를 결정하는 것을 특징으로 하는 마이크로서비스관리장치의 동작방법.
12. The method of claim 11,
Wherein the generating comprises:
Determining that the specific virtual application is newly distributed if the pre-generated virtual application does not exist in the second virtual environment, and determining whether the specific virtual application is newly distributed based on the meta data set sequence having a high priority selected by the developer of the developer terminal Determining the particular metadata set of data groups,
Determining whether the corresponding virtual application exists in the second virtual environment and updating and distributing the updated virtual application in order to update the specific content; Wherein the specific metadata set of the metadata group is determined based on the data set order.
제 12 항에 있어서,
상기 운영관리단계는,
상기 제1 가상환경에서의 상기 특정가상앱에 대한 테스트결과가 기 설정된 기준등급이상이고 상기 제2 가상환경에 상기 기 생성된 해당 가상앱이 존재하는 경우, 상기 기 생성된 해당 가상앱 대신 상기 특정가상앱이 배포되도록 라우팅정보를 변경하며,
상기 제1 가상환경에서의 상기 특정가상앱에 대한 테스트결과가 기 설정된 기준등급이상이고 상기 제2 가상환경에 상기 기 생성된 해당 가상앱이 존재하지 않는 경우, 상기 특정가상앱의 라우팅정보를 신규 설정하는 것을 특징으로 하는 마이크로서비스관리장치의 동작방법.
13. The method of claim 12,
Wherein the operation management step comprises:
When the test result of the specific virtual application in the first virtual environment is equal to or higher than a predetermined reference level and the pre-created corresponding virtual application exists in the second virtual environment, Change the routing information so that the virtual app is deployed,
If the test result of the specific virtual application in the first virtual environment is equal to or higher than a preset reference level and the pre-created corresponding virtual application does not exist in the second virtual environment, Wherein the micro-service management apparatus comprises:
제 11 항에 있어서,
상기 제2 가상환경에 상기 특정가상앱에 대한 배포가 완료된 후 상기 특정마이크로서비스에서 기준 이상의 응답지연이 발생하는 경우, 상기 특정마이크로서비스가 기 설정된 저장소에서 지연차단정보를 확인할 수 있도록 원격에서 설정정보를 변경하는 장애관리단계를 더 포함하는 것을 특징으로 하는 마이크로서비스관리장치의 동작방법.
12. The method of claim 11,
When a response delay of a criterion or more occurs in the specific micro-service after the distribution of the specific virtual application is completed in the second virtual environment, the setting micro- And a failure management step of changing the operation mode of the micro-service management apparatus.
KR1020170090456A 2017-07-17 2017-07-17 Apparatus and method for managing microservice KR101977602B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020170090456A KR101977602B1 (en) 2017-07-17 2017-07-17 Apparatus and method for managing microservice

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170090456A KR101977602B1 (en) 2017-07-17 2017-07-17 Apparatus and method for managing microservice

Publications (2)

Publication Number Publication Date
KR20190008724A KR20190008724A (en) 2019-01-25
KR101977602B1 true KR101977602B1 (en) 2019-05-13

Family

ID=65280586

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170090456A KR101977602B1 (en) 2017-07-17 2017-07-17 Apparatus and method for managing microservice

Country Status (1)

Country Link
KR (1) KR101977602B1 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110380936B (en) * 2019-07-23 2021-05-14 中国工商银行股份有限公司 Test method and device
KR102109461B1 (en) * 2020-02-17 2020-05-12 주식회사 제이윈파트너스 Project Automation Assistance System with Micro Service Architecture

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101359690B1 (en) * 2009-12-18 2014-02-10 한국전자통신연구원 Online development environment server, online marketplace server, online development environment building method and developed application service method

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
XENONSTACK, 마이크로 서비스 아키텍처의 테스트 전략, 2017*

Also Published As

Publication number Publication date
KR20190008724A (en) 2019-01-25

Similar Documents

Publication Publication Date Title
US11604700B2 (en) Virtual machine
US10146524B1 (en) Preemptive deployment in software deployment pipelines
US9652211B2 (en) Policy management of deployment plans
US8402437B2 (en) System and method for updating initialization parameters for application software from within a software development environment
US8443361B2 (en) Systems and methods for tracking a history of changes associated with software packages in a computing system
US9772837B2 (en) Dynamic delivery of code and fixes
US20160162283A1 (en) Dependency manager for databases
US11314524B2 (en) Method, apparatus, and computer program product for managing service container
US10949401B2 (en) Data replication in site recovery environment
KR101748833B1 (en) Software failure locating method, apparatus and equipment
US20100312879A1 (en) Plug-in provisioning integration in a clustered environment
US20150269062A1 (en) Defining test bed requirements
US20170371641A1 (en) Multi-tenant upgrading
US20130254758A1 (en) Application Construction for Execution on Diverse Computing Infrastructures
US10019345B2 (en) Executing multi-version tests against a multi-version application
CN111831567B (en) Application test environment configuration method, device, system and medium
KR101977602B1 (en) Apparatus and method for managing microservice
US8719622B2 (en) Recording and preventing crash in an appliance
US9288252B2 (en) Managing web services using a reverse proxy
US10375202B2 (en) Database selection in distributed computing systems
US10713014B2 (en) Multi-platform interface framework
CN112667491B (en) Function test method and device for virtual machine
US10911307B2 (en) System and method for out of the box solution-level configuration and diagnostic logging and reporting
US10140155B2 (en) Dynamically provisioning, managing, and executing tasks
CN105610908B (en) A kind of samba service implementing method and system based on Android device

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant