KR20240081370A - 컨테이너 기반 머신 러닝 오퍼레이션 장치 및 방법 - Google Patents

컨테이너 기반 머신 러닝 오퍼레이션 장치 및 방법 Download PDF

Info

Publication number
KR20240081370A
KR20240081370A KR1020230164506A KR20230164506A KR20240081370A KR 20240081370 A KR20240081370 A KR 20240081370A KR 1020230164506 A KR1020230164506 A KR 1020230164506A KR 20230164506 A KR20230164506 A KR 20230164506A KR 20240081370 A KR20240081370 A KR 20240081370A
Authority
KR
South Korea
Prior art keywords
container
machine learning
learning operation
based machine
analysis model
Prior art date
Application number
KR1020230164506A
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 주식회사 씨에스리
Publication of KR20240081370A publication Critical patent/KR20240081370A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3684Test management for test design, e.g. generating new test cases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3664Environments for testing or debugging software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3692Test management for test results analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • 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/45558Hypervisor-specific management and integration aspects
    • G06F2009/45562Creating, deleting, cloning 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/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/45591Monitoring or debugging support

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

본 발명은 컴퓨팅 자원의 가상화 기술에 관한 것으로, 더욱 상세하게는 데이터 유형에 따른 적합한 빅 데이터 분석 모델을 생성할 때 컨테이너 가상화를 효과적으로 수행하고, 모니터링하여 성능을 재조정하는 컨테이너 기반 머신 러닝 오퍼레이션 장치 및 방법에 대한 것이다. 본 발명의 일 실시 예에 따르면, 데이터의 유형에 따라 사용자에 의해 생성된 분석 모델을 이용한 빅 데이터 분석 플랫폼 소프트웨어를 제공할 수 있다.

Description

컨테이너 기반 머신 러닝 오퍼레이션 장치 및 방법{DEVICE FOR CONTAINER-BASED MACHINE LEARNING OPERATION AND METHOD THEREOF}
본 발명은 컴퓨팅 자원의 가상화 기술에 관한 것으로, 더욱 상세하게는 데이터 유형에 따른 적합한 빅 데이터 분석 모델을 생성할 때 컨테이너 가상화를 효과적으로 수행하고, 모니터링하여 성능을 재조정하는 컨테이너 기반 머신 러닝 오퍼레이션 장치 및 방법에 대한 것이다.
빅 데이터는 디지털 환경에서 생성되는 데이터로 그 규모가 방대하고 수치 데이터 뿐 아니라 문자와 영상 데이터를 같이 정형화된 데이터 뿐 아니라 비정형화된 데이터도 포함하는 대규모 데이터를 말한다. 정보 통신 기술의 발전으로 인해 클라우드 서비스가 상용화되면서, 대용량의 빅 데이터를 효율적으로 처리하는 기술에 대한 관심이 증대되고 있다. 특히, 사물인터넷의 부흥에 힘입어 상상할 수 없을 정도로 방대한 양과 다양한 종류의 데이터가 시시각각 생성되고 있다.
이러한 빅 데이터는 종래의 데이터 처리 방식과는 다른 새로운 알고리즘이나. 패러다임을 통해 처리될 필요가 있으며, 수용자의 요구에 맞는 처리 및 분석 과정을 통해서 빅 데이터를 통한 다양한 가치 창출이 가능하게 된다. 최근 PC 이외의 태블릿(Tablet), 스마트폰(Smart Phone) 과 같은 고성능의 휴대용 기기들이 등장하면서, 데스크탑 PC를 통한 인터넷 접속 뿐만 아니라 모바일 접속을 통해 모바일 쇼핑, 검색. 메일 확인 등을 즐기는 인구가 크게 증가하고 있다. 이러한 휴대용 기기의 보급화 및 모바일 인터넷 기술의 발달로, 인터넷 상에 존재하는 많은 데이터들이 웹로봇, 웹크롤러, 스파이더 등을 통해 수집되고 있으며, 수집된 빅 데이터를 원하는 목적에 따라 분석하여 이용하고 있다.
특정 데이터 파일과 관련하여 자신이 제어 또는 수정하고자 데이터 분석 플로우를 쉽게 작성하도록 도와주는 데이터 분석 기술이 요구된다.
컨테이너 기반 애플리케이션을 쉽게 배포 및 관리하기 위한 컨테이너 오케스트레이션 소프트웨어 플랫폼들이 등장하였으며, 클라우드 환경에 적용되어 다양한 환경에서 광범위하게 사용되고 있다.
대표적인 컨테이너 오케스트레이션 소프트웨어 플랫폼에는 쿠버네티스(Kubernetes)와 도커 스웜(Docker Swarm), 아파치 메소스(Apache Mesos) 등이 있다. 이러한 컨테이너 기반 시스템에서는 컨테이너 성능을 제어하는 기술이 필요하다.
1. 한국 공개특허공보 제10-2014-0099497호 “지리적 위치 기반 로드 밸런싱”(공개일자: 2014년 08월 12일)
본 발명은 데이터 유형에 적합한 분석 모델을 생성하고 배포하기 위한 머신 러닝 오퍼레이션을 수행하면서 효과적인 컨테이너 가상화를 실행하고, 모니터링하여 성능을 재조정하는 컨테이너 기반 머신 러닝 오퍼레이션 장치 및 방법을 제공한다.
본 발명이 이루고자 하는 기술적 과제는 이상에서 언급한 기술적 과제로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들은 아래의 기재로부터 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
본 발명의 일 측면에 따르면, 컨테이너 기반 머신 러닝 오퍼레이션 장치를 제공한다.
본 발명의 일 실시 예에 따른 컨테이너 기반 머신 러닝 오퍼레이션 장치는 분석 모델을 생성하는 분석모델 설계부, 분석 모델 및 설정 정보를 데이터베이스에 저장하는 분석 모델 배포부 및 분석 모델에 따른 워크플로우에 포함된 각 블록에 대한 세부 옵션의 설정을 사용자 입력에 따라 수정하고, 워크플로우에 따른 플랫폼 소프트웨어가 정상 동작하는지 확인하는 스케줄링 구성부를 포함하되, 스케줄링 구성부는 플랫폼 소프트웨어가 정상인 경우, 플랫폼 소프트웨어를 제공할 수 있다.
본 발명의 다른 일 측면에 따르면, 컨테이너 기반 머신 러닝 오퍼레이션 방법 및 이를 실행하는 컴퓨터 프로그램을 제공한다.
본 발명의 일 실시 예에 따른 컨테이너 기반 머신 러닝 오퍼레이션 방법 및 이를 실행하는 컴퓨터 프로그램은 분석 모델을 생성하는 단계, 분석 모델 및 설정 정보를 데이터베이스에 저장하는 단계, 분석 모델의 워크플로우에 따른 플랫폼 소프트웨어가 정상 동작하는지 확인하는 단계 및 워크플로우에 따른 플랫폼 소프트웨어가 정상인 경우, 플랫폼 소프트웨어를 배포하는 단계를 포함할 수 있다.
본 발명의 일 실시 예에 따르면, 데이터의 유형에 따라 사용자에 의해 생성된 분석 모델을 이용한 빅 데이터 분석 플랫폼 소프트웨어를 제공할 수 있다.
본 발명의 일 실시 예에 따르면, 빅데이터 분석 플랫폼 소프트웨어에 사용되는 컨테이너의 효과적인 오케스트레이션을 수행할 수 있다.
또한 본 발명의 일 실시 예에 따르면, 컨테이너에 대한 모니터링 및 성능을 제어할 수 있다.
또한 본 발명의 일 실시 예에 따르면, 컨테이너 기반 애플리케이션의 수행 중 발생하는 컨테이너의 과부하를 성능 재조정을 통해 해소할 수 있다.
본 발명의 효과는 상기한 효과로 한정되는 것은 아니며, 본 발명의 설명 또는 청구범위에 기재된 발명의 구성으로부터 추론 가능한 모든 효과를 포함하는 것으로 이해되어야 한다.
도 1은 본 발명의 일 실시예에 따른 컨테이너 기반 머신 러닝 오퍼레이션 장치를 간략히 예시한 블록도.
도 2는 본 발명의 일 실시예에 따른 컨테이너 기반 머신 러닝 오퍼레이션 장치가 컨테이너 오케스트레이션을 수행하는 방법을 예시한 순서도.
도 3은 본 발명의 일 실시예에 따른 컨테이너 기반 머신 러닝 오퍼레이션 장치가 사용하는 분석 모델에 따른 워크플로우와 머신 러닝 오퍼레이션(MLOps)의 워크플로우 매칭 예시 도면.
도 4은 본 발명의 일 실시예에 따른 컨테이너 기반 머신 러닝 오퍼레이션 장치가 분석 모델의 세부 옵션을 설정하기 위해 사용자에게 제공하는 유저 인터페이스 예시 도면.
도 5는 본 발명의 일 실시예에 따른 컨테이너 기반 머신 러닝 오퍼레이션 장치가 컨테이너 오케스트레이션을 수행하는 방법을 예시한 순서도.
도6 내지 도 10은 본 발명의 일 실시 예에 따른 컨테이너 기반 머신 러닝 오퍼레이션 장치의 구성을 예시한 도면들.
도 11은 본 발명의 일 실시 예에 따른 컨테이너 기반 머신 러닝 오퍼레이션 장치가 컨테이너의 성능 모니터링 방법을 개념적으로 예시한 도면.
도 12는 본 발명의 일 실시 예에 따른 컨테이너 기반 머신 러닝 오퍼레이션 장치가 컨테이너의 성능 모니터링 방법을 예시한 도면.
도 13은 본 발명의 일 실시 예에 따른 컨테이너 기반 머신 러닝 오퍼레이션 장치가 컨테이너의 성능을 재조정하는 방법을 예시한 도면.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시 예를 가질 수 있는 바, 특정 실시 예들을 도면에 예시하고 이를 상세한 설명을 통해 상세히 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 본 발명을 설명함에 있어서, 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다. 또한, 본 명세서 및 청구항에서 사용되는 단수 표현은, 달리 언급하지 않는 한 일반적으로 "하나 이상"을 의미하는 것으로 해석되어야 한다.
이하, 본 발명의 바람직한 실시 예를 첨부도면을 참조하여 상세히 설명하기로 하며, 첨부 도면을 참조하여 설명함에 있어, 동일하거나 대응하는 구성 요소는 동일한 도면번호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다.
도 1은 본 발명의 일 실시 예에 따른 컨테이너 기반 머신 러닝 오퍼레이션 장치를 예시한 도면이다.
도 1을 참조하면, 본 발명의 일 실시 예에 따른 컨테이너 기반 머신 러닝 오퍼레이션 장치(10)는 분석 모델 설계부(110), 분석모델 배포부(120), 스케줄링 구성부(130), 오케스트레이션 제어부(134), 표준 템플릿 저장부(138) 및 모니터링부(140)를 포함할 수 있다.
분석 모델 설계부(110)는 수집한 데이터의 형식에 맞춰 GUI 기반으로 기능 블록을 조합하여 다양한 데이터 형식에 따른 분석 모델을 생성할 수 있다.
분석 모델 설계부(110)는 다양한 포맷의 데이터를 별다른 변경 과정 없이 마우스로 드래그 앤 드롭하여 손쉽게 이용할 수 있다. 예를 들면, 분석 모델 설계부(110)는 CVS 파일 형식, RDS 파일 형식, TXT 파일 형식 및 데이터베이스도 드래그 앤 드롭으로 연결하여 분석하기를 원하는 데이터를 수집할 수 있다.
분석 모델 설계부(110)는 수집한 다양한 형식의 데이터 전처리를 수행할 수 있다. 분석 모델 설계부(110)는 수집된 데이터의 유형에 따라 분석 모델을 설계하고, 해당 분석 모델에 적합한 필요 데이터 형식으로 다양한 데이터 전처리를 수행할 수 있다. 예를 들면 분석 모델 설계부(100)는 컬럼 이름 변경, 타입 설정, 데이터셋 병합, 샘플링, 연산 그룹(Group By 연산) 등 빅 데이터 분석 업무의 70%를 차지하는 전처리 과정을 마우스 클릭으로 쉽게 처리하고 CSV 파일 형식으로 저장할 수 있다.
분석 모델 설계부(110)는 필요한 기능을 블록으로 매칭하여 워크플로우를 생성할 수 있다. 컨테이너 기반 머신 러닝 오퍼레이션 장치(10)는 원하는 기능 블록들을 GUI기반 클릭 또는 드래그 앤 드롭 방식으로 추가 또는 연결하고, 워크플로우를 생성하여 분석 모델을 생성할 수 있다.
분석 모델 설계부(110)는 기능 블록을 드래그 앤 드롭 하여 데이터 수집, 전처리, 분석 및 시각화 과정을 연결할 수 있어 GUI 기반으로 손쉽게 분석 모델을 생성할 수 있다. 분석 모델 설계부(110)는 생성된 분석 모델에 따른 머신 러닝 오퍼레이션(MLOps, Machine Learning Operations)의 배포를 실행하고, 분석 모델의 워크플로우(Workflow)를 저장할 수 있다.
분석 모델 설계부(110)는 데이터 형식에 따른 분석 모델들을 생성하거나 사용자가 설정한 분석 모델들 생성하여 표준 템플릿으로 관리할 수 있다.
분석 모델 배포부(120)는 분석 모델 설계부(110)에서 생성한 분석 모델을 분석 모델 관리 DB(124)에 저장하고, 사용된 기능 블록의 옵션 설정에 관한 정보를 분석 블록 옵션 설정 DB(128)에 저장할 수 있다.
스케줄링 구성부(130)는 사용자에 의해 선택된 각 기능 블록의 조정된 옵션에 기반하여 분석 모델 관리 DB(124)에서 분석 모델을 선택할 수 있다. 또한 스케줄링 구성부(130)는 분석 블록 옵션 설정 DB(128)에서 선택된 각 블록에 대한 세부 옵션 정보를 불러온다. 스케줄링 구성부(130)는 사용자의 수정 입력에 따라 각 기능 블록에 대한 세부 옵션을 수정하여 스케줄링 정보를 생성할 수 있다.
스케줄링 구성부(130)는 머신 러닝 오퍼레이션(MLOps) 워크플로우(workflow) 시뮬레이션(Simulation)을 실행하여 정상 동작 유무를 체크한다. 스케줄링 구성부(130)는 시뮬레이션 결과 이상이 발생하는 경우, 이상이 발생한 블록에 대한 알림을 사용자에게 제공하여 분석 모델의 세부 옵션에 대한 설정을 수정하도록 유도할 수 있다. 스케줄링 구성부(130)는 시뮬레이션 결과 이상이 발생하지 않는 경우, 스케줄링 정보를 오케스트레이션 제어부(134), 모니터링부(140)로 전송하여 컨테이너 오케스트레이션을 수행하고, 컨테이너 기반 머신 러닝 오퍼레이션을 생성할 수 있다. 생성된 컨테이너 기반 머신 러닝 오퍼레이션은 시스템 상에서 지정된 분석 모델에 따른 작업을 수행할 수 있다.
오케스트레이션 제어부(134)는 신규 컨테이너와 동일한 컨테이너 이미지 유형에 대한 사용량을 컨테이너 성능 통계에서 확인하여 신규 컨테이너 사용량을 예측할 수 있다.
오케스트레이션 제어부(134)는 스케줄링 정보에 따라 모니터링부(140)에서 수집한 모니터링 정보를 확인할 수 있다. 오케스트레이션 제어부(134)는 스케줄링 정보에 따라 사용될 신규 컨테이너의 성능 사용량을 예측하고, 예측 결과에 따라 기존 노드 내 컨테이너를 생성하거나 새로운 노드를 추가할 수 있다. 예들 들어, 오케스트레이션 제어부(134)는 과거 동일 컨테이너의 성능 사용 로그를 분석하여 신규 컨테이너의 성능 필요 값을 예측할 수 있다. 오케스트레이션 제어부(134)는 예측한 Max 값, Median 값, Min값 등을 고려하여 배치가 가능한 노드에 신규 컨테이너를 배치할 수 있다.
모니터링부(140)는 분석 모델의 데이터 량 및 컨테이너의 성능에 대한 통계를 생성할 수 있다. 모니터링부(140)는 컨테이너의 자원 사용량이 지정된 수치 이상인 경우, 컨테이너 성능 모니터링 알람을 발생시킬 수 있다.
오케스트레이션 제어부(134)는 분석 모델에 따른 플랫폼 소프트웨어의 사용 중 컨테이너 성능 모니터링 알람이 발생하는 경우, 컨테이너의 성능을 제어하여 메모리 간섭을 제어할 수 있다.
도 2는 본 발명의 일 실시 예에 따른 컨테이너 기반 머신 러닝 오퍼레이션 장치가 플랫폼 소프트웨어를 제공하는 과정을 예시한 순서도이다. 이하 설명하는 각 과정은 본 발명의 각 구성부에 의해 수행되는 과정이나 발명의 간결하고 명확한 설명을 위하 각 단계의 주체를 컨테이너 기반 머신 러닝 오퍼레이션 장치로 통칭하도록 한다.
도 2를 참조하면, 단계 205에서 컨테이너 기반 머신 러닝 오퍼레이션 장치(10)는 분석 모델 설계부(110)로부터 분석 모델을 입력받는다.
단계 210에서 컨테이너 기반 머신 러닝 오퍼레이션 장치(10)는 분석 모델에 따른 머신 러닝 오퍼레이션(MLOps )을 이용한 배포를 실행할 수 있다.
단계 215에서 컨테이너 기반 머신 러닝 오퍼레이션 장치(10)는 분석 모델을 분석 모델 관리 DB에 저장할 수 있다.
단계 220에서 컨테이너 기반 머신 러닝 오퍼레이션 장치(10)는 저장된 분석 모델을 분석 모델 관리 DB(124)로부터 조회하고, 사용자의 입력에 따라 설정하고자 하는 분석 모델을 불러온다. 이때 컨테이너 기반 머신 러닝 오퍼레이션 장치(10)는 분석 모델의 블록과 머신 러닝 오퍼레이션(MLOps) 블록의 매핑 테이블로부터 변환된 머신 러닝 오퍼레이션(MLOps) 블록으로 대체되어 제시할 수 있다(도 3참조).
단계 225에서 컨테이너 기반 머신 러닝 오퍼레이션 장치(10)는 불러온 분석 모델에 따른 워크플로우를 구성할 수 있다. 예를 들면, 컨테이너 기반 머신 러닝 오퍼레이션 장치(10)는 머신 러닝 오퍼레이션(MLOps) 워크플로우 화면에서 데이터 수집/처리/분석 워크플로우 각 단계의 블록 별 옵션 설정을 구성할 수 있다.
단계 230에서 컨테이너 기반 머신 러닝 오퍼레이션 장치(10)는 워크플로우를 구성하는 블록의 설정을 분석 블록 옵션 설정DB(128)로부터 불러온다.
단계 240에서 컨테이너 기반 머신 러닝 오퍼레이션 장치(10)는 사용자의 입력에 따라 각 블록에 대한 세부 옵션의 설정을 수정할 수 있다.
단계 245에서 컨테이너 기반 머신 러닝 오퍼레이션 장치(10)는 머신 러닝 오퍼레이션(MLOps) 워크플로우 시뮬레이션(Simulation)을 실행하여 워크플로우에 따른 플랫폼 소프트웨어의 정상 동작 유무를 체크할 수 있다.
단계 245에서 머신 러닝 오퍼레이션이 정상인 경우, 단계 255에서 컨테이너 기반 머신 러닝 오퍼레이션 장치(100)는 워크플로우에 따른 플랫폼 소프트웨어를 배포할 수 있다.
단계 245에서 컨테이너 기반 머신 러닝 오퍼레이션 장치(10)가 비정상인 경우, 컨테이너 기반 머신 러닝 오퍼레이션 장치(10)는 단계 240부터의 과정을 반복 수행할 수 있다.
도 3은 본 발명의 일 실시 예에 따른 컨테이너 기반 머신 러닝 오퍼레이션 장치가 사용하는 분석 모델에 따른 워크플로우와 머신 러닝 오퍼레이션(MLOps)의 워크플로우를 매칭하는 도2의 단계 222 예시 도면이고, 도 4는 본 발명의 일 실시 예에 따른 컨테이너 모니터링 장치가 분석 모델의 세부 옵션을 설정 받기 위해 사용자에게 제공하는 유저 인터페이스를 예시한 도면이다.
도 3과 같이 컨테이너 기반 머신 러닝 오퍼레이션 장치(10)는 분석 모델에 따른 워크플로우를 머신 러닝 오퍼레이션(MLOps) 상에서 구현하여 빅 데이터 플랫폼 소프트웨어를 제공할 수 있다.
또한, 컨테이너 기반 머신 러닝 오퍼레이션 장치(10)는 도 4와 같이 분석 모델의 세부 옵션을 사용자가 설정하도록 유저 인터페이스를 제공할 수 있다.
도5는 본 발명의 일 실시 예에 따른 컨테이너 기반 머신 러닝 오퍼레이션 장치가 컨테이너 오케스트레이션을 수행하는 방법을 예시한 순서도이다. 이하 설명하는 각 과정은 컨테이너 기반 머신 러닝 오퍼레이션 장치의 각 구성부에 의해 수행되는 과정이나 발명의 간결하고 명확한 설명을 위해 각 단계의 주체를 컨테이너 기반 머신 러닝 오퍼레이션 장치로 통칭하도록 한다.
도 5를 참조하면, 단계 510에서 컨테이너 기반 머신 러닝 오퍼레이션 장치(10)는 머신 러닝 오퍼레이션(MLOps) 워크플로우의 배포를 요청받는다. 예를 들어, 오케스트레이션 제어부(134)는 스케줄링 구성부(130)로부터 스케줄링 정보를 포함하는 워크플로우 배포 요청을 받을 수 있다.
단계 520에서 컨테이너 기반 머신 러닝 오퍼레이션 장치(10)는 표준 템플릿 저장부(138)로부터 표준 템플릿 구성셋을 호출할 수 있다. 표준 템플릿 구성셋은 컨테이너 이미지와 각 컨테이너 이미지를 통한 표준 설정 정보를 포함할 수 있다. 표준 템플릿 저장부(138)은 표준 템플릿 구성셋을 저장할 수 있다. 컨테이너 기반 머신 러닝 오퍼레이션 장치(10)는 표준 템플릿 구성셋을 조회하여 컨테이너 이미지 종류와 개수, 가상 머신 별 배포 수량을 결정할 수 있다.
단계 530에서 컨테이너 기반 머신 러닝 오퍼레이션 장치(10)는 가상 머신 별 총 필요 자원을 산정한다.
단계 540에서 컨테이너 기반 머신 러닝 오퍼레이션 장치(10)는 현재 가상 머신 별 현 자원사용현황을 확인하고, 현재 가동 중인 컨테이너 예상 종료시간을 예측하여 지정된 시간 후 총 자원 사용량을 산정한다. 예를 들어, 컨테이너 기반 머신 러닝 오퍼레이션 장치(10)는 컨테이너의 예상 종료시간 이후의 버퍼 시간(예; 5분) 후 총 자원 사용량을 산정할 수 있다. 이때 이너 기반 머신 러닝 오퍼레이션 장치(10)는 관리자가 버퍼 시간을 설정할 수 있도록 한다.
단계 550에서 컨테이너 기반 머신 러닝 오퍼레이션 장치(10)는 지정된 시간 후의 컨테이너의 총 자원 사용량을 산정하여 컨테이너 구성이 가능한 양인지를 판단할 수 있다.
단계 550에서 컨테이너 기반 머신 러닝 오퍼레이션 장치(10)는 지정된 시간 후의 총 자원 사용량이 컨테이너 구성이 가능한 양이 아닌 경우, 단계 560에서 컨테이너 기반 머신 러닝 오퍼레이션 장치(10)는 신규 가상 머신을 생성한 후 단계 570을 수행할 수 있다.
단계 550에서 컨테이너 기반 머신 러닝 오퍼레이션 장치(10)는 지정된 시간 후의 총 자원 사용량이 컨테이너 구성이 가능한 경우, 단계 570에서 컨테이너 기반 머신 러닝 오퍼레이션 장치(10)는 컨테이너 이미지를 배포할 수 있다.
단계 580에서 컨테이너 기반 머신 러닝 오퍼레이션 장치(10)는 컨테이너 이미지별 표준 설정 정보를 참조하여 컨테이너 내 설정 파일을 수정하여 컨테이너에 상응하는 자원 할당을 설정할 수 있다.
도 6 내지 도 10은 본 발명의 일 실시 예에 따른 컨테이너 기반 머신 러닝 오퍼레이션 장치의 구성 예시 도면들이다.
도 6 및 도 7은 쿠버네티스를 이용한 컨테이너 기반 머신 러닝 오퍼레이션 장치(10)의 구성 예시들이다. 자세히 설명하면, 도 6의 예시는 컨테이너 기반 머신 러닝 오퍼레이션 장치(10)가 이용하는 쿠버네티스 클러스터 구성을 예시한 도면이고, 도 7은 컨테이너 기반 머신 러닝 오퍼레이션 장치(10)가 이용하는 쿠버네티스 워커 노드 구성을 예시한 도면이다.
도 8은 컨테이너 기반 머신 러닝 오퍼레이션 장치(10)의 플랫폼 소프트웨어의 구성 예시이다.
도 9는 컨테이너 기반 머신 러닝 오퍼레이션 장치(10)가 구성하는 빅 데이터 플랫폼 kafka를 활용한 분산 배치된 구성을 상세하게 예시한 도면이다. 도 9와 같이 컨테이너 기반 머신 러닝 오퍼레이션 장치(10)는 kafka를 활용하여 데이터 수집을 수행하는 구성을 설정할 수 있다.
도 10a 내지 도 10d는 컨테이너 기반 머신 러닝 오퍼레이션 장치(10)가 데이터 수집/처리/저장/분석을 위한 빅 데이터 플랫폼의 표준 소프트웨어 아키텍처를 예시한 도면이다. 도 10a 내지 도 10d와 같은 표준 소프트웨어 아키텍처에 따른 빅데이터 플랫폼 소프트웨어를 설정할 수 있다.
컨테이너 기반 머신 러닝 오퍼레이션 장치(10)는 표준 소프트웨어 아키텍처에 따른 레이어 별 소프트웨어를 정의하고 컨테이너 이미지를 생성하여 데이터베이스에 저장한다.
컨테이너 기반 머신 러닝 오퍼레이션 장치(10)는 각 파이프라인에서 필요한 소프트웨어 호출 시 자동으로 미리 정의된 아키텍처대로 컨테이너 구성을 진행할 수 있다.
도 11 내지 도 13은 본 발명의 일 실시 예에 따른 컨테이너 기반 머신 러닝 오퍼레이션 방법을 설명한 예시 도면들이다.
도 11은 컨테이너 기반 머신 러닝 오퍼레이션 장치(10)가 성능 모니터링을 수행하는 것을 개념적으로 예시한 도면이, 도 12는 성능 모니터링을 수행하는 과정을 예시한 순서도이며, 도 13은 성능을 재조정하는 방법을 예시한 순서도이다. 이하 설명하는 각 과정은 컨테이너 기반 머신 러닝 오퍼레이션 장치의 각 구성부에 의해 수행되는 과정이나 발명의 간결하고 명확한 설명을 위해 각 단계의 주체를 컨테이너 기반 머신 러닝 오퍼레이션 장치로 통칭하도록 한다.
도 11을 참조하면, 모니터링부(140)는 OS 모니터링 Agent, 컨테이너 모니터링 Agent를 통해 컨테이너의 성능을 모니터링할 수 있다. OS, GuestOS에 설치된 OS 모니터링 Agent는 OS Appliance 장비 전체 및 각 VM의 CPU, Memory 등의 성능자원을 수집하여 모니터링부(140)로 전송할 수 있다. 컨테이너 모니터링 Agent는 컨테이너 엔진에 설치되며, 컨테이너 엔진에서 각 컨테이너의 CPU, memory 등의 성능자원의 데이터를 수집하여 모니터링부(140)로 전송할 수 있다.
오케스트레이션 제어부(134)는 각 게스트 OS에 설치된 자원제어기를 통해 각 컨테이너에 할당되는 자원을 제어할 수 있다.
도 12를 참조하면, 단계 1210에서 모니터링부(140)는 성능 모니터링을 통해 컨테이너 별 성능 데이터, 잡(job) 정보를 포함하는 성능 이력 데이터를 저장한다.
단계 1220에서 모니터링부(140)는 컨테이너 이미지 유형별 성능을 분석할 수 있다. 예를 들어, 모니터링부(140)는 성능 이력 데이터를 기반으로 각 컨테이너 이미지 유형 및 잡 별 사용량을 포함하는 컨테이너 성능 통계를 생성할 수 있다.
단계 1230에서 오케스트레이션 제어부(134)는 분석 모델에 따른 신규 컨테이너 생성 요청을 수신하는 경우, 신규 컨테이너 사용량을 예측할 수 있다. 예를 들어, 오케스트레이션 제어부(134)는 신규 컨테이너와 동일한 컨테이너 이미지 유형에 대한 사용량을 컨테이너 성능 통계에서 확인하여 신규 컨테이너 사용량을 예측할 수 있다.
단계 1240에서 오케스트레이션 제어부(134)는 신규 컨테이너를 생성할 노드의 자원 사용량 및 타 컨테이너 성능 상황을 확인할 수 있다.
단계 1250에서 오케스트레이션 제어부(134)는 노드가 사용할 수 있는 자원의 용량이 충분한지 판단할 수 있다.
단계 1250에서 노드가 사용할 수 있는 자원의 용량이 충분한 경우, 단계 1260에서 오케스트레이션 제어부(134)는 노드 내 신규 컨테이너를 생성할 수 있다.
단계 1250에서 노드가 사용할 수 있는 자원의 용량이 부족한 경우, 단계 1270에서 오케스트레이션 제어부(134)는 신규 노드를 추가할 수 있다.
단계 1280에서 오케스트레이션 제어부(134)는 신규 노드 내 신규 컨테이너를 생성할 수 있다.
도 13을 참조하면, 단계 1310에서 컨테이너 기반 머신 러닝 오퍼레이션 장치(10)는 성능 모니터링 알람을 확인할 수 있다. 예를 들어, 모니터링부(140)는 자원 사용량이 각 컨테이너에 설정된 임계치 이상(예를 들어, 40% 이상)일 경우, 성능 모니터링 알람을 오케스트레이션 제어부(134)로 전송할 수 있다.
단계 1320에서 컨테이너 기반 머신 러닝 오퍼레이션 장치(10)는 성능 모니터링 알람에 대응하는 노드의 자원 사용량 및 타 컨테이너 성능 상황(자원 사용량)을 확인할 수 있다.
단계 1330에서 컨테이너 기반 머신 러닝 오퍼레이션 장치(10)는 노드 자원 사용량이 해당 노드 용량의 50% 이하인지 판단할 수 있다.
단계 1330에서 노드 자원 사용량이 해당 노드 용량의 50% 이하인 경우, 단계 1340에서 컨테이너 기반 머신 러닝 오퍼레이션 장치(10)는 성능 모니터링 알람에 대응하는 컨테이너의 용량을 미리 지정된 수치만큼 증가시킬 수 있다.
단계 1330에서 노드 자원 사용량이 해당 노드 용량의 50% 초과인 경우, 단계 1350에서 컨테이너 기반 머신 러닝 오퍼레이션 장치(10)는 노드 자원 사용량이 해당 노드 용량이 70% 이하인지 판단할 수 있다.
단계 1350에서 노드 자원 사용량이 해당 노드 용량의 70% 이하인 경우, 단계 1360에서 컨데이너 기반 머신 러닝 오퍼레이션 장치(10)는 컨테이너 재분산을 수행할 수 있다.
단계 1350에서 노드 자원 사용량이 해당 노드 용량의 70% 초과인 경우, 단계 1370에서 컨테이너 기반 머신 러닝 오퍼레이션 장치(10)는 신규 노드를 추가하고 단계1360을 수행한다.
단계 1380에서 컨테이너 기반 머신 러닝 오퍼레이션 장치(10)는 성능 모니터링 알람에 대응하는 컨테이너에 대한 재조정이 필요한지 실시간 모니터링을 통해 판단할 수 있다.
단계 1380에서 재조정이 필요한 경우, 단계 1320부터의 과정을 반복 수행할 수다.
단계 1380에서 재조정이 필요하지 않은 경우, 성능 재조정 과정을 종료할 수 있다.
상술한 컨테이너 기반 머신 러닝 오퍼레이션 방법은 컴퓨터가 읽을 수 있는 매체 상에 컴퓨터가 읽을 수 있는 코드로 구현될 수 있다. 상기 컴퓨터로 읽을 수 있는 기록 매체는, 예를 들어 이동형 기록 매체(CD, DVD, 블루레이 디스크, USB 저장 장치, 이동식 하드 디스크)이거나, 고정식 기록 매체(ROM, RAM, 컴퓨터 구비형 하드 디스크)일 수 있다. 상기 컴퓨터로 읽을 수 있는 기록 매체에 기록된 상기 컴퓨터 프로그램은 인터넷 등의 네트워크를 통하여 다른 컴퓨팅 장치에 전송되어 상기 다른 컴퓨팅 장치에 설치될 수 있고, 이로써 상기 다른 컴퓨팅 장치에서 사용될 수 있다.
이상에서, 본 발명의 실시 예를 구성하는 모든 구성 요소들이 하나로 결합되거나 결합되어 동작하는 것으로 설명되었다고 해서, 본 발명이 반드시 이러한 실시 예에 한정되는 것은 아니다. 즉, 본 발명의 목적 범위안에서라면, 그 모든 구성요소들이 하나 이상으로 선택적으로 결합하여 동작할 수도 있다.
도면에서 동작들이 특정한 순서로 도시되어 있지만, 반드시 동작들이 도시된 특정한 순서로 또는 순차적 순서로 실행되어야만 하거나 또는 모든 도시 된 동작들이 실행되어야만 원하는 결과를 얻을 수 있는 것으로 이해되어서는 안 된다. 특정 상황에서는, 멀티태스킹 및 병렬 처리가 유리할 수도 있다. 더욱이, 위에 설명한 실시 예 들에서 다양한 구성들의 분리는 그러한 분리가 반드시 필요한 것으로 이해되어서는 안 되고, 설명된 프로그램 컴포넌트들 및 시스템들은 일반적으로 단일 소프트웨어 제품으로 함께 통합되거나 다수의 소프트웨어 제품으로 패키지 될 수 있음을 이해하여야 한다.
이제까지 본 발명에 대하여 그 실시 예들을 중심으로 살펴보았다. 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시 예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.
100: 컨테이너 기반 머신 러닝 오퍼레이션 장치
110: 분석모델 설계부
120: 분석모델 배포부
130: 스케줄링 구성부
134: 오케스트레이션 제어부
138: 표준 템플릿 저장부
140: 모니터링부

Claims (9)

  1. 분석 모델을 생성하는 분석모델 설계부;
    상기 분석 모델 및 설정 정보를 데이터베이스에 저장하는 분석 모델 배포부; 및
    상기 분석 모델에 따른 워크플로우에 포함된 각 블록에 대한 세부 옵션의 설정을 사용자 입력에 따라 수정하고, 상기 워크플로우에 따른 플랫폼 소프트웨어가 정상 동작하는지 확인하는 스케줄링 구성부를 포함하되,
    상기 스케줄링 구성부는
    상기 플랫폼 소프트웨어가 정상인 경우, 플랫폼 소프트웨어를 제공하는 컨테이너 기반 머신 러닝 오퍼레이션 장치.
  2. 제1항에 있어서,
    컨테이너 이미지와 각 컨테이너 이미지에 대한 표준 설정 정보를 포함하는 표준 템플릿 구성셋을 저장하는 표준 템플릿 저장부; 및
    워크플로우의 배포를 요청에 따라 상기 표준 템플릿을 조회하고, 상기 표준 템플릿에 따라 가상 머신 별 총 필요 자원을 산정하는 오케스트레이션 제어부를 더 포함하는 컨테이너 기반 머신 러닝 오퍼레이션 장치.
  3. 제1 항에 있어서,
    성능 모니터링을 통해 컨테이너 별 성능 데이터, 잡 정보를 포함하는 성능 이력 데이터를 생성하고, 상기 성능 이력 데이터를 기반으로 각 컨테이너 이미지 유형 및 잡 별 사용량을 포함하는 컨테이너 성능 통계를 생성하는 모니터링부; 및
    분석 모델에 따른 신규 컨테이너 생성 요청을 수신하는 경우, 신규 컨테이너 사용량을 예측하는 오케스트레이션 제어부를 더 포함하는 컨테이너 기반 머신 러닝 오퍼레이션 장치.
  4. 제1항에 있어서,
    성능 모니터링 알람을 전송하는 모니터링부; 및
    상기 성능 모니터링 알람에 대응하는 노드의 자원 사용량과 상기 노드의 용량의 비율이 지정된 제1 수치 이하인 경우, 성능 모니터링 알람에 대응하는 컨테이너의 용량을 미리 지정된 수치만큼 증가시키는 오케스트레이션 제어부를 더 포함하는 컨테이너 기반 머신 러닝 오퍼레이션 장치.
  5. 컨테이너 기반 머신 러닝 오퍼레이션 장치가 수행하는 컨테이너 기반 머신 러닝 오퍼레이션 방법에 있어서,
    분석 모델을 생성하는 단계;
    상기 분석 모델 및 설정 정보를 데이터베이스에 저장하는 단계;
    상기 분석 모델의 워크플로우에 따른 플랫폼 소프트웨어가 정상 동작하는지 확인하는 단계; 및
    상기 워크플로우에 따른 플랫폼 소프트웨어가 정상인 경우, 플랫폼 소프트웨어를 배포하는 단계를 포함하는 컨테이너 기반 머신 러닝 오퍼레이션 방법.
  6. 제5항에 있어서,
    상기 워크플로우에 따른 플랫폼 소프트웨어가 정상인 경우, 플랫폼 소프트웨어를 배포하는 단계는
    컨테이너 오케스트레이션을 수행하는 컨테이너 기반 머신 러닝 오퍼레이션 방법.
  7. 제5항에 있어서,
    컨테이너를 모니터링하는 단계를 더 포함하는 컨테이너 기반 머신 러닝 오퍼레이션 방법.
  8. 제5항에 있어서,
    컨테이너의 성능을 조정하는 단계를 더 포함하는 컨테이너 기반 머신 러닝 오퍼레이션 방법.
  9. 제5항의 컨테이너 기반 머신 러닝 오퍼레이션 방법을 실행하는 컴퓨터가 판독 가능한 기록매체에 기록된 컴퓨터 프로그램.
KR1020230164506A 2022-11-30 2023-11-23 컨테이너 기반 머신 러닝 오퍼레이션 장치 및 방법 KR20240081370A (ko)

Applications Claiming Priority (8)

Application Number Priority Date Filing Date Title
KR1020220164557 2022-11-30
KR1020220164555 2022-11-30
KR20220164555 2022-11-30
KR20220164554 2022-11-30
KR1020220164554 2022-11-30
KR20220164556 2022-11-30
KR1020220164556 2022-11-30
KR20220164557 2022-11-30

Publications (1)

Publication Number Publication Date
KR20240081370A true KR20240081370A (ko) 2024-06-07

Family

ID=91480456

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020230164506A KR20240081370A (ko) 2022-11-30 2023-11-23 컨테이너 기반 머신 러닝 오퍼레이션 장치 및 방법

Country Status (1)

Country Link
KR (1) KR20240081370A (ko)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20140099497A (ko) 2012-02-24 2014-08-12 엠파이어 테크놀로지 디벨롭먼트 엘엘씨 지리적 위치 기반 로드 밸런싱

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20140099497A (ko) 2012-02-24 2014-08-12 엠파이어 테크놀로지 디벨롭먼트 엘엘씨 지리적 위치 기반 로드 밸런싱

Similar Documents

Publication Publication Date Title
US10635664B2 (en) Map-reduce job virtualization
US11722376B2 (en) Execution of a topology
Coutinho et al. Elasticity in cloud computing: a survey
US20190173752A1 (en) Automated Adjustment of Subscriber Policies
US9705970B2 (en) System of geographic migration of workloads between private and public clouds
EP2898638B1 (en) High performance data streaming
US8909769B2 (en) Determining optimal component location in a networked computing environment
US9348709B2 (en) Managing nodes in a distributed computing environment
US9781020B2 (en) Deploying applications in a networked computing environment
US11231967B2 (en) Dynamically allocating and managing cloud workers
TW201820165A (zh) 用於雲端巨量資料運算架構之伺服器及其雲端運算資源最佳化方法
JP2014532247A (ja) 容易にクラウド化可能なアプリケーションの発見型の識別および移行
US20170123777A1 (en) Deploying applications on application platforms
US20190317821A1 (en) Demand-based utilization of cloud computing resources
CN113297031A (zh) 容器集群中的容器组防护方法及装置
KR20210041295A (ko) 클라우드 컴퓨팅 환경에서 가상화 자원 분배 시스템
Shakya et al. Using light weight container a mesh based dynamic allocation task scheduling algorithm for cloud with IoT network
JP7405955B2 (ja) 複数の管理領域のための通信方法及び装置
CN103973465A (zh) 分布式跨平台虚拟化能力管理方法和系统
Lebesbye et al. Boreas–a service scheduler for optimal kubernetes deployment
US20180136922A1 (en) Locale Object Management
KR20240081370A (ko) 컨테이너 기반 머신 러닝 오퍼레이션 장치 및 방법
US11340952B2 (en) Function performance trigger
JP5500301B2 (ja) 監視制御システム、監視制御方法、監視制御サーバ及び監視制御プログラム
EP3330854A1 (en) Automatic selection of infrastructure on a hybrid cloud environment