KR20230037661A - 컨테이너화된 애플리케이션의 배치를 최적화하기 위한 시스템, 방법 및 서버 - Google Patents

컨테이너화된 애플리케이션의 배치를 최적화하기 위한 시스템, 방법 및 서버 Download PDF

Info

Publication number
KR20230037661A
KR20230037661A KR1020237005545A KR20237005545A KR20230037661A KR 20230037661 A KR20230037661 A KR 20230037661A KR 1020237005545 A KR1020237005545 A KR 1020237005545A KR 20237005545 A KR20237005545 A KR 20237005545A KR 20230037661 A KR20230037661 A KR 20230037661A
Authority
KR
South Korea
Prior art keywords
value
influencing
subsequent
optimization model
metrics
Prior art date
Application number
KR1020237005545A
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 KR20230037661A publication Critical patent/KR20230037661A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • 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
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3065Monitoring arrangements determined by the means or processing involved in reporting the monitored data
    • G06F11/3068Monitoring arrangements determined by the means or processing involved in reporting the monitored data where the reporting involves data format conversion
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3604Software analysis for verifying properties of programs
    • G06F11/3608Software analysis for verifying properties of programs using formal methods, e.g. model checking, abstract interpretation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • 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/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

Abstract

컨테이너화된 애플리케이션의 배치를 최적화하기 위한 시스템, 방법 및 서버가 개시된다. 시스템은 컨테이너화된 애플리케이션과 관련된 최적화 기준을 수신하도록 구성된 머신 및 서버를 포함하며, 최적화 기준은 영향을 미치는 파라미터, 영향을 받는 메트릭 및 정지 기준을 포함한다. 서버는 영향을 미치는 파라미터의 적어도 하나의 값을 머신에 전송하고, 전송된 적어도 하나의 값에 따라 머신에 의해 수행되는 컨테이너화된 애플리케이션의 시도의 결과를 수신하고- 시도의 결과는 영향을 받는 메트릭의 경험적 값을 포함함 -, 시도 결과에 기초하여 최적화 모델을 업데이트하고, 시도의 결과 및 업데이트된 최적화 모델을 하나 이상의 정지 기준에 비교하고, 영향을 미치는 파라미터의 적어도 하나의 값 중 최적화된 하나를 컨테이너화된 애플리케이션 배치를 위해 머신에 전송하도록 더 구성된다.

Description

컨테이너화된 애플리케이션의 배치를 최적화하기 위한 시스템, 방법 및 서버
본 개시는 컨테이너화된 애플리케이션의 오케스트레이션에 관한 것이다.
컨테이너는 애플리케이션이 실제로 실행되는 환경으로부터 추상화될 수 있는 논리적 패키징 메커니즘을 제공한다. 이를 통해, 대상 환경이 사설 데이터 센터인지, 공공 클라우드운지 또는 개발자의 개인 노트북인지 여부에 관계없이 컨테이너 기반 또는 컨테이너화된 애플리케이션을 일관되게 전개할 수 있다. 기본 하드웨어에 대한 가상화된 액세스를 가지면서 호스트 OS의 상단에서 실행되는 게스트 운영 체제(OS)를 제공하는 가상 머신과 마찬가지로, 컨테이너를 사용하면 애플리케이션을 라이브러리 및 기타 종속성과 함께 패키징할 수 있으므로, 소프트웨어 서비스를 실행하기 위한 격리된 환경을 제공할 수 있다. 그렇더라도, 컨테이너는 개발자와 정보 기술 운영 팀이 함께 작업할 수 있는 훨씬 더 가벼운 유닛을 제공하여, 무수한 이점을 제공한다. 예를 들어, 하드웨어 스택을 가상화하는 대신, 컨테이너는 OS 수준에서 가상화되며, 여러 컨테이너가 OS 커널에서 직접 실행된다. OS 커널을 공유함으로써, 컨테이너화된 애플리케이션은 훨씬 빠르게 시작할 수 있고 전체 OS를 부팅하는 데 소비되는 메모리의 일부를 사용할 수 있다. 또한, 컨테이너를 통해, 개발자는 애플리케이션을, 버전을 제어할 수 있는 간결한 단일 매니페스트에 그들의 종속성과 패키징할 수 있으며, 또한 컨테이너를 통해, 주어진 팀의 개발자들에 걸쳐 그리고 한 클러스터의 머신들에 걸쳐 애플리케이션을 쉽게 복제할 수 있다.
이러한 이유로, 컨테이너화된 애플리케이션, 및 쿠버네티스(Kubernetes), 도커스웜(Docker Swarm) 및 아파치메소스(Apache Mesos)와 같은 컨테이너 오케스트레이터가 유비쿼터스로 배포된다. 예를 들어, 컨테이너화된 애플리케이션 및 관련 오케스트레이터는 금융, 통신 및 전자 상거래에서 찾을 수 있다.
물론, 더 많은 회사가 컨테이너화된 애플리케이션을 채택하고 배치함에 따라, 컨테이너화된 워크로드(containerized workloads)를 구현하는 것과 관련된 다양한 범위의 문제가 대두되었다. 예를 들어, 애플리케이션 '튜닝'이라고도 알려진 바와 같이 최소한의 리소스 활용으로 최적의 성능을 달성하려 내부 애플리케이션 파라미터에 올바른 값을 효율적으로 할당하는 것을 할 수 없다는 점은 많은 컨테이너 채택자를 괴롭히고 있다. 이러한 회사의 경우, 애플리케이션 '튜닝'은 종종 시행착오 방식으로 수동으로 수행되는 고된 작업으로 남아 있으며, 이는 차선의 구성을 제공하면서 엔지니어링 리소스를 비효율적으로 적용하는 시간 소모적인 프로세스이다. 그 결과, 클라우드 인스턴스의 일부만이 각각의 워크로드에 맞게 크기가 조정되어 커다란 리소스 낭비가 발생한다.
현재 솔루션은 애플리케이션 성능 및 리소스를 모니터링하고 애플리케이션이 충돌하기 전에 리소스를 재할당하거나 문제를 수정함으로써 애플리케이션이 배치된 후에 발생하는 문제에 대응하는 데 중점을 둔다. 내부 프로세스 또는 사용자 대면 프로세스를 중단하지 않고 애플리케이션을 조정해야 한다는 점을 고려할 때, 이것은 비용이 관리할 수 없는 수준으로 증가하거나 고객이 서비스 중단을 경험한 후에야 문제가 표면화될 수 있는 위험하고 시간 소모적인 프로세스일 수 있다.
따라서, 본 개시는 컨테이너화된 애플리케이션의 배치를 최적화하기 위한 자동화된 프로세스를 설명한다.
전술한 "배경" 설명은 본 개시의 문맥을 전반적으로 제시하기 위한 것이다. 본 배경기술 섹션에 기술된 발명자의 저작물, 및 출원 당시 선행 기술로 인정되지 않을 수 있는 설명의 측면은 본 개시에 대한 선행 기술로 명시적으로나 묵시적으로 인정되지 않는다.
본 개시는 컨테이너화된 애플리케이션의 배치를 최적화하기 위한 시스템, 방법 및 서버에 관한 것이다.
실시예에 따르면, 본 개시는 또한 컨테이너화된 애플리케이션의 배치를 최적화하기 위한 시스템에 관한 것으로, 이 시스템은 머신, 및 처리 회로를 구비한 서버를 포함하되, 이 처리 회로는 머신으로부터 컨테이너화된 애플리케이션에 관련된 최적화 기준을 수신하고- 최적화 기준은 하나 이상의 영향을 미치는 파라미터(one or more affecting parameters), 하나 이상의 영향을 받는 메트릭, 및 하나 이상의 정지 기준을 포함함 -, 수신된 최적화 기준에 기초하여 하나 이상의 영향을 미치는 파라미터 중 적어도 하나의 값을 머신으로 전송하고, 하나 이상의 영향을 미치는 파라미터의 적어도 하나의 값에 따라 머신에 의해 수행되는 컨테이너화된 애플리케이션의 시도의 결과- 시도의 결과는 하나 이상의 영향을 받는 메트릭의 경험적 값을 포함함 -를 수신하며, 하나 이상의 영향을 미치는 파라미터의 적어도 하나의 값 및 하나 이상의 영향을 받는 메트릭의 경험적 값에 기초하여 최적화 모델을 업데이트하고, 시도의 결과 및 업데이트된 최적화 모델을 하나 이상의 정지 기준에 비교하고, 비교가 하나 이상의 정지 기준이 만족됨을 나타내면 하나 이상의 영향을 미치는 파라미터의 적어도 하나의 값 중 최적화된 값을 선택하며, 하나 이상의 영향을 미치는 파라미터의 적어도 하나의 값 중 최적화된 값을 컨테이너화된 애플리케이션의 배치를 위해 머신으로 전송하도록 구성되고, 서버의 처리 회로는 더 나아가, 하나 이상의 정지 기준에 대한 시도의 결과 및 업데이트된 최적화 모델의 비교가 하나 이상의 정지 기준이 만족되지 않음을 나타낼 때, 업데이트된 최적화 모델에 기초하여 하나 이상의 영향을 미치는 파라미터의 후속하는 적어도 하나의 값을 계산하고, 하나 이상의 영향을 미치는 파라미터의 후속하는 적어도 하나의 값을 머신으로 전송하고, 하나 이상의 영향을 미치는 파라미터의 후속하는 적어도 하나의 값에 따라 머신에 의해 수행되는 컨테이너화된 애플리케이션의 후속 시도를 기반으로, 하나 이상의 영향을 받는 메트릭의 후속하는 경험적 값을 포함하는 후속 시도의 결과를 수신하고, 하나 이상의 영향을 미치는 파라미터의 후속하는 적어도 하나의 값 및 하나 이상의 영향을 받는 메트릭의 후속하는 경험적 값에 기초하여, 업데이트된 최적화 모델을 반복적으로 업데이트하고, 후속 시도의 결과 및 반복적으로 업데이트된 최적화 모델을 하나 이상의 정지 기준에 비교하고, 비교가 하나 이상의 정지 기준이 충족됨을 나타내는 경우, 하나 이상의 영향을 미치는 파라미터의 적어도 하나의 값 중 최적화된 값을 선택하며, 하나 이상의 영향을 미치는 파라미터의 적어도 하나의 값 중 최적화된 값을 컨테이너화된 애플리케이션의 배치를 위해 머신에 전송하도록 구성된다.
실시예에 따르면, 본 개시는 또한 컨테이너화된 애플리케이션의 배치를 최적화하기 위한 방법에 관한 것으로, 이 방법은 서버에 의해, 컨테이너화된 애플리케이션에 관련된 최적화 기준을 수신하는 단계- 최적화 기준은 하나 이상의 영향을 미치는 파라미터, 하나 이상의 영향을 받는 메트릭, 및 하나 이상의 영향을 받는 메트릭에 기초한 하나 이상의 정지 기준을 포함함 -와, 서버에 의해 그리고 하나 이상의 영향을 미치는 파라미터의 적어도 하나의 값에 따른 컨테이너화된 애플리케이션의 시도에 기초하여, 하나 이상의 영향을 받는 메트릭의 경험적 값을 포함하는 시도의 결과를 수신하는 단계와, 서버에 의해, 하나 이상의 영향을 미치는 파라미터의 적어도 하나의 값 및 하나 이상의 영향을 받는 메트릭의 경험적 값에 기초하여 최적화 모델을 업데이트하는 단계와, 서버에 의해, 시도의 결과 및 업데이트된 최적화 모델을 하나 이상의 정지 기준에 비교하는 단계와, 서버에 의해 그리고 비교가 하나 이상의 정지 기준이 만족됨을 나타내는 경우, 하나 이상의 영향을 미치는 파라미터의 적어도 하나의 값 중 최적화된 값을 선택하는 단계와, 하나 이상의 영향을 미치는 파라미터의 적어도 하나의 값 중 최적화된 값을, 컨테이너화된 애플리케이션의 배치를 위해 머신에 전송하는 단계를 포함하고, 상기 방법은 서버에 의해, 그리고 업데이트된 최적화 모델에 기초하여 하나 이상의 영향을 미치는 파라미터의 후속하는 적어도 하나의 값을 계산하는 단계와, 서버에 의해 그리고 하나 이상의 영향을 미치는 파라미터의 후속하는 적어도 하나의 값에 따른 컨테이너화된 애플리케이션의 후속 시도를 기반으로, 하나 이상의 영향을 받는 메트릭의 후속하는 경험적 값을 포함하는 후속 시도의 결과를 수신하는 단계와, 서버에 의해, 하나 이상의 영향을 미치는 파라미터의 후속하는 적어도 하나의 값 및 하나 이상의 영향을 받는 메트릭의 후속하는 경험적 값에 기초하여, 업데이트된 최적화 모델을 반복적으로 업데이트하는 단계와, 서버에 의해, 후속 시도의 결과 및 반복적으로 업데이트된 최적화 모델을 하나 이상의 정지 기준에 비교하는 단계와, 서버에 의해 그리고 비교가 하나 이상의 정지 기준이 충족됨을 나타내는 경우, 하나 이상의 영향을 미치는 파라미터의 적어도 하나의 값 중 최적화된 값을 선택하는 단계와, 서버에 의해, 하나 이상의 영향을 미치는 파라미터의 적어도 하나의 값 중 최적화된 값을 컨테이너화된 애플리케이션의 배치를 위해 머신에 전송하는 단계를 더 포함한다.
전술한 단락은 일반적인 서론으로 제공되었으며 후속 청구항의 범위를 제한하려는 의도는 없다. 설명된 실시예는 추가적인 이점과 함께 첨부된 도면과 함께 다음의 상세한 설명을 참조함으로써 가장 잘 이해될 것이다.
본 개시의 더 완전한 이해 및 그에 수반되는 많은 이점은 첨부된 도면과 함께 다음의 상세한 설명을 참조하면 더 잘 이해되므로 쉽게 얻어질 것이다.
도 1은 본 개시의 예시적인 실시예에 따라 컨테이너화된 애플리케이션의 배치를 최적화하기 위한 방법의 흐름도이다.
도 2는 본 개시의 예시적인 실시예에 따른 원격 처리 회로와 로컬 처리 회로 사이의 네트워크 통신의 개략도이다.
도 3a는 본 개시의 예시적인 실시예에 따른 컨테이너화된 애플리케이션의 배치를 최적화하기 위한 방법의 단계의 구성요소의 개략도이다.
도 3b는 본 개시의 예시적인 실시예에 따라 컨테이너화된 애플리케이션의 배치를 최적화하기 위한 방법의 단계의 구성요소의 개략도이다.
도 3c는 본 개시의 예시적인 실시예에 따른 컨테이너화된 애플리케이션의 배치를 최적화하기 위한 방법의 단계의 구성요소의 개략도이다.
도 4는 본 개시의 예시적인 실시예에 따라 컨테이너화된 애플리케이션의 배치를 최적화하기 위한 방법의 흐름도이다.
도 5는 본 개시의 예시적인 실시예에 따라 컨테이너화된 애플리케이션의 배치를 최적화하기 위한 방법의 흐름도이다.
도 6은 본 개시의 예시적인 실시예에 따른 컨테이너화된 애플리케이션의 배치를 최적화하기 위한 방법의 서브 프로세스의 구성요소의 개략도이다.
도 7은 본 개시의 예시적인 실시예에 따라 컨테이너화된 애플리케이션의 배치를 최적화하기 위한 방법을 수행하기 위한 서버의 하드웨어 구성의 개략도이다.
본원에서 사용되는 단수의 표현은 하나 이상으로 정의된다. 본 명세서에서 사용되는 "복수"의 표현은 2개 이상으로 정의된다. 본 명세서에서 사용되는 용어 "또 다른"은 적어도 제2 또는 그 이상으로 정의된다. 본 명세서에서 사용된 "포함하는" 및/또는 "갖는"이라는 용어는 포함하는(즉, 열린 언어)으로 정의된다. 본 명세서 전체에서, "일 실시예", "특정 실시예", "실시예", "구현예", "예" 또는 유사한 용어에 대한 참조는 실시예와 관련하여 설명된 특정 특징, 구조 또는 특성이 본 개시의 적어도 하나의 실시예에 포함됨을 의미한다. 따라서, 본 명세서 전반에 걸쳐 이러한 문구의 등장 또는 여러 곳에서 등장하는 것이 반드시 모두 동일한 실시예를 언급하는 것은 아니다. 또한, 특정 특징, 구조 또는 특성은 제한 없이 하나 이상의 실시예에서 임의의 적절한 방식으로 조합될 수 있다.
전술한 바와 같이, 애플리케이션 '튜닝'은 터무니없이 힘들지만 필요한 과정이다. 그러나 대부분의 애플리케이션 개발자에게, 애플리케이션 '튜닝'은 엔지니어가 올바른 파라미터 값을 추측하고, 추측된 파라미터 값을 기반으로 애플리케이션을 배치하려고 시도하고, 배치의 결과를 모니터링하고, 작동 가능한 세트를 찾기 위해 추측된 파라미터 값을 수정하는 수동 프로세스이다. 이 반복적이고 시행착오적인 프로세스는 '충분히 좋은' 파라미터 값 세트를 제공하기 보다는, 엔지니어링 팀에게는 시간 소모적인 것이며 진정한 최적화로 이어지지 않는다. 더욱이, 이러한 방식으로, 각각의 '새로운' 파라미터 값 제안 세트는 사전 추측과는 다른 어떤 방식으로도 알려지지 않는다. 애플리케이션 '튜닝'을 효율적으로 수행하려면, 새로운 파라미터 제안을 지능적으로 생성하여 엔지니어가 다른 작업에 집중할 수 있도록 하는 자동화된 접근 방식이 필요하다.
따라서, 실시예에 따르면, 본 개시는 애플리케이션 '튜닝'에 대한 자동화된 접근 방식을 설명한다. 실시예에서, 머신 러닝 기술은 최적화 단계를 수행하기 위해 구현될 수 있으며, 그 결과는 개선된 결과와 함께 더 빠른 최적화이다.
실시예에 따르면, 본 개시는 머신 러닝 기반 프로세스를 사용하여 컨테이너화된 애플리케이션을 최적화하기 위한 자동화된 방법을 설명한다. 자동화된 방법은 머신 러닝 기반 프로세스를, 개발 환경에서 애플리케이션의 실험적 사본을 생성할 수 있는 컨테이너 오케스트레이션(즉, 쿠버네티스(Kubernetes))용 제어기와 결합한다. 개발 환경은 개인용 컴퓨터 등과 같은 머신(들) 상에 존재할 수 있다. 개발 환경과 배치 환경은 동일한 머신(들) 또는 다른 머신(들) 상에서 호스팅될 수 있다. 예를 들어, 일련의 머신을 보유한 개발 팀은 다른 일련의 머신을 보유한 배치 팀과는 별개일 수 있다. 그러나, 아래에 설명된 바와 같이 명확성을 위해 단일 공동 기능 머신만을 참조할 것이다.
일 실시예에서, 머신 러닝 API(Application Program Interface)를 통해 머신 러닝 모듈에 결합된 제어기는 머신 러닝 API를 통해 머신 러닝 모듈로부터 수신된 파라미터 값 제안에 기초하여 개발 환경 내에서 시도를 수행할 수 있다. 파라미터 값 제안은 하나 이상의 파라미터에 대해 행해질 수 있다. 메트릭 값을 포함하는 각 시도의 결과는 머신 러닝 API를 통해 머신 러닝 모듈로 전송될 수 있고, 애플리케이션 배치의 최적화 모델은 시도된 파라미터 값과 결과 메트릭 값에 기초하여 업데이트될 수 있으며, 업데이트된 최적화 모델에 기초한 새로운 파라미터 값 제안은 새로운 시도시 제어기에 의해 평가될 수 있다. 반복적인 시도로 구성된 이 실험 루프는 특정 정지 기준이 달성될 때까지 수행될 수 있다. 한 예에서, 정지 기준은 가장 최근에 평가된 파라미터 값 세트가 최적의 메트릭 값 세트를 생성한다고 사용자가 결정하는 것일 수 있다. 또 다른 예에서, 정지 기준은 다수의 완료된 시도일 수 있고, 최적의 파라미터 값 세트는 메트릭(들)을 최대화하는 파라미터 값들로서 일련의 시도된 파라미터 값에서 선택될 수 있다.
전술한 방법은 실시예에서 클라우드 기반 네트워크를 포함하는 시스템 내에서 구현될 수 있음을 알 수 있다. 이러한 방식으로, 사용자(예컨대, 애플리케이션 개발 팀 구성원)의, 처리 회로를 구비한 머신은 클라우드 기반 네트워크를 통해 원격 처리 회로(예컨대, 원격 서버)에 액세스하고 이와 협력할 수 있다. 예를 들어, 제어기는 사용자의 머신에 기반할 수 있고 머신 러닝 모듈은 원격 처리 회로에 기반하고 머신 러닝 API를 통해 액세스할 수 있다. 또한, 사용자는 각각의 통신 네트워크에 걸쳐 복수의 노드를 실행하는 회사의 개발팀 구성원일 수 있으며, 복수의 노드는 개발팀 구성원과 함께 원격 처리 회로에 의해 결정된 최적의 파라미터 값에 기초하여 배치되는 컨테이너화된 애플리케이션을 실행한다.
이제 도 1을 참조하면, 컨테이너화된 애플리케이션의 배치를 최적화하기 위한 방법의 상위 수준 흐름도가 설명되어 있다. 명료함을 위해, 도 1은 쿠버네티스와 같은 컨테이너 오케스트레이터를 구현하는 사용자 또는 개발자의 관점에서 설명된다.
방법(100)의 단계(105)에서, 사용자는 서버로부터 각각의 머신으로 명령 라인 인터페이스(CLI) 소프트웨어를 다운로드하고 CLI 소프트웨어를 사용하여 제어기를 설치할 수 있다. 제어기는 위에서 소개한 바와 같이 그리고 방법(100)의 서브 프로세스(125)와 관련하여 논의될 바와 같이, 머신 러닝 AIP를 통해 서버의 머신 러닝 모듈에 의해 제안된 파라미터 값 세트의 반복적 시도를 포함하는 실험을 수행하고, 수행된 각 시도의 결과를 머신 러닝 API를 통해 머신 러닝 모듈에 제공하도록 구성될 수 있다.
방법(100)의 단계(115)에서, 제어기에 의해 수행되는 실험의 구성을 정의하는 실험 파일이 생성될 수 있다. 실험 구성은 사용자에 의해 결정될 수 있으며 컨테이너화된 애플리케이션의 부하 테스트 수행을 위한 지침, 관심 파라미터, 관심 메트릭, 허용 가능한 정지 기준 등을 포함할 수 있다. 실험 구성에 대한 구체적인 설명은 도 3a 내지 도 3c를 참조하여 설명되지만, 실험 파일은 알려진 복수의 구성 파일 프레임워크 중 어느 하나의 형태를 취할 수 있음을 알 수 있다. 예를 들어, 실험 파일은 YAML(YAML Aint Markup Language) 기반 파일일 수 있으며, YAML은 파이썬 들여쓰기(Python indentation)를 따르고 JSON 수퍼세트인 인간 친화적인 데이터 직렬화 표준이다.
실시예에서, 실험 파일에 포함된 컨테이너화된 애플리케이션의 부하 테스트를 수행하기 위한 지침은 컨테이너화된 애플리케이션을 요구하고 그 성능을 측정하는 프로세스에 관한 것일 수 있다. 예를 들어, 부하 테스트를 설치/연결/실행하는 방법에 대한 지침을 제공할 때, 이 지침은 컨테이너화된 애플리케이션의 현재 사용자 수를 규정하여, 컨테이너화된 애플리케이션에 대한 예상 부하를 정의할 수 있다.
실시예에서, 실험 파일은 실험이 수행될 컨테이너화된 애플리케이션의 초기 파라미터 및 설정과 같은 구성 파라미터를 저장하는 데 사용될 수 있다. 또한, 실험 파일은 해당 프로세스를 지시하는 머신 러닝 모델에 대한 다른 입력에 더해, 입력 또는 출력 파일 위치, 머신 러닝 모델에 대한 입력 파라미터, 머신 러닝 모델에 대한 출력 메트릭을 포함할 수 있다. 예를 들어, 입력 파라미터는 파라미터 이름, 입력 파라미터의 최소값 또는 최대값이 요구되는지 여부, 및 2개 이상의 입력 파라미터를 설명하는 수치 관계(예컨대, 한 입력 파라미터의 값은 다른 것보다 커야 함)를 포함할 수 있다. 출력 메트릭은 메트릭 이름, 출력 메트릭을 얻는 방법 및 각 출력 메트릭을 최적화 프로세스의 일부로 최소화할지 또는 최대화할지 여부를 포함할 수 있다.
예시적인 실시예에서, 머신 러닝 모델에 대한 입력 파라미터 및 머신 러닝 모델에 대한 출력 메트릭은 사용자에 의해 정의된 최적화 기준의 구성요소로 간주될 수 있다. 전술한 바와 같이, 최적화 기준은 출력 메트릭이 최대화되어야 하는지, 최소화되어야 하는지 등의 표시를 포함할 수 있다. 입력 파라미터 및 출력 메트릭은 최적화가 식별될 수 있는 값 범위에 의해 추가로 정의될 수 있다.
일 실시예에서, 실험 파일은 주어진 입력 파라미터, 입력 파라미터 값 및 출력 메트릭에 기초하여 실험을 수행하기 위한 명령어를 더 포함할 수 있으며, 이 명령어는 실험을 위한 워크플로우 및 반복 시도가 수행되어야 하는 방법을 포함한다. 예를 들어, 실험 파일은 (1) 컨테이너화된 애플리케이션에서 부하 테스트를 수행하기 위한 명령어를 제어기에 전송하는 것과 (2) 수행된 부하 테스트를 기반으로 성능 메트릭 출력을 측정하고 기록하는 것을 포함하도록 각 시도를 정의할 수 있다. 또한, 실험 파일은 각 시도에 대해 컨테이너화된 애플리케이션을 설치 및 구성하기 위한 명령어를 제공할 수 있다. 일 실시예에서, 각각의 반복적인 시도는 부하 테스트 및 출력 메트릭의 측정의 수행 전/후에 머신에서 컨테이너화된 애플리케이션의 설치/제거를 포함할 수 있다. 다른 실시예에서, 컨테이너화된 애플리케이션은 부하 테스트 및 출력 메트릭의 측정을 포함하는 초기 시도 전에 머신에 설치될 수 있으며, 각각의 반복적인 시도는 컨테이너화된 애플리케이션 구성의 원하는 상태를 새로운 입력 파라미터 값 세트로 변경하는 것을 포함할 수 있다.
방법(100)의 단계(120)에서, 제어기는 CLI 소프트웨어를 통해 인증될 수 있고 머신 러닝 API를 통해 서버의 머신 러닝 모듈과의 초기 연결(미도시)을 설정할 수 있다.
제어기가 CLI 소프트웨어를 통해 인증되면, 컨테이너화된 애플리케이션 및 실험 파일이 머신의 개발 환경(170)에 배치될 수 있다. 따라서, 방법(100)의 서브 프로세스(125)에서, 실험 파일에 의해 정의된 실험이 수행될 수 있다.
간단히 설명하면, 이것은 머신 러닝 API(134)를 통해 서버의 머신 러닝 모듈(135)로부터 제어기로 파라미터 값 세트를 전송하는 것, 머신에서 제어기에 의해 파라미터 값 세트를 시도하는 것, 파라미터 값 세트의 시도에 기초하여 출력 메트릭 값을 머신에서 서버로 전송하는 것, 출력 메트릭의 값에 기초하여 머신 러닝 모듈(135)의 모델을 업데이트하는 것, 및 업데이트된 모델에 기초하여 새로운 파라미터 값 세트를 머신에 전송하는 것을 포함한다.
전술한 바와 같이, 방법(100)의 서브 프로세스(125)의 실험 동안 수행되는 시도는 머신 러닝 API(134)를 통한 제어기와 머신 러닝 모듈(135) 사이의 통신에 기초하여 반복적으로 수행될 수 있다. 방법(100)의 서브 프로세스(125)에서의 실험의 수행은 방법(100)의 단계(115)에서 생성된 실험 파일 내에 정의된 정지 기준이 만족될 때까지 계속될 수 있다. 방법(100)의 서브 프로세스(125)는 도 4 내지 도 6을 참조하여 더 상세히 설명될 것이다.
실험을 수행한 후, 방법(100)의 서브 프로세스(125)에서 선택된 최적의 구성이 하나 이상의 노드 내의 컨테이너화된 애플리케이션에 배치될 수 있다.
도 1의 흐름도는 사용자 머신의 제어기, 서버에서의 머신 러닝 모듈, 및 컨테이너화된 애플리케이션을 실행하는 노드 또는 머신 간의 통신을 보여주는 도 2의 네트워크 개략도 내에서 구현될 수 있다.
본 개시의 일 실시예에 따르면, 제어기(206)는 본 명세서에서 로컬 개발 머신(294)이라고 하는 사용자 머신에 상주할 수 있다. 로컬 개발 머신(294)은 클라우드 컴퓨팅 환경(290) 내의 원격 서버(291)와 네트워크 통신(288)할 수 있으며, 원격 서버(291)는 머신 러닝 모듈(235)을 호스팅한다. 전술한 바와 같이, 로컬 개발 머신(294)의 제어기(206)는 원격 네트워크 연결(297)을 이용하여 머신 러닝 API를 통해 클라우드 컴퓨팅 환경(290)의 머신 러닝 모듈(235)과 상호작용할 수 있다.
일 실시예에서, 로컬 개발 머신(294)은 네트워크 연결(288')을 통해 로컬 서버(292)와 네트워크 통신(288')할 수 있고, 로컬 서버(292)는 머신 러닝 모듈(235')을 호스팅한다. 전술한 바와 같이, 로컬 개발 머신(294)의 제어기(206)는 로컬 네트워크 연결(296)을 이용하여 머신 러닝 API를 통해 머신 러닝 모듈(235')과 상호작용할 수 있다.
본 개시의 실시예에 따르면, 머신 러닝 모듈(235, 235')이 원격 서버(291)에 의해 호스팅되던 또는 로컬 서버(292)에 의해 호스팅되던, 실험은 로컬 개발 머신(294)에서 수행될 수 있고 컨테이너화된 애플리케이션을 위한 최적의 파라미터 값은 그로부터 컨테이너화된 애플리케이션을 실행하도록 구성된 하나 이상의 노드(295)로 배치될 수 있다. 이를 위해, 로컬 개발 머신(294)은 로컬 네트워크 연결(296')을 갖거나 또는 하나 이상의 노드(295)를 통한 원격 네트워크 연결(297')을 가질 수 있다.
이제 방법(100)의 단계(115)가 도 3a 내지 도 3c를 참조하여 더 설명될 것이다. 상술한 바와 같이, 실험 파일은 개발 환경에서 제어기에 의해 수행될 실험의 구성을 정의할 수 있다. 이것은 도 3a에서와 같이 최적화 기준(319)을 포함할 수 있다. 최적화 기준(319)은 최적의 파라미터 값 세트를 결정하기 위한 지침을 제공하는 정지 기준(317)뿐만 아니라, 사용자가 관심을 갖는 최적화 파라미터 및 메트릭(316)을 포함할 수 있다. 최적화 파라미터 및 메트릭(316) 또는 튜닝 파라미터 및 메트릭은 도 3b에서와 같이, 프로세서 및 메모리 사용과 같은 파라미터(321) 및 속도 및 비용과 같은 메트릭(322)을 포함할 수 있다. 물론, 도 3b의 파라미터 및 메트릭은 단순히 다수의 애플리케이션 및 머신 관련 파라미터와 메트릭을 대표하기 때문에 비제한적인 것으로 간주되어야 한다. 예를 들어, 입력 파라미터는 데이터 배치(batch) 크기, 배치 지연, 힙 크기, 복제본 수 및 대기 시간이 포함될 수 있으며, 출력 메트릭은 리소스 사용, 레이턴시, 처리량, 완료 시간 및 오류율도 포함할 수 있다.
정지 기준(317)은 도 3c에 도시된 바와 같이, 특히, 수행될 시도의 횟수, 얻어질 메트릭 값의 범위, 또는 얻어질 정확도 임계값을 포함할 수 있다. 본 명세서에 설명된 정지 기준(317)은 도 6을 참조하여 더 상세히 설명될 것이지만, 정지 기준(317)은 최적의 파라미터 값 세트가 선택되는 임의의 기준일 수 있음을 알 수 있다. 개발자는 최적의 파라미터 값 세트를 정의하는 정지 기준을 실험 파일 내에서 정의할 수 있다. 예를 들어, 정지 기준(317)은 출력 메트릭 값의 원하는 범위를 정의할 수 있고 실험 파일은 출력 메트릭 값의 원하는 범위 내에서 출력 메트릭 값을 달성할 때 해당 파라미터 값 세트가 컨테이너화된 애플리케이션의 배치에 사용됨을 규정한다. 게다가, 정지 기준(317)은 하나 이상의 기준일 수 있다. 예를 들어, 정지 기준(317)은 출력 메트릭 값의 원하는 범위에 더하여 수행될 시도의 수를 정의할 수 있고, 대응하는 실험 파일은 시도의 수가 완료되어도 달성되는 원하는 범위의 출력 메트릭 값이 없는 경우, 이미 평가된 파라미터 값 세트가 최적의 파라미터 값 세트로 선택되어야 함을 규정한다.
이제 도 4를 참조하면, 방법(100)의 서브 프로세스(125)의 실험이 설명될 것이다. 명료함을 위해, 방법(100)의 서브 프로세스(125)는 로컬 개발 머신의 제어기와 통신하는 서버의 머신 러닝 모듈의 관점에서 설명될 것이다. 서버는 원격 서버 또는 로컬 서버일 수 있다.
서브 프로세스(125)의 단계(418)에서, 실험 파일에 정의된 최적화 기준은 머신 러닝 API를 통해 제어기로부터 획득될 수 있다. 최적화 기준은 특히 하나 이상의 관심 파라미터 및 하나 이상의 관심 메트릭을 정의할 수 있다.
서브 프로세스(125)의 단계(426)에서, 초기 파라미터 값 세트는 서브 프로세스(125)의 단계(418)의 수신된 최적화 기준에 기초하여 결정될 수 있다. 이 예에서 선험적으로 평가된 무작위로 선택된 일련의 파라미터 값 중 하나 이상일 수 있는 초기 파라미터 값 세트는, 최적화 모델이 추가로 평가되고 알려진 파라미터 값 및 해당 메트릭 값으로 채워질 수 있도록, 최적화 모델의 입력 공간을 초기에 조사하기 위한 것이다. 즉, 이전 파라미터 값과 해당 메트릭 값은 향후 파라미터 값 선택을 알려준다. 물론, 평가된 파라미터 값의 수 및 측정된 메트릭 값의 수는 본 명세서의 설명을 제한하거나 그 설명으로 한정되지 않으며, 각각 개별적으로 또는 함께 1 이상의 임의의 수일 수 있음을 이해할 수 있다.
서브 프로세스(125)의 단계(428)에서, 초기 파라미터 값 세트는 컨테이너화된 애플리케이션의 시도 동안 제어기에 의해 평가될 수 있다. 컨테이너화된 애플리케이션의 시도는 전술한 바와 같이 초기 파라미터 값 세트의 제약 하에서 그리고 하나 이상의 메트릭 값의 관점에서 컨테이너화된 애플리케이션의 성능을 평가하기 위한 부하 테스트를 포함할 수 있다. 서브 프로세스(125)의 단계(428)는 이 단계가 머신 러닝 모듈이 아니라 제어기에 의해 수행됨을 나타내기 위해 점선으로 표시된다.
하나 이상의 메트릭 값을 포함하는 시도 결과는 서브 프로세스(125)의 단계(429)에서 서버의 머신 러닝 모듈에 의해 수신될 수 있다. 따라서, 서브 프로세스(125)의 단계(430)에서, 최적화 모델은 시도 결과에 기초하여 업데이트될 수 있다. 최적화 모델을 업데이트하는 프로세스는 구현된 모델 유형에 따라 다르다. 예를 들어, 최적화 모델은 그리드 서치, 몬테카를로 시뮬레이션, 유전자 알고리즘, 베이지안 최적화, 랜덤 서치를 포함하는 그룹 중 하나일 수 있다. 그러나 일반적으로, 프로세스는 최적화 모델의 데이터 공간, 다수의 데이터 포인트(예컨대, 입력 및 출력)를 포함하는 데이터 공간을 추가 입력 및 출력으로 채우고 이러한 채우기를 기반으로 최적화 모델을 업데이트하는 것을 포함할 수 있다. 이러한 방식으로, 업데이트된 최적화 모델은 입력 파라미터 값 및 해당 출력 메트릭 값을 모델링할 때 점점 더 정확해질 수 있다. 또한, 업데이트된 최적화 모델은 모델의 정확도 측면에서, 제어기에서 평가할 후속 파라미터 값을 지능적으로 결정하기 위한 기반이 될 수 있다.
서브 프로세스(125)의 단계(440)에서, 시도 결과는 최적의 파라미터 값이 결정될 수 있는지를 결정하기 위해 업데이트된 최적화 모델의 관점에서 평가될 수 있다. 도 6을 참조하여 더 자세히 설명하지만, 서브 프로세스(125)의 단계(440)는 실험 파일에 정의된 정지 기준을 고려하여 추가의 시도 반복이 필요한지 여부를 결정하기 위한 결정 포인트 역할을 함을 알 수 있다. 정지 기준이 서브 프로세스(125)의 단계(440)에서 달성된 것으로 결정되면, 최적의 파라미터 값 세트가 선택되고 최적 구성으로서 배치될 수 있다.
그러나, 서브 프로세스(125)의 단계(440)에서 정지 기준이 만족되지 않은 것으로 결정되면, 서브 프로세스(125)는 단계(451)로 진행하여 머신 러닝 모듈의 최적화 모델로부터 새로운 파라미터 값 세트를 얻는다. 새로운 파라미터 값 세트는 예를 들어 최적화 모델의 탐색과 활용 사이의 균형을 고려하여 제어기에 추천될 수 있다. 예를 들어, 최적화 모델의 파라미터 값이 비교적 적다면, 최적화 모델의 정확도를 높이기 위해 최적화 모델의 가능한 파라미터 값의 다양한 표현을 평가하는 것이 유리할 수 있다. 그러나, 다른 예에서 최적화 모델의 신뢰도는 거의 최적의 구성이라고 생각되는 모델의 영역에서 상대적으로 높을 수 있으므로, 파라미터 값의 이 영역에 가까운 최적화 모델의 가능한 파라미터 값을 계속 평가하는 것이 유리할 수 있다. 어쨌든, 서브 프로세스(125)의 단계(451)에서 결정된 새로운 파라미터 값 세트는 업데이트된 최적화 모델에 기초하고 효율적으로 선택된다는 것을 알 수 있다.
서브 프로세스(125)의 단계(451)에서 최적화 모델로부터 조회된 권장 파라미터 값은 서브 프로세스(125)의 단계(452)에서 머신 러닝 모듈에서 제어기로 전송될 수 있다. 따라서, 후속 시도는 서브 프로세스(125)의 단계(428)에서 시작하여 수행될 수 있고 위에서 설명한 작업 흐름을 따른다.
도 5는 도 4의 요약된 설명을 제공하며, 서버의 머신 러닝 모듈과 그에 대해 수행되는 단계에 중점을 둔다. 위와 같이, 서버는 원격 서버 또는 로컬 서버일 수 있다.
서브 프로세스(125)의 단계(518)에서, 실험 파일에 정의된 최적화 기준은 머신 러닝 API를 통해 제어기로부터 수신될 수 있다. 최적화 기준은 특히 하나 이상의 관심 파라미터와 하나 이상의 관심 메트릭을 정의한다.
서브 프로세스(125)의 단계(529)에서, 하나 이상의 파라미터 값 또는 하나 이상의 영향을 미치는 파라미터 값에 기초하여 제어기에 의해 수행된 시도으로부터의 하나 이상의 메트릭 값 또는 영향을 받은 값을 포함하는 시도 결과는 서버에서 머신 러닝 모듈에 의해 수신된다.
따라서, 서브 프로세스(125)의 단계(530)에서, 시도 결과에 기초하여 머신 러닝 모듈에 의해 최적화 모델이 업데이트될 수 있다. 최적화 모델을 업데이트하는 프로세스는 구현된 모델 유형에 따라 다르다. 그러나, 일반적으로 프로세스는 최적화 모델의 데이터 공간- 이 데이터 공간은 다수의 데이터 포인트(예컨대, 영향을 미치는 파라미터 값 및 대응하는 영향을 받는 메트릭 값)를 포함함 -을 추가의 시도 기반 데이터 포인트로 채우고 이러한 채우는 것에 기초하여 최적화 모델을 업데이트하는 것을 포함할 수 있다. 이러한 방식으로, 업데이트된 최적화 모델은 입력의 영향을 미치는 파라미터 값과 대응하는 출력의 영향을 받은 값을 모델링할 때 점점 더 정확해질 수 있다.
서브 프로세스(125)의 단계(541)에서, 시도 결과는 업데이트된 최적화 모델의 관점에서 그리고 최적의 파라미터 값이 선택될 수 있는지를 결정하기 위해 평가될 수 있다. 도 6을 참조하여 더 자세히 설명하지만, 서브 프로세스(125)의 단계(541)는 실험 파일에 정의된 정지 기준을 고려하여 추가의 시도 반복이 필요한지 여부를 결정하기 위한 결정 포인트 역할을 함을 알 수 있다. 정지 기준이 서브 프로세스(125)의 단계(541)에서 달성된 것으로 결정되면, 최적의 파라미터 값 세트가 선택되어 최적 구성으로서 머신 또는 하나 이상의 노드에 배치될 수 있다.
이를 위해 그리고 이제 도 6을 참조하면, 서브 프로세스(125)의 단계(541)가 더 설명될 것이다. 서브 프로세스(125)의 단계(541)에서, 시도 결과는 최적의 파라미터 값이 결정될 수 있는지를 결정하기 위해 업데이트된 최적화 모델의 관점에서 평가될 수 있다. 이것은 정지 기준이 시도 결과 및 업데이트된 최적화 모델에 적용될 때 이 정지 기준의 평가를 포함한다.
실시예에 따르면, 정지 기준은 누적 정지 기준(643) 및 순간 정지 기준(644)을 포함할 수 있다. 누적 정지 기준(643)은 영향을 미치는 파라미터 값의 최적 구성을 선택함에 있어서 시도 결과 전체를 고려하는 경우에 적용될 수 있다. 순간 정지 기준(644)은 마지막으로 시도된 영향을 미치는 파라미터 값이 원하는 영향을 받는 메트릭 값을 초래하도록 결정되는 경우에 적용될 수 있다. 또한, 누적 정지 기준(643) 및 순간 정지 기준(644)은 각각 실험 파일에서 정의될 수 있고 적절하게는 동시에 적용될 수 있다. 예를 들어, 실험 파일은 누적 정지 기준(643)이 만족되는 시점까지는 순간 정지 기준(644)을 따라야 한다고 규정할 수 있다.
일 실시예에서, 누적 정지 기준(643)은 수행된 사전결정된 시도 횟수(645) 및/또는 달성된 정확도의 사전결정된 임계값(646)을 포함할 수 있다. 반복적인 시도는 사전결정된 시도 횟수에 도달할 때까지 진행될 수 있으며, 이 지점에서, 영향을 받는 메트릭 결과의 최대값, 최소값 또는 기타 통계 측정값을 초래하는 영향을 미치는 파라미터 값이 배치를 위한 최적의 구성으로 선택된다. 다른 예에서, 업데이트된 최적화 모델이 충분히 정의되어 모델의 사전결정된 정확도 수준이 달성될 때까지 반복적인 시도가 진행될 수 있다. 정확도는 예상되는 출력 메트릭 값과 시도 중에 측정된 해당 실현 출력 메트릭 값에 따라 정의될 수 있으며, 그 사이의 오류 값은 모델의 정확도 수준을 정의한다. 최대 수준의 정확도를 달성하면, 영향을 받는 메트릭 결과의 최대, 최소 또는 기타 통계적 측정값을 초래하는 영향을 미치는 파라미터 값을 컨테이너화된 애플리케이션 배치를 위한 최적의 구성으로 선택할 수 있다.
실시예에서, 순간 정지 기준(644)은 달성되는 영향을 받는 메트릭 값의 사전결정된 값 범위를 포함할 수 있다. 예를 들어, 영향을 미치는 파라미터 값의 반복적인 시도는 영향을 받는 메트릭 값이 바람직하다고 간주되는 사용자 정의 값 범위 내에 있음을 시도 결과가 나타낼 때까지 진행될 수 있다. 이러한 경우, 마지막으로 시도된 영향을 주는 파라미터 값을 컨테이너화된 애플리케이션 배치를 위한 최적의 구성으로 선택할 수 있다.
이제 도 5로 돌아가면, 서브 프로세스(125)의 단계(541)에서 정지 기준이 만족되지 않은 것으로 결정되면, 서브 프로세스(125)는 단계(551)로 진행하여 새로운 파라미터 값 세트 또는 영향을 미치는 파라미터 값을 머신 러닝 모듈의 최적화 모델로부터 얻는다. 새로운 영향을 미치는 값 세트는 위에서 설명한 대로 최적화 모델의 탐색과 활용 사이의 균형을 고려하여 제어기에 추천될 수 있다.
서브 프로세스(125)의 단계(551)에서 최적화 모델로부터 질의된, 권장되는 영향을 미치는 값은 서브 프로세스(125)의 단계(552)에서 머신 러닝 모듈로부터 제어기로 전송될 수 있다. 따라서, 후속 시도가 수행될 수 있고 그로부터의 시도 결과는 서브 프로세스(125)의 단계(529)에서 시작시 수신될 수 있다. 워크플로우는 필요에 따라 반복적으로 진행될 수 있다.
다음으로, 본 개시의 실시예에 따른 머신 러닝 모듈을 포함하는 서버의 하드웨어 설명을 도 7을 참조하여 설명한다. 도 7에서, 서버는 상술한/후술하는 프로세스를 수행하는 CPU(780)를 포함한다. 프로세스 데이터 및 명령어는 메모리(781)에 저장될 수 있다. 이러한 프로세스 및 명령어는 또한 하드 드라이브(HDD) 또는 휴대용 저장 매체와 같은 저장 매체 디스크(782)에 저장될 수 있거나 원격으로 저장될 수 있다. 또한, 청구된 개선 사항은 본 발명의 프로세스의 명령어가 저장되는 컴퓨터 판독 가능 매체의 형태에 의해 제한되지 않는다. 예를 들어, 명령어는 CD, DVD, FLASH 메모리, RAM, ROM, PROM, EPROM, EEPROM, 하드 디스크 또는 서버가 통신하는 임의의 다른 정보 처리 장치(예컨대, 다른 서버 또는 머신)에 저장될 수 있다.
또한, 청구된 개선 사항은 CPU(780) 및 마이크로소프트 윈도우 7, 마이크로소프트 윈도우 10, UNIX, Solaris, LINUX, Apple MAC-OS 및 당업자에게 알려진 기타 시스템과 연계하여 실행되는, 유틸리티 애플리케이션, 백그라운드 데몬 또는 운영 체제의 컴포넌트 또는 이들의 조합으로 제공될 수 있다.
서버를 달성하기 위한 하드웨어 요소는 당업자에게 공지된 다양한 회로 요소에 의해 실현될 수 있다. 예를 들어, CPU(780)는 미국 인텔의 제논(Xenon) 또는 코어 프로세서 또는 미국 AMD의 옵테론(Opteron) 프로세서일 수 있거나, 당업자가 인식할 수 있는 다른 프로세서 유형일 수 있다. 대안적으로, CPU(780)는 당업자가 인식하는 바와 같이 FPGA, ASIC, PLD 상에서 또는 이산 로직 회로를 사용하여 구현될 수 있다. 또한, CPU(780)는 위에서 설명한 본 발명의 프로세스의 명령어를 수행하기 위해 병렬로 협동 작업하는 다중 프로세서로 구현될 수 있다.
도 7의 서버는 또한 네트워크(788)와 인터페이스하기 위해, 미국 인텔사의 인텔 이더넷 PRO 네트워크 인터페이스 카드와 같은 네트워크 제어기(783)를 포함한다. 도 2에 도시된 바와 같이, 네트워크(788)는 인터넷과 같은 공중 네트워크, 또는 LAN 또는 WAN 네트워크와 같은 사설 네트워크, 또는 이들의 임의의 조합일 수 있고, 또한 PSTN 또는 ISDN 서브네트워크를 포함할 수 있음을 알 수 있다. 네트워크(788)는 또한 이더넷 네트워크와 같은 유선일 수 있거나, EDGE, 3G 및 4G 무선 셀룰러 시스템을 포함하는 셀룰러 네트워크와 같은 무선일 수 있다. 무선 네트워크는 WiFi, Bluetooth 또는 알려진 다른 무선 통신 형태일 수도 있다.
특정 실시예에서, 서버는 컴퓨터 단말기에 연결되거나 컴퓨터 단말기로서 기능한다. 이를 위해, 서버는 키보드 및/또는 마우스(785), 및 디스플레이 상에 있는 또는 그와는 분리된 터치 스크린 패널과 인터페이스하는 범용 I/O 인터페이스(784)를 더 포함할 수 있다. 이 범용 I/O 인터페이스(784)는 필요에 따라 다양한 주변 장치에 연결할 수도 있다.
범용 저장 제어기(786)는 서버의 모든 구성요소를 상호 연결하는, ISA, EISA, VESA, PCI 등일 수 있는 통신 버스(787)에 저장 매체 디스크(782)를 연결한다. 디스플레이, 키보드 및/또는 마우스(785)뿐만 아니라 디스플레이 제어기, 저장 제어기(786), 네트워크 제어기(783) 및 범용 I/O 인터페이스(784)의 일반적인 특징 및 기능은 알려져 있으므로 이에 대한 설명은 간결성을 위해 여기에서는 생략된다.
명백히, 상기 교시에 비추어 수많은 수정 및 변형이 가능하다. 따라서, 첨부된 특허청구범위 내에서 본 개시는 본 명세서에서 구체적으로 기술된 것과 달리 실시될 수 있음을 이해해야 한다.
본 개시의 실시예는 또한 다음의 괄호로 설명된 바와 같을 수 있다.
(1) 컨테이너화된 애플리케이션의 배치를 최적화하기 위한 시스템에 관한 것으로, 이 시스템은 머신, 및 처리 회로를 구비한 서버를 포함하되, 이 처리 회로는 머신으로부터 컨테이너화된 애플리케이션에 관련된 최적화 기준을 수신하고- 최적화 기준은 하나 이상의 영향을 미치는 파라미터(one or more affecting parameters), 하나 이상의 영향을 받는 메트릭, 및 하나 이상의 정지 기준을 포함함 -, 수신된 최적화 기준에 기초하여 하나 이상의 영향을 미치는 파라미터 중 적어도 하나의 값을 머신으로 전송하고, 하나 이상의 영향을 미치는 파라미터의 적어도 하나의 값에 따라 머신에 의해 수행되는 컨테이너화된 애플리케이션의 시도의 결과- 시도의 결과는 하나 이상의 영향을 받는 메트릭의 경험적 값을 포함함 -를 수신하며, 하나 이상의 영향을 미치는 파라미터의 적어도 하나의 값 및 하나 이상의 영향을 받는 메트릭의 경험적 값에 기초하여 최적화 모델을 업데이트하고, 시도의 결과 및 업데이트된 최적화 모델을 하나 이상의 정지 기준에 비교하고, 비교가 하나 이상의 정지 기준이 만족됨을 나타내면 하나 이상의 영향을 미치는 파라미터의 적어도 하나의 값 중 최적화된 값을 선택하며, 하나 이상의 영향을 미치는 파라미터의 적어도 하나의 값 중 최적화된 값을 컨테이너화된 애플리케이션의 배치를 위해 머신으로 전송하도록 구성된다.
(2) (1)에 따른 시스템에서, 서버의 처리 회로는 더 나아가, 하나 이상의 정지 기준에 대한 시도의 결과 및 업데이트된 최적화 모델의 비교가 하나 이상의 정지 기준이 만족되지 않음을 나타낼 때, 업데이트된 최적화 모델에 기초하여 하나 이상의 영향을 미치는 파라미터의 후속하는 적어도 하나의 값을 계산하고, 하나 이상의 영향을 미치는 파라미터의 후속하는 적어도 하나의 값을 머신으로 전송하고, 하나 이상의 영향을 미치는 파라미터의 후속하는 적어도 하나의 값에 따라 머신에 의해 수행되는 컨테이너화된 애플리케이션의 후속 시도를 기반으로, 하나 이상의 영향을 받는 메트릭의 후속하는 경험적 값을 포함하는 후속 시도의 결과를 수신하고, 하나 이상의 영향을 미치는 파라미터의 후속하는 적어도 하나의 값 및 하나 이상의 영향을 받는 메트릭의 후속하는 경험적 값에 기초하여, 업데이트된 최적화 모델을 반복적으로 업데이트하고, 후속 시도의 결과 및 반복적으로 업데이트된 최적화 모델을 하나 이상의 정지 기준에 비교하고, 비교가 하나 이상의 정지 기준이 충족됨을 나타내는 경우, 하나 이상의 영향을 미치는 파라미터의 적어도 하나의 값 중 최적화된 값을 선택하며, 하나 이상의 영향을 미치는 파라미터의 적어도 하나의 값 중 최적화된 값을 컨테이너화된 애플리케이션의 배치를 위해 머신에 전송하도록 구성된다.
(3) (1) 또는 (2)에 따른 시스템에서, 하나 이상의 정지 기준은 수행될 최대 시도 횟수를 포함한다.
(4) (1) 내지 (3) 중 어느 하나에 따른 시스템에서, 하나 이상의 정지 기준은 업데이트된 최적화 모델에서 최대 수준의 정확도를 포함한다.
(5) (1) 내지 (4) 중 어느 하나에 따른 시스템에서, 하나 이상의 정지 기준은 하나 이상의 영향을 받는 메트릭의 경험적 값의 범위를 포함한다.
(6) 컨테이너화된 애플리케이션의 배치를 최적화하기 위한 방법에 관한 것으로, 이 방법은 서버에 의해, 컨테이너화된 애플리케이션에 관련된 최적화 기준을 수신하는 단계- 최적화 기준은 하나 이상의 영향을 미치는 파라미터, 하나 이상의 영향을 받는 메트릭, 및 하나 이상의 영향을 받는 메트릭에 기초한 하나 이상의 정지 기준을 포함함 -와, 서버에 의해 그리고 하나 이상의 영향을 미치는 파라미터의 적어도 하나의 값에 따른 컨테이너화된 애플리케이션의 시도에 기초하여, 하나 이상의 영향을 받는 메트릭의 경험적 값을 포함하는 시도의 결과를 수신하는 단계와, 서버에 의해, 하나 이상의 영향을 미치는 파라미터의 적어도 하나의 값 및 하나 이상의 영향을 받는 메트릭의 경험적 값에 기초하여 최적화 모델을 업데이트하는 단계와, 서버에 의해, 시도의 결과 및 업데이트된 최적화 모델을 하나 이상의 정지 기준에 비교하는 단계와, 서버에 의해 그리고 비교가 하나 이상의 정지 기준이 만족됨을 나타내는 경우, 하나 이상의 영향을 미치는 파라미터의 적어도 하나의 값 중 최적화된 값을 선택하는 단계와, 하나 이상의 영향을 미치는 파라미터의 적어도 하나의 값 중 최적화된 값을, 컨테이너화된 애플리케이션의 배치를 위해 머신에 전송하는 단계를 포함한다.
(7) (6)에 따른 방법에서, 상기 방법은 서버에 의해, 그리고 시도의 결과 및 업데이트된 최적화 모델이 하나 이상의 정지 기준을 만족시키지 못하는 경우, 업데이트된 최적화 모델에 기초하여 하나 이상의 영향을 미치는 파라미터의 후속하는 적어도 하나의 값을 계산하는 단계와, 서버에 의해 그리고 하나 이상의 영향을 미치는 파라미터의 후속하는 적어도 하나의 값에 따른 컨테이너화된 애플리케이션의 후속 시도를 기반으로, 하나 이상의 영향을 받는 메트릭의 후속하는 경험적 값을 포함하는 후속 시도의 결과를 수신하는 단계와, 서버에 의해, 하나 이상의 영향을 미치는 파라미터의 후속하는 적어도 하나의 값 및 하나 이상의 영향을 받는 메트릭의 후속하는 경험적 값에 기초하여, 업데이트된 최적화 모델을 반복적으로 업데이트하는 단계와, 서버에 의해, 후속 시도의 결과 및 반복적으로 업데이트된 최적화 모델을 하나 이상의 정지 기준에 비교하는 단계와, 서버에 의해 그리고 비교가 하나 이상의 정지 기준이 충족됨을 나타내는 경우, 하나 이상의 영향을 미치는 파라미터의 적어도 하나의 값 중 최적화된 값을 선택하는 단계와, 서버에 의해, 하나 이상의 영향을 미치는 파라미터의 적어도 하나의 값 중 최적화된 값을 컨테이너화된 애플리케이션의 배치를 위해 머신에 전송하는 단계를 더 포함한다.
(8) (6) 또는 (7)에 따른 방법에서, 업데이트하는 단계는 서버에 의해 하나 이상의 영향을 미치는 파라미터 중 적어도 하나의 값 및 하나 이상의 영향을 받는 메트릭의 경험적 값에 기초하여 최적화 모델을 채우는 단계를 포함한다.
(9) (6) 내지 (8) 중 어느 하나에 따른 방법에서, 하나 이상의 영향을 미치는 파라미터의 적어도 하나의 값은 서버에 의해 계산된다.
(10) (6) 내지 (9) 중 어느 하나에 따른 방법에서, 하나 이상의 정지 기준은 수행될 최대 시도 횟수를 포함한다.
(11) (6) 내지 (10) 중 어느 하나에 따른 방법에서, 하나 이상의 정지 기준은 업데이트된 최적화 모델에서 최대 수준의 정확도를 포함한다.
(12) (6) 내지 (11) 중 어느 하나에 따른 방법에서, 하나 이상의 정지 기준은 하나 이상의 영향을 받는 메트릭의 경험적 값의 범위를 포함한다.
(13) 컴퓨터에 의해 실행되는 경우 컴퓨터로 하여금 컨테이너화된 애플리케이션의 배치를 최적화하기 위한 방법을 수행하게 하는 컴퓨터 판독가능 명령어를 저장하는 비일시적 컴퓨터 판독가능 저장 매체로서, 이 방법은 컨테이너화된 애플리케이션에 관련된 최적화 기준을 수신하는 단계- 최적화 기준은 하나 이상의 영향을 미치는 파라미터, 하나 이상의 영향을 받는 메트릭, 및 하나 이상의 영향을 받는 메트릭에 기초한 하나 이상의 정지 기준을 포함함 -와, 하나 이상의 영향을 미치는 파라미터의 적어도 하나의 값에 따른 컨테이너화된 애플리케이션의 시도에 기초하여, 하나 이상의 영향을 받는 메트릭의 경험적 값을 포함하는 시도의 결과를 수신하는 단계와, 하나 이상의 영향을 미치는 파라미터의 적어도 하나의 값 및 하나 이상의 영향을 받는 메트릭의 경험적 값에 기초하여 최적화 모델을 업데이트하는 단계와, 시도의 결과 및 업데이트된 최적화 모델을 하나 이상의 정지 기준에 비교하는 단계와, 비교가 하나 이상의 정지 기준이 만족됨을 나타내는 경우, 하나 이상의 영향을 미치는 파라미터의 적어도 하나의 값 중 최적화된 값을 선택하는 단계와, 하나 이상의 영향을 미치는 파라미터의 적어도 하나의 값 중 최적화된 값을, 컨테이너화된 애플리케이션의 배치를 위해 머신에 전송하는 단계를 포함한다.
(14) (13)에 따른 비일시적 컴퓨터 판독가능 저장 매체로서, 상기 방법은 시도의 결과 및 업데이트된 최적화 모델이 하나 이상의 정지 기준을 만족시키지 못하는 경우, 업데이트된 최적화 모델에 기초하여 하나 이상의 영향을 미치는 파라미터의 적어도 하나의 값 중 후속하는 값을 계산하는 단계와, 하나 이상의 영향을 미치는 파라미터의 적어도 하나의 값 중 후속하는 값에 따른 컨테이너화된 애플리케이션의 후속 시도를 기반으로, 하나 이상의 영향을 받는 메트릭의 후속하는 경험적 값을 포함하는 후속 시도의 결과를 수신하는 단계와, 하나 이상의 영향을 미치는 파라미터의 적어도 하나의 값 중 후속하는 값 및 하나 이상의 영향을 받는 메트릭의 후속하는 경험적 값에 기초하여, 업데이트된 최적화 모델을 반복적으로 업데이트하는 단계와, 후속 시도의 결과 및 반복적으로 업데이트된 최적화 모델을 하나 이상의 정지 기준에 비교하는 단계와, 비교가 하나 이상의 정지 기준이 충족됨을 나타내는 경우, 하나 이상의 영향을 미치는 파라미터의 적어도 하나의 값 중 최적화된 값을 선택하는 단계와, 하나 이상의 영향을 미치는 파라미터의 적어도 하나의 값 중 최적화된 값을 컨테이너화된 애플리케이션의 배치를 위해 머신에 전송하는 단계를 더 포함한다.
(15) (14)에 따른 비일시적 컴퓨터 판독가능 저장 매체로서서, 하나 이상의 정지 기준은 수행될 최대 시도 횟수를 포함한다.
(16) (13) 내지 (15) 중 어느 하나에 따른 비일시적 컴퓨터 판독가능 저장 매체로서, 하나 이상의 정지 기준은 업데이트된 최적화 모델에서 최대 수준의 정확도를 포함한다.
(17) (13) 내지 (16) 중 어느 하나에 따른 비일시적 컴퓨터 판독가능 저장 매체로서, 하나 이상의 정지 기준은 하나 이상의 영향을 받는 메트릭의 경험적 값의 범위를 포함한다.
(18) 컨테이너화된 애플리케이션의 배치를 최적화하기 위한 서버에 관한 것으로, 이 서버는 처리 회로를 포함하고, 이 처리 회로는, 컨테이너화된 애플리케이션에 관련된 최적화 기준을 수신하고- 최적화 기준은 하나 이상의 영향을 미치는 파라미터, 하나 이상의 영향을 받는 메트릭, 및 하나 이상의 영향을 받는 메트릭에 기초한 하나 이상의 정지 기준을 포함함 -, 하나 이상의 영향을 미치는 파라미터의 적어도 하나의 값에 따른 컨테이너화된 애플리케이션의 시도에 기초하여, 하나 이상의 영향을 받는 메트릭의 경험적 값을 포함하는 시도의 결과를 수신하고, 하나 이상의 영향을 미치는 파라미터의 적어도 하나의 값 및 하나 이상의 영향을 받는 메트릭의 경험적 값에 기초하여 최적화 모델을 업데이트하고, 시도의 결과 및 업데이트된 최적화 모델을 하나 이상의 정지 기준에 비교하며, 비교가 하나 이상의 정지 기준이 만족됨을 나타내는 경우, 하나 이상의 영향을 미치는 파라미터의 적어도 하나의 값 중 최적화된 값을 선택하고, 하나 이상의 영향을 미치는 파라미터의 적어도 하나의 값 중 최적화된 값을, 컨테이너화된 애플리케이션의 배치를 위해 머신에 전송하도록 구성된다.
(19) (18)에 따른 서버로서, 처리 회로는 또한, 시도의 결과 및 업데이트된 최적화 모델이 하나 이상의 정지 기준을 만족시키지 못하는 경우, 업데이트된 최적화 모델에 기초하여 하나 이상의 영향을 미치는 파라미터의 적어도 하나의 값 중 후속하는 값을 계산하고, 하나 이상의 영향을 미치는 파라미터의 적어도 하나의 값 중 후속하는 값에 따른 컨테이너화된 애플리케이션의 후속 시도를 기반으로, 하나 이상의 영향을 받는 메트릭의 후속하는 경험적 값을 포함하는 후속 시도의 결과를 수신하고, 하나 이상의 영향을 미치는 파라미터의 적어도 하나의 값 중 후속하는 값 및 하나 이상의 영향을 받는 메트릭의 후속하는 경험적 값에 기초하여, 업데이트된 최적화 모델을 반복적으로 업데이트하며, 후속 시도의 결과 및 반복적으로 업데이트된 최적화 모델을 하나 이상의 정지 기준에 비교하고, 비교가 하나 이상의 정지 기준이 충족됨을 나타내는 경우, 하나 이상의 영향을 미치는 파라미터의 적어도 하나의 값 중 최적화된 값을 선택하며, 하나 이상의 영향을 미치는 파라미터의 적어도 하나의 값 중 최적화된 값을 컨테이너화된 애플리케이션의 배치를 위해 머신에 전송하도록 구성된다.
(20) (18) 또는 (19)에 따른 서버로서, 처리 회로는 하나 이상의 영향을 미치는 파라미터의 적어도 하나의 값 및 하나 이상의 영향을 받는 메트릭의 경험적 값에 기초하여 최적화 모델을 채움으로써 최적화 모델을 업데이트하도록 구성된다.
따라서, 전술한 설명은 단지 본 발명의 예시적인 실시예를 개시하고 설명한다. 당업자라면 이해할 수 있는 바와 같이, 본 개시는 본 개시의 사상 또는 필수적인 특징을 벗어나지 않는 범위에서 다른 특정한 형태로 구체화될 수 있다. 따라서, 본 발명의 개시는 예시를 위한 것이며, 본 개시의 범위 및 다른 청구범위를 제한하는 것은 아니다. 본 명세서의 교시 내용의 임의의 쉽게 식별할 수 있는 변형을 포함하는 본 개시 내용은 발명의 대상이 대중에게 헌정되지 않도록 전술한 청구항 용어의 범위를 부분적으로 정의한다.

Claims (20)

  1. 컨테이너화된 애플리케이션의 배치를 최적화하기 위한 시스템으로서,
    머신과,
    처리 회로를 구비한 서버를 포함하되,
    상기 처리 회로는,
    상기 머신으로부터 상기 컨테이너화된 애플리케이션에 관련된 최적화 기준을 수신하고- 상기 최적화 기준은 하나 이상의 영향을 미치는 파라미터(one or more affecting parameters), 하나 이상의 영향을 받는 메트릭, 및 하나 이상의 정지 기준을 포함함 -,
    상기 수신된 최적화 기준에 기초하여, 상기 하나 이상의 영향을 미치는 파라미터 중 적어도 하나의 값을 상기 머신으로 전송하고,
    상기 하나 이상의 영향을 미치는 파라미터의 상기 적어도 하나의 값에 따라 상기 머신에 의해 수행되는 상기 컨테이너화된 애플리케이션의 시도의 결과- 상기 시도의 결과는 상기 하나 이상의 영향을 받는 메트릭의 경험적 값을 포함함 -를 수신하며,
    상기 하나 이상의 영향을 미치는 파라미터의 상기 적어도 하나의 값 및 상기 하나 이상의 영향을 받는 메트릭의 상기 경험적 값에 기초하여 최적화 모델을 업데이트하고,
    상기 시도의 결과 및 상기 업데이트된 최적화 모델을 상기 하나 이상의 정지 기준에 비교하고,
    상기 비교가 상기 하나 이상의 정지 기준이 만족됨을 나타내면, 상기 하나 이상의 영향을 미치는 파라미터의 상기 적어도 하나의 값 중 최적화된 값을 선택하며,
    상기 하나 이상의 영향을 미치는 파라미터의 상기 적어도 하나의 값 중 상기 최적화된 값을 상기 컨테이너화된 애플리케이션의 배치를 위해 상기 머신으로 전송하도록 구성된
    시스템.
  2. 제1항에 있어서,
    상기 서버의 처리 회로는,
    상기 하나 이상의 정지 기준에 대한 상기 시도의 결과 및 상기 업데이트된 최적화 모델의 비교가 상기 하나 이상의 정지 기준이 만족되지 않음을 나타낼 때, 상기 업데이트된 최적화 모델에 기초하여 상기 하나 이상의 영향을 미치는 파라미터의 후속하는 적어도 하나의 값을 계산하고,
    상기 하나 이상의 영향을 미치는 파라미터의 상기 후속하는 적어도 하나의 값을 상기 머신으로 전송하고,
    상기 하나 이상의 영향을 미치는 파라미터의 상기 후속하는 적어도 하나의 값에 따라 상기 머신에 의해 수행되는 상기 컨테이너화된 애플리케이션의 후속 시도를 기반으로, 상기 하나 이상의 영향을 받는 메트릭의 후속하는 경험적 값을 포함하는 상기 후속 시도의 결과를 수신하고,
    상기 하나 이상의 영향을 미치는 파라미터의 상기 후속하는 적어도 하나의 값 및 상기 하나 이상의 영향을 받는 메트릭의 상기 후속하는 경험적 값에 기초하여, 상기 업데이트된 최적화 모델을 반복적으로 업데이트하고,
    상기 후속 시도의 결과 및 상기 반복적으로 업데이트된 최적화 모델을 상기 하나 이상의 정지 기준에 비교하며,
    상기 비교가 상기 하나 이상의 정지 기준이 충족됨을 나타내는 경우, 상기 하나 이상의 영향을 미치는 파라미터의 상기 적어도 하나의 값 중 최적화된 값을 선택하고,
    상기 하나 이상의 영향을 미치는 파라미터의 상기 적어도 하나의 값 중 상기 최적화된 값을 상기 컨테이너화된 애플리케이션의 배치를 위해 상기 머신에 전송하도록 더 구성된
    시스템.
  3. 제1항에 있어서,
    상기 하나 이상의 정지 기준은 수행될 최대 시도 횟수를 포함하는
    시스템.
  4. 제1항에 있어서,
    상기 하나 이상의 정지 기준은 상기 업데이트된 최적화 모델에서 최대 수준의 정확도를 포함하는
    시스템.
  5. 제1항에 있어서,
    상기 하나 이상의 정지 기준은 상기 하나 이상의 영향을 받는 메트릭의 경험적 값의 범위를 포함하는
    시스템.
  6. 컨테이너화된 애플리케이션의 배치를 최적화하기 위한 방법으로서,
    서버에 의해, 상기 컨테이너화된 애플리케이션에 관련된 최적화 기준을 수신하는 단계- 상기 최적화 기준은 하나 이상의 영향을 미치는 파라미터, 하나 이상의 영향을 받는 메트릭, 및 상기 하나 이상의 영향을 받는 메트릭에 기초한 하나 이상의 정지 기준을 포함함 -와,
    상기 서버에 의해 그리고 상기 하나 이상의 영향을 미치는 파라미터의 적어도 하나의 값에 따른 상기 컨테이너화된 애플리케이션의 시도에 기초하여, 상기 하나 이상의 영향을 받는 메트릭의 경험적 값을 포함하는 상기 시도의 결과를 수신하는 단계와,
    상기 서버에 의해, 상기 하나 이상의 영향을 미치는 파라미터의 상기 적어도 하나의 값 및 상기 하나 이상의 영향을 받는 메트릭의 상기 경험적 값에 기초하여, 상기 최적화 모델을 업데이트하는 단계와,
    상기 서버에 의해, 상기 시도의 결과 및 상기 업데이트된 최적화 모델을 상기 하나 이상의 정지 기준에 비교하는 단계와,
    상기 서버에 의해 그리고 상기 비교가 상기 하나 이상의 정지 기준이 만족됨을 나타내는 경우, 상기 하나 이상의 영향을 미치는 파라미터의 상기 적어도 하나의 값 중 최적화된 값을 선택하는 단계와,
    상기 하나 이상의 영향을 미치는 파라미터의 상기 적어도 하나의 값 중 상기 최적화된 값을, 상기 컨테이너화된 애플리케이션의 배치를 위해 머신에 전송하는 단계를 포함하는
    방법.
  7. 제6항에 있어서,
    상기 서버에 의해, 그리고 상기 시도의 결과 및 상기 업데이트된 최적화 모델이 상기 하나 이상의 정지 기준을 만족시키지 못하는 경우, 상기 업데이트된 최적화 모델에 기초하여 상기 하나 이상의 영향을 미치는 파라미터의 후속하는 적어도 하나의 값을 계산하는 단계와,
    상기 서버에 의해 그리고 상기 하나 이상의 영향을 미치는 파라미터의 상기 후속하는 적어도 하나의 값에 따른 상기 컨테이너화된 애플리케이션의 후속 시도를 기반으로, 상기 하나 이상의 영향을 받는 메트릭의 후속하는 경험적 값을 포함하는 상기 후속 시도의 결과를 수신하는 단계와,
    상기 서버에 의해, 상기 하나 이상의 영향을 미치는 파라미터의 상기 후속하는 적어도 하나의 값 및 상기 하나 이상의 영향을 받는 메트릭의 상기 후속하는 경험적 값에 기초하여, 상기 업데이트된 최적화 모델을 반복적으로 업데이트하는 단계와,
    상기 서버에 의해, 상기 후속 시도의 결과 및 상기 반복적으로 업데이트된 최적화 모델을 상기 하나 이상의 정지 기준에 비교하는 단계와,
    상기 서버에 의해 그리고 상기 비교가 상기 하나 이상의 정지 기준이 충족됨을 나타내는 경우, 상기 하나 이상의 영향을 미치는 파라미터의 상기 적어도 하나의 값 중 최적화된 값을 선택하는 단계와,
    상기 서버에 의해, 상기 하나 이상의 영향을 미치는 파라미터의 상기 적어도 하나의 값 중 상기 최적화된 값을 상기 컨테이너화된 애플리케이션의 배치를 위해 상기 머신에 전송하는 단계를 더 포함하는
    방법.
  8. 제6항에 있어서,
    상기 업데이트하는 단계는 상기 서버에 의해 상기 하나 이상의 영향을 미치는 파라미터 중 상기 적어도 하나의 값 및 상기 하나 이상의 영향을 받는 메트릭의 상기 경험적 값에 기초하여 상기 최적화 모델을 채우는 단계를 포함하는
    방법.
  9. 제6항에 있어서,
    상기 하나 이상의 영향을 미치는 파라미터의 상기 적어도 하나의 값은 상기 서버에 의해 계산되는
    방법.
  10. 제6항에 있어서,
    상기 하나 이상의 정지 기준은 수행될 최대 시도 횟수를 포함하는
    방법.
  11. 제6항에 있어서,
    상기 하나 이상의 정지 기준은 상기 업데이트된 최적화 모델에서 최대 수준의 정확도를 포함하는
    방법.
  12. 제6항에 있어서,
    상기 하나 이상의 정지 기준은 상기 하나 이상의 영향을 받는 메트릭의 경험적 값의 범위를 포함하는
    방법.
  13. 컴퓨터에 의해 실행되는 경우 상기 컴퓨터로 하여금 컨테이너화된 애플리케이션의 배치를 최적화하기 위한 방법을 수행하게 하는 컴퓨터 판독가능 명령어를 저장하는 비일시적 컴퓨터 판독가능 저장 매체로서,
    상기 방법은,
    상기 컨테이너화된 애플리케이션에 관련된 최적화 기준을 수신하는 단계- 상기 최적화 기준은 하나 이상의 영향을 미치는 파라미터, 하나 이상의 영향을 받는 메트릭, 및 상기 하나 이상의 영향을 받는 메트릭에 기초한 하나 이상의 정지 기준을 포함함 -와,
    상기 하나 이상의 영향을 미치는 파라미터의 적어도 하나의 값에 따른 상기 컨테이너화된 애플리케이션의 시도에 기초하여, 상기 하나 이상의 영향을 받는 메트릭의 경험적 값을 포함하는 상기 시도의 결과를 수신하는 단계와,
    상기 하나 이상의 영향을 미치는 파라미터의 상기 적어도 하나의 값 및 상기 하나 이상의 영향을 받는 메트릭의 상기 경험적 값에 기초하여, 최적화 모델을 업데이트하는 단계와,
    상기 시도의 결과 및 상기 업데이트된 최적화 모델을 상기 하나 이상의 정지 기준에 비교하는 단계와,
    상기 비교가 상기 하나 이상의 정지 기준이 만족됨을 나타내는 경우, 상기 하나 이상의 영향을 미치는 파라미터의 상기 적어도 하나의 값 중 최적화된 값을 선택하는 단계와,
    상기 하나 이상의 영향을 미치는 파라미터의 상기 적어도 하나의 값 중 상기 최적화된 값을, 상기 컨테이너화된 애플리케이션의 배치를 위해 머신에 전송하는 단계를 포함하는
    비일시적 컴퓨터 판독가능 저장 매체.
  14. 제13항에 있어서,
    상기 시도의 결과 및 상기 업데이트된 최적화 모델이 상기 하나 이상의 정지 기준을 만족시키지 못하는 경우, 상기 업데이트된 최적화 모델에 기초하여 상기 하나 이상의 영향을 미치는 파라미터의 상기 적어도 하나의 값 중 후속하는 값을 계산하는 단계와,
    상기 하나 이상의 영향을 미치는 파라미터의 상기 적어도 하나의 값 중 상기 후속하는 값에 따른 상기 컨테이너화된 애플리케이션의 후속 시도를 기반으로, 상기 하나 이상의 영향을 받는 메트릭의 후속하는 경험적 값을 포함하는 상기 후속 시도의 결과를 수신하는 단계와,
    상기 하나 이상의 영향을 미치는 파라미터의 상기 적어도 하나의 값 중 상기 후속하는 값 및 상기 하나 이상의 영향을 받는 메트릭의 상기 후속하는 경험적 값에 기초하여, 상기 업데이트된 최적화 모델을 반복적으로 업데이트하는 단계와,
    상기 후속 시도의 결과 및 상기 반복적으로 업데이트된 최적화 모델을 상기 하나 이상의 정지 기준에 비교하는 단계와,
    상기 비교가 상기 하나 이상의 정지 기준이 충족됨을 나타내는 경우, 상기 하나 이상의 영향을 미치는 파라미터의 상기 적어도 하나의 값 중 최적화된 값을 선택하는 단계와,
    상기 하나 이상의 영향을 미치는 파라미터의 상기 적어도 하나의 값 중 상기 최적화된 값을 상기 컨테이너화된 애플리케이션의 배치를 위해 상기 머신에 전송하는 단계를 더 포함하는
    비일시적 컴퓨터 판독가능 저장 매체.
  15. 제13항에 있어서,
    상기 하나 이상의 정지 기준은 수행될 최대 시도 횟수를 포함하는
    비일시적 컴퓨터 판독가능 저장 매체.
  16. 제13항에 있어서,
    상기 하나 이상의 정지 기준은 상기 업데이트된 최적화 모델에서 최대 수준의 정확도를 포함하는
    비일시적 컴퓨터 판독가능 저장 매체.
  17. 제13항에 있어서,
    상기 하나 이상의 정지 기준은 상기 하나 이상의 영향을 받는 메트릭의 경험적 값의 범위를 포함하는
    비일시적 컴퓨터 판독가능 저장 매체.
  18. 컨테이너화된 애플리케이션의 배치를 최적화하기 위한 서버로서,
    상기 서버는 처리 회로를 포함하고,
    상기 처리 회로는,
    상기 컨테이너화된 애플리케이션에 관련된 최적화 기준을 수신하고- 상기 최적화 기준은 하나 이상의 영향을 미치는 파라미터, 하나 이상의 영향을 받는 메트릭, 및 상기 하나 이상의 영향을 받는 메트릭에 기초한 하나 이상의 정지 기준을 포함함 -,
    상기 하나 이상의 영향을 미치는 파라미터의 적어도 하나의 값에 따른 상기 컨테이너화된 애플리케이션의 시도에 기초하여, 상기 하나 이상의 영향을 받는 메트릭의 경험적 값을 포함하는 상기 시도의 결과를 수신하고,
    상기 하나 이상의 영향을 미치는 파라미터의 상기 적어도 하나의 값 및 상기 하나 이상의 영향을 받는 메트릭의 상기 경험적 값에 기초하여 최적화 모델을 업데이트하고,
    상기 시도의 결과 및 상기 업데이트된 최적화 모델을 상기 하나 이상의 정지 기준에 비교하며,
    상기 비교가 상기 하나 이상의 정지 기준이 만족됨을 나타내는 경우, 상기 하나 이상의 영향을 미치는 파라미터의 상기 적어도 하나의 값 중 최적화된 값을 선택하고,
    상기 하나 이상의 영향을 미치는 파라미터의 상기 적어도 하나의 값 중 상기 최적화된 값을, 상기 컨테이너화된 애플리케이션의 배치를 위해 머신에 전송하도록 구성된
    서버.
  19. 제18항에 있어서,
    상기 처리 회로는,
    상기 시도의 결과 및 상기 업데이트된 최적화 모델이 상기 하나 이상의 정지 기준을 만족시키지 못하는 경우, 상기 업데이트된 최적화 모델에 기초하여 상기 하나 이상의 영향을 미치는 파라미터의 상기 적어도 하나의 값 중 후속하는 값을 계산하고,
    상기 하나 이상의 영향을 미치는 파라미터의 상기 적어도 하나의 값 중 상기 후속하는 값에 따른 상기 컨테이너화된 애플리케이션의 후속 시도를 기반으로, 상기 하나 이상의 영향을 받는 메트릭의 후속하는 경험적 값을 포함하는 상기 후속 시도의 결과를 수신하고,
    상기 하나 이상의 영향을 미치는 파라미터의 상기 적어도 하나의 값 중 상기 후속하는 값 및 상기 하나 이상의 영향을 받는 메트릭의 상기 후속하는 경험적 값에 기초하여, 상기 업데이트된 최적화 모델을 반복적으로 업데이트하며,
    상기 후속 시도의 결과 및 상기 반복적으로 업데이트된 최적화 모델을 상기 하나 이상의 정지 기준에 비교하고,
    상기 비교가 상기 하나 이상의 정지 기준이 충족됨을 나타내는 경우, 상기 하나 이상의 영향을 미치는 파라미터의 상기 적어도 하나의 값 중 최적화된 값을 선택하며,
    상기 하나 이상의 영향을 미치는 파라미터의 상기 적어도 하나의 값 중 상기 최적화된 값을 상기 컨테이너화된 애플리케이션의 배치를 위해 상기 머신에 전송하도록 더 구성된
    서버.
  20. 제18항에 있어서,
    상기 처리 회로는, 상기 하나 이상의 영향을 미치는 파라미터의 상기 적어도 하나의 값 및 상기 하나 이상의 영향을 받는 메트릭의 상기 경험적 값에 기초하여 상기 최적화 모델을 채움으로써 상기 최적화 모델을 업데이트하도록 구성된
    서버.
KR1020237005545A 2020-07-17 2020-07-17 컨테이너화된 애플리케이션의 배치를 최적화하기 위한 시스템, 방법 및 서버 KR20230037661A (ko)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2020/042554 WO2022015324A1 (en) 2020-07-17 2020-07-17 System, method, and server for optimizing deployment of containerized applications

Publications (1)

Publication Number Publication Date
KR20230037661A true KR20230037661A (ko) 2023-03-16

Family

ID=79293367

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020237005545A KR20230037661A (ko) 2020-07-17 2020-07-17 컨테이너화된 애플리케이션의 배치를 최적화하기 위한 시스템, 방법 및 서버

Country Status (4)

Country Link
US (1) US11954475B2 (ko)
JP (1) JP2023541510A (ko)
KR (1) KR20230037661A (ko)
WO (1) WO2022015324A1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11809579B2 (en) * 2020-10-07 2023-11-07 Jpmorgan Chase Bank, N.A. Method and system for configuration validation

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8209141B2 (en) * 2009-03-11 2012-06-26 International Business Machines Corporation System and method for automatically generating test patterns for at-speed structural test of an integrated circuit device using an incremental approach to reduce test pattern count
DE102011076779A1 (de) * 2011-05-31 2012-12-06 Airbus Operations Gmbh Verfahren und Vorrichtung zur Vorhersage des Zustands einer Komponente oder eines Systems, Computerprogrammprodukt
US9311159B2 (en) * 2011-10-31 2016-04-12 At&T Intellectual Property I, L.P. Systems, methods, and articles of manufacture to provide cloud resource orchestration
AT512977B1 (de) * 2013-05-22 2014-12-15 Avl List Gmbh Methode zur Ermittlung eines Modells einer Ausgangsgröße eines technischen Systems
US10756995B2 (en) * 2015-07-27 2020-08-25 Datagrid Systems, Inc. Method, apparatus and system for real-time optimization of computer-implemented application operations using machine learning techniques
WO2018222203A1 (en) * 2017-06-02 2018-12-06 Google Llc Systems and methods for black-box optimization
US10445207B2 (en) * 2017-07-31 2019-10-15 Oracle International Corporation System and method to execute and manage load tests using containers
US10996991B2 (en) * 2017-11-29 2021-05-04 Red Hat, Inc. Dynamic container-based application resource tuning and resizing
RU2739865C2 (ru) * 2018-12-28 2020-12-29 Акционерное общество "Лаборатория Касперского" Система и способ обнаружения вредоносного файла
US11347491B2 (en) * 2019-11-15 2022-05-31 Mastercard International Incorporated Containerized application deployment

Also Published As

Publication number Publication date
US11954475B2 (en) 2024-04-09
US20220019420A1 (en) 2022-01-20
JP2023541510A (ja) 2023-10-03
WO2022015324A1 (en) 2022-01-20

Similar Documents

Publication Publication Date Title
US10924535B2 (en) Resource load balancing control method and cluster scheduler
EP3182280B1 (en) Machine for development of analytical models
US11461145B2 (en) Building neural networks for resource allocation for iterative workloads using reinforcement learning
US10614375B2 (en) Machine for development and deployment of analytical models
US9921809B2 (en) Scaling a cloud infrastructure
Huber et al. Model-based self-aware performance and resource management using the descartes modeling language
US10496532B1 (en) Automatically reconfiguring a performance test environment
US10409699B1 (en) Live data center test framework
US9444717B1 (en) Test generation service
US20200311600A1 (en) Method and system for prediction of application behavior
US9396160B1 (en) Automated test generation service
US20190324822A1 (en) Deep Reinforcement Learning for Workflow Optimization Using Provenance-Based Simulation
EP3356939B1 (en) Accurate generation of multiple dimensions of computer load
US10785109B1 (en) Automated generation of a network service design
Ventre et al. On the fly orchestration of unikernels: Tuning and performance evaluation of virtual infrastructure managers
CN112000460A (zh) 一种基于改进贝叶斯算法的服务扩缩容的方法及相关设备
KR20230037661A (ko) 컨테이너화된 애플리케이션의 배치를 최적화하기 위한 시스템, 방법 및 서버
Walter et al. Online learning of run-time models for performance and resource management in data centers
Tan et al. Heavy-traffic analysis of cloud provisioning
WO2013141018A1 (ja) 最適システム設計支援装置
JP6183359B2 (ja) 設計支援装置、設計支援方法及びプログラム
Scandurra et al. Towards a goal-oriented approach to adaptable re-deployment of cloud-based applications
Ranawaka et al. Airavata Metascheduler: A Reliable, Fault Tolerant, and Resource-Aware Job Scheduling Service
Akhtarian Multi-Versioning and Microservices: A Strategy for Developing Reliable Software Systems