KR101977602B1 - 마이크로서비스관리장치 및 방법 - Google Patents
마이크로서비스관리장치 및 방법 Download PDFInfo
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 49
- 238000011161 development Methods 0.000 claims abstract description 71
- 238000012360 testing method Methods 0.000 claims description 56
- 230000008859 change Effects 0.000 claims description 14
- 230000004044 response Effects 0.000 claims description 8
- 230000008569 process Effects 0.000 description 22
- 230000000903 blocking effect Effects 0.000 description 10
- 230000006870 function Effects 0.000 description 10
- 238000004891 communication Methods 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 3
- 238000007796 conventional method Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000002474 experimental method Methods 0.000 description 2
- 238000010276 construction Methods 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 238000010998 test method Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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/00—Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
- G06Q50/10—Services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N7/00—Television systems
- H04N7/16—Analogue secrecy systems; Analogue subscription systems
- H04N7/173—Analogue secrecy systems; Analogue subscription systems with two-way working, e.g. subscriber sending a programme selection signal
Landscapes
- Business, Economics & Management (AREA)
- Engineering & Computer Science (AREA)
- Tourism & Hospitality (AREA)
- Human Resources & Organizations (AREA)
- Primary Health Care (AREA)
- Health & Medical Sciences (AREA)
- Economics (AREA)
- General Health & Medical Sciences (AREA)
- Multimedia (AREA)
- Marketing (AREA)
- Signal Processing (AREA)
- Strategic Management (AREA)
- Physics & Mathematics (AREA)
- General Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Stored Programmes (AREA)
Abstract
본 발명은, 마이크로서비스(microservice) 제공에 최적화된 마이크로서비스 개발환경이 실현되도록 하는, 새로운 가상화 기반 마이크로서비스 개발환경 구현 방안을 개시하고 있다.
Description
본 발명은 마이크로서비스(microservice) 제공에 최적화된 마이크로서비스 개발환경이 실현되도록 하는, 새로운 가상화 기반 마이크로서비스 개발환경 구현 방안에 관한 것이다.
서비스의 규모가 커지고 복잡도가 증가하면서 보다 효율적이면서도 변경과 조합이 용이한 구조의 아키텍처에 대한 관심이 증가하고 있다. 특히, 하나의 큰 애플리케이션을 여러 개의 작은 애플리케이션으로 쪼개어 변경과 조합이 가능하도록 만든 마이크로서비스 아키텍처가 주목 받고 있다.
이러한 마이크로서비스 아키텍처는, 독립적인 단위의 애플리케이션이기 때문에 변경이 용이하고 그 변경이 다른 서비스에 미치는 영향이 적으며, 부하가 집중되는 특정서비스를 위해 전체 애플리케이션을 스케일 아웃할 필요가 없기 때문에 불필요한 자원의 낭비를 감소시켜 효율적인 자원사용이 가능하도록 하는 등의 장점을 갖는다.
한편, 최근 IPTV서비스는 컨텐츠에 대한 업데이트가 빈번하게 발생함에 따라 잦은 편성 변경으로 인해 UI 변경 역시 빈번하게 이루어지고 있다. 또한, 사전 예고된 이벤트성 컨텐츠가 송출되는(예: 사회적 빅이슈, 대통령선거 중계방송 등) 상황뿐만 아니라, 사전에 예고되지 않은 이벤트(예: 고객요청)가 돌발적으로 발생하는 상황 등이 증가됨에 따라 트래픽 변경이 빈번하게 발생되고 있다.
이에, 이처럼 IPTV서비스와 관련되는 트래픽 변경이 빈번하게 발생하는 상황에서도 안정적인 서비스를 제공하기 위해서는 마이크로서비스 개발환경이 마이크로서비스 제공에 최적화되어야만 한다.
그러나, 현재 마이크로서비스 아키텍처를 기반으로 하는 마이크로서비스 개발환경에서는 개발자가 일일이 수동으로 테스트 환경을 설정한 다음, 신규/갱신되는 마이크로서비스에 대한 검증을 수행하여 배포하므로, 트래픽 변경이 빈번하게 발생하는 상황에서 신속하게 대응하지 못하는 한계점이 존재한다.
또한, 신규/갱신되는 마이크로서비스가 상용 수준의 기능을 갖도록 하기 위해서는 개발자가 매번 환경정보를 변경하면서 다수의 테스트 과정을 수행되어야만 하는 번거로움이 있다.
이에, 본 발명에서는, 마이크로서비스 테스트 과정에서의 개발자의 개입을 최소화할 수 있으며, 트래픽 변경이 빈번하게 발생하는 상황에서도 안정적으로 마이크로서비스가 제공될 수 있도록 하는, 가상화 기반 마이크로서비스 개발환경 구현 방안을 제안하고자 한다.
본 발명은 상기한 사정을 감안하여 창출된 것으로서, 본 발명에서 도달하고자 하는 목적은, 상세하게는 마이크로서비스(microservice) 제공에 최적화된 마이크로서비스 개발환경이 실현되도록 함으로써, 기존과 달리 마이크로서비스 테스트 과정에서의 개발자의 개입을 최소화할 수 있으며, 트래픽 변경이 빈번하게 발생하는 상황에서도 안정적으로 마이크로서비스가 제공되도록 하는 기술에 관한 것이다.
상기 목적을 달성하기 위한 본 발명의 제 1 관점에 따른 마이크로서비스관리장치는, 개발자단말로부터 적어도 하나의 마이크로서비스 중 특정마이크로서비스와 관련되는 개발결과정보가 확인되는 경우, 상기 개발결과정보에 대한 환경정보를 확인한 결과를 기반으로 상기 개발결과정보에 대한 수신여부를 결정하는 결정부; 상기 개발자단말로부터 상기 개발결과정보가 업로드된 경우, 상기 개발결과정보와 상기 환경정보를 기반으로 가상환경에서 실행 가능한 특정가상앱을 생성하는 생성부; 및 상기 특정마이크로서비스에 해당하는 특정컨텐츠가 제공될 수 있도록 상기 특정가상앱을 배포하는 운영관리부를 포함하는 것을 특징으로 한다.
상기 환경정보는 상기 특정가상앱이 가상환경에서 실행되도록 하는 풀(Pool)형태의 메타데이터그룹을 포함하며, 상기 결정부는, 상기 메타데이터그룹이 특정플랫폼에서 지원되는지의 여부를 확인한 결과를 기반으로 상기 개발결과정보에 대한 수신여부를 결정하는 것을 특징을 한다.
상기 결정부는, 상기 메타데이터그룹이 상기 특정플랫폼에서 지원되는 경우, 상기 특정가상앱의 생성이 가능한 것으로 판단하여 상기 개발결과정보의 업로드를 요청하는 요청메시지를 상기 개발자단말로 전송하며, 상기 메타데이터그룹이 상기 특정플랫폼에서 지원되지 않는 경우, 상기 특정가상앱의 생성이 불가능한 것으로 판단하여 종료알림메시지를 상기 개발자단말로 전송하는 것을 특징으로 한다.
상기 가상환경은, 상기 특정가상앱의 테스트 수행과 관련되는 제1 가상환경과, 기 생성된 마이크로서비스와 관련되는 가상앱이 정식으로 상용 배포되어 있는 제2 가상환경을 포함하며, 상기 생성부는, 상기 제2 가상환경에 상기 특정컨텐츠를 제공하는 기 생성된 해당 가상앱이 존재하는지의 여부를 확인한 결과를 기반으로 상기 메타데이터그룹 중 특정메타데이터세트를 선택하고, 상기 특정메타데이터세트와 상기 개발결과정보를 패키징하여 상기 특정가상앱을 생성하는 것을 특징으로 한다.
상기 생성부는, 상기 제2 가상환경에 상기 기 생성된 해당 가상앱이 존재하지 않으면, 상기 특정가상앱이 신규 배포되는 것으로 판단하며, 상기 개발자단말의 개발자가 선정한 우선순위가 높은 메타데이터세트 순서를 기반으로 상기 메타데이터그룹 중 상기 특정메타데이터세트를 결정하며, 상기 제2 가상환경에 상기 기 생성된 해당 가상앱이 존재하면, 상기 특정컨텐츠의 업데이트를 수행하기 위해 갱신 배포되는 것으로 판단하여, 상기 기 생성된 해당 가상앱의 메타데이터세트와 관련도가 높은 메타데이터세트 순서를 기반으로 상기 메타데이터그룹 중 상기 특정메타데이터세트를 결정하는 것을 특징으로 한다.
상기 운영관리부는, 상기 제1 가상환경에서의 상기 특정가상앱에 대한 테스트결과가 기 설정된 기준등급이상이고 상기 제2 가상환경에 상기 기 생성된 해당 가상앱이 존재하는 경우, 상기 기 생성된 해당 가상앱 대신 상기 특정가상앱이 배포되도록 라우팅정보를 변경하며, 상기 제1 가상환경에서의 상기 특정가상앱에 대한 테스트결과가 기 설정된 기준등급이상이고 상기 제2 가상환경에 상기 기 생성된 해당 가상앱이 존재하지 않는 경우, 상기 특정가상앱의 라우팅정보를 신규 설정하는 것을 특징으로 한다.
상기 제2 가상환경에 상기 특정정상앱에 대한 배포가 완료된 후 상기 특정마이크로서비스에서 기준 이상의 응답지연이 발생하는 경우, 상기 특정마이크로서비스가 기 설정된 저장소에서 지연차단정보를 확인할 수 있도록 원격에서 설정정보를 변경하는 장애관리부를 더 포함하는 것을 특징으로 한다.
상기 목적을 달성하기 위한 본 발명의 제 2 관점에 따른 마이크로서비스관리장치의 동작방법은, 개발자단말로부터 적어도 하나의 마이크로서비스 중 특정마이크로서비스와 관련되는 개발결과정보가 확인되는 경우, 상기 개발결과정보에 대한 환경정보를 확인한 결과를 기반으로 상기 개발결과정보에 대한 수신여부를 결정하는 결정단계; 상기 개발자단말로부터 상기 개발결과정보가 업로드된 경우, 상기 개발결과정보와 상기 환경정보를 기반으로 가상환경에서 실행 가능한 특정가상앱을 생성하는 생성단계; 및 상기 특정마이크로서비스에 해당하는 특정컨텐츠가 제공될 수 있도록 상기 특정가상앱을 배포하는 운영관리단계를 포함하는 것을 특징으로 한다.
상기 환경정보는 상기 특정가상앱이 가상환경에서 실행되도록 하는 풀(Pool)형태의 메타데이터그룹을 포함하며, 상기 결정단계는, 상기 메타데이터그룹이 특정플랫폼에서 지원되는지의 여부를 확인한 결과를 기반으로 상기 개발결과정보에 대한 수신여부를 결정하는 것을 특징을 한다.
상기 결정단계는, 상기 메타데이터그룹이 상기 특정플랫폼에서 지원되는 경우, 상기 특정가상앱의 생성이 가능한 것으로 판단하여 상기 개발결과정보의 업로드를 요청하는 요청메시지를 상기 개발자단말로 전송하며, 상기 메타데이터그룹이 상기 특정플랫폼에서 지원되지 않는 경우, 상기 특정가상앱의 생성이 불가능한 것으로 판단하여 종료알림메시지를 상기 개발자단말로 전송하는 것을 특징으로 한다.
상기 가상환경은, 상기 특정가상앱의 테스트 수행과 관련되는 제1 가상환경과, 기 생성된 마이크로서비스와 관련되는 가상앱이 정식으로 상용 배포되어 있는 제2 가상환경을 포함하며, 상기 생성단계는, 상기 제2 가상환경에 상기 특정컨텐츠를 제공하는 기 생성된 해당 가상앱이 존재하는지의 여부를 확인한 결과를 기반으로 상기 메타데이터그룹 중 특정메타데이터세트를 선택하고, 상기 특정메타데이터세트와 상기 개발결과정보를 패키징하여 상기 특정가상앱을 생성하는 것을 특징으로 한다.
상기 생성단계는, 상기 제2 가상환경에 상기 기 생성된 해당 가상앱이 존재하지 않으면, 상기 특정가상앱이 신규 배포되는 것으로 판단하며, 상기 개발자단말의 개발자가 선정한 우선순위가 높은 메타데이터세트 순서를 기반으로 상기 메타데이터그룹 중 상기 특정메타데이터세트를 결정하며, 상기 제2 가상환경에 상기 기 생성된 해당 가상앱이 존재하면, 상기 특정컨텐츠의 업데이트를 수행하기 위해 갱신 배포되는 것으로 판단하여, 상기 기 생성된 해당 가상앱의 메타데이터세트와 관련도가 높은 메타데이터세트 순서를 기반으로 상기 메타데이터그룹 중 상기 특정메타데이터세트를 결정하는 것을 특징으로 한다.
상기 운영관리단계는, 상기 제1 가상환경에서의 상기 특정가상앱에 대한 테스트결과가 기 설정된 기준등급이상이고 상기 제2 가상환경에 상기 기 생성된 해당 가상앱이 존재하는 경우, 상기 기 생성된 해당 가상앱 대신 상기 특정가상앱이 배포되도록 라우팅정보를 변경하며, 상기 제1 가상환경에서의 상기 특정가상앱에 대한 테스트결과가 기 설정된 기준등급이상이고 상기 제2 가상환경에 상기 기 생성된 해당 가상앱이 존재하지 않는 경우, 상기 특정가상앱의 라우팅정보를 신규 설정하는 것을 특징으로 한다.
상기 제2 가상환경에 상기 특정정상앱에 대한 배포가 완료된 후 상기 특정마이크로서비스에서 기준 이상의 응답지연이 발생하는 경우, 상기 특정마이크로서비스가 기 설정된 저장소에서 지연차단정보를 확인할 수 있도록 원격에서 설정정보를 변경하는 장애관리단계를 더 포함하는 것을 특징으로 한다.
이에, 본 발명에 따른 마이크로서비스관리장치 및 방법에 의하면, 마이크로서비스(microservice) 제공에 최적화된 마이크로서비스 개발환경이 실현되도록 함으로써, 기존과 달리 마이크로서비스 테스트 과정에서의 개발자의 개입을 최소화할 수 있어 서비스 이용에 따른 사용자 만족도를 향상시킬 수 있음은 물론, 트래픽 변경이 빈번하게 발생하는 상황에서도 신속하고 안정적으로 마이크로서비스를 제공할 수 있어 전반적인 마이크로서비스의 성능을 향상시키는 효과를 도출한다.
도 1은 본 발명의 실시예에 따른 마이크로서비스관리장치가 적용되는 통신 구조의 일례를 나타내는 도면이다.
도 2는 본 발명의 실시예에 따른 마이크로서비스관리장치의 구성을 나타내는 블록도이다.
도 3은 본 발명의 실시예에 따른 통신구조 내 구성들에 의한 동작흐름을 나타내는 순서도이다.
도 2는 본 발명의 실시예에 따른 마이크로서비스관리장치의 구성을 나타내는 블록도이다.
도 3은 본 발명의 실시예에 따른 통신구조 내 구성들에 의한 동작흐름을 나타내는 순서도이다.
본 명세서에서 사용되는 기술적 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아님을 유의해야 한다. 또한, 본 명세서에서 사용되는 기술적 용어는 본 명세서에서 특별히 다른 의미로 정의되지 않는 한, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 의미로 해석되어야 하며, 과도하게 포괄적인 의미로 해석되거나, 과도하게 축소된 의미로 해석되지 않아야 한다. 또한, 본 명세서에서 사용되는 기술적인 용어가 본 발명의 사상을 정확하게 표현하지 못하는 잘못된 기술적 용어일 때에는, 당업자가 올바르게 이해할 수 있는 기술적 용어로 대체되어 이해되어야 할 것이다. 또한, 본 발명에서 사용되는 일반적인 용어는 사전에 정의되어 있는 바에 따라, 또는 전후 문맥상에 따라 해석되어야 하며, 과도하게 축소된 의미로 해석되지 않아야 한다.
이하, 첨부된 도면을 참조하여 본 발명에 따른 바람직한 실시예를 상세히 설명하되, 도면 부호에 관계없이 동일하거나 유사한 구성 요소는 동일한 참조 번호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다. 또한, 본 발명을 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다. 이하, 첨부된 도면을 참조하여 본 명세서의 실시예에 대하여 설명한다.
이하, 첨부된 도면을 참조하여 본 발명의 실시예에 대하여 설명한다.
도 1은 본 발명의 실시예에 따른 마이크로서비스관리장치가 적용되는 통신구조를 보여주고 있다.
도 1에 도시된 바와 같이, 본 발명이 적용될 통신 환경은 IPTV서비스가 제공될 수 있도록 마이크로서비스 아키텍처 기반의 마이크로서비스 개발환경을 통해 마이크로서비스를 생성 및 제공하는 시스템 환경일 수 있으며, 개발자단말(100), 고객단말(200) 및 마이크로서비스관리장치(300)를 포함하는 구성을 가질 수 있다.
개발자단말(100)은, 마이크로서비스 아키텍처 기반의 마이크로서비스 개발환경을 통해 IPTV서비스와 관련되는 적어도 하나의 마이크로서비스가 생성될 수 있도록, 마이크로서비스와 관련되는 개발결과정보를 생성하는 단말일 수 있다.
여기서, 마이크로서비스 개발환경은, 마이크로서비스관리장치(300)가 마이크로서비스에 해당하는 컨텐츠 제공을 위해 개발자에게만 전용으로 제공하는 OS기반 가상환경일 수 있다. 이러한, 마이크로서비스 개발환경은, 특정플랫폼(예: PaaS)을 기반으로 마이크로서비스 생성과 관련되는 테스트, 배포, 운영, 장애관리 등과 같은 전반적인 개발과정을 지원할 수 있다.
이에, 개발자단말(100)에는, 마이크로서비스 개발환경에 접속하여 전반적인 개발과정을 운영할 수 있도록 특정플랫폼(예: PaaS)과 관련되는 클라이언트 툴(예: PaaS Client Tool, 이하, PaaS툴)이 탑재된다.
고객단말(200)은, 마이크로서비스에 해당하는 컨텐츠를 이용하는 고객의 단말일 수 있으며, IPTV서비스와 관련된 애플리케이션이 설치된 장치를 일컫는다. 이러한, 고객단말(200)은, 애플리케이션의 실행 상태에서 IPTV서비스와 관련된 서비스를 요청하고, 요청에 따라 마이크로서비스관리장치(300)로부터 서비스에 해당하는 컨텐츠가 수신되는 경우, 이를 자신의 화면상에 출력하거나, 또는 다른 단말의 화면상에 출력되도록 중계하는 역할을 수행할 수 있다.
이러한 고객단말(200)은, 마이크로서비스관리장치(300)와 유선 또는 무선으로 연동할 수 있으며, 예컨대 스마트폰, 태블릿 PC, PDA, 및 노트북, 셋탑박스 등과 IPTV서비스와 관련된 애플리케이션이 설치될 수 있는 장치는 모두 포함될 수 있을 것이다. 이하에서는 설명의 편의를 위해 고객단말(200)이 셋탑박스인 것으로 언급하여 설명하도록 하겠다.
마이크로서비스관리장치(300)는, IPTV서비스와 관련되는 적어도 하나의 마이크로서비스가 생성되도록 마이크로서비스 개발환경을 지원하는 한편, IPTV서비스를 이용하는 고객에게 마이크로서비스에 해당하는 컨텐츠가 제공되도록 전반적인 시스템 운영을 제어하는 장치로서, 특히 본 발명에서 제공하고자 하는 서비스 즉, 마이크로서비스 테스트 과정에서의 개발자의 개입을 최소화하며, 트래픽 변경이 빈번하게 발생하는 상황에서도 안정적으로 마이크로서비스가 제공될 수 있도록 하는, 가상화 기반 마이크로서비스 개발환경이 실현되도록 하는 장치이다.
이와 관련하여, 도 2에는 본 발명의 마이크로서비스관리장치(300)의 구성이 보다 구체적으로 도시되어 있다.
도 1 및 도 2를 참고하면, 본 발명의 마이크로서비스관리장치(300)는, 개발자단말(100)로부터 적어도 하나의 마이크로서비스 중 특정마이크로서비스와 관련되는 개발결과정보가 확인되는 경우, 개발결과정보에 대한 환경정보를 확인한 결과를 기반으로 개발결과정보에 대한 수신여부를 결정하는 결정부(310), 개발자단말(100)로부터 개발결과정보가 업로드된 경우, 개발결과정보와 환경정보를 기반으로 가상환경에서 실행 가능한 특정가상앱(APP)을 생성하는 생성부(320), 및 특정마이크로서비스에 해당하는 컨텐츠가 제공될 수 있도록 특정가상앱(APP)을 배포하는 운영관리부(330)를 포함하는 구성을 가질 수 있다.
또한, 마이크로서비스관리장치(300)는, 가상환경, 즉 특정가상앱(APP)의 테스트 수행과 관련되는 제1 가상환경과, 기 생성된 마이크로서비스와 관련되는 가상앱이 정식으로 상용 배포되어 있는 제2 가상환경에서 전반적인 앱실행이 이루어지도록 제어하는 가상환경관리부(340), 및 IPTV서비스를 제공하는 과정에서 발생되는 장애를 관리하는 장애관리부(350)를 더 구비할 수 있다.
여기서, 제1 가상환경에서 테스트 완료된 특정가상앱이 제2 가상환경에 상용 배포되는 경우에는, 마이크로서비스(1,2,..) 별 해당하는 컨텐츠가 각 데이터베이스(DB1,DB2,..)에 매칭되어 저장된다.
이에, 게이트웨이(360)는, 데이터베이스(DB1,DB2,..)에 저장된 컨텐츠 또는 컨텐츠를 조합하여 IPTV서비스를 제공할 수 있게 된다.
이상의 결정부(310), 생성부(320), 운영관리부(330), 가상환경관리부(340) 및 장애관리부(350)를 포함하는 마이크로서비스관리장치(300)의 구성 전체 내지는 적어도 일부는, 프로세서에 의해 실행되는 소프트웨어 모듈 형태 또는 하드웨어 모듈 형태로 구현되거나, 소프트웨어 모듈과 하드웨어 모듈이 조합된 형태로도 구현될 수 있다.
결국, 본 발명의 실시예에 따른 마이크로서비스관리장치(300)는, 마이크로서비스(microservice) 제공에 최적화된 마이크로서비스 개발환경이 실현되도록 함으로써, 기존과 달리 마이크로서비스 테스트 과정에서의 개발자의 개입을 최소화하면서도, 트래픽 변경이 빈번하게 발생하는 상황에서도 안정적으로 마이크로서비스를 제공할 수 있게 되는 데, 이하에서는 이를 위한 마이크로서비스관리장치(300) 내 각 구성에 대해 구체적으로 설명하기로 한다.
결정부(310)는, 개발자단말(100)로부터 확인되는 개발결과정보에 대한 수신여부를 결정한다.
보다 구체적으로, 결정부(310)는, 적어도 하나의 마이크로서비스 중 특정마이크로서비스와 관련되는 개발결과정보가 개발자단말(100) 내 PaaS툴을 통해 확인되면, 개발결과정보에 대한 환경정보를 확인한 결과를 기반으로 개발결과정보에 대한 수신여부를 결정한다.
여기서, 개발결과정보는, 개발자/데브옵스(DevOps) 파이프라인에서 기본 검증이 완료된 개발빌드결과물(예: War, jar 파일)일 수 있으며, 실행 가능한 특정가상앱(APP)의 기능이 담겨진 파일 개념으로, 그 자체만으로는 실행될 수 없다.
이러한, 개발결과정보에 담겨진 특정가상앱(APP)이 실행되기 위해서는, 개발언어(예: Java, C# 등)가 동작될 수 있도록 하는 기능(예: 런타임(Runtime), 리소스정보 등)과 관련되는 프로그램실행환경정보와, 특정가상앱(APP)이 동작될 수 있도록 하는 기능(예: 라이브러리, 클라이언트 에이전트 등)과 관련되는 프레임워크환경정보(Framework) 등을 포함하는 환경정보가 필요하다.
즉, 환경정보는, 특정가상앱이 가상환경에서 실행되도록 하는 프로그램실행환경정보와 프레임워크환경정보가 풀(Pool)형태를 이루는 하나의 메타데이터세트이거나, 또는 이러한 하나 이상의 메타데이터세트가 구비된 메타데이터그룹일 수 있다. 이하에서는, 환경정보가 메타데이터그룹인 것으로 언급하여 설명하도록 하겠다.
결국, 메타데이터그룹에는, 개발자의 설정에 따라 최소 하나의 메타데이터세트가 포함된다. 예를 들어, 특정가상앱(APP)의 개발언어가 "Java"이며, 프로그램실행환경정보에는 개발언어와 관련된 Java런타임이 포함되어야 하며, 프레임워크환경정보에는 특정가상앱(APP)이 동작하는데 필요한 라이브러리1 또는 라이브러리2가 포함될 수 있는 것으로 가정하면, 개발자는 프로그램실행환경정보(Java런타임)와 프레임워크환경정보(라이브러리1)를 메타데이터세트1로 설정하며, 프로그램실행환경정보(Java런타임)와 프레임워크환경정보(라이브러리2)를 메타데이터세트2로 설정한 후, 메타데이터세트1 및 메타데이터세트2를 포함하는 메타데이터그룹을 생성할 수 있다.
이처럼 개발자가 단일 메타데이터세트가 아닌, 메타데이터그룹을 설정하는 것은, 후술하게 될 특정가상앱(APP)에 대한 테스트 과정에서 메타데이터그룹에 포함되는 메타데이터세트가 개발자의 제어 없이도 특정순서에 따라 자동으로 변경되면서 테스트될 수 있도록 하여, 특정가상앱(APP)에 대한 테스트 과정에서 개발자의 개입이 최소화되도록 하기 위함이다.
이에, 결정부(310)는, 환경정보에 포함되는 메타데이터그룹을 검출하고, 검출된 메타데이터그룹이 특정플랫폼(예: PaaS)에서 지원되는지의 여부를 확인한 결과를 기반으로 개발결과정보에 대한 수신여부를 결정할 수 있게 된다.
즉, 메타데이터그룹이 특정플랫폼(예: PaaS)에서 지원되는 경우, 결정부(310)는, 특정가상앱(APP)의 생성이 가능한 것으로 판단한다. 이후, 결정부(310)는, 개발결과정보의 업로드를 요청하는 요청메시지를 생성하고, 이를 개발자단말(100)로 전송한다.
한편, 메타데이터그룹이 특정플랫폼(예: PaaS)에서 지원되지 않는 경우, 결정부(310)는, 특정가상앱(APP)의 생성이 불가능한 것으로 판단한다. 이후, 결정부(310)는, 특정가상앱(APP)의 생성이 불가능함을 알리기 위해 종료알림메시지를 생성하고, 이를 개발자단말(100)로 전송한다.
전술과 같이 메타데이터그룹이 특정플랫폼(예: PaaS)에서 지원되는지의 여부를 확인하는 것은, 마이크로서비스 별로 생성되는 가상앱이 가상환경에서 실행되기 위해서는 가상앱 별로 요구되는 환경정보가 상이(예: 가상앱1의 런타임 C#, 가상앱2의 런타임 Java)할 수 있는데, 특정플랫폼(예: PaaS)에서 특정런타임(C#런타임)을 지원하지 않는 경우에는 개발결과정보가 업로드되기 이전에 신속하게 해당 가상앱이 지원 불가능함을 개발자에게 알리기 위함이다.
생성부(320)는, 가상환경에서 실행 가능한 특정가상앱(APP)을 생성한다.
보다 구체적으로, 생성부(320)는, 개발자단말(100)로부터 특정마이크로서비스와 관련되는 개발결과정보가 업로드된 경우, 개발결과정보와 환경정보를 기반으로 가상환경에서 실행 가능한 특정가상앱(APP)을 생성한다.
여기서, 가상환경은, 특정가상앱(APP)의 테스트 수행과 관련되는 제1 가상환경과, 기 생성된 마이크로서비스와 관련되는 가상앱이 정식으로 상용 배포되어 있는 제2 가상환경을 포함할 수 있다.
즉, 생성부(320)는, 제2 가상환경에서 특정마이크로서비스에 해당하는 컨텐츠를 제공하는 기 생성된 해당 가상앱(이하, 기 생성된 해당 가상앱)이 존재하는 지의 여부를 확인한 결과를 기반으로 메타데이터그룹 중 특정메타데이터세트를 선택한다.
이처럼 기 생성된 해당 가상앱이 제2 가상환경에 존재하는 지의 여부를 확인하는 것은, 특정마이크로서비스가 신규 배포되는 것인지 아니면, 업데이트를 위해 갱신 배포되는 것인지를 확인하기 위함이다.
이에, 생성부(320)는, 제2 가상환경에 기 생성된 해당 가상앱이 존재하지 않으면, 특정가상앱(APP)이 신규 배포되는 것으로 판단할 수 있게 되며, 제2 가상환경에 기 생성된 해당 가상앱이 존재하면, 특정가상앱(APP)이 갱신 배포되는 것으로 판단할 수 있게 된다.
이후, 생성부(320)는, 특정가상앱(APP)이 신규 배포인 경우에는, 신규 배포임을 알리는 제1 배포식별자를 특정가상앱(APP)에 매칭하여 저장하며, 특정가상앱(APP)이 갱신 배포인 경우에는, 갱신 배포임을 알리는 제2 배포식별자를 특정가상앱(APP)에 매칭하여 저장한다.
이하에서는, 먼저 신규 배포일 때 특정가상앱(APP)이 생성되는 과정을 살펴보도록 하겠다.
생성부(320)는, 특정가상앱(APP)이 신규 배포인 경우에는, 개발자단말(100)의 개발자가 선정한 우선순위가 높은 메타데이터세트 순서를 기반으로 메타데이터그룹 중 특정메타데이터세트를 결정한다.
이처럼 특정가상앱(APP)이 신규 배포인 경우에는, 제2 가상환경에서 기 배포된 가상앱 중에서는 특정마이크로서비스에 해당하는 특정컨텐츠가 상용 수준으로 제공되도록 하는데 참고할만한 가상앱이 존재하지 않으므로, 생성부(320)는, 특정가상앱(APP)을 개발한 개발자가 미리 선정한 우선순위가 높은 메타데이터세트 순서를 기반으로 특정메타데이터세트를 결정하게 된다.
즉, 생성부(320)는, 우선순위가 높은 메타데이터세트 순서에 따라 특정메타데이터세트를 결정하여 특정가상앱을 생성한다.
예를 들어, 특정가상앱(APP)에 대한 환경정보로서 2개의 메타데이터세트1,2이 확인되며, 개발자가 미리 선정한 우선순위가 메타데이터세트1>메타데이터세트 2인 경우, 생성부(320)는, 우선순위가 가장 높은 메타데이터세트1을 특정메타데이터세트로 결정한 후 세부 특정가상앱1(이하, 특정가상앱1)을 생성한다. 이후, 생성부(320)는, 다음으로 우선순위가 높은 메타데이터세트2를 특정메타데이터세트로 결정한 후 세부 특정가상앱2(이하, 특정가상앱2)를 생성한다.
결국, 특정가상앱(APP)에는, 메타데이터세트의 개수(예: 2개)에 대응하는 개수로 생성된 특정가상앱1,2가 포함되게 된다.
다음으로, 갱신 배포일 때 특정가상앱(APP)이 생성되는 과정을 살펴보도록 하겠다.
생성부(320)는, 특정가상앱(APP)이 갱신 배포인 경우에는, 기 생성된 해당 가상앱에 대한 업데이트를 위해 특정가상앱을 생성하는 것이므로, 기 생성된 해당 가상앱의 메타데이터세트와 관련도가 높은 메타데이터세트 순서를 기반으로 메타데이터그룹 중 특정메타데이터세트를 결정한다.
이처럼 특정가상앱(APP)이 갱신 배포인 경우, 제2 가상환경에서 기 배포된 가상앱 중에서는 특정마이크로서비스에 해당하는 특정컨텐츠가 상용 수준으로 제공되도록 하는데 참고할만한 기 생성된 해당 가상앱이 존재하므로, 생성부(320)는, 기 생성된 해당 가상앱의 메타데이터세트와 관련도가 높은 메타데이터세트 순서를 기반으로 메타데이터그룹 중 특정메타데이터세트를 결정하게 된다.
즉, 생성부(320)는, 기 생성된 해당 가상앱의 메타데이터세트와 관련도가 높은 메타데이터세트 순서에 따라 특정메타데이터세트를 결정하여 특정가상앱을 생성한다.
이처럼 메타데이터그룹에 포함되는 메타데이터세트(예: Java런타임-라이브러리1, Java런타임-라이브러리2) 중 기 생성된 해당 가상앱의 메타데이터세트(예: Java런타임-라이브러리1)와 관련도가 높은 메타데이터세트 순서를 결정하기 위해서는, 기 생성된 해당 가상앱과 특정가상앱의 개발언어가 동일(예: Java)/호환 가능해야 하며, 기 생성된 해당 가상앱에 해당하는 컨텐츠가 제2 가상환경에서 기준 이상의 서비스 품질을 갖는 것이 바람직할 것이다.
이에, 생성부(320)는, 특정가상앱(APP)과 관련되는 메타데이터그룹 내 메타데이터세트를 기 생성된 해당 가상앱의 메타데이터세트와 관련도가 높은 순서로 정렬하고, 정렬된 메타데이터세트 순서에 따라 특정메타데이터세트를 결정하여 특정가상앱을 생성할 수 있게 되는 것이다.
예를 들어, 특정가상앱(APP)에 대한 환경정보로서 2개의 메타데이터세트1(Java런타임-라이브러리1) 및 메타데이터세트2(Java런타임-라이브러리2)가 확인되며, 기 생성된 해당 가상앱의 메타데이터세트(Java런타임-라이브러리1)인 경우, 생성부(320)는, 기 생성된 해당 가상앱의 메타데이터세트(Java런타임-라이브러리1)와의 관련도가 메타데이터세트1(Java런타임-라이브러리1)가 더 높은 것으로 판단하고, 관련도가 높은 순서인 메타데이터세트1(Java런타임-라이브러리1)> 메타데이터세트2(Java런타임-라이브러리2)로 정렬한다.
이후, 생성부(320)는, 정렬순서가 높은 메타데이터세트1(Java런타임-라이브러리1)를 특정메타데이터세트로 결정한 후 특정가상앱1을 생성한다. 동일하게, 생성부(320)는, 다음 정렬순서의 메타데이터세트2(Java런타임-라이브러리2)를 특정메타데이터세트로 결정한 후 특정가상앱2를 생성한다.
결국, 특정가상앱(APP)에는, 메타데이터세트의 개수(예: 2개)에 대응하는 개수로 생성된 특정가상앱1,2가 포함되게 된다.
운영관리부(330)는, 특정마이크로서비스에 해당하는 특정컨텐츠가 제공될 수 있도록 특정가상앱(APP)을 배포한다.
보다 구체적으로, 운영관리부(330)는, 생성부(320)로부터 특정가상앱(APP)의 생성이 완료되면, 특정가상앱(APP)에 대한 테스트 수행을 위해 제1 가상환경에 특정가상앱(APP)이 배포되도록 제어한다.
이때, 특정가상앱(APP)에는, 메타데이터세트의 개수(예: 2개)에 대응하는 개수로 생성된 특정가상앱1,2가 포함되어 있다. 이하에서는, 설명의 편의 상, 특정가상앱(APP)에 특정가상앱1,2이 포함되어 있으며, 특정가상앱을 구분하는 식별자(1,2)의 순서는 테스트를 수생하는 순서인 것으로 언급하여 설명하도록 하겠다.
즉, 운영관리부(330)는, 특정가상앱(APP)에 포함된 특정가상앱1,2를 검출한 후 제1 가상환경에 배포한다.
이후, 운영관리부(330)는, 테스트 수생순서가 앞서는 특정가상앱1로부터 메타데이터세트1을 검출하고, 메타데이터세트1에 포함되는 프로그램실행환경정보(예: Java런타임)와 프레임워크환경정보(예: 라이브러리1)를 기반으로 테스트가 수행되도록 하여 테스트결과1를 생성한다.
이어서, 운영관리부(330)는, 다음 테스트 수행순서를 갖는 특정가상앱2로부터 메타데이터세트2를 검출하고, 메타데이터세트2에 포함되는 프로그램실행환경정보(예: Java런타임)와 프레임워크환경정보(예: 라이브러리2)를 기반으로 테스트가 수행되도록 하여 테스트결과2를 생성한다.
전술에 따라 특정가상앱(APP)에 포함된 특정가상앱1,2의 테스트결과1,2의 생성이 완료되면, 운영관리부(330)는, 테스트결과1,2 중 기 설정된 기준등급 이상인 테스트결과를 검출한다. 이하에서는, 설명의 편의 상, 테스트결과1이 기준등급 이상인 것으로 언급하여 설명을 이어가도록 하겠다.
여기서, 기준등급은, 특정가상앱(APP)에 포함되는 특정가상앱1,2에 대한 테스트를 수행했을 때 신규/갱신 배포되는 특정가상앱(APP)이 상용 수준의 기능을 갖는지의 여부를 확인하기 위해 개발자에 의해 미리 설정되는 정보일 수 있으며, 다수의 실험/테스트를 통해 획득될 수 있다.
이후, 운영관리부(330)는, 특정가상앱1의 테스트결과1이 상용 수준의 기능을 갖는 것으로 판단하고, 특정가상앱1이 제2 가상환경에 배포될 수 있도록 라우팅정보를 확인한다.
이처럼 라우팅정보를 확인하기 위해서는, 특정가상앱(APP)에 매칭되어 있는 배포식별자를 확인한 결과를 기반으로 배포속성이 확인되어야 한다.
이에, 운영관리부(330)는, 특정가상앱(APP)에 제1 배포식별자가 매칭되어 있으면 특정가상앱(APP)이 신규 배포인 것으로 확인하며, 특정가상앱(APP)에 제2 배포식별자가 매칭되어 있으면 특정가상앱(APP)이 갱신 배포인 것으로 확인한다.
전술에 따라 배포속성을 확인한 결과, 특정가상앱(APP)이 신규 배포 것으로 확인되면, 운영관리부(330)는, 제2 가상환경에 특정가상앱(APP)과 관련되는 기 생성된 해당 가상앱이 존재하지 않을 것이므로, 특정가상앱의 라우팅정보를 신규 설정하여 특정가상앱(APP), 즉 특정가상앱1이 제2 가상환경에 배포되도록 제어한다.
결국, 운영관리부(330)는, 제1 가상환경에서의 특정가상앱1에 대한 테스트결과가 기 설정된 기준등급이상이고 제2 가상환경에 기 생성된 해당 가상앱이 존재하지 않으면, 특정가상앱(APP), 즉 특정가상앱1이 신규 배포되는 것이므로, 특정가상앱1의 라우팅정보를 신규 설정한다.
한편, 특정가상앱(APP)이 갱신 배포 것으로 확인되면, 운영관리부(330)는, 제2 가상환경에 특정가상앱(APP)과 관련되는 기 생성된 해당 가상앱이 존재할 것이므로, 기 생성된 해당 가상앱 대신 특정가상앱(APP), 즉 특정가상앱1이 제2 가상환경에 배포되도록 라우팅정보를 변경한다.
결국, 운영관리부(330)는, 제1 가상환경에서의 특정가상앱1에 대한 테스트결과가 기 설정된 기준등급이상이고 제2 가상환경에 기 생성된 해당 가상앱이 존재하면, 특정가상앱(APP), 즉 특정가상앱1이 갱신 배포되는 것이므로, 기 생성된 해당 가상앱의 라우팅정보를 삭제한 후 특정가상앱1의 라우팅정보로 교체한다.
전술과 같이 특정가상앱(APP)에 서로 다른 환경정보를 갖는 세부 특정가상앱들이 구비되도록 함에 따라, 신규/갱신되는 마이크로서비스가 상용 수준의 기능을 갖도록 하기 위해 개발자가 매번 환경정보를 일일이 변경하지 않더라도 다양한 환견정보를 기반으로 동적 테스트를 수행한 효과가 발생되므로, 마이크로서비스 테스트 과정에서의 개발자의 개입을 최소화할 수 있게 되는 것이다.
한편, 장애관리부(350)는, IPTV서비스를 제공하는 과정에서 발생되는 서비스장애를 관리하는 데, 특히 제2 가상환경에 특정가상앱(APP)에 대한 배포가 완료된 이후 발생되는 서비스장애를 원격에서 관리하는 역할을 수행한다.
여기서, 서비스장애는, 제2 가상환경에 특정가상앱(APP)에 대한 배포가 완료된 후, 특정마이크로서비스에 해당하는 특정컨텐츠가 고객단말(200)로 제공되는 과정에서 서버 리소스 부족이나 네트워크 문제 등으로 인해 발생되는 응답지연 등일 수 있다. 이하에서는, 설명의 편의 상, 서비스장애가 응답지연인 것으로 언급하여 설명하도록 하겠다.
즉, 장애관리부(350)는, 응답지연(latency)이 발생하게 되면, 특정마이크로서비스가 적어도 하나의 지연차단정보가 저장된 해당 저장소를 확인할 수 있도록 원격에서 설정정보를 변경한다.
여기서, 설정정보는, 특정마이크로서비스가 자신에 구비된 전체 저장소 중 적어도 하나의 지연차단정보가 저장된 해당 저장소(예: 운영툴 저장소)를 찾을 수 있도록 하는 파라미터값일 수 있다.
한편, 지연차단정보는, 기준 이상의 응답지연(latency)이 발생 시, 고객단말(200) 상에 서비스장애 상황이 그대로 노출되는 것을 방지하기 위한 정보(예: 추천 VOD 리스트 등)일 수 있다.
이에, 특정마이크로서비스는, 응답지연이 발생하게 되면, 장애관리부(350)로부터 수신되는 설정정보를 기반을 해당 저장소를 검출한 후 해당 저장소에 저장된 지연차단정보를 고객단말(200)로 제공할 수 있게 되는 것이다.
전술과 같이 장애관리부(350)와 특정마이크로서비스가 원격으로 연동되기 위해서는 특정마이크로서비스 내 운영툴(admin page, Application performance monitoring 툴 등)이나 소스형상관리툴 등이 탑재되는 것이 바람직할 것이다.
즉, 장애관리부(350)로부터 원격에서 설정정보인 파라미터값(예: Circuitbreaker_config_version=1.2)이 수신되면, 특정마이크로서비스 내 운영툴은, 주기적인 폴링/푸시서비스를 이용한 pub/sub 형태로 설정정보의 변경여부를 마이크로서비스로 알리게 된다.
이에, 특정마이크로서비스는, 운영툴을 통해 전달되는 설정정보를 기반을 해당 저장소를 검출한 후 해당 저장소에 저장된 지연차단정보를 검출하여 고객단말(200)로 제공할 수 있게 된다.
결국, 기존과 달리 특정마이크로서비스의 소스코드에 직접적으로 코딩을 수행하여 빌드한 후 배포하는 과정을 수행하지 않고도, 운영툴에 정해진 저장소에서 설정정보를 검출하게 됨에 따라, 런타임 중에도 별도의 소스코딩, 빌드, 배포과정 없이 무중단으로 지연차단정보를 제공할 수 있게 된다.
이하에서는, 도 3을 참조하여, 본 발명의 실시예에 따른 통신구조 내 구성들의 동작 흐름을 보다 구체적으로 설명하겠다. 도 3에서는 설명의 편의를 위해 전술의 도 1 및 도 2에서 언급한 참조번호를 언급하여 설명하도록 하겠다.
마이크로서비스관리장치(300) 내 결정부(310)는, 개발자단말(100)의 PaaS툴을 통해 적어도 하나의 마이크로서비스 중 특정마이크로서비스와 관련되는 개발결과정보가 확인되면, 개발결과정보에 대한 환경정보를 확인한 결과를 기반으로 개발결과정보에 대한 수신여부를 결정한다(S100-S107).
보다 구체적으로, 결정부(310)는, 환경정보에 포함되는 메타데이터그룹을 검출하고, 검출된 메타데이터그룹이 특정플랫폼(예: PaaS)에서 지원되는지의 여부를 확인한 결과를 기반으로 개발결과정보에 대한 수신여부를 결정한다.
즉, 메타데이터그룹이 특정플랫폼(예: PaaS)에서 지원되는 경우, 결정부(310)는, 특정가상앱(APP)의 생성이 가능한 것으로 판단한다. 이후, 결정부(310)는, 개발결과정보의 업로드를 요청하는 요청메시지를 생성하고, 이를 개발자단말(100)로 전송한다.
한편, 메타데이터그룹이 특정플랫폼(예: PaaS)에서 지원되지 않는 경우, 결정부(310)는, 특정가상앱(APP)의 생성이 불가능한 것으로 판단한다. 이후, 결정부(310)는, 특정가상앱(APP)의 생성이 불가능함을 알리기 위해 종료알림메시지를 생성하고, 이를 개발자단말(100)로 전송한다.
전술에 따라 개발자단말(100)로부터 특정마이크로서비스와 관련되는 개발결과정보가 업로드된 경우, 생성부(320)는, 개발결과정보와 환경정보를 기반으로 가상환경에서 실행 가능한 특정가상앱(APP)을 생성한다(S108-S110).
여기서, 가상환경은, 특정가상앱(APP)의 테스트 수행과 관련되는 제1 가상환경과, 기 생성된 마이크로서비스와 관련되는 가상앱이 정식으로 상용 배포되어 있는 제2 가상환경을 포함할 수 있다.
즉, 생성부(320)는, 제2 가상환경에서 특정마이크로서비스에 해당하는 컨텐츠를 제공하는 기 생성된 해당 가상앱(이하, 기 생성된 해당 가상앱)이 존재하는 지의 여부를 확인한 결과를 기반으로 메타데이터그룹 중 특정메타데이터세트를 선택한다.
이처럼 기 생성된 해당 가상앱이 제2 가상환경에 존재하는 지의 여부를 확인하는 것은, 특정마이크로서비스가 신규 배포되는 것인지 아니면, 업데이트를 위해 갱신 배포되는 것인지를 확인하기 위함이다.
이에, 생성부(320)는, 제2 가상환경에 기 생성된 해당 가상앱이 존재하지 않으면, 특정가상앱(APP)이 신규 배포되는 것으로 판단할 수 있게 되며, 제2 가상환경에 기 생성된 해당 가상앱이 존재하면, 특정가상앱(APP)이 갱신 배포되는 것으로 판단할 수 있게 된다.
이후, 생성부(320)는, 특정가상앱(APP)이 신규 배포인 경우에는, 신규 배포임을 알리는 제1 배포식별자를 특정가상앱(APP)에 매칭하여 저장하며, 특정가상앱(APP)이 갱신 배포인 경우에는, 갱신 배포임을 알리는 제2 배포식별자를 특정가상앱(APP)에 매칭하여 저장한다.
이하에서는, 먼저 신규 배포일 때 특정가상앱(APP)이 생성되는 과정을 살펴보도록 하겠다.
생성부(320)는, 특정가상앱(APP)이 신규 배포인 경우에는, 개발자단말(100)의 개발자가 선정한 우선순위가 높은 메타데이터세트 순서를 기반으로 메타데이터그룹 중 특정메타데이터세트를 결정한다.
이처럼 특정가상앱(APP)이 신규 배포인 경우에는, 제2 가상환경에서 기 배포된 가상앱 중에서는 특정마이크로서비스에 해당하는 특정컨텐츠가 상용 수준으로 제공되도록 하는데 참고할만한 가상앱이 존재하지 않으므로, 생성부(320)는, 특정가상앱(APP)을 개발한 개발자가 미리 선정한 우선순위가 높은 메타데이터세트 순서를 기반으로 특정메타데이터세트를 결정하게 된다.
즉, 생성부(320)는, 우선순위가 높은 메타데이터세트 순서에 따라 특정메타데이터세트를 결정하여 특정가상앱을 생성한다.
예를 들어, 특정가상앱(APP)에 대한 환경정보로서 2개의 메타데이터세트1,2이 확인되며, 개발자가 미리 선정한 우선순위가 메타데이터세트1>메타데이터세트 2인 경우, 생성부(320)는, 우선순위가 가장 높은 메타데이터세트1을 특정메타데이터세트로 결정한 후 세부 특정가상앱1(이하, 특정가상앱1)을 생성한다. 이후, 생성부(320)는, 다음으로 우선순위가 높은 메타데이터세트2를 특정메타데이터세트로 결정한 후 세부 특정가상앱2(이하, 특정가상앱2)를 생성한다.
결국, 특정가상앱(APP)에는, 메타데이터세트의 개수(예: 2개)에 대응하는 개수로 생성된 특정가상앱1,2가 포함되게 된다.
다음으로, 갱신 배포일 때 특정가상앱(APP)이 생성되는 과정을 살펴보도록 하겠다.
생성부(320)는, 특정가상앱(APP)이 갱신 배포인 경우에는, 기 생성된 해당 가상앱에 대한 업데이트를 위해 특정가상앱을 생성하는 것이므로, 기 생성된 해당 가상앱의 메타데이터세트와 관련도가 높은 메타데이터세트 순서를 기반으로 메타데이터그룹 중 특정메타데이터세트를 결정한다.
이처럼 특정가상앱(APP)이 갱신 배포인 경우, 제2 가상환경에서 기 배포된 가상앱 중에서는 특정마이크로서비스에 해당하는 특정컨텐츠가 상용 수준으로 제공되도록 하는데 참고할만한 기 생성된 해당 가상앱이 존재하므로, 생성부(320)는, 기 생성된 해당 가상앱의 메타데이터세트와 관련도가 높은 메타데이터세트 순서를 기반으로 메타데이터그룹 중 특정메타데이터세트를 결정하게 된다.
즉, 생성부(320)는, 기 생성된 해당 가상앱의 메타데이터세트와 관련도가 높은 메타데이터세트 순서에 따라 특정메타데이터세트를 결정하여 특정가상앱을 생성한다.
이처럼 메타데이터그룹에 포함되는 메타데이터세트(예: Java런타임-라이브러리1, Java런타임-라이브러리2) 중 기 생성된 해당 가상앱의 메타데이터세트(예: Java런타임-라이브러리1)와 관련도가 높은 메타데이터세트 순서를 결정하기 위해서는, 기 생성된 해당 가상앱과 특정가상앱의 개발언어가 동일(예: Java)/호환 가능해야 하며, 기 생성된 해당 가상앱에 해당하는 컨텐츠가 제2 가상환경에서 기준 이상의 서비스 품질을 갖는 것이 바람직할 것이다.
이에, 생성부(320)는, 특정가상앱(APP)과 관련되는 메타데이터그룹 내 메타데이터세트를 기 생성된 해당 가상앱의 메타데이터세트와 관련도가 높은 순서로 정렬하고, 정렬된 메타데이터세트 순서에 따라 특정메타데이터세트를 결정하여 특정가상앱을 생성할 수 있게 되는 것이다.
예를 들어, 특정가상앱(APP)에 대한 환경정보로서 2개의 메타데이터세트1(Java런타임-라이브러리1) 및 메타데이터세트2(Java런타임-라이브러리2)가 확인되며, 기 생성된 해당 가상앱의 메타데이터세트(Java런타임-라이브러리1)인 경우, 생성부(320)는, 기 생성된 해당 가상앱의 메타데이터세트(Java런타임-라이브러리1)와의 관련도가 메타데이터세트1(Java런타임-라이브러리1)가 더 높은 것으로 판단하고, 관련도가 높은 순서인 메타데이터세트1(Java런타임-라이브러리1)> 메타데이터세트2(Java런타임-라이브러리2)로 정렬한다.
이후, 생성부(320)는, 정렬순서가 높은 메타데이터세트1(Java런타임-라이브러리1)를 특정메타데이터세트로 결정한 후 특정가상앱1을 생성한다. 동일하게, 생성부(320)는, 다음 정렬순서의 메타데이터세트2(Java런타임-라이브러리2)를 특정메타데이터세트로 결정한 후 특정가상앱2를 생성한다.
결국, 특정가상앱(APP)에는, 메타데이터세트의 개수(예: 2개)에 대응하는 개수로 생성된 특정가상앱1,2가 포함되게 된다.
전술에 따라 생성부(320)로부터 특정가상앱(APP)의 생성이 완료되면, 운영관리부(330)는, 특정가상앱(APP)에 대한 테스트 수행을 위해 제1 가상환경에 특정가상앱(APP)이 배포되도록 하여 테스트결과가 생성되도록 한 후, 테스트결과를 기반으로 제2 가상환경에 특정가상앱(APP)이 배포되도록 제어한다(S111-S119).
이때, 특정가상앱(APP)에는, 메타데이터세트의 개수(예: 2개)에 대응하는 개수로 생성된 특정가상앱1,2가 포함되어 있다. 이하에서는, 설명의 편의 상, 특정가상앱(APP)에 특정가상앱1,2이 포함되어 있으며, 특정가상앱을 구분하는 식별자(1,2)의 순서는 테스트를 수생하는 순서인 것으로 언급하여 설명하도록 하겠다.
즉, 운영관리부(330)는, 특정가상앱(APP)에 포함된 특정가상앱1,2를 검출한 후 제1 가상환경에 배포하여 테스트결과를 생성한다.
이후, 운영관리부(330)는, 테스트 수생순서가 앞서는 특정가상앱1로부터 메타데이터세트1을 검출하고, 메타데이터세트1에 포함되는 프로그램실행환경정보(예: Java런타임)와 프레임워크환경정보(예: 라이브러리1)를 기반으로 테스트가 수행되도록 하여 테스트결과1를 생성한다.
이어서, 운영관리부(330)는, 다음 테스트 수행순서를 갖는 특정가상앱2로부터 메타데이터세트2를 검출하고, 메타데이터세트2에 포함되는 프로그램실행환경정보(예: Java런타임)와 프레임워크환경정보(예: 라이브러리2)를 기반으로 테스트가 수행되도록 하여 테스트결과2를 생성한다.
전술에 따라 특정가상앱(APP)에 포함된 특정가상앱1,2의 테스트결과1,2의 생성이 완료되면, 운영관리부(330)는, 테스트결과1,2 중 기 설정된 기준등급 이상인 테스트결과를 검출한다. 이하에서는, 설명의 편의 상, 테스트결과1이 기준등급 이상인 것으로 언급하여 설명을 이어가도록 하겠다.
여기서, 기준등급은, 특정가상앱(APP)에 포함되는 특정가상앱1,2에 대한 테스트를 수행했을 때 신규/갱신 배포되는 특정가상앱(APP)이 상용 수준의 기능을 갖는지의 여부를 확인하기 위해 개발자에 의해 미리 설정되는 정보일 수 있으며, 다수의 실험/테스트를 통해 획득될 수 있다.
이후, 운영관리부(330)는, 특정가상앱1의 테스트결과1이 상용 수준의 기능을 갖는 것으로 판단하고, 특정가상앱1이 제2 가상환경에 배포될 수 있도록 라우팅정보를 확인한다.
이처럼 라우팅정보를 확인하기 위해서는, 특정가상앱(APP)에 매칭되어 있는 배포식별자를 확인한 결과를 기반으로 배포속성이 확인되어야 한다.
이에, 운영관리부(330)는, 특정가상앱(APP)에 제1 배포식별자가 매칭되어 있으면 특정가상앱(APP)이 신규 배포인 것으로 확인하며, 특정가상앱(APP)에 제2 배포식별자가 매칭되어 있으면 특정가상앱(APP)이 갱신 배포인 것으로 확인한다.
전술에 따라 배포속성을 확인한 결과, 특정가상앱(APP)이 신규 배포 것으로 확인되면, 운영관리부(330)는, 제2 가상환경에 특정가상앱(APP)과 관련되는 기 생성된 해당 가상앱이 존재하지 않을 것이므로, 특정가상앱의 라우팅정보를 신규 설정하여 특정가상앱(APP), 즉 특정가상앱1이 제2 가상환경에 배포되도록 제어한다.
결국, 운영관리부(330)는, 제1 가상환경에서의 특정가상앱1에 대한 테스트결과가 기 설정된 기준등급이상이고 제2 가상환경에 기 생성된 해당 가상앱이 존재하지 않으면, 특정가상앱(APP), 즉 특정가상앱1이 신규 배포되는 것이므로, 특정가상앱1의 라우팅정보를 신규 설정한다.
한편, 특정가상앱(APP)이 갱신 배포 것으로 확인되면, 운영관리부(330)는, 제2 가상환경에 특정가상앱(APP)과 관련되는 기 생성된 해당 가상앱이 존재할 것이므로, 기 생성된 해당 가상앱 대신 특정가상앱(APP), 즉 특정가상앱1이 제2 가상환경에 배포되도록 라우팅정보를 변경한다.
결국, 운영관리부(330)는, 제1 가상환경에서의 특정가상앱1에 대한 테스트결과가 기 설정된 기준등급이상이고 제2 가상환경에 기 생성된 해당 가상앱이 존재하면, 특정가상앱(APP), 즉 특정가상앱1이 갱신 배포되는 것이므로, 기 생성된 해당 가상앱의 라우팅정보를 삭제한 후 특정가상앱1의 라우팅정보로 교체한다.
전술과 같이 특정가상앱(APP)에 서로 다른 환경정보를 갖는 세부 특정가상앱들이 구비되도록 함에 따라, 신규/갱신되는 마이크로서비스가 상용 수준의 기능을 갖도록 하기 위해 개발자가 매번 환경정보를 일일이 변경하지 않더라도 다양한 환견정보를 기반으로 동적 테스트를 수행한 효과가 발생되므로, 마이크로서비스 테스트 과정에서의 개발자의 개입을 최소화할 수 있게 되는 것이다.
전술에 따라 라우팅정보의 신규설정/변경이 완료되면, 고객단말(200)은, 특정마이크로서비스에 해당하는 특정컨텐츠를 수신할 수 있게 된다.
한편, 장애관리부(350)는, 제2 가상환경에 특정가상앱(APP)이 배포된 후 특정컨텐츠가 제공되는 과정에서 발생되는 서비스장애를 원격에서 관리한다(S120-S123).
여기서, 서비스장애는, 제2 가상환경에 특정가상앱(APP)에 대한 배포가 완료된 후, 특정마이크로서비스에 해당하는 특정컨텐츠가 고객단말(200)로 제공되는 과정에서 서버 리소스 부족이나 네트워크 문제 등으로 인해 발생되는 응답지연 등일 수 있다. 이하에서는, 설명의 편의 상, 서비스장애가 응답지연인 것으로 언급하여 설명하도록 하겠다.
즉, 장애관리부(350)는, 응답지연(latency)이 발생하게 되면, 특정마이크로서비스가 적어도 하나의 지연차단정보가 저장된 해당 저장소를 확인할 수 있도록 원격에서 설정정보를 변경한다.
여기서, 설정정보는, 특정마이크로서비스가 자신에 구비된 전체 저장소 중 적어도 하나의 지연차단정보가 저장된 해당 저장소(예: 운영툴 저장소)를 찾을 수 있도록 하는 파라미터값일 수 있다.
한편, 지연차단정보는, 기준 이상의 응답지연(latency)이 발생 시, 고객단말(200) 상에 서비스장애 상황이 그대로 노출되는 것을 방지하기 위한 정보(예: 추천 VOD 리스트 등)일 수 있다.
이에, 특정마이크로서비스는, 응답지연이 발생하게 되면, 장애관리부(350)로부터 수신되는 설정정보를 기반을 해당 저장소를 검출한 후 해당 저장소에 저장된 지연차단정보를 고객단말(200)로 제공할 수 있게 되는 것이다.
결국, 기존과 달리 특정마이크로서비스의 소스코드에 직접적으로 코딩을 수행하여 빌드한 후 배포하는 과정을 수행하지 않고도, 운영툴에 정해진 저장소에서 설정정보를 검출하게 됨에 따라, 런타임 중에도 별도의 소스코딩, 빌드, 배포과정 없이 무중단으로 지연차단정보를 제공할 수 있게 된다.
이상에서 설명한 바와 같이 본 발명에 따른 마이크로서비스관리장치 및 방법에 의하면, 마이크로서비스(microservice) 제공에 최적화된 마이크로서비스 개발환경이 실현되도록 함으로써, 기존과 달리 마이크로서비스 테스트 과정에서의 개발자의 개입을 최소화할 수 있어 서비스 이용에 따른 사용자 만족도를 향상시킬 수 있음은 물론, 트래픽 변경이 빈번하게 발생하는 상황에서도 신속하고 안정적으로 마이크로서비스를 제공할 수 있어 전반적인 마이크로서비스의 성능을 향상시키는 효과를 도출한다.
본 발명의 실시예들은, 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
지금까지 본 발명을 바람직한 실시 예를 참조하여 상세히 설명하였지만, 본 발명이 상기한 실시 예에 한정되는 것은 아니며, 이하의 특허청구범위에서 청구하는 본 발명의 요지를 벗어남이 없이 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 누구든지 다양한 변형 또는 수정이 가능한 범위까지 본 발명의 기술적 사상이 미친다 할 것이다.
본 발명의 마이크로서비스관리장치 및 방법에 따르면, 마이크로서비스(microservice) 제공에 최적화된 마이크로서비스 개발환경이 실현되도록 함으로써, 기존과 달리 마이크로서비스 테스트 과정에서의 개발자의 개입을 최소화할 수 있으며, 트래픽 변경이 빈번하게 발생하는 상황에서도 안정적으로 마이크로서비스를 제공할 수 있다는 점에서, 기존 기술의 한계를 뛰어 넘음에 따라 관련 기술에 대한 이용만이 아닌 적용되는 장치의 시판 또는 영업의 가능성이 충분할 뿐만 아니라 현실적으로 명백하게 실시할 수 있는 정도이므로 산업상 이용가능성이 있는 발명이다.
100 : 개발자단말 200 : 고객단말
300 : 마이크로서비스관리장치 310 : 결정부
320 : 생성부 330 : 운영관리부
340 : 가상환경관리부 330 : 장애관리부
360 : 게이트웨이
300 : 마이크로서비스관리장치 310 : 결정부
320 : 생성부 330 : 운영관리부
340 : 가상환경관리부 330 : 장애관리부
360 : 게이트웨이
Claims (14)
- 개발자단말로부터 적어도 하나의 마이크로서비스 중 특정마이크로서비스와 관련되는 개발결과정보가 확인되는 경우, 상기 개발결과정보에 대한 환경정보를 확인한 결과를 기반으로 상기 개발결과정보에 대한 수신여부를 결정하는 결정부;
상기 개발자단말로부터 상기 개발결과정보가 업로드된 경우, 상기 개발결과정보와 상기 환경정보를 기반으로 가상환경에서 실행 가능한 특정가상앱을 생성하는 생성부; 및
상기 특정마이크로서비스에 해당하는 특정컨텐츠가 제공될 수 있도록 상기 특정가상앱을 배포하는 운영관리부
를 포함하며,
상기 생성부는,
상기 가상환경에 기 생성된 해당 가상앱이 존재하지 않으면, 상기 특정가상앱이 신규 배포되는 것으로 판단하며, 상기 개발자단말의 개발자가 선정한 우선순위가 높은 메타데이터세트 순서를 기반으로 메타데이터세트를 결정하며,
상기 가상환경에 상기 기 생성된 해당 가상앱이 존재하면, 상기 특정컨텐츠의 업데이트를 수행하기 위해 갱신 배포되는 것으로 판단하여, 상기 기 생성된 해당 가상앱의 메타데이터세트와의 관련도를 기반으로 메타데이터세트를 결정하는 것을 특징으로 하는 마이크로서비스관리장치. - 제 1 항에 있어서,
상기 환경정보는 상기 특정가상앱이 가상환경에서 실행되도록 하는 풀(Pool)형태의 메타데이터그룹을 포함하며,
상기 결정부는,
상기 메타데이터그룹이 특정플랫폼에서 지원되는지의 여부를 확인한 결과를 기반으로 상기 개발결과정보에 대한 수신여부를 결정하는 것을 특징을 하는 마이크로서비스관리장치. - 제 2 항에 있어서,
상기 결정부는,
상기 메타데이터그룹이 상기 특정플랫폼에서 지원되는 경우, 상기 특정가상앱의 생성이 가능한 것으로 판단하여 상기 개발결과정보의 업로드를 요청하는 요청메시지를 상기 개발자단말로 전송하며,
상기 메타데이터그룹이 상기 특정플랫폼에서 지원되지 않는 경우, 상기 특정가상앱의 생성이 불가능한 것으로 판단하여 종료알림메시지를 상기 개발자단말로 전송하는 것을 특징으로 하는 마이크로서비스관리장치. - 제 2 항에 있어서,
상기 가상환경은,
상기 특정가상앱의 테스트 수행과 관련되는 제1 가상환경과, 기 생성된 마이크로서비스와 관련되는 가상앱이 정식으로 상용 배포되어 있는 제2 가상환경을 포함하며,
상기 생성부는,
상기 제2 가상환경에 상기 특정컨텐츠를 제공하는 기 생성된 해당 가상앱이 존재하는지의 여부를 확인한 결과를 기반으로 상기 메타데이터그룹 중 특정메타데이터세트를 선택하고, 상기 특정메타데이터세트와 상기 개발결과정보를 패키징하여 상기 특정가상앱을 생성하는 것을 특징으로 하는 마이크로서비스관리장치. - 제 4 항에 있어서,
상기 생성부는,
상기 제2 가상환경에 상기 기 생성된 해당 가상앱이 존재하지 않으면, 상기 특정가상앱이 신규 배포되는 것으로 판단하며, 상기 개발자단말의 개발자가 선정한 우선순위가 높은 메타데이터세트 순서를 기반으로 상기 메타데이터그룹 중 상기 특정메타데이터세트를 결정하며,
상기 제2 가상환경에 상기 기 생성된 해당 가상앱이 존재하면, 상기 특정컨텐츠의 업데이트를 수행하기 위해 갱신 배포되는 것으로 판단하여, 상기 기 생성된 해당 가상앱의 메타데이터세트와 관련도가 높은 메타데이터세트 순서를 기반으로 상기 메타데이터그룹 중 상기 특정메타데이터세트를 결정하는 것을 특징으로 하는 마이크로서비스관리장치. - 제 5 항에 있어서,
상기 운영관리부는,
상기 제1 가상환경에서의 상기 특정가상앱에 대한 테스트결과가 기 설정된 기준등급이상이고 상기 제2 가상환경에 상기 기 생성된 해당 가상앱이 존재하는 경우, 상기 기 생성된 해당 가상앱 대신 상기 특정가상앱이 배포되도록 라우팅정보를 변경하며,
상기 제1 가상환경에서의 상기 특정가상앱에 대한 테스트결과가 기 설정된 기준등급이상이고 상기 제2 가상환경에 상기 기 생성된 해당 가상앱이 존재하지 않는 경우, 상기 특정가상앱의 라우팅정보를 신규 설정하는 것을 특징으로 하는 마이크로서비스관리장치. - 제 4 항에 있어서,
상기 제2 가상환경에 상기 특정가상앱에 대한 배포가 완료된 후 상기 특정마이크로서비스에서 기준 이상의 응답지연이 발생하는 경우, 상기 특정마이크로서비스가 기 설정된 저장소에서 지연차단정보를 확인할 수 있도록 원격에서 설정정보를 변경하는 장애관리부를 더 포함하는 것을 특징으로 하는 마이크로서비스관리장치. - 개발자단말로부터 적어도 하나의 마이크로서비스 중 특정마이크로서비스와 관련되는 개발결과정보가 확인되는 경우, 상기 개발결과정보에 대한 환경정보를 확인한 결과를 기반으로 상기 개발결과정보에 대한 수신여부를 결정하는 결정단계;
상기 개발자단말로부터 상기 개발결과정보가 업로드된 경우, 상기 개발결과정보와 상기 환경정보를 기반으로 가상환경에서 실행 가능한 특정가상앱을 생성하는 생성단계; 및
상기 특정마이크로서비스에 해당하는 특정컨텐츠가 제공될 수 있도록 상기 특정가상앱을 배포하는 운영관리단계
를 포함하며,
상기 생성단계는,
상기 가상환경에 기 생성된 해당 가상앱이 존재하지 않으면, 상기 특정가상앱이 신규 배포되는 것으로 판단하며, 상기 개발자단말의 개발자가 선정한 우선순위가 높은 메타데이터세트 순서를 기반으로 메타데이터세트를 결정하며,
상기 가상환경에 상기 기 생성된 해당 가상앱이 존재하면, 상기 특정컨텐츠의 업데이트를 수행하기 위해 갱신 배포되는 것으로 판단하여, 상기 기 생성된 해당 가상앱의 메타데이터세트와의 관련도를 기반으로 메타데이터세트를 결정하는 것을 특징으로 하는 마이크로서비스관리장치의 동작방법. - 제 8 항에 있어서,
상기 환경정보는 상기 특정가상앱이 가상환경에서 실행되도록 하는 풀(Pool)형태의 메타데이터그룹을 포함하며,
상기 결정단계는,
상기 메타데이터그룹이 특정플랫폼에서 지원되는지의 여부를 확인한 결과를 기반으로 상기 개발결과정보에 대한 수신여부를 결정하는 것을 특징을 하는 마이크로서비스관리장치의 동작방법. - 제 9 항에 있어서,
상기 결정단계는,
상기 메타데이터그룹이 상기 특정플랫폼에서 지원되는 경우, 상기 특정가상앱의 생성이 가능한 것으로 판단하여 상기 개발결과정보의 업로드를 요청하는 요청메시지를 상기 개발자단말로 전송하며,
상기 메타데이터그룹이 상기 특정플랫폼에서 지원되지 않는 경우, 상기 특정가상앱의 생성이 불가능한 것으로 판단하여 종료알림메시지를 상기 개발자단말로 전송하는 것을 특징으로 하는 마이크로서비스관리장치의 동작방법. - 제 9 항에 있어서,
상기 가상환경은,
상기 특정가상앱의 테스트 수행과 관련되는 제1 가상환경과, 기 생성된 마이크로서비스와 관련되는 가상앱이 정식으로 상용 배포되어 있는 제2 가상환경을 포함하며,
상기 생성단계는,
상기 제2 가상환경에 상기 특정컨텐츠를 제공하는 기 생성된 해당 가상앱이 존재하는지의 여부를 확인한 결과를 기반으로 상기 메타데이터그룹 중 특정메타데이터세트를 선택하고, 상기 특정메타데이터세트와 상기 개발결과정보를 패키징하여 상기 특정가상앱을 생성하는 것을 특징으로 하는 마이크로서비스관리장치의 동작방법. - 제 11 항에 있어서,
상기 생성단계는,
상기 제2 가상환경에 상기 기 생성된 해당 가상앱이 존재하지 않으면, 상기 특정가상앱이 신규 배포되는 것으로 판단하며, 상기 개발자단말의 개발자가 선정한 우선순위가 높은 메타데이터세트 순서를 기반으로 상기 메타데이터그룹 중 상기 특정메타데이터세트를 결정하며,
상기 제2 가상환경에 상기 기 생성된 해당 가상앱이 존재하면, 상기 특정컨텐츠의 업데이트를 수행하기 위해 갱신 배포되는 것으로 판단하여, 상기 기 생성된 해당 가상앱의 메타데이터세트와 관련도가 높은 메타데이터세트 순서를 기반으로 상기 메타데이터그룹 중 상기 특정메타데이터세트를 결정하는 것을 특징으로 하는 마이크로서비스관리장치의 동작방법. - 제 12 항에 있어서,
상기 운영관리단계는,
상기 제1 가상환경에서의 상기 특정가상앱에 대한 테스트결과가 기 설정된 기준등급이상이고 상기 제2 가상환경에 상기 기 생성된 해당 가상앱이 존재하는 경우, 상기 기 생성된 해당 가상앱 대신 상기 특정가상앱이 배포되도록 라우팅정보를 변경하며,
상기 제1 가상환경에서의 상기 특정가상앱에 대한 테스트결과가 기 설정된 기준등급이상이고 상기 제2 가상환경에 상기 기 생성된 해당 가상앱이 존재하지 않는 경우, 상기 특정가상앱의 라우팅정보를 신규 설정하는 것을 특징으로 하는 마이크로서비스관리장치의 동작방법. - 제 11 항에 있어서,
상기 제2 가상환경에 상기 특정가상앱에 대한 배포가 완료된 후 상기 특정마이크로서비스에서 기준 이상의 응답지연이 발생하는 경우, 상기 특정마이크로서비스가 기 설정된 저장소에서 지연차단정보를 확인할 수 있도록 원격에서 설정정보를 변경하는 장애관리단계를 더 포함하는 것을 특징으로 하는 마이크로서비스관리장치의 동작방법.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020170090456A KR101977602B1 (ko) | 2017-07-17 | 2017-07-17 | 마이크로서비스관리장치 및 방법 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020170090456A KR101977602B1 (ko) | 2017-07-17 | 2017-07-17 | 마이크로서비스관리장치 및 방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20190008724A KR20190008724A (ko) | 2019-01-25 |
KR101977602B1 true KR101977602B1 (ko) | 2019-05-13 |
Family
ID=65280586
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020170090456A KR101977602B1 (ko) | 2017-07-17 | 2017-07-17 | 마이크로서비스관리장치 및 방법 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101977602B1 (ko) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110380936B (zh) * | 2019-07-23 | 2021-05-14 | 中国工商银行股份有限公司 | 测试方法和装置 |
KR102109461B1 (ko) * | 2020-02-17 | 2020-05-12 | 주식회사 제이윈파트너스 | 마이크로 서비스 아키텍처(msa) 기반의 프로젝트 자동화 지원 시스템 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101359690B1 (ko) * | 2009-12-18 | 2014-02-10 | 한국전자통신연구원 | 온라인 개발환경 서버, 온라인 마켓플레이스 서버, 온라인 개발환경 구성 방법 및 개발된 애플리케이션 서비스 방법 |
-
2017
- 2017-07-17 KR KR1020170090456A patent/KR101977602B1/ko active IP Right Grant
Non-Patent Citations (1)
Title |
---|
XENONSTACK, 마이크로 서비스 아키텍처의 테스트 전략, 2017* |
Also Published As
Publication number | Publication date |
---|---|
KR20190008724A (ko) | 2019-01-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10146524B1 (en) | Preemptive deployment in software deployment pipelines | |
US10713183B2 (en) | Virtual machine backup using snapshots and current configuration | |
US10491704B2 (en) | Automatic provisioning of cloud services | |
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 | |
US20200110624A1 (en) | Virtual Machine | |
US10411961B2 (en) | Image management in cloud environments | |
US9292278B2 (en) | Providing high availability for state-aware applications | |
US10067860B2 (en) | Defining test bed requirements | |
US20100312879A1 (en) | Plug-in provisioning integration in a clustered environment | |
US10338910B2 (en) | Multi-tenant upgrading | |
US9141363B2 (en) | Application construction for execution on diverse computing infrastructures | |
US10019345B2 (en) | Executing multi-version tests against a multi-version application | |
CN111831567B (zh) | 应用的测试环境配置方法、装置、***和介质 | |
KR101977602B1 (ko) | 마이크로서비스관리장치 및 방법 | |
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 | |
US10140155B2 (en) | Dynamically provisioning, managing, and executing tasks | |
CN105610908B (zh) | 一种基于安卓设备的samba服务实现方法及*** | |
CN112667491B (zh) | 虚拟机的功能测试方法及装置 | |
US10911307B2 (en) | System and method for out of the box solution-level configuration and diagnostic logging and reporting |
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 |