KR102621324B1 - 컨테이너 기반 마이크로서비스 배치 중계자 시스템 및 방법 - Google Patents

컨테이너 기반 마이크로서비스 배치 중계자 시스템 및 방법 Download PDF

Info

Publication number
KR102621324B1
KR102621324B1 KR1020210114022A KR20210114022A KR102621324B1 KR 102621324 B1 KR102621324 B1 KR 102621324B1 KR 1020210114022 A KR1020210114022 A KR 1020210114022A KR 20210114022 A KR20210114022 A KR 20210114022A KR 102621324 B1 KR102621324 B1 KR 102621324B1
Authority
KR
South Korea
Prior art keywords
container
microservice
deployment
suitability
suitability determination
Prior art date
Application number
KR1020210114022A
Other languages
English (en)
Other versions
KR20230031598A (ko
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 KR1020210114022A priority Critical patent/KR102621324B1/ko
Publication of KR20230031598A publication Critical patent/KR20230031598A/ko
Application granted granted Critical
Publication of KR102621324B1 publication Critical patent/KR102621324B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45545Guest-host, i.e. hypervisor is an application program itself, e.g. VirtualBox
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/51Discovery or management thereof, e.g. service location protocol [SLP] or web services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45566Nested virtual machines
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/4557Distribution of virtual machine instances; Migration and load balancing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45575Starting, stopping, suspending or resuming virtual machine instances
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45591Monitoring or debugging support

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

컨테이너 기반 마이크로서비스 배치 중계자 시스템 및 방법이 개시된다. 본 발명의 일실시예에 따른, 컨테이너 기반 마이크로서비스 배치 중계자 방법은, 클라이언트로부터 입력되는 마이크로서비스 명세서에서 모니터링 데이터를 확인하여, 하드웨어 사용량 별 적합성에 관한 1차 적합성 판별을 수행하는 단계; 상기 1차 적합성 판별의 수행 결과에 근거하여, 마이크로서비스 특성 별 적합성에 관한 2차 적합성 판별을 수행하는 단계; 및 상기 2차 적합성 판별의 수행 결과에 근거하여, 컨테이너의 최종 배치 위치를 결정하는 단계를 포함 할 수 있다.

Description

컨테이너 기반 마이크로서비스 배치 중계자 시스템 및 방법{DEPLOYMENT BROKER SYSTEM AND METHOD FOR CONTAINER-BASED MICROSERVICE}
본 발명은 컨테이너 기반 마이크로서비스의 특성을 고려하여 컨테이너의 배치를 중계하는, 컨테이너 기반 마이크로서비스 배치 중계자 시스템 및 방법에 관한 것이다.
등록번호 1807806 (2017.12.05) "클라우드 플랫폼에서 어플리케이션을 컨테이너화 하는 방법"
등록번호 1807806은, 클라우드 플랫폼 시스템이 컨테이너/클라우드 도입 목적과 전략을 고려하여, 어플리케이션을 컨테이너화 하는 단계를 제시하고 있다.
등록번호 1807806은, 기존 어플리케이션 중 컨테이너 전환 대상을 선정하는 단계; 상기 대상 어플리케이션이 선정되면 상기 클라우드 플랫폼 시스템이 대상 어플리케이션을 분석하는 단계; 상기 클라우드 플랫폼 시스템이 분리/통합, 연계, 가용성, 확장성, 보안 등을 고려하여 상기 대상 어플리케이션별 컨테이너 구성을 설계하는 단계; 상기 클라우드 플랫폼 시스템이 인프라 구성을 설계하는 단계; 상기 인프라 구성이 설계되면, 상기 클라우드 플랫폼 시스템이 컨테이너 전환 방안을 수립하는 단계; 상기 클라우드 플랫폼 시스템이 사전 테스트(PoC), 어플리케이션별 단계적 전환 등 반복적이고 점증적으로 전환하는 단계; 상기 클라우드 플랫폼 시스템이 클러스터를 구성하는 단계; 상기 클라우드 플랫폼 시스템이 어플리케이션 컨테이너를 구성하고, 필요 시 어플리케이션 설정 및 소스를 변경하여 어플리케이션을 전환하는 단계; 상기 클라우드 플랫폼 시스템이 상기 어플리케이션 컨테이너를 전환하며, Persistence 볼륨 설정 등을 통해 서버를 설정하고, 데이터를 추출하고 상기 서버에 전송하여 데이터를 전환하는 단계; 상기 클라우드 플랫폼 시스템이 검증된 컨테이너를 상기 서버에 배포하고, 어플리케이션 기능 및 성능 테스트를 수행하며, 컨테이너 및 인프라에 테스트 결과를 반영하는 단계; 상기 클라우드 플랫폼 시스템이 운영 클러스터를 생성하고 전환 완료된 이미지를 기반으로 상기 서버를 생성하고 연계 구성하며, 운영 데이터를 이관하고 어플리케이션을 오픈하는 단계; 상기 클라우드 플랫폼 시스템이 클라우드 모니터링 뷰를 통해 어플리케이션 및 인프라 운영 모니터링을 수행하고 성능 이슈 및 오류를 반영하는 단계; 및 상기 클라우드 플랫폼 시스템이 컨테이너 이관 결과를 리포트하여 개발, 운영 체계 이관 및 적용하는 단계를 포함하는 클라우드 플랫폼에서 어플리케이션을 컨테이너화하는 방법을 제공하고 있다.
등록번호 2027749 (2019.09.26) "마이크로서비스 시스템 및 방법"
등록번호 2027749는 마이크로서비스의 배포와 운영을 자동화하는 환경을 제공하는 컨테이너 플랫폼; 및 상기 컨테이너 플랫폼 기반에서 상기 마이크로서비스의 각 단위 서비스들 간에 이루어지는 통신 연결과 트래픽에 대한 제어와 관리를 담당하는 마이크로서비스 플랫폼을 포함하고, 상기 마이크로서비스 플랫폼에서 상기 단위 서비스들 간에 이루어지는 통신은 프록시를 통해 이루어지며, 상기 단위 서비스가 기동될 때 상기 단위 서비스마다 전용의 프록시가 쌍으로 배포되고, 상기 각 단위 서비스 간의 통신은 상기 프록시를 거쳐서 이루어지며, 상기 단위 서비스는 연결 대상인 단위 서비스의 식별 정보를 지정해서 상기 프록시에게 통신을 요청하고, 상기 프록시가 처리하는 통신 제어 기능은 통신 오류 처리와 지능적 부하 분산을 포함하고, 상기 통신 오류 처리는 타임아웃, 재전송, 동시 접속수 제한, 접속당 동시 요청수 제한, 서비스 인스턴스들의 주기적 헬스 체크, 임계치 초과 시 연결 해제 또는 에러 반환 중 적어도 하나를 포함하고, 상기 지능적 부하 분산은 L4 수준의 부하 분산 방식인 라운드 로빈 방식, 가중치 방식과 랜덤 방식, L7 수준에서의 지능화된 부하 분산인 서비스 요청 헤더의 내용을 기반으로 한 부하 분산 방식 중 적어도 하나를 포함하는 마이크로서비스 시스템을 제공하고 있다.
하지만, 등록번호 1807806와 등록번호 2027749는, 클라우드 플랫폼 환경에서, 어플리케이션의 컨테이너에 관한 마이크로서비스를 제공하는 구성에 한정되고 있어, 마이크로서비스가 효율적으로 동작하는 지점으로, 컨테이너를 배치하여 마이크로서비스를 개선시키는 데에는 한계가 있다.
따라서, 마이크로서비스 간의 적합도에 기반하여, 마이크로서비스가 가장 효율적으로 동작하는 동작지점을 인프라에 제공하여, 명세 템플릿을 생성 및 컨테이너 배치 관리를 수행하는 개선된 모델의 등장이 절실히 요구되고 있다.
본 발명의 실시예는, 컨테이너 기반 마이크로서비스의 특성을 고려하여 컨테이너의 배치를 중계하는, 컨테이너 기반 마이크로서비스 배치 중계자 시스템 및 방법을 제공하는 것을 목적으로 한다.
또한, 본 발명의 실시예는, 마이크로서비스의 배치에 초점을 두어 명세를 위한 템플릿을 제시하고, 운영 시 수집된 데이터를 활용한 마이크로서비스 간의 적합도에 기반하여, 마이크로서비스가 가장 효율적으로 동작하는 동작지점을 인프라에 제공하여, 명세 템플릿을 생성 및 컨테이너 배치 관리를 실시하는, 컨테이너 기반 마이크로서비스 배치 중계자 시스템 및 방법에 관한 것이다.
본 발명의 일실시예에 따른, 컨테이너 기반 마이크로서비스 배치 중계자 방법은, 클라이언트로부터 입력되는 마이크로서비스 명세서에서 모니터링 데이터를 확인하여, 하드웨어 사용량 별 적합성에 관한 1차 적합성 판별을 수행하는 단계; 상기 1차 적합성 판별의 수행 결과에 근거하여, 마이크로서비스 특성 별 적합성에 관한 2차 적합성 판별을 수행하는 단계; 및 상기 2차 적합성 판별의 수행 결과에 근거하여, 컨테이너의 최종 배치 위치를 결정하는 단계를 포함할 수 있다.
또한, 본 발명의 실시예에 따른, 컨테이너 기반 마이크로서비스 배치 중계자 시스템은, 클라이언트로부터 입력되는 마이크로서비스 명세서에서 모니터링 데이터를 확인하여, 하드웨어 사용량 별 적합성에 관한 1차 적합성 판별을 수행하는 1차 분류기; 및 상기 1차 적합성 판별의 수행 결과에 근거하여, 마이크로서비스 특성 별 적합성에 관한 2차 적합성 판별을 수행하고, 상기 2차 적합성 판별의 수행 결과에 근거하여, 컨테이너의 최종 배치 위치를 결정하는 2차 분류기를 포함하여 구성할 수 있다.
본 발명의 일실시예에 따르면, 컨테이너 기반 마이크로서비스의 특성을 고려하여 컨테이너의 배치를 중계하는, 컨테이너 기반 마이크로서비스 배치 중계자 시스템 및 방법을 제공 할 수 있다.
또한, 본 발명의 일실시예에 따르면, 마이크로서비스의 배치에 초점을 두어 명세를 위한 템플릿을 제시하고, 운영 시 수집된 데이터를 활용한 마이크로서비스 간의 적합도에 기반하여, 마이크로서비스가 가장 효율적으로 동작하는 동작지점을 인프라에 제공하여, 명세 템플릿을 생성 및 컨테이너 배치 관리를 실시 할 수 있다.
도 1은 본 발명의 일실시예에 따른 컨테이너 기반 마이크로서비스 배치 중계자 시스템의 구성을 도시한 블록도이다.
도 2는 본 발명에 따른 마이크로서비스 배치 중계자 시스템의 구성도이다.
도 3은 본 발명에 따른 마이크로서비스 배치 중계자 시스템의 기능 흐름도이다.
도 4는 본 발명의 일례에 따른, 컨테이너의 배치 모식도이다.
도 5는 배치 특성이 반영된 템플릿의 일례를 예시한 도이다.
도 6은 1차 적합성 계산을 예시한 도이다.
도 7은 기본적인 Pod의 배치 위치와 Pod의 이름을 획득하기 위한 모니터링 쿼리문의 예시도이다.
도 8은 배치 위치가 반영된 쿠버네티스 배치 템플릿을 예시한 도이다.
도 9는 최종 배치 예상도이다.
도 10은 실 배치 후 pod들의 상태를 예시한 도이고, 도 11은 pod배치 현황을 예시한 도이다.
도 12는 본 발명의 일실시예에 따른, 컨테이너 기반 마이크로서비스 배치 중계자 방법을 도시한 흐름도이다.
이하에서, 첨부된 도면을 참조하여 실시예들을 상세하게 설명한다. 그러나, 실시예들에는 다양한 변경이 가해질 수 있어서 특허출원의 권리 범위가 이러한 실시예들에 의해 제한되거나 한정되는 것은 아니다. 실시예들에 대한 모든 변경, 균등물 내지 대체물이 권리 범위에 포함되는 것으로 이해되어야 한다.
실시예에서 사용한 용어는 단지 설명을 목적으로 사용된 것으로, 한정하려는 의도로 해석되어서는 안된다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 명세서 상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 실시예가 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
또한, 첨부 도면을 참조하여 설명함에 있어, 도면 부호에 관계없이 동일한 구성 요소는 동일한 참조부호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다. 실시예를 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 실시예의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다.
도 1은 본 발명의 일실시예에 따른 컨테이너 기반 마이크로서비스 배치 중계자 시스템의 구성을 도시한 블록도이다.
도 1을 참조하면, 본 발명의 일실시예에 따른, 컨테이너 기반 마이크로서비스 배치 중계자 시스템(이하, '마이크로서비스 배치 중계자 시스템'으로 약칭함, 100)는 1차 분류기(110), 및 2차 분류기(120)를 포함하여 구성할 수 있다. 또한, 실시예에 따라, 마이크로서비스 배치 중계자 시스템(100)는 템플릿 생성기(130)를 선택적으로 추가하여 구성할 수 있다.
우선, 1차 분류기(110)는 클라이언트로부터 입력되는 마이크로서비스 명세서에서 모니터링 데이터를 확인하여, 하드웨어 사용량 별 적합성에 관한 1차 적합성 판별을 수행한다. 즉, 1차 분류기(110)는 마이크로서비스 명세서에서, 클라이언트가 원하는 마이크로서비스를 처리하는 디바이스에 대한 모니터링 데이터를 인지하고, 상기 모니터링 데이터를 분석하여 디바이스 간의 하드웨어 사용량 별 적합성을 평가하는 역할을 할 수 있다.
마이크로서비스 명세서에는, 클라이언트가 원하는 마이크로서비스에 대한 상세, 디바이스에 요구되는 성능, 디바이스에 대한 모니터링 데이터 등을 포함하여, 클라이언트 단에서 작성한 것일 수 있다.
여기서, 디바이스 간의 하드웨어 사용량 별 적합성은 예컨대, 마이크로서비스를 처리하는 데에 있어, CPU, Memory, Storage 등과 관련하여, 가장 최적한 처리가 가능할 것으로 예측되는 디바이스의 적합 정도를 평가하여 산출 될 수 있다.
예컨대, 디바이스 간의 하드웨어 사용량 별 적합성의 수행에 있어, 1차 분류기(110)는 [수식 4]를 만족하여, 상기 1차 적합성을 수치화하여 판별할 수 있다.
상기 [수식 4]는,
으로 정의 할 수 있다.
상기 CPU minimum request는 하나의 컨테이너에 할당 가능한 최소 수치의 CPU이고, 상기 Memory minimum request는 각 배치 지점에서 하나의 컨테이너에 할당 가능한 최소 수치의 Memory 일 수 있다. 또한, 상기 Storage minimum request는 각 배치 지점에서 하나의 컨테이너에 할당 가능한 최소 수치의 Storage이고, 상기 available CPU, available Memory, available Storage 각각은 각 컨테이너 노드의 여유 리소스 일 수 있다.
즉, 1차 분류기(110)는 각 디바이스에서 마이크로서비스를 처리하는 경우에 하드웨어 사용량이 적절하게 분배되도록 하는 최적 케이스를, [수식 4]의 결과치를 참조하여 도출해 낼 수 있다.
또한, 2차 분류기(120)는 상기 1차 적합성 판별의 수행 결과에 근거하여, 마이크로서비스 특성 별 적합성에 관한 2차 적합성 판별을 수행한다. 즉, 2차 분류기(120)는 1차 적합성 판별에 따라 평가된 디바이스에서, 클라이언트가 원하는 마이크로서비스를 실제 처리시, 최선의 성능을 도출하는지에 대해 평가하는 역할을 할 수 있다.
상기 2차 분류기(120)는, 유사성(Similarity), 인프라 환경(Infrastructure environment), 연결성(Connectivity), 성능(Performance)의 저 지연성(Law Latency), 및 성능의 고 가용성(High Availability) 중 적어도 하나를 포함하는 테이블 명세 항목을 기반으로 한 특성 기반 배치를 고려하여, 상기 2차 적합성 판별을 수행 할 수 있다.
테이블 명세 항목으로 나열된 유사성 등에 대한 정의 및 설명은, 후술하는 표 2에서 상세히 하고 여기서는 생략한다.
즉, 2차 분류기(120)는 1차 적합성이 수행된 각 디바이스에서의 마이크로서비스를 처리할 시의 최적 케이스를, 특정 항목들을 참조하여 도출해 낼 수 있다.
또한, 2차 분류기(120)는 상기 2차 적합성 판별의 수행 결과에 근거하여, 컨테이너의 최종 배치 위치를 결정한다. 즉, 2차 분류기(120)는 1차 및 2차 적합성의 평가 결과를 고려하여, 각 디바이스와 관련한 컨테이너의 배치 위치를 확정할 수 있다.
여기서 배치 위치는, 디바이스로서, 예컨대 IoT Controller, IoT Device, Sensor 등과 관련한 컨테이너들이, 컨테이너 오케스트레이션 네트워크 내에 배치될 노드(kube)를 지칭 할 수 있다. 복수의 노드 사이에는 연관 정도에 따라 간선 등으로 선택적으로 연결 될 수 있다.
즉, 2차 분류기(120)는, IoT Controller, IoT Device, Sensor 등과 관련한 컨테이너가 점유하게 되는, 컨테이너 오케스트레이션 네트워크 내 노드를 결정 할 수 있다.
예컨대, IoT Controller, IoT Device 1, Sensor 1, Sensor 2에 대한 1차 적합성 및 2차 적합성이 수행됨에 따라, 2차 분류기(120)는 IoT Controller, IoT Device 1, Sensor 1, Sensor 2 각각이 배치되는 노드를 결정하여(예, IoT Controller- kube1, IoT Device 1- kube1, Sensor 1- kube2, Sensor 2- kube2), 컨테이너의 최종 배치 위치로 할 수 있다.
또한, IoT Controller, IoT Device 1, Sensor 1, Sensor 2이 배치된 상태에서, IoT Device 2, Sensor 3, Sensor 4를 추가하고자 하는 경우, 기 배치된 디바이스를 고려한 이들 IoT Device 2, Sensor 3, Sensor 4에 대한 1차 적합성 및 2차 적합성이 수행됨에 따라, 2차 분류기(120)는, IoT Device 2, Sensor 3, Sensor 4 각각이 배치되는 노드를 결정하여(예, IoT Device 2- kube3, Sensor 3- kube3, Sensor 4- kube3), 컨테이너의 최종 배치 위치로 할 수 있다.
실시예에 따라, 마이크로서비스 배치 중계자 시스템(100)은 결정된 최종 배치 위치에 기초한 배치 템플릿을 작성 할 수 있다.
이를 위해, 마이크로서비스 배치 중계자 시스템(100)은 템플릿 생성기(130)를 추가적으로 포함하여 구성 할 수 있다.
즉, 템플릿 생성기(130)는, 상기 결정된 최종 배치 위치에 따른 배치 템플릿을 작성하여, 컨테이너 오케스트레이션 프레임워크로 전달할 수 있다.
템플릿 생성기(130)에 의해 작성되는 배치 템플릿에는, 컨테이너 오케스트레이션 네트워크 내에서의 임의 노드에 배치되는 컨테이너 종류와, 노드 사이의 간선의 연결 여하 등이 기재될 수 있다.
상술한 예시에서, 템플릿 생성기(130)는 IoT Controller- kube1, IoT Device 1- kube1, Sensor 1- kube2, Sensor 2- kube2에 각각 배치되고, IoT Controller와 IoT Device 1이 직결되는 간선, IoT Device 1과 Sensor 1, Sensor 2 각각이 직결되는 간선으로 연결되는 배치 템플릿을 작성하여, 컨테이너 오케스트레이션 프레임워크로 전달할 수 있다.
또한, 템플릿 생성기(130)는 IoT Device 2- kube3, Sensor 3- kube3, Sensor 4- kube3에 각각 배치되고, IoT Controller와 IoT Device 2가 직결되는 간선, IoT Device 2와 Sensor 1, Sensor 3, Sensor 4 각각이 직결되는 간선으로 연결되는 배치 템플릿을 작성하여, 컨테이너 오케스트레이션 프레임워크로 전달할 수 있다.
또한, 실시예에 따라, 마이크로서비스 배치 중계자 시스템(100)은 올바른 명세 약식으로 작성된 마이크로서비스 명세서 만을 입력 받을 수 있다.
이를 위해, 상기 1차 분류기(110)는, 상기 클라이언트에 의해 작성된 마이크로서비스 명세서에 대해, 규정된 명세 양식에 잘못이 있는지를 판단하고, 상기 판단 결과, 잘못이 없다면, 상기 마이크로서비스 명세서를 입력받고, 잘못이 있다면, 상기 마이크로서비스 명세서의 재작성을 상기 클라이언트에게 알릴 수 있다.
예컨대, 처리를 원하는 마이크로서비스와 관련하여, 필요 CPU, Memory, Storage 각각의 리소스가 기재되어 있지 않아, 1차 적합성이 불가능한 경우, 1차 분류기(110)는 해당 마이크로서비스 명세서를 입력 받지 않고, 클라이언트에게 리턴시켜, 필요 CPU, Memory, Storage 각각의 리소스를 포함하는 마이크로서비스 명세서의 재작성을 요청할 수 있다.
이를 통해, 마이크로서비스 배치 중계자 시스템(100)은, 클라이언트에 의해 작성되는 마이크로서비스 명세서가, 올바른 명세 약식으로 작성되도록 상기 클라이언트를 유도할 수 있다.
본 발명의 일실시예에 따르면, 컨테이너 기반 마이크로서비스의 특성을 고려하여 컨테이너의 배치를 중계하는, 컨테이너 기반 마이크로서비스 배치 중계자 시스템 및 방법을 제공 할 수 있다.
또한, 본 발명의 일실시예에 따르면, 마이크로서비스의 배치에 초점을 두어 명세를 위한 템플릿을 제시하고, 운영 시 수집된 데이터를 활용한 마이크로서비스 간의 적합도에 기반하여, 마이크로서비스가 가장 효율적으로 동작하는 동작지점을 인프라에 제공하여, 명세 템플릿을 생성 및 컨테이너 배치 관리를 실시 할 수 있다.
본 발명은 컨테이너 기반 마이크로서비스의 특성을 고려하여 컨테이너의 배치를 중계하는, 컨테이너 기반 마이크로서비스 배치 중계자 시스템 및 방법에 관한 것이다.
본 발명의 마이크로서비스 배치 중계자 시스템(100)은, 마이크로서비스의 기초 요구사항을 반영하는 템플릿을 통해, 컨테이너 오케스트레이션 프레임워크의 컨테이너 배치 템플릿을 작성하는 템플릿 생성기를 포함한다.
또한, 마이크로서비스 배치 중계자 시스템(100)은, 컨테이너 오케스트레이션 프레임워크에서의 컨테이너 배치현황을 확인하는 모니터링 에이전트를 통해, 마이크로서비스 및 컨테이너 오케스트레이션 프레임워크에 대한 모니터링 요소를 획득 할 수 있다.
마이크로서비스 배치 중계자 시스템(100)은, 모니터링 요소를 기반으로 리소스 및 상태를 확인하여 물리적 적합성을 판별하는 1차 분류기와, 마이크로서비스의 동작 특성 및 연결 패턴에 따른 적합성을 판별하는 2차 분류기를 포함하여 구성 될 수 있다.
종래의 등록번호 1807806은 클라우드 플랫폼에서 유지되는 어플리케이션을 컨테이너에 담고 이를 배포하는 전반적인 프로세스 제시에 초점이 맞추어져 있다.
즉, 등록번호 1807806은 컨테이너 기반의 어플리케이션으로의 전환이 필요한 어플리케이션 선정, 선정 어플리케이션의 인프라 구축, 컨테이너 전환, 기능 및 성능 테스트, 운영 데이터 모니터링, 오류 정정 및 제어까지의 전체 단계를 도식화 한 간단한 사례를 포함하여 제시하고 있다.
반면, 본 발명에서는, 마이크로서비스에서의 컨테이너 배치에 초점을 두어 명세를 위한 템플릿을 제시하였으며, 운영 시 수집된 데이터를 활용한 마이크로서비스 간의 적합도에 기반하여, 마이크로서비스가 가장 효율적으로 동작하는 동작지점을 인프라에 제공하여, 명세 템플릿을 생성 및 컨테이너의 배치 관리를 실시하는 차별성을 제시하고 있다.
또한, 등록번호 2027749는 마이크로서비스를 배포하기 위한 컨테이너 오케스트레이션 시스템을 제시한다. 등록번호 2027749는 컨테이너 오케스트레이션과 마이크로서비스의 통신 오류 및 트래픽 제어를 위한 마이크로서비스 플랫폼을 포함한 형태로 진행되고, 서비스 단위의 식별을 실시하여 마이크로서비스 간의 연결을 중개하는 프록시 서버를 각 마이크로서비스 단에 배포하며, 타임아웃, 재전송 등의 통신 오류를 제어하는 지능적 부하분산 시스템을 활용한다.
반면, 본 발명은 마이크로서비스가 갖는 특성을 명세화하고, 컨테이너가 배치되는 지점들의 환경 분석을 통한 적합성을 판별하는 것으로, 적합성 판별 단계에 따른 하드웨어적 배치 지점과 마이크로서비스에서 발생하는 연결성과 의존성 등의 문제를 명세기반으로 배치하는 분류기 및 이 분류기를 포함한 프로세스를 제시하여 마이크로서비스의 동작이 용이하도록 하는 구성을 포함 할 수 있다.
도 2는 본 발명에 따른 마이크로서비스 배치 중계자 시스템의 구성도이다.
도 2에서와 같이, 마이크로서비스 배치 중계자 시스템(100)은 1차 분류기, 2차 분류기, 템플릿 생성기를 포함하여 구성하고, 이들 수단을 실시간으로 감시하는 모니터링 도구를 추가하여 구성 할 수 있다. 마이크로서비스 배치 중계자 시스템(100)은, 클라이언트(Client)로부터 마이크로서비스 명세서를 입력받고, 입력된 마이크로서비스 명세서에 의거한 컨테이너 배치에 관한 배치 템플릿을 작성하여 컨테이너 오케스트레이션 프레임워크(Container Orchestration Framework)로 전달할 수 있다.
클라이언트(사용자, 소프트웨어, 개발자 및 관리자 등)와 마이크로서비스 배치 중계자 시스템(100)과의 사이는, 마이크로서비스 명세서를 바탕으로 기능이 시작 될 수 있다.
마이크로서비스 배치 중계자 시스템(100)과 컨테이너 오케스트레이션 프레임워크과의 사이에는, 템플릿 생성기를 활용하여 프레임워크에 반영가능한 배치 템플릿에 대한 배치가 진행 될 수 있다.
도 3은 본 발명에 따른 마이크로서비스 배치 중계자 시스템의 기능 흐름도이다.
도 3에서와 같이, 마이크로서비스 배치 중계자 시스템(100)은 Client에 의해서 작성된 마이크로서비스 명세서에 대해, 규정된 명세 양식에 잘못이 있는지를 판단한 후, 잘못이 있다고 판단하면, 마이크로서비스 명세서의 재작성을 위해 Client로 리턴 시킬 수 있다.
1차 분류기는 마이크로서비스 명세서의, 명세 양식이 올바른지를 확인하여, 마이크로서비스 명세서를 입력받는다. 1차 분류기는, 마이크로서비스 명세서에서, 모니터링 데이터를 확인하고, 하드웨어 사용량 별 적합성 판별을 수행할 수 있다.
2차 분류기는, 1차 분류기의 수행 결과에 근거하여, 마이크로서비스 특성 별 적합성을 판별 할 수 있다. 2차 분류기는 마이크로서비스 특성 별 적합성의 판별 결과에 따라, 컨테이너의 최종 배치 위치를 결정 할 수 있다.
템플릿 생성기는 결정된 배치 위치 기반의 배치 템플릿을 작성할 수 있다. 템플릿 생성기는, 작성된 배치 템플릿을, 컨테이너 오케스트레이션 프레임워크에 전달 할 수 있다.
마이크로서비스를 기반으로 서비스를 제공하고자 하는 개발자 및 관리자는, 명세 양식에 따라 마이크로서비스 명세서를 작성하여 마이크로서비스 배치 중계자 시스템(100)에 제공할 수 있다.
이후, 마이크로서비스 배치 중계자 시스템(100)은, 모니터링 데이터를 활용하여 하드웨어 리소스 기반의 분류를 진행하는 1차 분류기와, 마이크로서비스 명세서에 작성된 마이크로서비스의 특성을 반영하는 2차 분류기를 통해, 컨테이너의 최종 배치 위치를 결정할 수 있다.
템플릿 생성기는 2차 분류기에 의해 결정된 컨테이너의 최종 배치 위치가 명시된 배치 템플릿을 작성할 수 있다. 템플릿 생성기는, 작성된 배치 템플릿을, 컨테이너 오케스트레이션 프레임워크에 전달하는 것으로 기능 흐름을 완료 할 수 있다.
쿠버네티스(Kubernetes)와 같은 컨테이너 오케스트레이션 프레임워크는 마이크로서비스를 배치하기 위한 템플릿이 아닌, 컨테이너의 관리에 중점을 둔 템플릿을 제공하므로, 마이크로서비스의 특성을 반영하는 새로운 템플릿의 정의를 필요로 한다.
[표 1]에서는, 컨테이너 오케스트레이션 프레임워크의 템플릿 요소를 반영하면서, 마이크로서비스의 특성이 반영되도록 특성 요소와 컨테이너 오케스트레이션 프레임워크의 필요 요소들을 정리한다.
표 1은 마이크로서비스의 특성 및 컨테이너 오케스트레이션 필수요소를 나열한다.
Figure 112021099407714-pat00002
특성명인 MS-Number는 마이크로서비스의 특성을 정의한 항목이다.
MS-01은 마이크로서비스 구조가 BCE(Boundary-Control-Entity) 패턴을 갖도록 하는 특성이고, MS-02는 마이크로서비스들 사이의 약결합 특성으로 해당 마이크로서비스가 갖는 특징적인 기능을 나타낸다. 그리고, MS-03은 마이크로서비스의 입/출력과 연결되는 마이크로서비스를 나타낸다.
CO-Number는 컨테이너 오케스트레이션 프레임워크인 쿠버네티스 템플릿의 작성에 필요한 항목이다.
CO-01은 쿠버네티스 내에서 개별 마이크로서비스를 특정하고, CO-02는 개별 마이크로서비스가 배치될 때 구동되는 기능을 특정한다. 그리고, CO-03은 마이크로서비스의 포트와 쿠버네티스의 포트의 연결을 특정한다.
1차 분류기에 의한 1차 적합성(하드웨어 사용량 별 적합성) 판별은, 물리적(하드웨어) 리소스 기반의 수치를 계산하는 것이다.
[수식 1] 내지 [수식 4]는 배치 지점의 물리적 리소스(CPU, Memory, Storage)의 적합성을 수치화하는 수식과 관련된다.
[수식 1]
[수식 1]에서 CPU maximum request는 각 배치 지점에서 하나의 컨테이너에 할당 가능한 최대 수치의 CPU를 말하고, CPU minimum request는 하나의 컨테이너에 할당 가능한 최소 수치의 CPU를 말한다. 예를 들어 쿠버네시트는 CPU minimum request로 0.05 core를 제공한다.
[수식 2]
[수식 2]는 [수식 1]에서 정의한 standard level을 활용하여 하나의 컨테이너에 할당할 최소 수치의 Memory를 계산하기 위한 식이다. Memory maximum request는 각 배치 지점에서 하나의 컨테이너에 할당 가능한 최대 수치의 Memory를 말한다.
[수식 3]
[수식 3]은 [수식 1]에서 정의한 standard level을 활용하여 하나의 컨테이너에 할당할 최소 수치의 Storage를 계산하기 위한 식이다. Storage maximum request는 각 배치 지점에서 하나의 컨테이너에 할당 가능한 최대 수치의 Storage를 말한다.
[수식 4]
[수식 4]는 1차 적합성을 수치화하는 방법을 보여 준다.
1차 적합성은 각 컨테이너 노드의 여유 리소스를, [수식 1 내지 3]에서 계산한 최소 수치의 CPU, Memory, Storage를 나누는 것으로 계산한다.
2차 분류기에 의한 2차 적합성(마이크로서비스 특성 별 적합성) 판별은 테이블 명세 항목을 기반으로 한 특성 기반 배치와 관련된다.
표 2는 2차 적합성 판별에 대한 상세 설명을 정리한 것이다.
Figure 112021099407714-pat00007
유사성(Similarity)은 비슷한 마이크로서비스가 배치되어 있는 배치 지점을 선택하기 위한 항목 일 수 있다.
인프라 환경(Infrastructure environment)은 배치 지점들 중 마이크로서비스의 밀집도 및 컨테이너 수용량과 같은 배치 환경적 이점을 갖는 배치 지점을 선택하기 위한 항목 일 수 있다.
연결성(Connectivity)은 Boundary-Control-Entity 패턴에 따른 연결 관계가 존재하는 마이크로서비스의 연결 지연 최소화를 위한 배치 지점을 선택하기 위한 항목 일 수 있다.
성능(Performance)의 저 지연성(Law Latency)은 배치 지점 별 마이크로서비스 응답 지연 성능을 고려한 배치 지점을 선택하기 위한 항목 일 수 있다. 응답 지연은 마이크로서비스의 성능을 비교하기 위한 항목 일 수 있다.
성능의 고 가용성(High Availability)은 마이크로서비스의 컨테이너의 재시작 회수가 가장 적은 배치 지점을 선택하기 위한 항목 일 수 있다.
이하에서는, 마이크로서비스 배치 기법을 활용한 홈 IoT 시스템의 배치 일례를 설명한다.
도 4는 본 발명의 일례에 따른, 컨테이너의 배치 모식도이다.
도 4에서는, 홈 IoT 시스템을 배치하는 사례를 활용하여 제안하는 시스템의 동작을 설명한다.
배치 사례는 도 4와 같이 구성될 수 있다.
도 4에서는, 실선으로 표시한 IoT Controller, IoT Device 1, Sensor1, Sensor2가 먼저 배치되는 사례 1과, 먼저 배치된 IoT Controller와 IoT Device 1이 동작하는 상황에서 점선으로 표현한 IoT Device 2, Sensor 3, Sensor 4를 추가로 배치하는 사례 2로 하는 사례 연구를 예시한다.
도 4에서의 사례 연구에 사용한 환경은 [표 3]과 같다.
[표 3]은 사례 연구 환경을 정리한 것이다.
Figure 112021099407714-pat00008
사례 연구를 진행하기에 앞서 측정한 여유 하드웨어는 [표 4]와 같다.
[표 4]는 사례 연구 환경의 배치 여유 공간을 정리한 것이다.
Figure 112021099407714-pat00009
사례 1, 2에서 모든 마이크로서비스들은 동일한 리소스 사용량을 갖는다고 가정한다.
각 값은 쿠버네티스에서 최소 CPU 사용량으로 규정하고 있는 0.05core를 기준으로, 동률로 계산된 배치 최소값을 활용하였다.
도 5는 배치 특성이 반영된 템플릿의 일례를 예시한 도이다.
[표 1]에서 제시한 내역에 따라 본 발명에서 제시한 마이크로서비스 특성이 반영된 템플릿은 [도 5]와 같다.
도 5에서는 컨테이너 오케스트레이션 프레임워크에서 필요한 항목들과, 마이크로서비스의 특성을 모니터링하기 위한 항목들을 템플릿으로 추출하는 것을 보여준다.
BCE(Boundary-Control-Entity) 형태의 마이크로서비스를 배치할 때의 배치 순서는 Boundary -> Control -> Entity의 순서로 배치하게 되므로, Boundary 마이크로서비스에 해당하는 IoT Controller의 배치 후에 Control 마이크로서비스에 해당하는 IoT Device가 배치 된다.
순서대로 배치 할 때의 적합성 수치들은 [표 5]와 같이 작성된다.
표 5는 사례 1(IoT Controller, IoT Device 1, Sensor1, Sensor2가 먼저 배치)의 적합성 판별을 정리한 것이다.
Figure 112021099407714-pat00010
[표 5]에 제시한 1차 적합성의 계산 값의 예로 IoT Controller를 배치하는 경우의 1차 적합성을 계산한 결과는 도 6에 도시한다.
도 6은 1차 적합성 계산을 예시한 도이다.
[표 6]은 IoT Controller 마이크로서비스의 배치 지점 별 2차 적합성 판별을 정리한 것이다.
IoT Controller를 배치하는 경우에는 마이크로서비스가 배치되지 않은 상태에서 최초로 마이크로서비스를 배치하는 경우를 확인하기 때문에, Performance 와 인프라 환경에 대한 부분 만을 확인한다.
Figure 112021099407714-pat00011
[표 6]의 데이터들을 획득하기 위해서는, Prometheus 모니터링 프레임워크를 활용하여 각 Pod의 배치 위치, 배치 현황 등을 추출한다.
도 7은 기본적인 Pod의 배치 위치와 Pod의 이름을 획득하기 위한 모니터링 쿼리문의 예시도이다.
도 7에서는 2차 적합성 판별을 위한 모니터링 데이터 추출 방법을 예시한다.
[표 7]은 사례 1(IoT Controller, IoT Device 1, Sensor1, Sensor2가 먼저 배치)에 대한 배치 위치 결정표이다.
Figure 112021099407714-pat00012
[표 7]에서는 적합성의 결과를 모두 종합하여 순위 별 점수를 통해 배치 지점을 선택한 최종 결과를 정리한다.
[표 7]에서 순위를 점수화 하여 노드를 선택한 것은 1차 적합성과 2차 적합성이 갖을 수 있는 범위가 다르므로, 1차 적합성과 2차 적합성의 수치를 동일하게 가중하기 위해서는, 각 배치 점수를 순위 기반의 점수로 책정 한다.
도 8은 배치 위치가 반영된 쿠버네티스 배치 템플릿을 예시한 도이다.
도 8의 상단의 labels에 해당하는 데이터는 마이크로서비스의 특성에 대한 부분이며, 하단의 nodeSelector는 최종적으로 선택된 노드에 탑재하기 위해 입력되며, containers는 컨테이너 오케스트레이션 프레임워크에서 컨테이너 배치를 위한 정보들이다.
사례 2(IoT Device 2, Sensor 3, Sensor 4를 추가로 배치)는 기 배치된 마이크로서비스 유형이 있는 경우에 대한 사례 연구이다.
[표 8]은 사례 2의 적합성 수치를 정리한 것이다.
Figure 112021099407714-pat00013
[표 9]는 사례 2에서 IoT Device 2를 배치하는 경우에 2차 적합성을 정리한 것이다.
Figure 112021099407714-pat00014
[표 9]에서는 기존에 존재하는 IoT Device 1과의 유사성을 통해 kube1 배치 지점이 유사성과 연결성 부분에서 높은 점수를 획득하였으나 kube3 배치 지점의 인프라 환경적 우수성과 성능적 우수성으로 인해 동률을 기록한 것을 볼 수 있다.
본 발명의 마이크로서비스 배치 중계자 시스템(100)은 1차 적합성 수치를 비교하여 배치 지점을 선택할 수 있다.
[표 10]은 사례 2에 대한 배치 위치 결정표이다.
Figure 112021099407714-pat00015
도 9는 최종 배치 예상도이다.
최종적으로 배치되는 형상은 도 9와 같다.
즉, 마이크로서비스 배치 중계자 시스템(100)은 1차 적합성 및 2차 적합성을 수행하여, kube1에 IoT Controller, IoT Device 1을 배치하고, kube2에 Sensor 1, Sensor 2를 배치하며, kube3에 IoT Device 2, Sensor 3, Sensor 4를 배치 할 수 있다.
마이크로서비스 배치 중계자 시스템(100)은 IoT Controller와, IoT Device 1, IoT Device 2 각각을 간선으로 직결하고, IoT Device 1과, Sensor 1, Sensor 2 각각을 간선으로 직결하여 배치할 수 있다. 또한, 마이크로서비스 배치 중계자 시스템(100)은 IoT Device 2와, Sensor 1을 간선으로 직결하고, IoT Device 2와, Sensor 3, Sensor 4 각각을 간선으로 직결하여 배치할 수 있다.
도 9에서와 같이, 마이크로서비스 배치 중계자 시스템(100)은 선후 관계에 있는 마이크로서비스와의 연결성과 마이크로서비스의 배치 지점의 성능을 고려하여 배치 위치를 결정하였다.
도 9에서와 같이, 마이크로서비스 배치 중계자 시스템(100)은 동일한 기능을 하면서, 성능차이가 두드러지지 않는 경우, 동일 위치에 배치되어 마이크로서비스 애플리케이션의 성능 향상을 도모하였다.
도 10은 실 배치 후 pod들의 상태를 예시한 도이고, 도 11은 pod배치 현황을 예시한 도이다.
도 10에서는 실제 배치기를 활용하여 실 배치를 진행 후 포드의 상태들을 나타낸다.
도 11에서는 해당 포드들이 최종 배치 예상도에 맞게 배치되었는지 확인하기 위해 모니터링 시각화 에이전트인 Grafana를 활용한다.
이하, 도 12에서는 본 발명의 실시예들에 따른 마이크로서비스 배치 중계자 시스템(100)의 작업 흐름을 상세히 설명한다.
도 12는 본 발명의 일실시예에 따른, 컨테이너 기반 마이크로서비스 배치 중계자 방법을 도시한 흐름도이다.
본 실시예에 따른 컨테이너 기반 마이크로서비스 배치 중계자 방법은 마이크로서비스 배치 중계자 시스템(100)에 의해 수행될 수 있다.
우선, 마이크로서비스 배치 중계자 시스템(100)의 1차 분류기에서, 클라이언트로부터 입력되는 마이크로서비스 명세서에서 모니터링 데이터를 확인하여, 하드웨어 사용량 별 적합성에 관한 1차 적합성 판별을 수행한다(1210). 단계(1210)는 마이크로서비스 명세서에서, 클라이언트가 원하는 마이크로서비스를 처리하는 디바이스에 대한 모니터링 데이터를 인지하고, 상기 모니터링 데이터를 분석하여 디바이스 간의 하드웨어 사용량 별 적합성을 평가하는 과정일 수 있다.
마이크로서비스 명세서에는, 클라이언트가 원하는 마이크로서비스에 대한 상세, 디바이스에 요구되는 성능, 디바이스에 대한 모니터링 데이터 등을 포함하여, 클라이언트 단에서 작성한 것일 수 있다.
여기서, 디바이스 간의 하드웨어 사용량 별 적합성은 예컨대, 마이크로서비스를 처리하는 데에 있어, CPU, Memory, Storage 등과 관련하여, 가장 최적한 처리가 가능할 것으로 예측되는 디바이스의 적합 정도를 평가하여 산출 될 수 있다.
예컨대, 디바이스 간의 하드웨어 사용량 별 적합성의 수행에 있어, 1차 분류기는 [수식 4]를 만족하여, 상기 1차 적합성을 수치화하여 판별할 수 있다.
상기 [수식 4]는,
으로 정의 할 수 있다.
상기 CPU minimum request는 하나의 컨테이너에 할당 가능한 최소 수치의 CPU이고, 상기 Memory minimum request는 각 배치 지점에서 하나의 컨테이너에 할당 가능한 최소 수치의 Memory 일 수 있다. 또한, 상기 Storage minimum request는 각 배치 지점에서 하나의 컨테이너에 할당 가능한 최소 수치의 Storage이고, 상기 available CPU, available Memory, available Storage 각각은 각 컨테이너 노드의 여유 리소스 일 수 있다.
즉, 1차 분류기는 각 디바이스에서 마이크로서비스를 처리하는 경우에 하드웨어 사용량이 적절하게 분배되도록 하는 최적 케이스를, [수식 4]의 결과치를 참조하여 도출해 낼 수 있다.
또한, 마이크로서비스 배치 중계자 시스템(100)의 2차 분류기에서, 상기 1차 적합성 판별의 수행 결과에 근거하여, 마이크로서비스 특성 별 적합성에 관한 2차 적합성 판별을 수행한다(1220). 단계(1220)는 1차 적합성 판별에 따라 평가된 디바이스에서, 클라이언트가 원하는 마이크로서비스를 실제 처리시, 최선의 성능을 도출하는지에 대해 평가하는 과정일 수 있다.
상기 2차 분류기는, 유사성(Similarity), 인프라 환경(Infrastructure environment), 연결성(Connectivity), 성능(Performance)의 저 지연성(Law Latency), 및 성능의 고 가용성(High Availability) 중 적어도 하나를 포함하는 테이블 명세 항목을 기반으로 한 특성 기반 배치를 고려하여, 상기 2차 적합성 판별을 수행 할 수 있다.
즉, 2차 분류기는 1차 적합성이 수행된 각 디바이스에서의 마이크로서비스를 처리할 시의 최적 케이스를, 특정 항목들을 참조하여 도출해 낼 수 있다.
계속해서, 마이크로서비스 배치 중계자 시스템(100)의 2차 분류기에서 상기 2차 적합성 판별의 수행 결과에 근거하여, 컨테이너의 최종 배치 위치를 결정한다(1230). 단계(1230)는 1차 및 2차 적합성의 평가 결과를 고려하여, 각 디바이스와 관련한 컨테이너의 배치 위치를 확정하는 과정일 수 있다.
여기서 배치 위치는, 디바이스로서, 예컨대 IoT Controller, IoT Device, Sensor 등과 관련한 컨테이너들이, 컨테이너 오케스트레이션 네트워크 내에 배치될 노드(kube)를 지칭 할 수 있다. 복수의 노드 사이에는 연관 정도에 따라 간선 등으로 선택적으로 연결 될 수 있다.
즉, 2차 분류기는, IoT Controller, IoT Device, Sensor 등과 관련한 컨테이너가 점유하게 되는, 컨테이너 오케스트레이션 네트워크 내 노드를 결정 할 수 있다.
예컨대, IoT Controller, IoT Device 1, Sensor 1, Sensor 2에 대한 1차 적합성 및 2차 적합성이 수행됨에 따라, 2차 분류기는 IoT Controller, IoT Device 1, Sensor 1, Sensor 2 각각이 배치되는 노드를 결정하여(예, IoT Controller- kube1, IoT Device 1- kube1, Sensor 1- kube2, Sensor 2- kube2), 컨테이너의 최종 배치 위치로 할 수 있다.
또한, IoT Controller, IoT Device 1, Sensor 1, Sensor 2이 배치된 상태에서, IoT Device 2, Sensor 3, Sensor 4를 추가하고자 하는 경우, 기 배치된 디바이스를 고려한 이들 IoT Device 2, Sensor 3, Sensor 4에 대한 1차 적합성 및 2차 적합성이 수행됨에 따라, 2차 분류기는, IoT Device 2, Sensor 3, Sensor 4 각각이 배치되는 노드를 결정하여(예, IoT Device 2- kube3, Sensor 3- kube3, Sensor 4- kube3), 컨테이너의 최종 배치 위치로 할 수 있다.
또한, 마이크로서비스 배치 중계자 시스템(100)의 템플릿 생성기에서는, 상기 결정된 최종 배치 위치에 따른 배치 템플릿을 작성하여, 컨테이너 오케스트레이션 프레임워크로 전달할 수 있다(1240).
템플릿 생성기에 의해 작성되는 배치 템플릿에는, 컨테이너 오케스트레이션 네트워크 내에서의 임의 노드에 배치되는 컨테이너 종류와, 노드 사이의 간선의 연결 여하 등이 기재될 수 있다.
상술한 예시에서, 템플릿 생성기는 IoT Controller- kube1, IoT Device 1- kube1, Sensor 1- kube2, Sensor 2- kube2에 각각 배치되고, IoT Controller와 IoT Device 1이 직결되는 간선, IoT Device 1과 Sensor 1, Sensor 2 각각이 직결되는 간선으로 연결되는 배치 템플릿을 작성하여, 컨테이너 오케스트레이션 프레임워크로 전달할 수 있다.
또한, 템플릿 생성기는 IoT Device 2- kube3, Sensor 3- kube3, Sensor 4- kube3에 각각 배치되고, IoT Controller와 IoT Device 2가 직결되는 간선, IoT Device 2와 Sensor 1, Sensor 3, Sensor 4 각각이 직결되는 간선으로 연결되는 배치 템플릿을 작성하여, 컨테이너 오케스트레이션 프레임워크로 전달할 수 있다.
또한, 실시예에 따라, 마이크로서비스 배치 중계자 시스템(100)은 올바른 명세 약식으로 작성된 마이크로서비스 명세서 만을 입력 받을 수 있다.
이를 위해, 마이크로서비스 배치 중계자 시스템(100)는, 상기 클라이언트에 의해 작성된 마이크로서비스 명세서에 대해, 규정된 명세 양식에 잘못이 있는지를 판단하고, 상기 판단 결과, 잘못이 없다면, 상기 마이크로서비스 명세서를 입력받고, 잘못이 있다면, 상기 마이크로서비스 명세서의 재작성을 상기 클라이언트에게 알릴 수 있다.
예컨대, 처리를 원하는 마이크로서비스와 관련하여, 필요 CPU, Memory, Storage 각각의 리소스가 기재되어 있지 않아, 1차 적합성이 불가능한 경우, 마이크로서비스 배치 중계자 시스템(100)는 해당 마이크로서비스 명세서를 입력 받지 않고, 클라이언트에게 리턴시켜, 필요 CPU, Memory, Storage 각각의 리소스를 포함하는 마이크로서비스 명세서의 재작성을 요청할 수 있다.
이를 통해, 마이크로서비스 배치 중계자 시스템(100)은, 클라이언트에 의해 작성되는 마이크로서비스 명세서가, 올바른 명세 약식으로 작성되도록 상기 클라이언트를 유도할 수 있다.
본 발명의 일실시예에 따르면, 컨테이너 기반 마이크로서비스의 특성을 고려하여 컨테이너의 배치를 중계하는, 컨테이너 기반 마이크로서비스 배치 중계자 시스템 및 방법을 제공 할 수 있다.
또한, 본 발명의 일실시예에 따르면, 마이크로서비스의 배치에 초점을 두어 명세를 위한 템플릿을 제시하고, 운영 시 수집된 데이터를 활용한 마이크로서비스 간의 적합도에 기반하여, 마이크로서비스가 가장 효율적으로 동작하는 동작지점을 인프라에 제공하여, 명세 템플릿을 생성 및 컨테이너 배치 관리를 실시 할 수 있다.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.
이상과 같이 실시예들이 비록 한정된 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기를 기초로 다양한 기술적 수정 및 변형을 적용할 수 있다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.
그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 청구범위의 범위에 속한다.
100 : 컨테이너 기반 마이크로서비스 배치 중계자 시스템
110 : 1차 분류기 120 : 2차 분류기
130 : 템플릿 생성기

Claims (11)

  1. 클라이언트로부터 입력되는 마이크로서비스 명세서에서 모니터링 데이터를 확인하여, 하드웨어 사용량 별 적합성에 관한 1차 적합성 판별을 수행하는 단계;
    상기 1차 적합성 판별의 수행 결과에 근거하여, 마이크로서비스 특성 별 적합성으로서의, 유사성(Similarity), 인프라 환경(Infrastructure environment), 연결성(Connectivity), 성능(Performance)의 저 지연성(Law Latency), 및 성능의 고 가용성(High Availability) 중 적어도 하나를 포함하는 테이블 명세 항목을 기반으로 한 특성 기반 배치를 고려하여, 2차 적합성 판별을 수행하는 단계; 및
    상기 2차 적합성 판별의 수행 결과에 근거하여, 컨테이너의 최종 배치 위치를 결정하는 단계
    를 포함하고,
    제1 디바이스와 관련한 컨테이너가, 컨테이너 오케스트레이션 네트워크 내 노드(kube)에 배치된 이후, 제2 디바이스와 관련한 컨테이너를, 상기 컨테이너 오케스트레이션 네트워크에 추가로 배치하는 데에 있어, 상기 2차 적합성 판별의 수행 결과에 따른 상기 테이블 명세 항목 별 점수가 동률로 기록되는 경우,
    상기 컨테이너의 최종 배치 위치를 결정하는 단계는,
    상기 2차 적합성 판별의 수행 결과 대신에, 상기 1차 적합성 판별의 수행 결과에 근거하여, 상기 컨테이너의 최종 배치 위치를 결정하는 단계
    를 포함하는 컨테이너 기반 마이크로서비스 배치 중계자 방법.
  2. 제1항에 있어서,
    상기 컨테이너 기반 마이크로서비스 배치 중계자 방법은,
    상기 결정된 최종 배치 위치에 따른 배치 템플릿을 작성하여, 컨테이너 오케스트레이션 프레임워크로 전달하는 단계
    를 더 포함하는 컨테이너 기반 마이크로서비스 배치 중계자 방법.
  3. 제1항에 있어서,
    상기 컨테이너 기반 마이크로서비스 배치 중계자 방법은,
    상기 클라이언트에 의해 작성된 마이크로서비스 명세서에 대해, 규정된 명세 양식에 잘못이 있는지를 판단하는 단계; 및
    상기 판단 결과, 잘못이 없다면, 상기 마이크로서비스 명세서를 입력받고, 잘못이 있다면, 상기 마이크로서비스 명세서의 재작성을 상기 클라이언트에게 알리는 단계
    를 더 포함하는 컨테이너 기반 마이크로서비스 배치 중계자 방법.
  4. 제1항에 있어서,
    상기 1차 적합성 판별을 수행하는 단계는,
    [수식 4]를 만족하여, 상기 1차 적합성을 수치화하여 판별하는 단계
    를 포함하고,
    상기 [수식 4]는,

    -CPU minimum request는 하나의 컨테이너에 할당 가능한 최소 수치의 CPU이고, Memory minimum request는 각 배치 지점에서 하나의 컨테이너에 할당 가능한 최소 수치의 Memory이며, Storage minimum request는 각 배치 지점에서 하나의 컨테이너에 할당 가능한 최소 수치의 Storage이고, available CPU, available Memory, available Storage 각각은 각 컨테이너 노드의 여유 리소스임-
    컨테이너 기반 마이크로서비스 배치 중계자 방법.
  5. 삭제
  6. 클라이언트로부터 입력되는 마이크로서비스 명세서에서 모니터링 데이터를 확인하여, 하드웨어 사용량 별 적합성에 관한 1차 적합성 판별을 수행하는 1차 분류기; 및
    상기 1차 적합성 판별의 수행 결과에 근거하여, 마이크로서비스 특성 별 적합성으로서의, 유사성(Similarity), 인프라 환경(Infrastructure environment), 연결성(Connectivity), 성능(Performance)의 저 지연성(Law Latency), 및 성능의 고 가용성(High Availability) 중 적어도 하나를 포함하는 테이블 명세 항목을 기반으로 한 특성 기반 배치를 고려하여, 2차 적합성 판별을 수행하고, 상기 2차 적합성 판별의 수행 결과에 근거하여, 컨테이너의 최종 배치 위치를 결정하는 2차 분류기
    를 포함하고,
    제1 디바이스와 관련한 컨테이너가, 컨테이너 오케스트레이션 네트워크 내 노드(kube)에 배치된 이후, 제2 디바이스와 관련한 컨테이너를, 상기 컨테이너 오케스트레이션 네트워크에 추가로 배치하는 데에 있어, 상기 2차 적합성 판별의 수행 결과에 따른 상기 테이블 명세 항목 별 점수가 동률로 기록되는 경우,
    상기 2차 분류기는,
    상기 2차 적합성 판별의 수행 결과 대신에, 상기 1차 적합성 판별의 수행 결과에 근거하여, 상기 컨테이너의 최종 배치 위치를 결정하는
    컨테이너 기반 마이크로서비스 배치 중계자 시스템.
  7. 제6항에 있어서,
    상기 컨테이너 기반 마이크로서비스 배치 중계자 시스템은,
    상기 결정된 최종 배치 위치에 따른 배치 템플릿을 작성하여, 컨테이너 오케스트레이션 프레임워크로 전달하는 템플릿 생성기
    를 더 포함하는 컨테이너 기반 마이크로서비스 배치 중계자 시스템.
  8. 제6항에 있어서,
    상기 1차 분류기는,
    상기 클라이언트에 의해 작성된 마이크로서비스 명세서에 대해, 규정된 명세 양식에 잘못이 있는지를 판단하고,
    상기 판단 결과, 잘못이 없다면, 상기 마이크로서비스 명세서를 입력받고, 잘못이 있다면, 상기 마이크로서비스 명세서의 재작성을 상기 클라이언트에게 알리는
    컨테이너 기반 마이크로서비스 배치 중계자 시스템.
  9. 제6항에 있어서,
    상기 1차 분류기는,
    [수식 4]를 만족하여, 상기 1차 적합성을 수치화하여 판별하고,
    상기 [수식 4]는,

    -CPU minimum request는 하나의 컨테이너에 할당 가능한 최소 수치의 CPU이고, Memory minimum request는 각 배치 지점에서 하나의 컨테이너에 할당 가능한 최소 수치의 Memory이며, Storage minimum request는 각 배치 지점에서 하나의 컨테이너에 할당 가능한 최소 수치의 Storage이고, available CPU, available Memory, available Storage 각각은 각 컨테이너 노드의 여유 리소스임-
    컨테이너 기반 마이크로서비스 배치 중계자 시스템.
  10. 삭제
  11. 제1항 내지 제4항 중 어느 한 항의 방법을 실행시키기 위한 프로그램을 기록한 컴퓨터 판독 가능한 기록매체.
KR1020210114022A 2021-08-27 2021-08-27 컨테이너 기반 마이크로서비스 배치 중계자 시스템 및 방법 KR102621324B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020210114022A KR102621324B1 (ko) 2021-08-27 2021-08-27 컨테이너 기반 마이크로서비스 배치 중계자 시스템 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210114022A KR102621324B1 (ko) 2021-08-27 2021-08-27 컨테이너 기반 마이크로서비스 배치 중계자 시스템 및 방법

Publications (2)

Publication Number Publication Date
KR20230031598A KR20230031598A (ko) 2023-03-07
KR102621324B1 true KR102621324B1 (ko) 2024-01-05

Family

ID=85513383

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210114022A KR102621324B1 (ko) 2021-08-27 2021-08-27 컨테이너 기반 마이크로서비스 배치 중계자 시스템 및 방법

Country Status (1)

Country Link
KR (1) KR102621324B1 (ko)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101807806B1 (ko) * 2017-05-02 2017-12-11 나무기술 주식회사 클라우드 플랫폼에서 어플리케이션을 컨테이너화하는 방법
KR101985635B1 (ko) * 2018-12-14 2019-06-03 부산대학교 산학협력단 컨테이너 오케스트레이터 기반의 템플릿 스크립트 생성 방법 및 템플릿 스크립트 생성 장치
KR102154446B1 (ko) * 2019-11-14 2020-09-09 한국전자기술연구원 분산·협업형 컨테이너 플랫폼 환경에서의 자원 균등 배분을 위한 고속 스케줄링 방법

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102370568B1 (ko) * 2017-04-28 2022-03-03 엘제트랩스 게엠베하 모놀리식 레거시 애플리케이션들에 기초한 마이크로서비스들의 컨테이너화된 전개

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101807806B1 (ko) * 2017-05-02 2017-12-11 나무기술 주식회사 클라우드 플랫폼에서 어플리케이션을 컨테이너화하는 방법
KR101985635B1 (ko) * 2018-12-14 2019-06-03 부산대학교 산학협력단 컨테이너 오케스트레이터 기반의 템플릿 스크립트 생성 방법 및 템플릿 스크립트 생성 장치
KR102154446B1 (ko) * 2019-11-14 2020-09-09 한국전자기술연구원 분산·협업형 컨테이너 플랫폼 환경에서의 자원 균등 배분을 위한 고속 스케줄링 방법

Also Published As

Publication number Publication date
KR20230031598A (ko) 2023-03-07

Similar Documents

Publication Publication Date Title
US11630646B2 (en) Software defined network controller
CN107113232B (zh) Nfv管理编排的方法和装置
US7478361B2 (en) Method and system for managing application deployment
CN111600930A (zh) 微服务请求的流量管理方法、装置、服务器及存储介质
US20050198248A1 (en) System layout design program, system layout design apparatus, and system layout design method for automatically configuring systems
US20060235664A1 (en) Model-based capacity planning
CN110121180A (zh) 一种数据分析装置、系统及方法
CN104811331A (zh) 一种可视化网络运维方法和装置
KR20170117169A (ko) 알람 정보 처리 방법, 관련 디바이스 및 시스템
US20210342178A1 (en) Method and device for instantiating virtualized network function
CN112241350B (zh) 微服务评估方法、装置、计算设备及微服务检测系统
US20060212568A1 (en) System and method for managing a computer network
CN109858257A (zh) 访问控制方法及装置
CN103677983A (zh) 应用的调度方法及装置
CN113747150B (zh) 一种基于容器云实现的视频服务系统的测试方法和系统
US7661034B2 (en) Multilayered architecture for storage protocol conformance testing of storage devices
KR101985635B1 (ko) 컨테이너 오케스트레이터 기반의 템플릿 스크립트 생성 방법 및 템플릿 스크립트 생성 장치
KR102621324B1 (ko) 컨테이너 기반 마이크로서비스 배치 중계자 시스템 및 방법
EP4152715A1 (en) Method and apparatus for determining resource configuration of cloud service system
CN113259145B (zh) 网络切片的端到端组网方法、组网装置及网络切片设备
RU2532714C2 (ru) Способ получения данных при оценке ресурсов сети и устройство для осуществления способа
CN102546652B (zh) 一种服务器负载平衡系统及方法
CN114268535B (zh) 一种5g切片产品开通方法及装置
JP5809743B2 (ja) 分散システムにおける異種システムデータ提供方法
CN110971478A (zh) 云平台服务性能的压测方法、装置及计算设备

Legal Events

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