KR20180120991A - 마이크로서비스 응용의 분산 설치 장치 및 방법 - Google Patents

마이크로서비스 응용의 분산 설치 장치 및 방법 Download PDF

Info

Publication number
KR20180120991A
KR20180120991A KR1020170055080A KR20170055080A KR20180120991A KR 20180120991 A KR20180120991 A KR 20180120991A KR 1020170055080 A KR1020170055080 A KR 1020170055080A KR 20170055080 A KR20170055080 A KR 20170055080A KR 20180120991 A KR20180120991 A KR 20180120991A
Authority
KR
South Korea
Prior art keywords
service
application
micro
information
distributed installation
Prior art date
Application number
KR1020170055080A
Other languages
English (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 KR1020170055080A priority Critical patent/KR20180120991A/ko
Publication of KR20180120991A publication Critical patent/KR20180120991A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

마이크로서비스 응용의 분산 설치 장치 및 방법이 개시된다. 본 발명에 따른 마이크로서비스 응용의 분산 설치 장치에 의해 수행되는 마이크로서비스 응용의 분산 설치 방법은 서비스 개발자 단말기로부터 하나 이상의 마이크로서비스 응용을 포함하는 분산 설치 요청을 수신하는 단계, 상기 마이크로서비스 응용을 하나 이상의 모듈로 분할하고, 분할된 상기 모듈의 모듈 특성 정보를 추출하는 단계, 추출된 상기 모듈 특성 정보를 기반으로, 하나 이상의 클라우드 서비스 제공자를 선정하는 단계, 그리고 하나 이상의 상기 모듈을 각각 상기 클라우드 서비스 제공자에 분산 설치하는 단계를 포함한다.

Description

마이크로서비스 응용의 분산 설치 장치 및 방법{APPARATUS AND METHOD FOR DISTRIBUTED INSTALLATION OF MICRO-SERVICE STYLE APPLICATION}
본 발명은 마이크로서비스 응용의 분산 설치 기술에 관한 것으로, 특히 마이크로서비스 아키텍처 스타일의 응용 서비스를 클라우드 서비스 사업자에 분산 설치하는 기술에 관한 것이다.
종래 기술에 따르면, 대부분의 응용 프로그램은 모놀로식(Monolithic) 아키텍처 스타일로 개발되었다. 모놀리식 아키텍처 스타일은 응용 프로그램을 하나의 큰 덩어리 단위로 개발하는 것으로, 프로그램의 동작에 필요한 다양한 프로세스와 데이터베이스를 연결하고, 프로그램을 계층적으로 구성하는 방식이다. 모놀리식 아키텍처 스타일은 각각의 내부 프로세스와 긴밀히 연결되어 있으며, 일반적으로 하나의 설계 프로그램을 이용하여 개발된다.
모놀리식 아키텍처 스타일 구조를 갖는 응용 프로그램은 개발 단계에서 통합형으로 개발되고, 단일 서비스로 배포 및 활용된다. 따라서, 일부 내용을 수정하고자 하는 경우, 전체 프로그램을 다시 설치하고, 정상적으로 동작하는지 여부를 판단해야 하므로 부분적인 수정이 어렵다.
반면, 마이크로서비스(Microservice) 아키텍처 스타일은 하나의 응용 프로그램을 개발할 때 복수 개의 작은 서비스(service)들로 분할하고, 분할된 작은 서비스들을 병합하여 하나의 응용 프로그램을 완성한다. 즉, 마이크로서비스 아키텍처 스타일은 각각의 서비스를 모듈별로 특화하고, 인터페이스를 이용하여 각각의 모듈을 연결하고 통합함으로써, 하나의 응용 서비스를 생성한다.
그리고 마이크로서비스 아키텍처 스타일은 각각의 마이크로서비스를 독립적으로 수정할 수 있어 업데이트가 용이하다. 또한, 특정 기능의 확장을 위해서 전체 시스템을 복제해야 하는 모놀리식 아키텍처 스타일과 달리, 마이크로서비스 아키텍처 스타일은 서비스의 확장이 용이하며 불필요한 자원의 낭비 문제를 해결할 수 있다.
따라서, 마이크로서비스 응용의 개발을 위한 설계를 지원하고, 개발된 마이크로서비스 응용을 클라우드 서비스 제공자에 자동으로 분산 설치하여, 마이크로서비스 아키텍처 스타일의 개발을 지원하는 기술의 개발이 필요하다.
한국 공개 특허 제10-2004-0079337호, 2004년 09월 14일 공개(명칭: 분산형 컴퓨팅 시스템을 위한 아키텍처 및 분산형애플리케이션들의 자동화된 설계, 배포와 관리)
본 발명의 목적은 서비스 개발자에게 개발 가이드라인을 제공하여, 보다 편리하게 마이크로서비스 응용을 설계 및 개발할 수 있도록 지원하는 것이다.
또한, 본 발명의 목적은 마이크로서비스 응용을 컨테이너 기반으로 클라우드 서비스 제공자에 자동 설치 및 관리하여, 서비스 개발자가 마이크로서비스 응용의 개발에만 몰두할 수 있도록 하는 것이다.
또한, 본 발명의 목적은 마이크로서비스 응용의 설치 및 운용을 대행하여, 서비스 론칭에 소요되는 서비스 개발자의 노력을 절감시킬 수 있도록 하는 것이다.
또한, 본 발명의 목적은 마이크로서비스 단위로 분리 및 통합 운용하여, 마이크로서비스 응용의 확장, 업데이트 및 수정을 용이하게 하는 것이다.
상기한 목적을 달성하기 위한 본 발명에 따른 마이크로서비스 응용의 분산 설치 장치에 의해 수행되는 마이크로서비스 응용의 분산 설치 방법은 서비스 개발자 단말기로부터 하나 이상의 마이크로서비스 응용을 포함하는 분산 설치 요청을 수신하는 단계, 상기 마이크로서비스 응용을 하나 이상의 모듈로 분할하고, 분할된 상기 모듈의 모듈 특성 정보를 추출하는 단계, 추출된 상기 모듈 특성 정보를 기반으로, 하나 이상의 클라우드 서비스 제공자를 선정하는 단계, 그리고 하나 이상의 상기 모듈을 각각 상기 클라우드 서비스 제공자에 분산 설치하는 단계를 포함한다.
이때, 상기 클라우드 서비스 제공자를 선정하는 단계는, 상기 모듈 특성 정보를 기반으로, 컨테이너 서비스를 제공하는 상기 클라우드 서비스 제공자 및 상기 클라우드 서비스 제공자의 컨테이너를 선정할 수 있다.
이때, 상기 클라우드 서비스 제공자를 선정하는 단계는, 상기 클라우드 서비스 제공자의 정보를 기반으로, 상기 마이크로서비스 응용의 설정 조건을 만족하는 하나 이상의 상기 클라우드 서비스 제공자를 선정할 수 있다.
이때, 상기 클라우드 서비스 제공자의 정보는, 상기 클라우드 서비스 제공자에 상응하는 운영체제 정보, 컨테이너 정보, 응답속도 정보, 비용 정보, 성능 정보 및 설치 위치 정보 중 적어도 어느 하나를 포함할 수 있다.
이때, 상기 서비스 개발자 단말기로부터 상기 마이크로서비스 응용의 개발 정보를 수신하는 단계, 그리고 상기 개발 정보에 상응하는 설계 가이드 라인 정보를 상기 서비스 개발자 단말기로 제공하는 단계를 더 포함할 수 있다.
이때, 상기 모듈의 모듈 특성 정보를 추출하는 단계는, 상기 설계 가이드 라인 정보를 이용하여, 상기 마이크로서비스 응용을 하나 이상의 상기 모듈로 분할하는 단계, 상기 모듈 별 운영 체제의 적합성 여부를 판단하는 단계, 그리고 각각의 상기 모듈의 컨테이너 이미지를 분석하여, 상기 모듈 별 컨테이너의 적합성 여부를 판단하는 단계를 포함할 수 있다.
이때, 상기 분산 설치 요청을 수신하는 단계는, 상기 설계 가이드 라인 정보를 기반으로 생성된 하나 이상의 상기 마이크로서비스 응용을 포함하는 상기 분산 설치 요청을 수신할 수 있다.
이때, 상기 모듈을 각각 상기 클라우드 서비스 제공자에 분산 설치하는 단계는, 상기 모듈에 상응하는 라이브러리가 필요한 것으로 판단된 경우, 상기 클라우드 서비스 제공자에 상기 라이브러리를 추가 설치할 수 있다.
이때, 사용자로부터 마이크로서비스 응용의 사용 요청을 수신하는 단계, 각각의 상기 클라우드 서비스 제공자에 분산 설치된 복수의 상기 모듈 중에서, 상기 사용 요청에 상응하는 하나 이상의 상기 모듈을 선정하는 단계, 그리고 선정된 상기 모듈을 결합하여, 상기 사용자에게 상기 마이크로서비스 응용을 제공하는 단계를 더 포함할 수 있다.
이때, 상기 마이크로서비스 응용에 오류가 발생한 경우, 상기 클라우드 서비스 제공자에 설치된 모듈 중에서 상기 마이크로서비스 응용의 모듈에 대응되는 하나 이상의 모듈을 호출하는 단계, 호출된 상기 모듈을 이용하여, 상기 마이크로서비스 응용을 수정하는 단계, 그리고 상기 사용자에게 수정된 상기 마이크로서비스 응용을 제공하는 단계를 더 포함할 수 있다.
또한, 본 발명의 일실시예에 따른 마이크로서비스 응용의 분산 설치 장치는 서비스 개발자 단말기로부터 하나 이상의 마이크로서비스 응용을 포함하는 분산 설치 요청을 수신하는 분산 설치 요청 수신부, 상기 마이크로서비스 응용을 하나 이상의 모듈로 분할하고, 분할된 상기 모듈의 모듈 특성 정보를 추출하는 응용 분석부, 추출된 상기 모듈 특성 정보를 기반으로, 하나 이상의 클라우드 서비스 제공자를 선정하는 클라우드 서비스 제공자 선정부, 그리고 하나 이상의 상기 모듈을 각각 상기 클라우드 서비스 제공자에 분산 설치하는 모듈 분산 설치부를 포함한다.
이때, 상기 클라우드 서비스 제공자 선정부는, 상기 모듈 특성 정보를 기반으로, 컨테이너 서비스를 제공하는 상기 클라우드 서비스 제공자 및 상기 클라우드 서비스 제공자의 컨테이너를 선정할 수 있다.
이때, 상기 클라우드 서비스 제공자 선정부는, 상기 클라우드 서비스 제공자의 정보를 기반으로, 상기 마이크로서비스 응용의 설정 조건을 만족하는 하나 이상의 상기 클라우드 서비스 제공자를 선정할 수 있다.
이때, 상기 클라우드 서비스 제공자의 정보는, 상기 클라우드 서비스 제공자에 상응하는 운영체제 정보, 컨테이너 정보, 응답속도 정보, 비용 정보, 성능 정보 및 설치 위치 정보 중 적어도 어느 하나를 포함할 수 있다.
이때, 상기 서비스 개발자 단말기로부터 상기 마이크로서비스 응용의 개발 정보를 수신하는 개발 정보 수신부, 그리고 상기 개발 정보에 상응하는 설계 가이드 라인 정보를 상기 서비스 개발자 단말기로 제공하는 가이드 라인 제공부를 더 포함할 수 있다.
이때, 상기 응용 분석부는, 상기 설계 가이드 라인 정보를 이용하여, 상기 마이크로서비스 응용을 하나 이상의 상기 모듈로 분할하고, 상기 모듈 별 운영 체제의 적합성 여부를 판단하며, 각각의 상기 모듈의 컨테이너 이미지를 분석하여, 상기 모듈 별 컨테이너의 적합성 여부를 판단할 수 있다.
이때, 상기 분산 설치 요청 수신부는, 상기 설계 가이드 라인 정보를 기반으로 생성된 하나 이상의 상기 마이크로서비스 응용을 포함하는 상기 분산 설치 요청을 수신할 수 있다.
이때, 상기 모듈 분산 설치부는, 상기 모듈에 상응하는 라이브러리가 필요한 것으로 판단된 경우, 상기 클라우드 서비스 제공자에 상기 라이브러리를 추가 설치할 수 있다.
이때, 각각의 상기 클라우드 서비스 제공자에 분산 설치된 복수의 상기 모듈 중에서, 사용자로부터 수신한 마이크로서비스 응용의 사용 요청에 상응하는 하나 이상의 상기 모듈을 선정하고, 선정된 상기 모듈을 결합하여 상기 사용자에게 상기 마이크로서비스 응용을 제공하는 서비스 오케스트레이션부를 더 포함할 수 있다.
이때, 상기 서비스 오케스트레이션부는, 상기 마이크로서비스 응용에 오류가 발생한 경우, 상기 클라우드 서비스 제공자에 설치된 모듈 중에서 상기 마이크로서비스 응용의 모듈에 대응되는 하나 이상의 모듈을 호출하고, 호출된 상기 모듈을 이용하여 상기 마이크로서비스 응용을 수정하며, 상기 사용자에게 수정된 상기 마이크로서비스 응용을 제공할 수 있다.
본 발명에 따르면, 개발 가이드라인을 제공하여, 서비스 개발자가 보다 편리하게 마이크로서비스 응용을 설계 및 개발할 수 있도록 지원할 수 있다.
또한 본 발명에 따르면, 마이크로서비스 응용을 컨테이너 기반으로 클라우드 서비스 제공자에 자동 설치 및 관리하여, 서비스 개발자가 마이크로서비스 응용의 개발에만 몰두할 수 있도록 한다.
또한 본 발명에 따르면, 마이크로서비스 응용의 설치 및 운용을 대행하여, 서비스 론칭에 소요되는 서비스 개발자의 노력을 절감시킬 수 있다.
또한 본 발명에 따르면, 마이크로서비스 단위로 분리 및 통합 운용하여, 마이크로서비스 응용의 확장, 업데이트 및 수정을 용이하게 할 수 있다.
도 1은 본 발명의 일실시예에 따른 마이크로서비스 응용의 분산 설치 장치가 적용되는 환경을 개략적으로 나타낸 도면이다.
도 2는 본 발명의 일실시예에 따른 마이크로서비스 응용의 분산 설치 장치의 구성을 나타낸 블록도이다.
도 3은 본 발명의 일실시예에 따른 마이크로서비스 응용의 분산 설치 방법을 설명하기 위한 순서도이다.
도 4는 본 발명의 일실시예에 따른 마이크로서비스 응용의 분산 설치 과정을 설명하기 위한 도면이다.
도 5는 본 발명의 일실시예에 따른 마이크로서비스 분산 설치 서비스 제공자의 구성을 나타낸 예시도이다.
도 6은 본 발명의 일실시예에 따른 마이크로서비스 응용의 분산 설치 서비스 제공 시스템의 동작 흐름을 나타낸 순서도이다.
도 7은 본 발명의 일실시예에 따른 컴퓨터 시스템을 나타낸 블록도이다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시 예들을 도면에 예시하고 상세하게 설명하고자 한다.
그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가진 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 첨부한 도면들을 참조하여, 본 발명의 바람직한 실시예를 보다 상세하게 설명하고자 한다. 본 발명을 설명함에 있어 전체적인 이해를 용이하게 하기 위하여 도면상의 동일한 구성요소에 대해서는 동일한 참조부호를 사용하고 동일한 구성요소에 대해서 중복된 설명은 생략한다.
도 1은 본 발명의 일실시예에 따른 마이크로서비스 응용의 분산 설치 장치가 적용되는 환경을 개략적으로 나타낸 도면이다.
도 1에 도시한 바와 같이, 마이크로서비스 응용의 분산 설치 서비스 제공 시스템은 서비스 개발자 단말기(100), 마이크로서비스 응용의 분산 설치 장치(200), 클라우드 서비스 제공자(300) 및 사용자 단말기(400)를 포함한다.
응용 서비스 개발자는 서비스 개발자 단말기(100)를 통해, 마이크로서비스 스타일로 응용을 개발한다. 이때, 서비스 개발자 단말기(100)는 마이크로서비스 응용의 분산 설치 장치(200)로부터 응용 개발의 설계 시부터 개발 완료 후 배포 시까지 지원을 받을 수 있다.
특히, 서비스 개발자 단말기(100)는 마이크로서비스 응용의 분산 설치 장치(200)로부터 응용 개발에 필요한 설계 가이드라인 정보를 제공받을 수 있다. 또한 마이크로서비스 응용의 개발이 완료되면, 서비스 개발자 단말기(100)는 마이크로서비스 응용의 분산 설치 장치(200)로 마이크로서비스 응용을 전송하여, 클라우드 서비스 제공자(300)에 마이크로서비스 모듈을 설치할 수 있다.
다음으로 마이크로서비스 응용의 분산 설치 장치(200)는 서비스 개발자 단말기(100)로부터 마이크로서비스 응용의 개발 정보를 수신하고, 서비스 개발자 단말기(100)로 설계 가이드라인 정보를 제공할 수 있으며, 서비스 개발자 단말기(100)로부터 분산 설치 요청을 수신할 수 있다.
그리고 마이크로서비스 응용의 분산 설치 장치(200)는 분산 설치 요청에 포함된 마이크로서비스 응용을 분석하여 모듈(마이크로서비스 모듈)로 분할하고, 모듈의 모듈 특성 정보를 추출한다.
또한 마이크로서비스 응용의 분산 설치 장치(200)는 추출된 모듈 특성 정보를 기반으로, 모듈을 분산 설치할 클라우드 서비스 제공자(300)를 선정할 수 있다. 그리고 선정된 클라우드 서비스 제공자(300)로 모듈을 전송하여, 클라우드 서비스 제공자(300)에 모듈을 분산 설치한다.
다음으로 클라우드 서비스 제공자(300)는 컨테이너 기반의 서비스 제공이 가능하며, 마이크로서비스 응용의 분산 설치 장치(200)로부터 마이크로서비스 모듈을 수신하여 설치한다. 그리고 클라우드 서비스 제공자(300)에 설치된 모듈은 네트워크 등을 통하여 실행될 수 있다.
또한, 클라우드 서비스 제공자(300)는 마이크로서비스 응용의 개발 및 수정 시, 응용의 업데이트 및 관리를 대행할 수 있으며, 모듈별 수정 업데이트를 지원할 수 있다.
마지막으로, 사용자 단말기(400)는 마이크로서비스 응용의 분산 설치 장치(200)로 마이크로서비스 응용의 사용 요청을 전송한다. 그리고 마이크로서비스 응용의 분산 설치 장치(200)로부터 하나 이상의 모듈이 결합된 형태의 마이크로서비스 응용을 제공받을 수 있다.
이하에서는 도 2를 통하여 본 발명의 일실시예에 따른 마이크로서비스 응용의 분산 설치 장치의 구성에 대하여 더욱 상세하게 설명한다.
도 2는 본 발명의 일실시예에 따른 마이크로서비스 응용의 분산 설치 장치의 구성을 나타낸 블록도이다.
도 2에 도시한 바와 같이, 마이크로서비스 응용의 분산 설치 장치(200)는 개발 정보 수신부(210), 가이드라인 제공부(220), 분산 설치 요청 수신부(230), 응용 분석부(240), 클라우드 서비스 제공자 선정부(250), 모듈 분산 설치부(260) 및 서비스 오케스트레이션부(270)를 포함한다.
먼저, 개발 정보 수신부(210)는 서비스 개발자 단말기(100)로부터 마이크로서비스 응용의 개발 정보를 수신한다. 개발 정보 수신부(210)는 마이크로서비스 응용에 대한 기능, 목적, 방식 등에 관한 개발 정보를 수신할 수 있다.
여기서, 개발 정보는 마이크로서비스 응용의 형태, 기능별 상세 설명 등에 관한 것일 수 있으며, 응용에 필요한 기능에 대한 정보, 마이크로서비스의 형태에 관한 정보 및 기능별 상세 설명에 대한 정보 중 적어도 어느 하나를 포함할 수 있다.
그리고 가이드라인 제공부(220)는 수신한 개발 정보에 상응하는 설계 가이드라인 정보를 서비스 개발자 단말기(100)로 제공한다. 가이드라인 제공부(220)는 개발 정보를 기반으로, 마이크로서비스 응용의 전반적인 구성, 마이크로서비스 응용의 기능, 마이크로서비스 응용을 구성하는 모듈의 구조, 각각의 모듈 간 연결 관계 및 기능별 특성 등을 분석할 수 있다.
또한, 가이드라인 제공부(220)는 분석된 결과를 기반으로 서비스개발자 단말기(100)로 설계 가이드라인을 제공할 수 있다. 이때, 가이드라인 제공부(220)는 각각의 모듈별로 적합한 개별 환경인 운영체제 및 개발 언어를 서비스 개발자 단말기(100)로 추천할 수 있으며, 필요에 따라 마이크로서비스 응용의 개발을 위한 소프트웨어 개발 키트(SDK)를 추천할 수도 있다.
즉, 서비스 개발자는 서비스 개발자 단말기(100)를 통하여, 가이드라인 제공부(220)로부터 마이크로서비스 응용의 개발에 필요한 구성 및 설계 가이드라인을 제공받을 수 있으며, 설계 가이드라인을 기반으로 마이크로서비스 응용을 개발할 수 있다.
그리고 분산 설치 요청 수신부(230)는 서비스 개발자 단말기(100)로부터 하나 이상의 마이크로서비스 응용을 포함하는 분산 설치 요청을 수신한다. 이때, 분산 설치 요청 수신부(230)는 설계 가이드라인 정보를 기반으로 생성된 하나 이상의 마이크로서비스 응용을 포함하는 분산 설치 요청을 수신할 수 있다.
다음으로 응용 분석부(240)는 마이크로서비스 응용을 하나 이상의 모듈로 분할한다. 그리고 분할된 모듈의 모듈 특성 정보를 추출한다. 이때, 응용 분석부(240)는 마이크로서비스 응용에 상응하는 설계 가이드라인 정보를 이용하여 마이크로서비스 응용을 모듈로 분할할 수 있다.
또한, 응용 분석부(240)는 각각의 모듈을 분석하여 모듈별 운영체제의 적합성 여부를 판단하고, 각각의 모듈의 컨테이너 이미지를 분석하여 모듈별 컨테이너의 적합성 여부를 판단할 수 있다.
그리고 클라우드 서비스 제공자 선정부(250)는 추출된 모듈 특성 정보를 기반으로, 하나 이상의 클라우드 서비스 제공자(300)를 선정한다.
클라우드 서비스 제공자 선정부(250)는 모듈 특성 정보를 기반으로, 컨테이너 서비스를 제공하는 클라우드 서비스 제공자(300) 및 클라우드 서비스 제공자의 컨테이너를 선정할 수 있다.
또한, 클라우드 서비스 제공자 선정부(250)는 클라우드 서비스 제공자(300)의 정보를 기반으로, 마이크로서비스 응용의 설정 조건을 만족하는 클라우드 서비스 제공자(300)를 선정할 수 있다. 여기서, 클라우드 서비스 제공자의 정보는 클라우드 서비스 제공자(300)에 상응하는 운영체제 정보, 컨테이너 정보, 응답속도 정보, 비용 정보, 성능 정보 및 설치 위치 정보 중 적어도 어느 하나를 포함할 수 있다.
다음으로 모듈 분산 설치부(260)는 하나 이상의 모듈을 각각 클라우드 서비스 제공자(300)에 분산 설치한다. 그리고 모듈 분산 설치부(260)는 모듈에 상응하는 라이브러리가 필요한 것으로 판단된 경우, 클라우드 서비스 제공자(300)에 라이브러리를 추가 설치할 수 있다.
마지막으로 서비스 오케스트레이션부(270)는 각각의 클라우드 서비스 제공자(300)에 분산 설치된 복수의 모듈들 중에서, 마이크로서비스 응용의 사용 요청에 상응하는 하나 이상의 모듈을 선택하고, 선택된 하나 이상의 모듈을 결합하여 사용자에게 마이크로서비스 응용으로 제공한다.
또한, 서비스 오케스트레이션부(270)는 마이크로서비스 응용에 오류가 발생한 경우, 클라우드 서비스 제공자(300)에 설치된 모듈 중에서 마이크로서비스 응용의 모듈에 대응되는 하나 이상의 모듈을 호출하고, 호출된 모듈을 이용하여 마이크로서비스 응용을 수정할 수 있다. 그리고 서비스 오케스트레이션부(270)는 수정된 마이크로서비스 응용을 사용자에게 제공할 수 있다.
이때, 서비스 오케스트레이션부(270)는 각각의 클라우드 서비스 제공자(300)에 설치된 적어도 하나 이상의 모듈을 마이크로서비스 간의 연결 관계, 연계성, 의존성 등을 기준으로 선정하고, 선정된 하나 이상의 모듈을 결합하여 사용자에게 서비스를 제공할 수 있다.
이하에서는 도 3 및 도 4를 통하여 본 발명의 일실시예에 따른 마이크로서비스 응용의 분산 설치 장치에 의해 수행되는 마이크로서비스 응용의 분산 설치 방법에 대하여 더욱 상세하게 설명한다.
도 3은 본 발명의 일실시예에 따른 마이크로서비스 응용의 분산 설치 방법을 설명하기 위한 순서도이다.
먼저, 마이크로서비스 응용의 분산 설치 장치(200)는 서비스 개발자 단말기(100)로부터 마이크로서비스 응용의 개발 정보를 수신한다(S310).
서비스 개발자 단말기(100)가 전송하는 개발 정보는 응용에 필요한 기능에 대한 정보, 마이크로서비스의 형태에 관한 정보, 기능별 상세 설명에 대한 정보 중 적어도 어느 하나를 포함할 수 있다.
그리고 마이크로서비스 응용의 분산 설치 장치(200)는 서비스 개발자 단말기(100)로 설계 가이드라인 정보를 제공한다(S320).
마이크로서비스 응용의 분산 설치 장치(200)는 서비스 개발자가 마이크로서비스 응용을 개발할 때 필요한 설계 가이드라인 정보를 서비스 개발자 단말기(100)로 전송할 수 있다.
이때, 마이크로서비스 응용의 분산 설치 장치(200)는 S310 단계에서 수신한 개발 정보를 분석하여, 마이크로서비스 응용의 전반적인 구성 및 기능별 특성 등을 분석할 수 있다. 그리고 마이크로서비스 응용의 분산 설치 장치(200)는 개발 정보에 상응하는 설계 가이드라인 정보를 서비스 개발자 단말기(100)로 전송할 수 있다.
설명의 편의상, 마이크로서비스 응용의 분산 설치 장치(200)가 서비스 개발자 단말기(100)로 설계 가이드라인 정보를 제공하는 것으로 설명하였으나, 마이크로서비스 응용의 분산 설치 장치(200)가 설계 가이드라인 정보를 제공하기 이전에 서비스 개발자 단말기(100)로부터 개발 정보를 수신하는 과정을 더 수행할 수 있다.
그리고 설계 가이드라인 정보는 마이크로서비스 응용의 분산 설치 장치(200)가 서비스 개발자 단말기(100)로부터 수신한 마이크로 서비스 응용의 개발 정보에 상응하는 설계 가이드라인 정보를 의미할 수 있다.
다음으로 마이크로서비스 응용의 분산 설치 장치(200)는 서비스 개발자 단말기(100)로부터 분산 설치 요청을 수신한다(S330).
마이크로서비스 응용의 분산 설치 장치(200)는 서비스 개발자 단말기(100)로부터 하나 이상의 마이크로서비스 응용을 포함하는 분산 설치 요청을 수신할 수 있다. 설명의 편의상, 분산 설치 요청이 마이크로서비스 응용을 포함하는 것으로 설명하였으나 이에 한정하지 않고, 마이크로서비스 응용의 분산 설치 장치(200)는 서비스 개발자 단말기(100)로부터 분산 설치 요청을 수신한 후, 마이크로서비스 응용을 수신할 수 있다.
도 4는 본 발명의 일실시예에 따른 마이크로서비스 응용의 분산 설치 과정을 설명하기 위한 도면이다.
도 4에 도시한 바와 같이, 응용 서비스 개발자는 마이크로서비스 응용의 개발이 완료되면, 서비스 개발자 단말기(100)를 통하여 마이크로서비스 응용의 분산 설치 장치(200)로 분산 설치 요청을 전송한다. 즉, 서비스 개발자 단말기(100)는 마이크로서비스 응용의 분산 설치 장치(200)로 마이크로서비스 응용을 전송할 수 있다.
다시 도 3에 대하여 설명하면, 마이크로서비스 응용의 분산 설치 장치(200)는 마이크로서비스 응용을 분석하여, 모듈 특성 정보를 추출한다(S340).
마이크로서비스 응용의 분산 설치 장치(200)는 마이크로서비스 응용을 하나 이상의 모듈로 분할한다. 이때, 마이크로서비스 응용의 분산 설치 장치(200)는 마이크로서비스 응용에 대응되는 설계 가이드라인 정보를 이용하여 마이크로서비스 응용을 분할할 수 있다.
마이크로서비스 응용의 분산 설치 장치(200)는 분할된 각각의 모듈을 분석하여, 모듈별 기반이 되는 운영체제 및 적합한 컨테이너에 관한 특성 정보를 추출할 수 있다. 또한, 마이크로서비스 응용의 분산 설치 장치(200)는 모듈별 운영체제(OS)의 적합성 여부를 판단하고, 각각의 모듈에 상응하는 컨테이너 이미지를 분석하여 모듈별 컨테이너의 적합성 여부를 판단할 수 있다.
다음으로 마이크로서비스 응용의 분산 설치 장치(200)는 클라우드 서비스 제공자를 선정한다(S350).
마이크로서비스 응용의 분산 설치 장치(200)는 S340 단계에서 분할된 모듈 각각에 적합한 클라우드 서비스 제공자(300)를 선정한다. 마이크로서비스 응용의 분산 설치 장치(200)는 마이크로서비스 응용이 요구하는 응답 시간, 성능, 물리적인 거리 등의 세부적인 조건을 만족하는 클라우드 서비스 제공자(300) 및 컨테이너를 선정할 수 있다.
특히, 마이크로서비스 응용의 분산 설치 장치(200)는 S340 단계에서 추출된 모듈의 특성 정보를 기반으로, 컨테이너 기능을 제공하는 하나 이상의 클라우드 서비스 제공자(300)를 선정할 수 있다.
마지막으로 마이크로서비스 응용의 분산 설치 장치(200)는 클라우드 서비스 제공자에 모듈을 분산 설치한다(S360).
마이크로서비스 응용의 분산 설치 장치(200)는 선정된 하나 이상의 클라우드 서비스 제공자(300)에 해당 모듈을 설치한다. 이때, 마이크로서비스 응용의 분산 설치 장치(200)는 선정된 클라우드 서비스 제공자(300)에 모듈을 설치하기 위하여 관련 라이브러리 정보를 조사하고, 필요에 따라 클라우드 서비스 제공자(300)에 라이브러리를 추가로 설치할 수 있다.
도 4에 도시한 바와 같이, 마이크로서비스 응용의 분산 설치 장치(200)는 분할된 각각의 모듈을 클라우드 서비스 제공자(300)로 전송하여, 복수의 클라우드 서비스 제공자(300)에 분산 설치할 수 있다.
이때, 마이크로서비스 응용의 분산 설치 장치(200)는 하나의 모듈을 서로 다른 클라우드 서비스 제공자(300)에 분산 설치할 수 있으며, 클라우드 서비스 제공자(300)는 하나 이상의 컨테이너를 포함하고, 각각의 컨테이너에는 모듈이 분산 설치되어 있을 수 있다.
도 5는 본 발명의 일실시예에 따른 마이크로서비스 분산 설치 서비스 제공자의 구성을 나타낸 예시도이다.
도 5에 도시한 바와 같이, 마이크로서비스 분산 설치 서비스 제공자(500)는 자동 분산 설치 시스템(510), 마이크로 서비스 지원/유지 시스템(520) 및 응용 관리 시스템(530)으로 구성될 수 있다.
먼저, 자동 분산 설치 시스템(510)은 응용 설계 지원부(511), 응용 모듈 분석부(513), 응용 분산 설치부(515) 및 클라우드 서비스 제공자(CSP) 정보 관리부(517)를 포함할 수 있다.
응용 설계 지원부(511)는 마이크로서비스 응용의 개발 시 필요한 하나 이상의 설계 가이드라인 정보를 저장한다. 그리고 응용 설계 지원부(511)는 서비스 개발자 단말기(100)로부터 마이크로서비스 응용에 대한 기능, 목적, 방식 등에 관한 개발 정보를 수신하고, 수신된 개발 정보를 기반으로 설계 가이드라인 정보를 선택하여 서비스 개발자 단말기(100)로 전송할 수 있다.
또한, 응용 설계 지원부(511)는 응용 구성/기능 분석기, 응용 구성/모듈 가이드라인 지원부, 모듈별 개발환경(OS/언어) 추천부를 구비할 수 있다. 그리고 응용 설계 지원부(511)는 도 2의 개발 정보 수신부(210), 가이드라인 제공부(220) 및 분산 설치 요청 수신부(230)와 실질적으로 동일한 기능을 수행할 수 있으며, 중복되는 설명은 생략한다.
다음으로 응용 모듈 분석부(513)는 마이크로서비스 응용을 구성하는 하나 이상의 모듈에 대한 분석을 수행한다. 응용 모듈 분석부(513)는 모듈의 구성 및 연결 관계를 분석하고, 각각의 모듈이 작동하는 운영체제 및 컨테이너 이미지를 분석할 수 있다.
그리고 응용 모듈 분석부(513)는 분석의 결과인, 모듈별 기반이 되는 운영체제 및 적합한 컨테이너에 관한 특성 정보를 이용하여, 각각의 모듈별로 적합한 클라우드 서비스 제공자 및 컨테이너 정보를 파악할 수 있다.
응용 모듈 분석부(513)는 응용 구성 분석, 운영체제 의존성 검사, 모듈별 컨테이너 적합성 분석, 모듈별 적합 운영체제/추천 컨테이너 알림 서비스 제공 등의 기능을 수행할 수 있다. 또한, 응용 모듈 분석부(513)는 도 2의 응용 분석부(240)와 실질적으로 동일한 기능을 수행할 수 있으며, 중복되는 설명은 생략한다.
응용 분산 설치부(515)는 각각의 모듈을 컨테이너 기능을 제공하는 클라우드 서비스 제공자(300)로 전송하여, 마이크로서비스 모듈을 분산 설치한다. 그리고 응용 분산 설치부(515)는 하나의 모듈을 복수 개의 클라우드 서비스 제공자(300)에 분산 설치하여, 안전성을 향상시킬 수 있다.
또한, 응용 분산 설치부(515)는 적합한 클라우드 서비스 제공자(CSP)/컨테이너 선정기, 마이크로서비스 모듈 컨테이너 이미지 설치기를 포함하며, 마이크로서비스 모듈 컨테이너 이미지 설치기는 각각의 설치 모듈 이미지를 선정된 클라우드 서비스 제공자(300)의 컨테이너에 분산 설치할 수 있다.
그리고 응용 분산 설치부(515)는 도 2의 클라우드 서비스 제공자 선정부(250) 및 모듈 분산 설치부(260)와 실질적으로 동일한 기능을 수행할 수 있으며, 중복되는 설명은 생략한다.
다음으로 클라우드 서비스 제공자(CSP) 정보 관리부(517)는 클라우드 서비스 정보 관리, 지원 운영체제 정보 관리, 지원 컨테이너 정보 관리, 클라우드 서비스 제공자별 부가정보 관리 등의 종합적인 관리를 수행할 수 있다.
그리고 클라우드 서비스 제공자 정보 관리부(517)는 하나 이상의 클라우드 서비스 제공자(300)에 관한 정보(목록, 특성 정보), 각각의 클라우드 서비스 제공자(300)가 제공하는 기능에 관한 정보, 클라우드 서비스 제공자(300)에서 제공하는 운영체제 정보, 각각의 클라우드 서비스 제공자(300)가 보유한 컨테이너에 대한 세부적인 정보 등을 관리할 수 있다.
또한, 클라우드 서비스 제공자 정보 관리부(517)는 클라우드 서비스 제공자 선정에 필요한 부가 정보인 클라우드 서비스 제공자별 응답 속도 정보, 비용 정보, 성능 정보 및 설치 위치 정보 등을 관리할 수 있다.
그리고 클라우드 서비스 제공자 정보 관리부(517)는 응용 모듈 분석부(513) 및 응용 분산 설치부(515) 중 적어도 어느 하나와 지속적으로 정보를 교환하여, 모듈이 적합한 클라우드 서비스 제공자(300) 및 컨테이너에 분산 설치될 수 있도록 한다.
마이크로 서비스 지원/유지 시스템(520)은 각각의 모듈이 하나 이상의 클라우드 서비스 제공자(300)에 설치된 이후, 서비스의 유지 및 관리를 수행한다. 특히, 마이크로 서비스 지원/유지 시스템(520)은 서비스 정보 관리 및 서비스 지원 기능, 마이크로서비스 모듈 모니터링 기능, 마이크로서비스 모듈 대체 관리 기능 등을 수행할 수 있다.
마이크로서비스 지원/유지 시스템(520)은 모듈이 마이크로서비스 형태로 저장된 정보를 관리할 수 있으며, 모듈을 지속적으로 모니터링하여, 마이크로서비스 응용이 동작 가능한지 여부를 모니터링하거나, 상태 정보의 변화를 모니터링할 수 있다.
마지막으로 응용 관리 시스템(530)은 마이크로서비스의 모듈이 설치된 이후에, 응용 서비스 개발자가 제공 및 위탁한 마이크로서비스 응용의 서비스 제공을 담당한다. 즉, 응용 관리 시스템(530)은 외부의 사용자로부터 마이크로서비스 응용의 사용 요청을 수신하며, 사용 요청에 상응하는 서비스를 제공한다.
응용 관리 시스템(530)은 응용 서비스 목록을 관리하고, 마이크로서비스 접근을 처리 및 관리하며, 사용 요청에 대응하는 응용 서비스를 제공할 수 있다. 그리고 응용 관리 시스템(530)은 외부의 사용자가 응용 서비스를 이용하고자 하는 경우, 해당 응용의 정확한 수행을 위하여, 마이크로서비스 연결 및 마이크로서비스 간 연계성, 의존성 등을 통합적으로 관리하는 응용 오케스트레이션을 수행할 수 있다.
응용 오케스트레이션을 수행하여 응용 관리 시스템(530)은 마이크로서비스 모듈들을 조합하여 응용 서비스를 제공할 수 있다. 그리고 응용 관리 시스템(530)은 도 2의 서비스 오케스트레이션부(270)와 실질적으로 동일한 기능을 수행할 수 있으며, 중복되는 설명은 생략한다.
응용 관리 시스템(530)은 마이크로 서비스 지원/유지 시스템(520)으로부터 마이크로서비스의 상태 정보를 수신할 수 있다. 그리고 마이크로서비스의 상태 정보가 동작 불능이나 오류 발생 상태인 경우, 응용 관리 시스템(530)은 복제된 서비스로부터 대체 마이크로서비스를 호출하여, 사용자에게 응용 서비스의 동작을 안정적으로 지원할 수 있다.
이하에서는 도 6을 통하여 본 발명의 일실시예에 따른 마이크로서비스 응용의 분산 설치 서비스 제공 시스템의 동작 흐름에 대하여 더욱 상세하게 설명한다.
도 6은 본 발명의 일실시예에 따른 마이크로서비스 응용의 분산 설치 서비스 제공 시스템의 동작 흐름을 나타낸 순서도이다.
도 6과 같이, 응용 서비스 개발자는 응용 개발을 완료하면(S610), 서비스 개발자 단말기(100)를 이용하여 마이크로서비스 분산 설치 서비스 제공자(500)의 자동 분산 설치 시스템(510)으로 분산 설치 요청을 전송한다(S620).
서비스 개발자 단말기(100)가 분산 설치 요청을 전송하는 과정은 도 3의 S330 단계에서 서비스 개발자 단말기(100)가 마이크로서비스 응용의 분산 설치 장치(200)로 분산 설치 요청을 전송하는 과정과 실질적으로 동일한 바, 중복되는 설명은 생략한다.
그리고 분산 설치 요청을 수신한 자동 분산 설치 시스템(510)은 마이크로서비스 응용을 모듈로 분할하고, 모듈의 모듈 특성 정보를 추출한다(S630). 또한, 자동 분산 설치 시스템(510)은 클라우드 서비스 제공자(CSP) 및 컨테이너를 선정한다(S640).
자동 분산 설치 시스템(510)이 마이크로서비스 응용을 모듈로 분할하고 모듈 특성 정보를 추출하는 과정, 클라우드 서비스 제공자 및 컨테이너를 선정하는 과정 각각은, 도 3의 S340 단계 및 S350 단계와 실질적으로 동일한 바, 중복되는 설명은 생략한다.
그리고 자동 분산 설치 시스템(510)은 선정된 하나 이상의 클라우드 서비스 제공자(300)에 모듈을 분산 설치한다(S650).
자동 분산 설치 시스템(510)은 S640 단계에서 선정된 하나 이상의 클라우드 서비스 제공자(300)에 모듈을 분산 설치한다. 이때, 자동 분산 설치 시스템(510)은 동일한 모듈을 복수 개의 클라우드 서비스 제공자(300)에 분산 설치할 수 있으며, 클라우드 서비스 제공자(300)의 복수 개의 컨테이너 각각에 모듈을 분할 설치할 수 있다.
이때, 자동 분산 설치 시스템(510)이 클라우드 서비스 제공자(300)에 모듈을 분산 설치하는 과정은 도 3의 S360 단계와 실질적으로 동일한 바, 중복되는 설명은 생략한다.
모듈을 분산 설치한 후, 자동 분산 설치 시스템(510)은 마이크로서비스 지원/유지 시스템에 설치 정보를 등록하여 관리하고(S660), 응용 관리 시스템(530)은 서비스 개발자 단말기(100)로 분산 설치가 완료되었음을 알릴 수 있다(S670).
이 과정에서, 응용 서비스 개발자는 설치되는 클라우드 서비스 제공자(300)에 대하여 직접적으로 관리하지 않으며, 마이크로서비스 응용의 설치 및 서비스 제공은 클라우드 서비스 제공자(300)가 대행할 수 있다.
그리고 마이크로서비스 지원/유지 시스템(520)은 등록된 설치 정보를 기반으로 마이크로서비스 모듈을 모니터링할 수 있다(S680).
모니터링 수행 결과 동작 불능이나 오류가 발생한 것으로 판단된 경우, 마이크로서비스 지원/유지 시스템(520)은 클라우드 서비스 제공자(300)에 복제된 대체 마이크로서비스를 호출하여, 마이크로서비스 응용의 서비스 동작을 안정적으로 지원할 수 있다.
이와 같이, 마이크로서비스 응용의 서비스 제공, 서비스 오류 수정 등을 마이크로서비스 분산 설치 서비스 제공자(500) 및 클라우드 서비스 제공자(300)가 대행하도록 함으로써, 응용 서비스 개발자는 마이크로서비스 응용의 개발에만 전념할 수 있도록 한다.
또한, 응용 서비스 개발자는 각각의 모듈 업데이트 시, 마이크로서비스 분산 설치 서비스 제공자(500)를 통하여 업데이트를 용이하게 수행할 수 있으며, 서비스의 유지 보수 또한 클라우드 서비스 제공자(300)를 통하여 용이하게 수행할 수 있다.
예를 들어, 응용 서비스 개발자가 웹 쇼핑몰 서비스를 개발하고자 하는 경우, 상품 리스트의 제공 방법, 상품의 웹 호스팅 방법, 상품 수요에 필요한 사용자 인증 방법, 상품 구매에 따른 과금 처리 및 은행 시스템 접속 처리 방법 등의 프로세스 구성에 대하여 생각할 수 있다.
응용 서비스 개발자가 이러한 프로세스 구성 각각을 어떻게 개발해야 하는지, 어떠한 개발환경이 적합한지, 개발의 규모는 어떠한 지에 대해 정확하게 파악하기 힘든 경우, 서비스 개발자 단말기를 통하여 마이크로서비스 응용의 분산 설치 장치로 개발 정보를 전송할 수 있다.
그리고 개발 정보를 수신한 마이크로서비스 응용의 분산 설치 장치는 개발 정보를 바탕으로, 응용 구성을 가이드할 수 있다. 마이크로서비스 응용의 분산 설치 장치는, 요구를 분석하여, 상품 리스트 및 제공과 웹 호스팅을 하나의 모듈로 구현하며, 윈도우 운영체제(windows OS)에 기반한 컨테이너를 이용하는 방식을 추천할 수 있다. 또한, 마이크로서비스 응용의 분산 설치 장치는 사용자 인증과 상품 구매에 따른 과금 처리 및 은행 시스템 접속 처리는 리눅스 기반의 컨테이너(도커)를 활용하는 방식을 제안할 수 있다.
응용 서비스 개발자는 마이크로서비스 응용의 분산 설치 장치로부터 추천받은 방식에 따라 각각의 3개의 모듈로 마이크로서비스 응용을 개발하고, 서비스 수행을 위한 세부적인 프로세스를 개발할 수 있다. 또한, 응용 서비스 개발자는 개발 완료 시, 완성된 마이크로서비스 응용을 마이크로서비스 응용의 분산 설치 장치로 전송할 수 있다. 이때, 응용 서비스 개발자는 서비스 제공에 필요한 요구 사항인 클라우드 사용료 상한 금액, 서비스 규모 성능 등에 대한 사항을 부가적으로 전송할 수 있다.
그리고 마이크로서비스 응용의 분산 설치 장치는 마이크로서비스 응용 및 서비스 제공에 필요한 요구 사항을 분석하여, 마이크로서비스 응용의 모듈 각각에 적합한 클라우드 서비스 제공자 및 컨테이너를 선정하고, 모듈별 분산 설치 작업을 수행할 수 있다. 또한, 분산 설치 작업의 완료 시, 마이크로서비스 응용의 분산 설치 장치는 응용 서비스 개발자에게 분산 설치 완료를 통보하고, 마이크로서비스 응용의 서비스 제공 정보를 전송할 수 있다.
도 7은 본 발명의 일실시예에 따른 컴퓨터 시스템을 나타낸 블록도이다.
도 7을 참조하면, 본 발명의 실시예는 컴퓨터로 읽을 수 있는 기록매체와 같은 컴퓨터 시스템(700)에서 구현될 수 있다. 도 7에 도시된 바와 같이, 컴퓨터 시스템(700)은 버스(720)를 통하여 서로 통신하는 하나 이상의 프로세서(710), 메모리(730), 사용자 입력 장치(740), 사용자 출력 장치(750) 및 스토리지(760)를 포함할 수 있다. 또한, 컴퓨터 시스템(700)은 네트워크(780)에 연결되는 네트워크 인터페이스(770)를 더 포함할 수 있다. 프로세서(710)는 중앙 처리 장치 또는 메모리(730)나 스토리지(760)에 저장된 프로세싱 인스트럭션들을 실행하는 반도체 장치일 수 있다. 메모리(730) 및 스토리지(760)는 다양한 형태의 휘발성 또는 비휘발성 저장 매체일 수 있다. 예를 들어, 메모리는 ROM(731)이나 RAM(732)을 포함할 수 있다.
따라서, 본 발명의 실시예는 컴퓨터로 구현된 방법이나 컴퓨터에서 실행 가능한 명령어들이 기록된 비일시적인 컴퓨터에서 읽을 수 있는 매체로 구현될 수 있다. 컴퓨터에서 읽을 수 있는 명령어들이 프로세서에 의해서 수행될 때, 컴퓨터에서 읽을 수 있는 명령어들은 본 발명의 적어도 한 가지 태양에 따른 방법을 수행할 수 있다.
이상에서와 같이 본 발명에 따른 마이크로서비스 응용의 분산 설치 장치 및 방법은 상기한 바와 같이 설명된 실시예들의 구성과 방법이 한정되게 적용될 수 있는 것이 아니라, 상기 실시예들은 다양한 변형이 이루어질 수 있도록 각 실시예들의 전부 또는 일부가 선택적으로 조합되어 구성될 수도 있다.
100: 서비스 개발자 단말기
200: 마이크로서비스 응용의 분산 설치 장치
210: 개발 정보 수신부 220: 가이드라인 제공부
230: 분산 설치 요청 수신부 240: 응용 분석부
250: 클라우드 서비스 제공자 선정부
260: 모듈 분산 설치부 270: 서비스 오케스트레이션부
300: 클라우드 서비스 제공자 400: 사용자 단말기
500: 마이크로서비스 분산 설치 서비스 제공자
510: 자동 분산 설치 시스템 511: 응용 설게 지원부
513: 응용 모듈 분석부 515: 응용 분산 설치부
517: 클라우드 서비스 제공자 정보 관리부
520: 마이크로서비스 지원/유지 시스템
530: 응용 관리 시스템 700: 컴퓨터 시스템
710: 프로세서 720: 버스
730: 메모리 731: 롬
732: 램 740: 사용자 입력 장치
750: 사용자 출력 장치 760: 스토리지
770: 네트워크 인터페이스 780: 네트워크

Claims (1)

  1. 마이크로서비스 응용의 분산 설치 장치에 의해 수행되는 마이크로서비스 응용의 분산 설치 방법에 있어서,
    서비스 개발자 단말기로부터 하나 이상의 마이크로서비스 응용을 포함하는 분산 설치 요청을 수신하는 단계,
    상기 마이크로서비스 응용을 하나 이상의 모듈로 분할하고, 분할된 상기 모듈의 모듈 특성 정보를 추출하는 단계,
    추출된 상기 모듈 특성 정보를 기반으로, 하나 이상의 클라우드 서비스 제공자를 선정하는 단계, 그리고
    하나 이상의 상기 모듈을 각각 상기 클라우드 서비스 제공자에 분산 설치하는 단계를 포함하는 것을 특징으로 하는 마이크로서비스 응용의 분산 설치 방법.
KR1020170055080A 2017-04-28 2017-04-28 마이크로서비스 응용의 분산 설치 장치 및 방법 KR20180120991A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020170055080A KR20180120991A (ko) 2017-04-28 2017-04-28 마이크로서비스 응용의 분산 설치 장치 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170055080A KR20180120991A (ko) 2017-04-28 2017-04-28 마이크로서비스 응용의 분산 설치 장치 및 방법

Publications (1)

Publication Number Publication Date
KR20180120991A true KR20180120991A (ko) 2018-11-07

Family

ID=64363282

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170055080A KR20180120991A (ko) 2017-04-28 2017-04-28 마이크로서비스 응용의 분산 설치 장치 및 방법

Country Status (1)

Country Link
KR (1) KR20180120991A (ko)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109412853A (zh) * 2018-10-31 2019-03-01 中国建设银行股份有限公司 分布式服务注册存储方法、系统、装置和存储介质
KR101996840B1 (ko) * 2018-12-07 2019-07-05 아콘소프트 주식회사 마이크로서비스 스토어 운영시스템
KR20200060834A (ko) * 2018-11-23 2020-06-02 한국전자통신연구원 마이크로서비스 관리 장치 및 그 방법
US20210191353A1 (en) * 2018-12-31 2021-06-24 Johnson Controls Technology Company Building automation system with microservice architecture to support multi-node on-premise bas server
KR20220023400A (ko) * 2020-08-21 2022-03-02 주식회사 엔씨소프트 게시판 서비스 제공 장치 및 방법
KR20220058358A (ko) * 2020-10-30 2022-05-09 광주과학기술원 마이크로 서비스 배치장치 및 마이크로 서비스 배치방법

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109412853A (zh) * 2018-10-31 2019-03-01 中国建设银行股份有限公司 分布式服务注册存储方法、系统、装置和存储介质
KR20200060834A (ko) * 2018-11-23 2020-06-02 한국전자통신연구원 마이크로서비스 관리 장치 및 그 방법
KR101996840B1 (ko) * 2018-12-07 2019-07-05 아콘소프트 주식회사 마이크로서비스 스토어 운영시스템
US20210191353A1 (en) * 2018-12-31 2021-06-24 Johnson Controls Technology Company Building automation system with microservice architecture to support multi-node on-premise bas server
US11662701B2 (en) * 2018-12-31 2023-05-30 Johnson Controls Tyco IP Holdings LLP Building automation system with microservice architecture to support multi-node on-premise BAS server
US11989000B2 (en) 2018-12-31 2024-05-21 Tyco Fire & Security Gmbh Building automation system with microservice architecture to support multi-node on-premise BAS server
KR20220023400A (ko) * 2020-08-21 2022-03-02 주식회사 엔씨소프트 게시판 서비스 제공 장치 및 방법
KR20220058358A (ko) * 2020-10-30 2022-05-09 광주과학기술원 마이크로 서비스 배치장치 및 마이크로 서비스 배치방법

Similar Documents

Publication Publication Date Title
KR20180120991A (ko) 마이크로서비스 응용의 분산 설치 장치 및 방법
US11520639B2 (en) Method for allocating and managing cluster resource on cloud platform
KR101998564B1 (ko) 클라우드 플랫폼에서의 멀티 클러스터 프로비저닝 및 관리 방법
KR101826498B1 (ko) 클라우드 플랫폼 시스템
US10708135B1 (en) Unified and automated installation, deployment, configuration, and management of software-defined storage assets
US11088914B2 (en) Migrating a monolithic software application to a microservices architecture
US8380880B2 (en) Scalable architecture
US9208007B2 (en) Open resilience framework for simplified and coordinated orchestration of multiple availability managers
KR101513375B1 (ko) 클라우드 공용형 리소스 제공시스템
CA3128537A1 (en) Interface message conversion method, device and system
EP4053699A1 (en) Instance host configuration
US10951469B2 (en) Consumption-based elastic deployment and reconfiguration of hyper-converged software-defined storage
KR102553440B1 (ko) 서버리스 개발 지원 플랫폼
KR20210128722A (ko) 멀리 클라우드 서비스 플랫폼 장치 및 방법
KR20140099109A (ko) 다중 클라우드를 이용한 응용 서비스 시험 지원 시스템 및 그 방법
Pfandzelter et al. From zero to fog: Efficient engineering of fog‐based Internet of Things applications
CN113760308A (zh) Dsp系统的构建方法、装置、电子设备及存储介质
CN112448833B (zh) 一种多管理域的通信方法和装置
US11677641B2 (en) Adaptive service subscription management
Resceanu et al. SaaS solutions for small-medium businesses: Developer's perspective on creating new SaaS products
CN109636234B (zh) 任务频次转换方法、装置、电子设备、存储介质
CN110096377B (zh) 一种定制化软件发布的实现方法
Hass et al. Workload deployment and configuration reconciliation at scale in kubernetes-based edge-cloud continuums
KR102341419B1 (ko) 판매 관리 장치 및 판매 관리 방법
KR102546847B1 (ko) Erp의 커스터마이징 자동화 처리 및 커스터마이징된 erp 솔루션의 제공 방법, 장치 및 시스템