KR102120868B1 - 서비스형 함수(FaaS)를 제공하는 시스템 및 그 동작방법 - Google Patents

서비스형 함수(FaaS)를 제공하는 시스템 및 그 동작방법 Download PDF

Info

Publication number
KR102120868B1
KR102120868B1 KR1020180084271A KR20180084271A KR102120868B1 KR 102120868 B1 KR102120868 B1 KR 102120868B1 KR 1020180084271 A KR1020180084271 A KR 1020180084271A KR 20180084271 A KR20180084271 A KR 20180084271A KR 102120868 B1 KR102120868 B1 KR 102120868B1
Authority
KR
South Korea
Prior art keywords
function
execution
information
executing
container
Prior art date
Application number
KR1020180084271A
Other languages
English (en)
Other versions
KR20190016895A (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 EP18845032.4A priority Critical patent/EP3602299A4/en
Priority to CN201880044317.1A priority patent/CN110832461B/zh
Priority to PCT/KR2018/008887 priority patent/WO2019031783A1/en
Priority to US16/058,597 priority patent/US11126463B2/en
Publication of KR20190016895A publication Critical patent/KR20190016895A/ko
Application granted granted Critical
Publication of KR102120868B1 publication Critical patent/KR102120868B1/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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/505Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
    • 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/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5055Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering software capabilities, i.e. software resources associated or available to the machine
    • 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/5072Grid computing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5019Workload prediction

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Debugging And Monitoring (AREA)
  • Stored Programmes (AREA)

Abstract

서비스형 함수(FaaS)를 제공하는 시스템에 관한 것으로, 함수를 실행하기 위한 리소스의 설정 요청을 수신하는 통신부, 하나 이상의 인스트럭션들을 저장하는 메모리 및 메모리에 저장된 하나 이상의 인스트럭션들을 실행하는 프로세서를 포함하고, 프로세서는, 함수의 특성을 분석하고, 분석한 결과에 기초하여, 리소스의 설정과 관련된 추천 정보를 제공하는 시스템이 개시된다.

Description

서비스형 함수(FaaS)를 제공하는 시스템 및 그 동작방법{System for providing Function as a service and operating method for the same}
다양한 실시예들은 서비스형 함수를 제공하는 시스템 및 그 동작방법에 관한 것으로서, 더욱 상세하게는 서비스형 함수를 실행함에 있어서, 리소스를 효율적으로 이용할 수 있는 시스템 및 그 동작방법에 관한 것이다.
서비스형 함수(FaaS) 플랫폼에서는 어플리케이션 개발에 필요한 프로그램, 네트워크, 스토리지 등 기반 환경을 모두 서비스하기 때문에, 개발자는 컴퓨터 서버(가상 서버, 웹 서버 등)를 별도로 구축하거나 운영 체계(OS), 메모리 등 자원을 추가, 관리할 필요가 없다. 또한, 소스 코드를 함수(function) 단위로 제공하여, 개발자는 필요한 함수를 찾아서 사용하면 된다. 즉, 개발자는 FaaS에 접속하여, 서비스되는 함수를 이용하여 프로그램 코드만 작성하면 된다. 이에 따라, FaaS를 서버가 없는 컴퓨팅(serverless computing)이라고도 한다. FaaS의 경우, 빠른 응답속도를 위하여, 서비스되는 함수의 크기를 제한하고, 미리 공동의 컨테이너(container)를 생성하지만, 요청되는 함수 별로 동일한 응답속도를 보장받지 못하며, 지연시간이 발생하고, 불필요하게 리소스가 낭비될 수 있다는 문제점이 있다.
다양한 실시예들은, 함수의 특성 및 함수의 실행 정보 중 적어도 하나에 기초하여, 함수에 최적화된 리소스를 할당할 수 있는 시스템 및 그 동작방법을 제공할 수 있다.
일 실시예에 따른 서비스형 함수(FaaS)를 제공하는 시스템은, 상기 함수를 실행하기 위한 리소스의 설정 요청을 수신하는 통신부, 하나 이상의 인스트럭션들을 저장하는 메모리 및 상기 메모리에 저장된 상기 하나 이상의 인스트럭션들을 실행하는 프로세서를 포함하고, 상기 프로세서는, 상기 함수의 특성을 분석하고, 상기 분석한 결과에 기초하여, 상기 리소스의 설정과 관련된 추천 정보를 제공할 수 있다.
일 실시예에 따른 프로세서는, 상기 함수의 테스트 로그 정보, 상기 함수의 코드 크기, 상기 함수 실행 시 외부 라이브러리가 필요한지 여부 및 상기 함수에 다른 함수들이 포함되어 있는지 여부 중 적어도 하나에 기초하여, 상기 함수의 연산량을 결정하고, 상기 함수의 연산량에 기초하여, 상기 추천 정보를 제공할 수 있다.
일 실시예에 따른 프로세서는, 상기 함수의 실행 정보를 분석하고, 상기 분석한 결과에 기초하여, 상기 추천 정보를 제공할 수 있다.
일 실시예에 따른 함수의 실행 정보는, 상기 함수의 실행 요청 시간, 상기 함수의 실행 요청 횟수 및 상기 함수의 실행 요청 빈도 중 적어도 하나를 포함하고, 상기 프로세서는, 상기 함수의 실행 요청 시간을 모니터링하여, 상기 함수의 실행 요청이 기 설정된 횟수 이상인 시간 정보를 결정하고, 결정된 시간 정보에 대응하는 상기 함수의 실행 요청 횟수에 기초하여, 상기 추천 정보를 제공할 수 있다.
일 실시예에 따른 통신부는 상기 함수의 실행 요청을 수신하고, 상기 프로세서는 상기 함수의 특성 및 상기 함수의 실행 정보 중 적어도 하나를 분석하고, 상기 분석한 결과에 기초하여, 상기 함수를 실행하기 위한 리소스를 할당하고, 상기 실행 요청에 응답하여, 상기 할당된 리소스를 이용하여, 상기 함수를 실행할 수 있다.
일 실시예에 따른 프로세서는, 제1 함수의 특성 및 상기 제1 함수의 실행 정보 중 적어도 하나에 기초하여, 상기 제1 함수에 대응하는 제1 컨테이너를 생성하고, 제2 함수의 특성 및 상기 제2 함수의 실행 정보 중 적어도 하나에 기초하여, 상기 제2 함수에 대응하는 제2 컨테이너를 생성하며, 상기 제1 함수에 대한 실행 요청이 있는 경우, 상기 제1 컨테이너를 이용하여, 상기 제1 함수를 실행하고, 상기 제2 함수에 대한 실행 요청이 있는 경우, 상기 제2 컨테이너를 이용하여, 상기 제2 함수를 실행할 수 있다.
일 실시예에 따른 프로세서는, 상기 함수의 실행 요청 시간을 모니터링하여, 상기 함수의 실행 요청이 기 설정된 횟수 이상인 시간 정보를 결정하고, 결정된 시간 정보에 기초하여, 상기 함수를 실행하기 위한 리소스를 할당할 수 있다.
일 실시예에 따른 프로세서는, 상기 시간 정보에 대응하는 시점 전에, 상기 함수를 실행하기 위한 인보커 및 컨테이너를 생성할 수 있다.
일 실시예에 따른 프로세서는, 상기 시간 정보에 대응하는 상기 함수의 실행 요청 횟수에 기초하여, 상기 함수를 실행하기 위한 리소스의 양을 결정할 수 있다.
일 실시예에 따른 함수를 실행하기 위한 리소스는, 상기 함수를 실행하기 위해 필요한 외부 라이브러리를 미리 다운로드한 컨테이너를 포함할 수 있다.
일 실시예에 따른 프로세서는, 상기 함수의 특성 정보에 기초하여, 상기 함수의 연산량을 결정하고, 상기 함수의 연산량이 기 설정된 연산량보다 작으면, 상기 함수에 N개의 컨테이너를 할당하고, 상기 함수의 연산량이 기 설정된 연산량 이상이면, 상기 함수에 N개보다 큰 M개의 컨테이너를 할당할 수 있다.
일 실시예에 따른 서비스형 함수(FaaS)를 제공하는 시스템의 동작 방법은,
상기 함수를 실행하기 위한 리소스의 설정 요청을 수신하는 단계, 상기 함수의 특성을 분석하는 단계, 및 상기 분석한 결과에 기초하여, 상기 리소스의 설정과 관련된 추천 정보를 제공하는 단계를 포함할 수 있다.
일 실시예에 따른 컴퓨터 프로그램 제품은, 서비스형 함수를 실행하기 위한 리소스의 설정 요청을 수신하는 단계, 상기 함수의 특성을 분석하는 단계, 및 상기 분석한 결과에 기초하여, 상기 리소스의 설정과 관련된 추천 정보를 제공하는 단계를 수행하도록 하는 프로그램이 저장된 하나 이상의 컴퓨터로 읽을 수 있는 기록매체를 포함할 수 있다.
일 실시예에 따른 시스템은, 함수 실행 요청에 대한 응답 시간, 함수의 실행 시간 등을 빠르게 할 수 있다.
일 실시예에 따른 시스템은, 함수의 실행을 위한 리소스를 효율적으로 이용할 수 있다.
도 1은 일 실시예에 따른, 서비스형 함수를 제공하는 시스템의 구성을 나타내는 블록도이다.
도 2는 일 실시예에 따른 시스템의 구성을 나타내는 블록도이다.
도 3은 일 실시예에 따른 시스템의 구성을 나타내는 블록도이다.
도 4 는 일 실시예에 따른 시스템의 동작을 설명하기 위해 참조되는 도면이다.
도 5는 일 실시예에 따른 시스템의 동작을 설명하기 위해 참조되는 도면이다.
도 6은 일 실시예에 따른 시스템의 동작을 설명하기 위해 참조되는 도면이다.
도 7은 일 실시예에 따른 시스템에서 제공하는 사용자 인터페이스 화면의 일 예를 나타내는 도면이다.
도 8은 일 실시예에 따른 시스템의 동작방법을 나타내는 흐름도이다.
도 9는 일 실시예에 따른 시스템의 동작방법을 나타내는 흐름도이다.
도 10은 일 실시예에 따른 시스템의 동작방법을 나타내는 흐름도이다.
본 명세서에서 사용되는 용어에 대해 간략히 설명하고, 본 발명에 대해 구체적으로 설명하기로 한다.
본 발명에서 사용되는 용어는 본 발명에서의 기능을 고려하면서 가능한 현재 널리 사용되는 일반적인 용어들을 선택하였으나, 이는 당 분야에 종사하는 기술자의 의도 또는 판례, 새로운 기술의 출현 등에 따라 달라질 수 있다. 또한, 특정한 경우는 출원인이 임의로 선정한 용어도 있으며, 이 경우 해당되는 발명의 설명 부분에서 상세히 그 의미를 기재할 것이다. 따라서 본 발명에서 사용되는 용어는 단순한 용어의 명칭이 아닌, 그 용어가 가지는 의미와 본 발명의 전반에 걸친 내용을 토대로 정의되어야 한다.
명세서 전체에서 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있음을 의미한다. 또한, 명세서에 기재된 "...부", "모듈" 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어 또는 소프트웨어로 구현되거나 하드웨어와 소프트웨어의 결합으로 구현될 수 있다.
아래에서는 첨부한 도면을 참고하여 실시예들에 대하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
본 명세서의 실시예에서 “사용자”라는 용어는 시스템, 기능 또는 동작을 제어하는 사람을 의미하며, 개발자, 관리자 또는 설치 기사를 포함할 수 있다.
도 1은 일 실시예에 따른, 서비스형 함수를 제공하는 시스템의 구성을 나타내는 블록도이다.
일 실시예에 따른 시스템은 서버리스 클라우드 컴퓨팅 서비스를 제공하는 시스템으로, 이벤트에 대해 코드를 실행하여 응답하는 클라우드 컴퓨팅 방식을 제공할 수 있다. 여기서, 서버리스, 서버가 없다는 표현은, 해당 이벤트에 대해 별도로 할당된 서버가 없어, 사용자가 인프라 및 플랫폼 관리를 할 필요가 없다는 의미이다. 일 실시예에 따른 시스템은, 이벤트가 발생했을 때 함수 단위의 코드를 실행하는 서비스형 함수(FaaS)를 제공할 수 있다.
도 1을 참조하면, 일 실시예에 따른 시스템(100)은 웹 서버(25), 컨트롤러(31), 부하 분산기(32), 스케쥴러(33), 풀 매니저(34), 데이터 베이스(45), 인보커(51), 및 컨테이너(53)를 포함할 수 있다.
웹 서버(25)는 일 실시예에 따른 시스템(100)의 프론트엔드(front-end)로서 동작하며, 외부 디바이스(10)의 사용자에게 웹(web)을 제공한다. 예를 들어, 웹 서버(25)는 사용자가 서비스를 요청하는 경우, 네트워크를 통해 HTML로 구성된 웹 페이지를 제공한다. 웹 서버(25)는 엔진x(nginx), 아파치(Apache) 등으로 구성될 수 있으나, 이에 한정되지 않는다.
일 실시예에 따른 웹 서버(25)는 외부 디바이스(10)로부터 함수의 실행 요청을 다양한 형태로 수신할 수 있다.
웹 서버(25)는 외부 디바이스(10)로부터 수신한 함수의 실행 요청을 컨트롤러(31)로 전달하며, 컨트롤러(31)로부터 함수의 실행 결과를 수신하여, 외부 디바이스(10)로 전송할 수 있다.
일 실시예에 따른 외부 디바이스(10)는, 휴대폰, 태블릿 PC, 디지털 카메라, 캠코더, 노트북 컴퓨터(laptop computer), 태블릿 PC, 데스크탑, 전자책 단말기, 디지털 방송용 단말기, PDA(Personal Digital Assistants), PMP(Portable Multimedia Player), 네비게이션, MP3 플레이어, IoT 디바이스, 착용형 기기(wearable device), CE(Consumer Elctronics) 기기(예컨대, 디스플레이 패널을 갖는 냉장고, 에어컨 등) 등과 같은 다양한 전자 장치로 구현될 수 있으나, 이에 한정되지 않는다.
일 실시예에 따른 컨트롤러(31)는 데이터 베이스(45)를 이용하여, 외부 디바이스(10)로부터 수신된 요청에 권한이 있는지를 확인하고, 권한이 확인되면, 부하 분산기(32)로 해당 요청을 전달할 수 있다. 이때, 컨트롤러(31)와 부하 분산기(32) 사이에서의 요청, 데이터 등의 전달은 메시지 큐를 통하여 전달될 수 있으나, 이에 한정되지 않는다.
부하 분산기(32)는 복수의 인보커들 중에서 해당 요청에 가장 적절한 인보커(51)로 요청에 대응하는 작업을 할당할 수 있다. 이때, 부하 분산기(32)와 인보커(51) 사이에서의 요청, 데이터 등의 전달은 메시지 큐를 통하여 전달될 수 있으나, 이에 한정되지 않는다.
인보커(51)는 부하 분산기(32)에 의해 할당된 작업에 필요한 정보를 데이터 베이스(45)로부터 가져오고, 컨테이너(53)에서 작업을 실행하도록 제어할 수 있다. 예를 들어, 인보커(51)는 실행이 요청된 함수에 대응하는 코드를 데이터 베이스(45)로부터 가져와, 컨테이너(53)로 전달하고, 컨테이너(53)는 인보커(51)로부터 수신한 코드를 실행시킬 수 있다.
스케쥴러(33) 및 풀 매니저(34)에 대해서는 도 2를 참조하여, 자세히 설명하기로 한다.
한편, 데이터 베이스(45)는 일 실시예에 따른 시스템(100)에 등록된 함수를 실행시킬 권한 정보, 시스템(100)에 등록된 함수에 대응하는 코드, 함수를 실행시키기 위해 필요한 데이터, 파일, 라이브러리 등이 저장될 수 있다.
일 실시예에 따른 시스템의 구성들은 그 기능에 따라, 프론트 엔드 레이어(20), 스케쥴링 레이어(30), 작업 레이어(50) 및 스토리지 레이어(40)로 구분할 수 있으나, 일 예에 불과하며, 이에 한정되는 것은 아니다.
도 2는 일 실시예에 따른 시스템의 구성을 나타내는 블록도이다.
도 2를 참조하면, 일 실시예에 따른 시스템(100)은 데이터 베이스(45), 부하 분산기(32), 스케쥴러(33), 풀 매니저(34) 및 풀 생성기(37)를 포함할 수 있다.
스케쥴러(33)는 부하 분산기(32)로 수신되는 요청을 모니터링할 수 있다. 예를 들어, 스케쥴러(33)는 도 1의 컨트롤러(31)와 부하 분산기(32) 사이에 메시지 큐를 포함하는 경우, 메시지 큐에 저장된 요청들을 모니터링할 수 있다. 다만, 이에 한정되지 않는다. 스케쥴러(33)는 함수의 실행 정보를 모니터링할 수 있으며, 예를 들어, 함수의 실행 요청이 수신되는 시점, 함수의 실행 요청 횟수, 함수의 실행 요청 빈도 등을 모니터링할 수 있다. 또한, 스케쥴러(33)는 월별, 요일별, 시간대별, 기념일별로 함수의 실행 요청 횟수를 카운트할 수 있다. 스케쥴러(33)는 함수 별로 함수의 실행 정보를 모니터링할 수 있으며, 모니터링된 정보를 분석하여, 데이터베이스(45)에 저장할 수 있다.
예를 들어, 스케쥴러(33)는 함수 별로, 함수의 실행 요청 횟수가 기 설정된 횟수 이상인 시간 정보를 결정하여, 결정된 시간 정보를 데이터 베이스(45)에 저장할 수 있다. 또한, 해당 시간 정보에 수신되는 실행 요청 횟수, 해당 시간 정보에 수신되는 실행 요청에 응답하여, 함수를 실행하기 위해 필요로 하는 리소스 양(예를 들어, 인보커 및 컨테이너의 개수 등)을 결정하여, 데이터 베이스(45)에 저장할 수 있다. 다만, 이에 한정되지 않는다.
한편, 스케쥴러(33)는 예측 모델을 이용하여, 함수 별로, 실행 요청 시점 또는 해당 시점의 실행 요청 횟수 등을 예측할 수 있다. 예측 모델은 함수의 실행 정보를 이용하여 학습될 수 있다. 또한, 스케쥴러(33)는 예측 모델을 이용하여, 함수 별로, 작업부하, 응답시간, 함수 실행 시간, 함수 실행에 필요한 메모리 크기 등을 예측할 수 있다. 예측 모델은 함수의 특성을 이용하여, 학습될 수 있다. 예측 모델은 신경망을 기반으로 하는 모델일 수 있으며, 예를 들어, DNN(Deep Neural Network), RNN(Recurrent Neural Network), BRDNN(Bidirectional Recurrent Deep Neural Network)과 같은 모델이 사용될 수 있으나, 이에 한정되지 않는다.
한편, 데이터 베이스(45)는 함수 특성을 분석한 결과를 저장할 수 있다. 예를 들어, 시스템(100)은 함수의 테스트 로그 정보, 함수의 코드 크기, 함수 실행 시 외부 라이브러리가 필요한지 여부, 함수에 다른 함수들이 포함되어 있는지 여부 등을 분석할 수 있으며, 분석 결과에 기초하여, 함수를 실행하기 위한 리소스의 양을 결정하여, 데이터 베이스(45)에 저장할 수 있다.
풀 매니저(34)는 데이터 베이스(45)로부터 함수에 대응하는 풀(pool) 구성 정보를 가져오고, 풀(pool) 구성 정보에 따라, 풀(pool)을 생성하도록 풀 생성기를 제어할 수 있다. 예를 들어, 매년 1월 1일 0시에 함수 A에 대한 실행 요청 횟수가 기 설정된 횟수 이상인 경우, 풀 매니저(34)는 매년 1월 1일 0시 전에, 함수 A를 실행하기 위한 제1 컨테이너 및 제1 인보커를 생성하도록 풀 생성기에 요청할 수 있다. 이에 따라, 풀 생성기(37)는 매년 1월 1일 0시 전에 함수 A를 실행하기 위한 제1 컨테이너(73) 및 제1 인보커(71)를 생성할 수 있다.
한편, 도 1 및 2의 웹 서버(25), 컨트롤러(31), 부하 분산기(32), 스케쥴러(33), 풀 매니저(34), 데이터 베이스(45), 인보커(51), 및 컨테이너(53) 중 적어도 하나는 하드웨어 형태로 제작되어 하나의 장치에 탑재될 수도 있으며, 또는 별개의 장치들에 각각 탑재될 수도 있다. 또한, 웹 서버(25), 컨트롤러(31), 부하 분산기(32), 스케쥴러(33), 풀 매니저(34), 데이터 베이스(45), 인보커(51), 및 컨테이너(53) 중 적어도 하나는 소프트웨어 모듈로 구현될 수 있다. 웹 서버(25), 컨트롤러(31), 부하 분산기(32), 스케쥴러(33), 풀 매니저(34), 데이터 베이스(45), 인보커(51), 및 컨테이너(53) 중 적어도 하나가 소프트웨어 모듈(또는, 인스터력션(instruction) 포함하는 프로그램 모듈)로 구현되는 경우, 소프트웨어 모듈은 컴퓨터로 읽을 수 있는 판독 가능한 비일시적 판독 가능 기록매체(non-transitory computer readable media)에 저장될 수 있다. 또한, 이 경우, 적어도 하나의 소프트웨어 모듈은 OS(Operating System)에 의해 제공되거나, 소정의 애플리케이션에 의해 제공될 수 있다. 또는, 적어도 하나의 소프트웨어 모듈 중 일부는 OS(Operating System)에 의해 제공되고, 나머지 일부는 소정의 애플리케이션에 의해 제공될 수 있다.
도 3은 일 실시예에 따른 시스템의 구성을 나타내는 블록도이다.
일 실시예에 따른 시스템(200)은, 통신부(210), 프로세서(220), 및 메모리(230)를 포함할 수 있다.
일 실시예에 따른 프로세서(220)는 시스템(200)을 전반적으로 제어할 수 있다. 일 실시예에 따른 프로세서(220)는 메모리(230)에 저장되는 하나 이상의 프로그램들을 실행할 수 있다.
일 실시예에 따른 메모리(230)는 시스템(200)을 구동하고 제어하기 위한 다양한 데이터, 프로그램 또는 어플리케이션을 저장할 수 있다. 메모리(230)에 저장되는 프로그램은 하나 이상의 인스트럭션들을 포함할 수 있다. 메모리(230)에 저장된 프로그램(하나 이상의 인스트럭션들) 또는 어플리케이션은 프로세서(220)에 의해 실행될 수 있다. 또한, 메모리(220)는 도 1 및 도 2에서 도시하고 설명한 데이터 베이스(45)를 포함할 수 있으나, 이에 한정되지 않는다.
일 실시예에 따른 프로세서(220)는 도 1 및 도 2에서 도시하고 설명한 컨트롤러(31), 부하 분산기(32), 스케쥴러(33), 풀 매니저(34), 인보커(51) 및 컨테이너(53)의 동작들 중 적어도 하나를 수행할 수 있다.
예를 들어, 프로세서(220)는 함수의 실행 정보 및 함수의 특성 중 적어도 하나를 분석할 수 있다. 프로세서(220)는 함수의 실행 요청 시점, 함수의 실행 요청 횟수 및 함수의 실행 요청 빈도 등을 모니터링하여, 함수의 실행 정보를 분석할 수 있다. 또한, 프로세서(220)는 함수의 실행 정보를 분석한 결과를 이용하여, 특정 시간 별, 요일 별 리소스 설정과 관련된 추천 정보(메모리 사양이나 CPU 사양과 관련된 추천 정보)를 제공할 수 있다.
또는, 프로세서(220)는 함수의 테스트 로그 정보, 함수의 코드 크기, 함수 실행 시 외부 라이브러리가 필요한지 여부, 함수에 다른 함수들이 포함되어있는지 여부 등을 분석할 수 있다. 또한, 프로세서(220)는 함수의 테스트 로그 정보, 함수의 코드 크기, 함수 실행 시 외부 라이브러리가 필요한지 여부, 함수에 다른 함수들이 포함되어있는지 여부 중 적어도 하나에 기초하여, 함수의 연산량을 결정할 수 있다. 프로세서(220)는 결정된 함수의 연산량에 기초하여, 함수에 대한 메모리 사양이나 CPU 사양에 대한 추천 정보를 제공할 수 있다.
프로세서(220)는 함수의 실행 정보를 분석하여, 함수가 기 설정된 횟수 이상 요청되는 시간 정보를 결정하고, 결정된 시간 정보에 대응하는 시점 전에, 함수를 실행하기 위한 리소스를 생성 및 할당할 수 있다. 예를 들어, 프로세서(220)는 특정 시점에 함수 A를 실행하기 위한 제1 인보커 및 제1 컨테이너를 생성할 수 있으며, 제1 컨테이너에는 함수 A를 실행하기 위해 필요한 데이터, 파일, 라이브러리 등을 포함시키거나 설치할 수 있다. 또한, 프로세서(220)는 함수 A의 실행 요청 횟수에 기초하여, 제1 인보커 및 제1 컨테이너의 개수를 결정할 수 있다.
또한, 프로세서(220)는 함수의 특성 정보를 분석하여, 함수의 연산량을 결정하고, 결정된 함수의 연산량에 따라 할당되는 리소스의 양을 결정할 수 있다. 예를 들어, 프로세서(200)는 함수 A의 특성을 분석하여, 함수 A의 연산량을 결정하고, 결정된 함수 A의 연산량이 기 설정된 연상량 이상인 경우, 함수 A에 많은 양의 리소스를 할당할 수 있다.
한편, 프로세서(220)는 예측 모델을 이용하여, 함수 별로, 실행 요청 시점 또는 해당 시점의 실행 요청 횟수 등을 예측할 수 있다. 예측 모델은 함수의 실행 정보를 이용하여 학습될 수 있다. 또한, 프로세서(220)는 예측 모델을 이용하여, 함수 별로, 작업부하, 응답시간, 함수 실행 시간, 함수 실행에 필요한 메모리 크기 등을 예측할 수 있다. 예측 모델은 함수의 특성을 이용하여, 학습될 수 있다. 예측 모델은 신경망을 기반으로 하는 모델일 수 있으며, 예를 들어, DNN(Deep Neural Network), RNN(Recurrent Neural Network), BRDNN(Bidirectional Recurrent Deep Neural Network)과 같은 모델이 사용될 수 있으나, 이에 한정되지 않는다.
또한, 프로세서(220)는 함수의 실행 요청에 응답하여, 함수에 할당된 리소스를 이용하여, 함수를 실행할 수 있다. 예를 들어, 프로세서(220)는 함수 A를 실행하기 위한 제1 컨테이너 및 제1 인보커가 미리 생성된 경우, 함수 A에 대한 실행 요청이 수신되면, 생성된 제1 인보커 및 제1 컨테이너를 이용하여, 지연시간 없이 함수 A를 빠르게 실행시킬 수 있다.
통신부(210)는 프로세서(220)의 제어에 의해 외부 장치 또는 외부 서버와 데이터 또는 신호를 송수신할 수 있다. 일 실시예에 따른 통신부(210)는 도 1에서 도시하고 설명한 웹 서버(25)의 동작을 수행할 수 있다. 예를 들어, 통신부(210)는 네트워크를 통하여, 외부 장치 또는 외부 서버로부터 함수 실행 요청을 수신할 수 있다. 또한, 통신부(210)는 함수를 실행한 결과를 외부 장치 또는 외부 서버로 전송할 수 있다.
통신부(210)는 근거리 통신망(Local Area Network; LAN), 광역 통신망(Wide Area Network; WAN), 부가가치 통신망(Value Added Network; VAN), 이동 통신망(mobile radio communication network), 위성 통신망 및 이들의 상호 조합을 통하여 통신을 하게 하는 하나 이상의 구성요소를 포함할 수 있다. 또한, 통신부(210)는 외부 장치 또는 외부 서버와 직접 무선랜(예를 들어, 와이-파이(Wi-Fi)) 등을 이용하여 무선으로 데이터 또는 신호를 송수신할 수 있다.
한편, 도 1 내지 3에 도시된 시스템의 블록도들은 일 실시예를 위한 블록도들이다. 블록도의 각 구성요소는 실제 구현되는 시스템(100, 200)의 사양에 따라 통합, 추가, 또는 생략될 수 있다. 즉, 필요에 따라 2 이상의 구성요소가 하나의 구성요소로 합쳐지거나, 혹은 하나의 구성요소가 2 이상의 구성요소로 세분되어 구성될 수 있다. 또한, 각 블록에서 수행하는 기능은 실시예들을 설명하기 위한 것이며, 그 구체적인 동작이나 장치는 본 발명의 권리범위를 제한하지 아니한다.
도 4는 일 실시예에 따른 시스템의 동작을 설명하기 위해 참조되는 도면이다.
일 실시예에 따른 시스템(100, 200)은 함수의 실행 정보를 모니터링 할 수 있다. 예를 들어, 시스템(100, 200)은, 함수의 실행 요청이 수신되는 시점, 함수의 실행 요청 횟수, 함수의 실행 요청 빈도 등을 모니터링할 수 있다. 또한, 시스템(100, 200)은 월별, 요일별, 시간대별, 기념일별로 함수의 실행 요청 횟수를 카운트할 수 있다.
또한, 시스템(100, 200)은 예측 모델을 이용하여, 함수 별로, 실행 요청 시점 또는 해당 시점의 실행 요청 횟수 등을 예측할 수 있다. 예측 모델은 함수의 실행 정보를 이용하여 학습될 수 있다.
이에 따라, 시스템(100, 200)은 함수의 실행 요청 횟수가 기 설정된 횟수 이상인 시간 정보를 결정할 수 있으며, 결정된 시간 정보에 대응하는 시점 전에 해당 함수를 실행하기 위한 리소스를 추가로 할당할 수 있다.
예를 들어, 매년 1월 1일 0시에 함수 A에 대한 실행 요청 횟수가 기 설정된 횟수 이상인 경우, 시스템은 매년 1월 1일 0시 전에 함수 A를 실행하기 위한 제1 컨테이너(412) 및 제1 인보커(411)를 추가로 생성할 수 있다. 또한, 시스템은 결정된 시간 정보(예를 들어, 매년 1월 1일 0시)에 대응하는 함수 A의 실행 요청 횟수를 고려하여, 추가로 생성하기 위한 제1 컨테이너(412) 및 제1 인보커(411)의 개수를 결정할 수 있다. 이때, 제1 컨테이너(412)에는, 함수 A를 실행하기 위해 필요한 데이터, 파일, 라이브러리 등이 포함되거나 설치될 수 있다. 예를 들어, 함수 A를 실행하기 위해 외부 라이브러리가 필요한 경우, 제1 컨테이너(412)에는 결정된 시간 정보에 대응하는 시점 전에, 외부 라이브러리가 미리 다운로드 될 수 있다. 또한, 라이브러리가 함수를 실행하기 위한 파일에 함께 압축되어 있거나, 설치 파일을 포함하는 경우, 제1 컨테이너(412)에는 결정된 시간 정보에 대응하는 시점 전에, 압축을 미리 풀거나, 설치 파일을 실행하여, 라이브러리를 설치할 수 있다.
이에 따라, 제1 디바이스(11)로부터 함수 A의 실행 요청이 수신되면, 시스템(100, 200)은, 미리 생성한 제1 컨테이너(412) 및 제1 인보커(411)를 이용하여, 지연시간 없이 함수 A를 빠르게 실행할 수 있다. 제1 인보커(411)는 제1 컨테이너(412)를 이용하여, 함수 A를 실행하도록 제어할 수 있다. 예를 들어, 제1 인보커(411)는 제1 컨테이너(412)에 함수 A에 대응하는 코드를 전달하고, 제1 컨테이너(412)는 함수 A에 대응하는 코드를 실행시킬 수 있다.
한편, 매일 오전 9시에 함수 B에 대한 실행 요청 횟수가 기 설정된 횟수 이상인 경우, 시스템(100, 200)은 매일 오전 9시 전에 함수 B를 실행하기 위한 제2 컨테이너(422) 및 제2 인보커(421)를 추가로 생성할 수 있다. 이때, 시스템(100, 200)은 결정된 시간 정보(예를 들어, 매일 오전 9시)에 대응하는 함수 B의 실행 요청 횟수를 고려하여, 추가로 생성하기 위한 제2 컨테이너(422) 및 제2 인보커(421)의 개수를 결정할 수 있다. 이때, 제2 컨테이너(422)에는, 함수 B를 실행하기 위해 필요한 데이터, 파일, 라이브러리 등이 포함되거나 설치될 수 있다.
이에 따라, 제2 디바이스(12)로부터 함수 B의 실행 요청이 수신되면, 시스템(100, 200)은, 미리 생성한 제2 컨테이너(422) 및 제2 인보커(421)를 이용하여, 지연시간 없이 함수 B를 빠르게 실행할 수 있다. 제2 인보커(421)는 제2 컨테이너(422)를 이용하여, 함수 B를 실행하도록 제어할 수 있다.
도 5는 일 실시예에 따른 시스템의 동작을 설명하기 위해 참조되는 도면이다.
일 실시예에 따른 시스템(100, 200)은 함수의 특성을 분석할 수 있다. 예를 들어, 시스템(100, 200)은, 함수의 테스트 로그 정보, 함수의 코드 크기, 함수 실행 시 외부 라이브러리가 필요한지 여부, 함수에 다른 함수들이 포함되어 있는지 여부 등을 분석하여, 함수의 연산량을 결정할 수 있다. 시스템(100, 200)은, 결정된 함수의 연산량에 기초하여, 함수에 할당되는 리소스의 양을 결정할 수 있다.
시스템(100, 200)은, 함수 A의 연산량이 기 설정된 연산량보다 작은 경우, 함수 A에는 일반적인 리소스를 할당할 수 있으며, 함수 B의 연산량이 기 설정된 연산량 이상인 경우, 함수 B에는 많은 양의 리소스를 할당할 수 있다. 예를 들어, 함수 A의 연산량이 기 설정된 연산량보다 작은 것으로 결정되면, 시스템(100, 200)은, 함수 A에 N개의 컨테이너를 할당할 수 있다. 이에 따라, 제1 디바이스(11)로부터 함수 A의 실행 요청이 수신되면, 시스템은, 함수 A에 할당된 N개의 컨테이너를 이용하여, 함수 A를 실행할 수 있다.
반면에, 함수 B의 연산량이 기 설정된 연산량보다 많은 것으로 결정되면, 시스템(100, 200)은 함수 B에 N보다 큰 M개의 컨테이너를 할당할 수 있다. 이에 따라, 제2 디바이스(12)로부터 함수 B의 실행 요청이 수신되면, 시스템(100, 200)은 함수 B에 할당된 M개의 컨테이너를 이용하여, 함수 B를 실행할 수 있다.
기 설정된 연산량은 복수의 값들을 포함할 수 있으며, 시스템(100, 200)은, 함수의 연산량이 포함되는 구간에 따라, 서로 다른 리소스를 할당할 수 있다. 이에 따라, 함수의 실행 속도가 빨라질 수 있으며, 시스템의 리소스 관리가 효율적일 수 있다.
도 6은 일 실시예에 따른 시스템의 동작을 설명하기 위해 참조되는 도면이다.
일 실시예에 따른 시스템(100, 200)은 함수 실행 시 외부 라이브러리가 필요한지 여부를 판단하고, 외부 라이브러리가 필요한 경우, 필요한 외부 라이브러리를 미리 다운로드할 수 있다. 예를 들어, 함수 C를 실행하기 위한 파일에 외부 라이브러리가 함께 압축되어 있거나, 외부 라이브러리 설치 파일을 포함하는 경우, 압축을 미리 풀거나, 설치 파일을 실행하여, 함수 C에 할당된 컨테이너(615)에 라이브러리를 설치할 수 있다. 이때, 시스템(100, 200)은 함수 C가 요청될 시점을 예측하여, 예측된 시점 전에 외부 라이브러리를 미리 다운로드할 수 있다.
시스템(100, 200)은, 컨테이너에 함수 실행에 필요한 라이브러리를 미리 다운로드하거나 설치하는 경우, 함수가 실행될 때, 라이브러리를 다운로드한 후, 함수를 실행하는 경우보다 함수 실행 요청 응답 시간을 단축시킬 수 있다.
도 7은 일 실시예에 따른 시스템에서 제공하는 사용자 인터페이스 화면의 일 예를 나타내는 도면이다.
도 7을 참조하면, 일 실시예에 따른 시스템(100, 200)은 함수 별로, 메모리 및 CPU에 대한 사양을 설정하고, 함수 별, 특정 시점 별로, 메모리 및 CPU에 대한 사양을 설정할 수 있는 사용자 인터페이스를 제공할 수 있다.
예를 들어, 사용자 인터페이스 화면(700)은 특정 함수에 대하여, 메모리 및 CPU에 대한 사양을 설정할 수 있는 항목, 특정 함수에 대하여, 자동 예측 기능을 적용할 지를 선택할 수 있는 항목, 특정 함수에 대하여, 특정 시점 별로 메모리 및 CPU에 대한 사양을 설정할 수 있는 항목들을 포함할 수 있다.
도 7에는, 함수 A가 선택되고, 함수 A에 대응하는 리소스를 설정하는 일 예가 도시되어 있다. 사용자는 제1 항목(710)을 이용하여, 함수 A에 대한 메모리 사양을 설정할 수 있으며, 제2 항목(720)을 이용하여, 함수 A에 대한 CPU 사양을 설정할 수 있다.
예를 들어, 메모리 사양을 128MB로, CPU 사양을 200MHz로 설정되고, 함수 A의 실행 요청이 수신되는 경우, 128MB의 메모리와 200MHz의 CPU를 이용하여, 함수 A가 실행될 수 있다.
한편, 시스템(100, 200)은 함수 A의 특성을 분석하고, 분석한 결과에 기초하여, 함수 A를 실행하기 위한 리소스의 설정과 관련된 추천 정보를 제공할 수 있다.
예를 들어, 시스템(100, 200)함수 A의 테스트 로그 정보, 함수 A의 코드 크기, 함수 A의 실행 시 외부 라이브러리가 필요한지 여부, 함수 A에 다른 함수들이 포함되어 있는지 여부 중 적어도 하나에 기초하여, 함수 A의 연산량을 결정할 수 있다. 시스템(100, 200)은 도 7에 도시된 바와 같이, 결정된 연산량에 기초하여, 함수 A에 대한 메모리 사양이나 CPU 사양에 대한 추천 정보(715, 725)를 제공할 수 있다.
또한, 사용자는 제3 항목(730)을 이용하여, 함수 A에 대한 자동 예측 기능을 적용할지 여부를 선택할 수 있다. 예를 들어, 함수 A에 자동 예측 기능을 적용하는 경우, 시스템은, 함수 A의 실행 정보(예를 들어, 함수 A의 실행 요청 시점, 함수 A의 실행 요청 횟수, 함수 A의 실행 요청 빈도 등)를 모니터링하여, 함수 A의 실행 시점을 예측하고, 예측된 시점 전에 함수 A를 실행하기 위한 최적화된 리소스를 할당할 수 있다.또한, 사용자는 제4 항목(740) 및 제5 항목(750)을 이용하여, 함수 A에 대한 특정 날짜 및 특정 시간에 대응하는 메모리 및 CPU 사양을 설정할 수 있다. 예를 들어, 날짜는 2018년 07월 04일로, 시간은 21:30 ~ 23:40으로, 메모리 사양은 256MB로, CPU 사양은 400MHz로 설정되고, 2018년 07월 04일, 21:30 ~ 23:40에 함수 A의 실행 요청이 수신되는 경우, 256MB의 메모리와 400MHz의 CPU를 이용하여, 함수 A가 실행된다.
또한, 사용자는 제6 항목(760)을 이용하여, 함수 A에 대하여, 요일 별로 특정 시간에 대응하는 메모리 및 CPU 사양을 설정할 수 있다. 예를 들어, 요일은 월요일로, 시간은 9:30~10:40으로, 메모리 사양은 256MB로, CPU 사양은 400MHz로 설정되고, 월요일, 9:30~10:40에 함수 A의 실행 요청이 수신되는 경우, 256MB의 메모리와 400MHz의 CPU를 이용하여, 함수 A가 실행된다.
한편, 시스템(100, 200)은 함수 A의 실행 정보(예를 들어, 함수 A의 실행 요청 시점, 함수 A의 실행 요청 횟수, 함수 A의 실행 요청 빈도 등)를 분석한 결과를 이용하여, 사용자에게 요일 별 리소스 설정과 관련된 추천 정보를 제공할 수 있다. 예를 들어, 도 7에 도시된 추천 정보 아이콘(765)이 선택되면, 시스템(100, 200)은 함수 A의 요일 별 메모리 사양이나 CPU 사양과 관련된 추천 정보를 제공하거나, 추천된 함수 A의 요일 별 메모리 사양이나 CPU 사양이 자동으로 제6 항목(760)에 입력할 수 있다. 다만, 이에 한정되지 않는다.
또한, 사용자는 제7 항목(770)을 이용하여, 함수에 외부 라이브러리 등이 압축 파일로 포함되어 있는 경우, 함수가 실행되기 전에 함수를 실행하기 위한 컨테이너에 외부 라이브러리의 압축을 풀거나 다운로드 할 지를 설정할 수 있다.
또한, 사용자는 제8 항목(780)을 이용하여, 함수의 특성에 따라 연산량을 결정하고, 결정된 연산량에 따라 최적화된 리소스(예를 들어, 리소스의 양을 결정)를 할당할 지를 설정할 수 있다.
도 8은 일 실시예에 따른 시스템의 동작방법을 나타내는 흐름도이다.
도 8을 참조하면, 시스템(100, 200)은, 함수의 특성 및 함수의 실행 정보 중 적어도 하나를 분석할 수 있다(S810).
예를 들어, 시스템(100, 200)은, 함수의 테스트 로그 정보, 함수의 코드 크기, 함수 실행 시 외부 라이브러리가 필요한지 여부, 함수에 다른 함수들이 포함되어 있는지 여부 등을 분석할 수 있다. 또는, 시스템(100, 200)은, 함수의 실행 요청 시점, 함수의 실행 요청 횟수, 함수의 실행 요청 빈도 등을 분석할 수 있다. 이에 대해서는 도 9에서 자세히 후술하기로 한다.
시스템(100, 200)은, 분석 결과에 기초하여, 함수를 실행하기 위한 리소스를 할당할 수 있다(S820).
예를 들어, 시스템(100, 200)은 함수 A의 특성을 분석하여, 함수 A의 연산량을 결정하고, 결정된 함수 A의 연산량이 기 설정된 연상량 이상인 경우, 함수 A에 많은 양의 리소스를 할당할 수 있다. 또는, 함수 A 실행 시, 외부 라이브러리가 필요한 경우, 함수 A를 실행하기 위한 컨테이너를 할당하고, 함수 A에 할당된 컨테이너에 외부 라이브러리를 미리 다운로드 할 수 있다.
또는, 함수 A의 실행 정보를 분석하여, 함수 A의 실행 요청 시점 및 함수 A의 요청 횟수를 예측하고, 예측된 시점 및 횟수에 맞추어, 함수 A를 실행하기 위한 리소스를 할당할 수 있다. 이에 대해서는 도 9에서 자세히 후술하기로 한다.
시스템(100, 200)은, 함수의 실행 요청을 수신하면(S830), 단계에서 할당된 리소스를 이용하여, 함수를 실행할 수 있다(S840).
예를 들어, 820 단계(S820)에서, 함수 A를 실행하기 위한 제1 컨테이너 및 제1 인보커가 생성된 경우, 함수 A에 대한 실행 요청이 수신되면, 시스템(100, 200)은 제1 인보커 및 제1 컨테이너를 이용하여, 지연시간 없이 함수 A를 빠르게 실행시킬 수 있다.
도 9는 일 실시예에 따른 시스템의 동작방법을 나타내는 흐름도이다.
도 9를 참조하면, 시스템(100, 200)은, 함수의 실행 정보를 모니터링할 수 있다(S910).
예를 들어, 시스템(100, 200)은 외부 디바이스로부터 함수의 실행 요청이 수신되는 시점, 함수의 실행 요청 횟수, 함수의 실행 요청 빈도 등을 모니터링할 수 있다. 또한, 시스템은 월별, 요일별, 시간대별, 기념일별로 함수의 실행 요청 횟수를 카운트할 수 있다. 또한, 시스템은 함수 별로 함수의 실행 정보를 모니터링할 수 있으며, 모니터링된 정보를 분석하여, 데이터베이스에 저장할 수 있다.
시스템(100, 200)은 910 단계(S910)에서 모니터링한 정보에 기초하여, 함수의 실행 요청 횟수가 기 설정된 횟수 이상인 시간 정보를 결정할 수 있다(S920).
예를 들어, 매년 1월 1일 0시에 함수 A에 대한 실행 요청 횟수가 기 설정된 횟수 이상인 경우, 시스템(100, 200)은 매년 1월 1일 0시를 함수 A에 대한 시간 정보로 결정할 수 있다. 또는, 매일 오전 9시에 함수 B에 대한 실행 요청 횟수가 기 설정된 횟수 이상인 경우, 시스템(100, 200)은 매일 오전 9시를 함수 B에 대한 시간 정보로 결정할 수 있다. 다만, 이에 한정되지 않는다.
시스템(100, 200)은 920 단계(S920)에서 결정된 시간 정보에 대응하는 시점 전에, 함수를 실행 하기 위한 컨테이너를 생성할 수 있다(S930).
예를 들어, 시스템은 매년 1월 1일 0시 전에 함수 A를 실행하기 위한 제1 인보커 및 제1 컨테이너를 생성할 수 있다. 예를 들어, 제1 컨테이너에는, 함수 A를 실행하기 위해 필요한 데이터, 파일, 라이브러리 등이 포함되거나 설치될 수 있다. 이때, 시스템은, 910 단계(S910)에서 모니터링된 함수 A의 실행 요청 횟수에 기초하여, 제1 인보커 및 제1 컨테이너의 개수를 결정할 수 있다.
또한, 시스템(100, 200)은 매일 오전 9시 전에 함수 B를 실행하기 위한 제2 인보커 및 제2 컨테이너를 생성할 수 있으며, 함수 B의 실행 요청 횟수에 기초하여, 제2 인보커 및 제2 컨테이너의 개수를 결정할 수 있다.
시스템(100, 200)은, 함수의 실행 요청을 수신하면, 단계에서 미리 생성된 컨테이너를 이용하여, 함수를 실행할 수 있다(S940).
예를 들어, 930 단계(S930) 에서, 함수 A를 실행하기 위한 제1 컨테이너 및 제1 인보커가 생성된 경우, 함수 A에 대한 실행 요청이 수신되면, 시스템(100, 200)은 제1 인보커 및 제1 컨테이너를 이용하여, 지연시간 없이 함수 A를 빠르게 실행시킬 수 있다.
도 10은 일 실시예에 따른 시스템의 동작방법을 나타내는 흐름도이다.
도 10을 참조하면, 시스템(100, 200)은 함수를 실행하기 위한 리소스의 설정 요청을 수신할 수 있다(S1010).
시스템(100, 200)은 리소스의 설정 요청에 응답하여, 특정 함수에 대하여, 메모리 및 CPU에 대한 사양을 설정할 수 있는 항목, 특정 함수에 대하여, 자동 예측 기능을 적용할 지를 선택할 수 있는 항목, 특정 함수에 대하여, 특정 시점 별로 메모리 및 CPU에 대한 사양을 설정할 수 있는 항목들을 포함하는 사용자 인터페이스 화면을 제공할 수 있다.
또한, 시스템(100, 200)은 리소스의 설정이 요청된 함수의 특성을 분석할 수 있다(S1020).
예를 들어, 시스템(100, 200)은 함수의 테스트 로그 정보, 함수의 코드 크기, 함수의 실행 시 외부 라이브러리가 필요한지 여부, 함수에 다른 함수들이 포함되어 있는지 여부 중 적어도 하나에 기초하여, 함수의 연산량을 결정할 수 있다.
또한, 시스템(100, 200)은 함수의 실행 정보(예를 들어, 함수의 실행 요청 시점, 함수의 실행 요청 횟수, 함수의 실행 요청 빈도 등)를 분석할 수 있다. 예를 들어, 시스템(100, 200)은, 함수의 실행 요청이 수신되는 시점, 함수의 실행 요청 횟수, 함수의 실행 요청 빈도 등을 모니터링할 수 있다. 또한, 시스템(100, 200)은 월별, 요일별, 시간대별, 기념일별로 함수의 실행 요청 횟수를 카운트할 수 있다. 또한, 시스템(100, 200)은 예측 모델을 이용하여, 함수 별로, 실행 요청 시점 또는 해당 시점의 실행 요청 횟수 등을 예측할 수 있다. 예측 모델은 함수의 실행 정보를 이용하여 학습될 수 있다. 이에 따라, 시스템(100, 200)은 함수의 실행 요청 횟수가 기 설정된 횟수 이상인 시간 정보를 결정할 수 있다.
시스템(100, 200)은 분석한 결과에 기초하여, 리소스의 설정과 관련된 추천 정보를 제공할 수 있다(S1030).
예를 들어, 시스템(100, 200)은 결정된 함수의 연산량에 기초하여, 함수에 대한 메모리 사양이나 CPU 사양에 대한 추천 정보를 제공할 수 있다.
또한, 시스템(100, 200)은 함수의 실행 정보를 분석한 결과를 이용하여, 사용자에게 특정 시간 별, 요일 별 리소스 설정과 관련된 추천 정보(메모리 사양이나 CPU 사양과 관련된 추천 정보)를 제공할 수 있다. 다만, 이에 한정되지 않는다.
일 실시예에 따른 서비스형 함수를 제공하는 시스템의 동작방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다.
또한, 개시된 실시예들에 따른 서비스형 함수를 제공하는 시스템 또는 시스템의 동작방법은 컴퓨터 프로그램 제품(computer program product)에 포함되어 제공될 수 있다. 컴퓨터 프로그램 제품은 상품으로서 판매자 및 구매자 간에 거래될 수 있다.
컴퓨터 프로그램 제품은 S/W 프로그램, S/W 프로그램이 저장된 컴퓨터로 읽을 수 있는 저장 매체를 포함할 수 있다. 예를 들어, 컴퓨터 프로그램 제품은 전자 장치의 제조사 또는 전자 마켓(예, 구글 플레이 스토어, 앱 스토어)을 통해 전자적으로 배포되는 S/W 프로그램 형태의 상품(예, 다운로더블 앱)을 포함할 수 있다. 전자적 배포를 위하여, S/W 프로그램의 적어도 일부는 저장 매체에 저장되거나, 임시적으로 생성될 수 있다. 이 경우, 저장 매체는 제조사의 서버, 전자 마켓의 서버, 또는 SW 프로그램을 임시적으로 저장하는 중계 서버의 저장매체가 될 수 있다.
컴퓨터 프로그램 제품은, 서버 및 클라이언트 장치로 구성되는 시스템에서, 서버의 저장매체 또는 클라이언트 장치의 저장매체를 포함할 수 있다. 또는, 서버 또는 클라이언트 장치와 통신 연결되는 제3 장치(예, 스마트폰)가 존재하는 경우, 컴퓨터 프로그램 제품은 제3 장치의 저장매체를 포함할 수 있다. 또는, 컴퓨터 프로그램 제품은 서버로부터 클라이언트 장치 또는 제3 장치로 전송되거나, 제3 장치로부터 클라이언트 장치로 전송되는 S/W 프로그램 자체를 포함할 수 있다.
이 경우, 서버, 클라이언트 장치 및 제3 장치 중 하나가 컴퓨터 프로그램 제품을 실행하여 개시된 실시예들에 따른 방법을 수행할 수 있다. 또는, 서버, 클라이언트 장치 및 제3 장치 중 둘 이상이 컴퓨터 프로그램 제품을 실행하여 개시된 실시예들에 따른 방법을 분산하여 실시할 수 있다.
예를 들면, 서버(예로, 클라우드 서버 또는 인공 지능 서버 등)가 서버에 저장된 컴퓨터 프로그램 제품을 실행하여, 서버와 통신 연결된 클라이언트 장치가 개시된 실시예들에 따른 방법을 수행하도록 제어할 수 있다.
이상에서 실시예들에 대하여 상세하게 설명하였지만 본 발명의 권리범위는 이에 한정되는 것은 아니고 다음의 청구범위에서 정의하고 있는 본 발명의 기본 개념을 이용한 당업자의 여러 변형 및 개량 형태 또한 본 발명의 권리범위에 속한다.

Claims (23)

  1. 서비스형 함수(FaaS)를 제공하는 시스템에 있어서,
    상기 함수를 실행하기 위한 리소스의 설정 요청을 수신하는 통신부;
    하나 이상의 인스트럭션들을 저장하는 메모리; 및
    상기 메모리에 저장된 상기 하나 이상의 인스트럭션들을 실행하는 프로세서를 포함하고,
    상기 프로세서는 상기 함수의 특성 및 상기 함수의 실행 정보 중 적어도 하나를 분석하고, 상기 분석한 결과에 기초하여, 상기 리소스의 설정과 관련된 추천 정보를 제공하고, 상기 함수의 실행 요청이 수신되면, 상기 추천 정보에 따라 상기 함수를 실행하기 위한 리소스를 할당하여, 상기 함수를 실행하는, 시스템.
  2. 제1항에 있어서,
    상기 프로세서는,
    상기 함수의 테스트 로그 정보, 상기 함수의 코드 크기, 상기 함수 실행 시 외부 라이브러리가 필요한지 여부 및 상기 함수에 다른 함수들이 포함되어 있는지 여부 중 적어도 하나에 기초하여, 상기 함수의 연산량을 결정하고, 상기 함수의 연산량에 기초하여, 상기 추천 정보를 제공하는, 시스템.
  3. 삭제
  4. 제1항에 있어서,
    상기 함수의 실행 정보는,
    상기 함수의 실행 요청 시간, 상기 함수의 실행 요청 횟수 및 상기 함수의 실행 요청 빈도 중 적어도 하나를 포함하고,
    상기 프로세서는, 상기 함수의 실행 요청 시간을 모니터링하여, 상기 함수의 실행 요청이 기 설정된 횟수 이상인 시간 정보를 결정하고, 결정된 시간 정보에 대응하는 상기 함수의 실행 요청 횟수에 기초하여, 상기 추천 정보를 제공하는, 시스템.
  5. 삭제
  6. 제1항에 있어서,
    상기 프로세서는,
    제1 함수의 특성 및 상기 제1 함수의 실행 정보 중 적어도 하나에 기초하여, 상기 제1 함수에 대응하는 제1 컨테이너를 생성하고, 제2 함수의 특성 및 상기 제2 함수의 실행 정보 중 적어도 하나에 기초하여, 상기 제2 함수에 대응하는 제2 컨테이너를 생성하며,
    상기 제1 함수에 대한 실행 요청이 있는 경우, 상기 제1 컨테이너를 이용하여, 상기 제1 함수를 실행하고, 상기 제2 함수에 대한 실행 요청이 있는 경우, 상기 제2 컨테이너를 이용하여, 상기 제2 함수를 실행하는, 시스템.
  7. 제1항에 있어서,
    상기 프로세서는,
    상기 함수의 실행 요청 시간을 모니터링하여, 상기 함수의 실행 요청이 기 설정된 횟수 이상인 시간 정보를 결정하고, 결정된 시간 정보에 기초하여, 상기 함수를 실행하기 위한 리소스를 할당하는, 시스템.
  8. 제7항에 있어서,
    상기 프로세서는,
    상기 시간 정보에 대응하는 시점 전에, 상기 함수를 실행하기 위한 인보커 및 컨테이너를 생성하는, 시스템.
  9. 제7항에 있어서,
    상기 프로세서는,
    상기 시간 정보에 대응하는 상기 함수의 실행 요청 횟수에 기초하여, 상기 함수를 실행하기 위한 리소스의 양을 결정하는, 시스템.
  10. 제1항에 있어서,
    상기 할당된 리소스는,
    상기 함수를 실행하기 위해 필요한 외부 라이브러리를 미리 다운로드한 컨테이너를 포함하는, 시스템.
  11. 제1항에 있어서,
    상기 프로세서는,
    상기 함수의 특성 정보에 기초하여, 상기 함수의 연산량을 결정하고, 상기 함수의 연산량이 기 설정된 연산량보다 작으면, 상기 함수에 N개의 컨테이너를 할당하고, 상기 함수의 연산량이 기 설정된 연산량 이상이면, 상기 함수에 N개보다 큰 M개의 컨테이너를 할당하는, 시스템.
  12. 서비스형 함수(FaaS)를 제공하는 시스템의 동작 방법에 있어서,
    상기 함수를 실행하기 위한 리소스의 설정 요청을 수신하는 단계;
    상기 함수의 특성 및 상기 함수의 실행 정보 중 적어도 하나를 분석하는 단계;
    상기 분석한 결과에 기초하여, 상기 리소스의 설정과 관련된 추천 정보를 제공하는 단계;
    상기 함수의 실행 요청을 수신하는 단계; 및
    상기 실행 요청에 응답하여, 상기 추천 정보에 따라 상기 함수를 실행하기 위한 리소스를 할당하여, 상기 함수를 실행하는 단계를 포함하는 동작방법.
  13. 제12항에 있어서,
    상기 함수의 특성 및 상기 함수의 실행 정보 중 적어도 하나를 분석하는 단계는,
    상기 함수의 테스트 로그 정보, 상기 함수의 코드 크기, 상기 함수 실행 시 외부 라이브러리가 필요한지 여부 및 상기 함수에 다른 함수들이 포함되어 있는지 여부 중 적어도 하나에 기초하여, 상기 함수의 연산량을 결정하는 단계를 포함하고,
    상기 리소스의 설정과 관련된 추천 정보를 제공하는 단계는,
    상기 함수의 연산량에 기초하여, 상기 추천 정보를 제공하는 단계를 포함하는, 동작방법.
  14. 삭제
  15. 제12항에 있어서,
    상기 함수의 실행 정보는,
    상기 함수의 실행 요청 시간, 상기 함수의 실행 요청 횟수 및 상기 함수의 실행 요청 빈도 중 적어도 하나를 포함하고,
    상기 함수의 특성 및 상기 함수의 실행 정보 중 적어도 하나를 분석하는 단계는,
    상기 함수의 실행 요청 시간을 모니터링하여, 상기 함수의 실행 요청이 기 설정된 횟수 이상인 시간 정보를 결정하는 단계를 포함하고,
    상기 추천 정보를 제공하는 단계는,
    상기 결정된 시간 정보에 대응하는 상기 함수의 실행 요청 횟수에 기초하여, 상기 추천 정보를 제공하는 단계를 포함하는, 동작방법.
  16. 삭제
  17. 제12항에 있어서,
    상기 함수를 실행하기 위한 리소스를 할당하는 단계는,
    제1 함수의 특성 및 상기 제1 함수의 실행 정보 중 적어도 하나에 기초하여, 상기 제1 함수에 대응하는 제1 컨테이너를 생성하고, 제2 함수의 특성 및 상기 제2 함수의 실행 정보 중 적어도 하나에 기초하여, 상기 제2 함수에 대응하는 제2 컨테이너를 생성하는 단계를 포함하고,
    상기 함수를 실행하는 단계는,
    상기 제1 함수에 대한 실행 요청이 있는 경우, 상기 제1 컨테이너를 이용하여, 상기 제1 함수를 실행하고, 상기 제2 함수에 대한 실행 요청이 있는 경우, 상기 제2 컨테이너를 이용하여, 상기 제2 함수를 실행하는 단계를 포함하는 동작방법.
  18. 제12항에 있어서,
    상기 함수의 특성 및 상기 함수의 실행 정보 중 적어도 하나를 분석하는 단계는,
    상기 함수의 실행 요청 시간을 모니터링하여, 상기 함수의 실행 요청이 기 설정된 횟수 이상인 시간 정보를 결정하는 단계를 포함하고,
    상기 함수를 실행하기 위한 리소스를 할당하는 단계는,
    상기 결정된 시간 정보에 기초하여, 상기 함수를 실행하기 위한 리소스를 할당하는 단계를 포함하는, 동작방법.
  19. 제18항에 있어서,
    상기 함수를 실행하기 위한 리소스를 할당하는 단계는,
    상기 시간 정보에 대응하는 시점 전에, 상기 함수를 실행하기 위한 인보커 및 컨테이너를 생성하는 단계를 포함하는, 동작방법.
  20. 제18항에 있어서,
    상기 함수의 실행 정보를 분석하는 단계는,
    상기 시간 정보에 대응하는 상기 함수의 실행 요청 횟수에 기초하여, 상기 함수를 실행하기 위한 리소스의 양을 결정하는 단계를 포함하는, 동작방법.
  21. 제12항에 있어서,
    상기 함수를 실행하기 위한 리소스를 할당하는 단계는,
    상기 함수를 실행하기 위해 필요한 외부 라이브러리를 미리 다운로드한 컨테이너를 생성하는 단계를 포함하는, 동작방법.
  22. 제12항에 있어서,
    상기 함수를 실행하기 위한 리소스를 할당하는 단계는,
    상기 함수의 연산량이 기 설정된 연산량보다 작으면, 상기 함수에 N개의 컨테이너를 할당하고, 상기 함수의 연산량이 기 설정된 연산량 이상이면, 상기 함수에 N개보다 큰 M개의 컨테이너를 할당하는 단계를 포함하는, 동작방법.
  23. 서비스형 함수(FaaS)를 실행하기 위한 리소스의 설정 요청을 수신하는 단계;
    상기 함수의 특성 및 상기 함수의 실행 정보 중 적어도 하나를 분석하는 단계; 및
    상기 분석한 결과에 기초하여, 상기 리소스의 설정과 관련된 추천 정보를 제공하는 단계;
    상기 함수의 실행 요청을 수신하는 단계; 및
    상기 실행 요청에 응답하여, 상기 추천 정보에 따라 상기 함수를 실행하기 위한 리소스를 할당하여, 상기 함수를 실행하는 단계를 수행하도록 하는 프로그램이 저장된 하나 이상의 컴퓨터로 읽을 수 있는 기록매체.
KR1020180084271A 2017-08-09 2018-07-19 서비스형 함수(FaaS)를 제공하는 시스템 및 그 동작방법 KR102120868B1 (ko)

Priority Applications (4)

Application Number Priority Date Filing Date Title
EP18845032.4A EP3602299A4 (en) 2017-08-09 2018-08-06 SYSTEM FOR PROVIDING FUNCTIONS AS A SERVICE (FAAS) AND OPERATING METHOD OF THE SYSTEM
CN201880044317.1A CN110832461B (zh) 2017-08-09 2018-08-06 用于提供函数即服务(faas)的系统及该系统的操作方法
PCT/KR2018/008887 WO2019031783A1 (en) 2017-08-09 2018-08-06 ON-DEMAND FUNCTION SUPPLY SYSTEM (FAAS), AND METHOD OF OPERATING THE SYSTEM
US16/058,597 US11126463B2 (en) 2017-08-09 2018-08-08 System for providing function as a service (FaaS), and operating method of system

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201762542916P 2017-08-09 2017-08-09
US62/542,916 2017-08-09

Publications (2)

Publication Number Publication Date
KR20190016895A KR20190016895A (ko) 2019-02-19
KR102120868B1 true KR102120868B1 (ko) 2020-06-09

Family

ID=65528920

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180084271A KR102120868B1 (ko) 2017-08-09 2018-07-19 서비스형 함수(FaaS)를 제공하는 시스템 및 그 동작방법

Country Status (3)

Country Link
EP (1) EP3602299A4 (ko)
KR (1) KR102120868B1 (ko)
CN (1) CN110832461B (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102488113B1 (ko) * 2022-08-17 2023-01-13 (주)시큐레이어 AI Manager를 이용하여 클라우드 환경에서 동작 중인 서비스를 관리하는 방법 및 이를 이용한 메인 서버

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210059179A (ko) 2019-11-15 2021-05-25 한국전자통신연구원 마이크로 펑션의 빠른 실행을 위한 펑션 관리 방법 및 이를 위한 장치
KR102305122B1 (ko) * 2019-12-05 2021-09-27 국민대학교산학협력단 클라우드 기반 함수 실행 서비스를 제공하는 시스템 및 이의 자원 할당 방법
US11948010B2 (en) 2020-10-12 2024-04-02 International Business Machines Corporation Tag-driven scheduling of computing resources for function execution
KR102553440B1 (ko) * 2020-11-27 2023-07-11 한국전력공사 서버리스 개발 지원 플랫폼
KR102537906B1 (ko) * 2022-01-07 2023-05-30 주식회사 저스트큐 위탁 판매를 위한 관리 서버의 오토 스케일링 방법

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101360263B1 (ko) * 2012-11-30 2014-02-12 한국과학기술정보연구원 계산작업 제어장치, 계산작업 제어방법, 및 계산작업을 제어하는 소프트웨어를 저장하는 저장매체
US20140122595A1 (en) 2010-10-06 2014-05-01 David Murdoch Method, system and computer program for providing an intelligent collaborative content infrastructure
US20140156835A1 (en) 2010-09-21 2014-06-05 Amazon Technologies, Inc. Methods and systems for dynamically managing requests for computing capacity
US20140330949A1 (en) 2009-07-15 2014-11-06 Consumer Software International, Inc. System and method for optimizing and digitally correcting errors on a computer system
JP2015524581A (ja) 2012-11-09 2015-08-24 株式会社日立製作所 管理計算機、計算機システム、及びインスタンス管理方法

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060070060A1 (en) * 2004-09-28 2006-03-30 International Business Machines Corporation Coordinating service performance and application placement management
EP1845444B1 (en) * 2006-04-13 2010-05-19 Microsoft Corporation Virtual execution system for ressource-constrained devices
US20110320475A1 (en) * 2010-06-25 2011-12-29 Nokia Corporation Methods, apparatuses and computer program products for extending the capabilities of platform-independent applications on devices
US9009740B2 (en) * 2011-07-13 2015-04-14 Adobe Systems Incorporated Invocation of additional processing using remote procedure calls
US9262216B2 (en) * 2012-02-14 2016-02-16 Microsoft Technologies Licensing, LLC Computing cluster with latency control
WO2015102608A2 (en) * 2013-12-31 2015-07-09 Citrix Systems, Inc. Providing mobile device management functionalities
US10218633B2 (en) * 2014-03-28 2019-02-26 Amazon Technologies, Inc. Implementation of a service that coordinates the placement and execution of containers
US9354937B2 (en) * 2014-07-18 2016-05-31 Thomson Reuters Global Resources System and method for electronic work prediction and dynamically adjusting server resources
US9280389B1 (en) * 2014-12-30 2016-03-08 Tyco Fire & Security Gmbh Preemptive operating system without context switching
KR20170011802A (ko) * 2015-07-24 2017-02-02 삼성전자주식회사 기능 수행 환경의 백업 및 복원을 지원하는 장치 및 그 방법
US10419530B2 (en) * 2015-11-02 2019-09-17 Telefonaktiebolaget Lm Ericsson (Publ) System and methods for intelligent service function placement and autoscale based on machine learning

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140330949A1 (en) 2009-07-15 2014-11-06 Consumer Software International, Inc. System and method for optimizing and digitally correcting errors on a computer system
US20140156835A1 (en) 2010-09-21 2014-06-05 Amazon Technologies, Inc. Methods and systems for dynamically managing requests for computing capacity
US20140122595A1 (en) 2010-10-06 2014-05-01 David Murdoch Method, system and computer program for providing an intelligent collaborative content infrastructure
JP2015524581A (ja) 2012-11-09 2015-08-24 株式会社日立製作所 管理計算機、計算機システム、及びインスタンス管理方法
KR101360263B1 (ko) * 2012-11-30 2014-02-12 한국과학기술정보연구원 계산작업 제어장치, 계산작업 제어방법, 및 계산작업을 제어하는 소프트웨어를 저장하는 저장매체

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102488113B1 (ko) * 2022-08-17 2023-01-13 (주)시큐레이어 AI Manager를 이용하여 클라우드 환경에서 동작 중인 서비스를 관리하는 방법 및 이를 이용한 메인 서버

Also Published As

Publication number Publication date
CN110832461A (zh) 2020-02-21
EP3602299A1 (en) 2020-02-05
CN110832461B (zh) 2023-10-31
EP3602299A4 (en) 2020-02-05
KR20190016895A (ko) 2019-02-19

Similar Documents

Publication Publication Date Title
KR102120868B1 (ko) 서비스형 함수(FaaS)를 제공하는 시스템 및 그 동작방법
US11126463B2 (en) System for providing function as a service (FaaS), and operating method of system
US11184236B2 (en) Methods and apparatus to control processing of telemetry data at an edge platform
TWI584141B (zh) 更新硬體庫以供具有fpga共處理器的電腦系統上的應用程式使用
KR102037845B1 (ko) 컴퓨트 용량을 위한 주기적인 요청들의 관리
US10437629B2 (en) Pre-triggers for code execution environments
US10789083B2 (en) Providing a virtual desktop service based on physical distance on network from the user terminal and improving network I/O performance based on power consumption
US9866433B1 (en) Light-weight cloud application platform
US9606785B2 (en) Detecting deployment conflicts in heterogeneous environments
US10430218B2 (en) Management of demand for virtual computing resources
CN109408205B (zh) 基于hadoop集群的任务调度方法和装置
US9423957B2 (en) Adaptive system provisioning
WO2017176333A1 (en) Batching inputs to a machine learning model
JP2018503896A (ja) リソースサイジングの自動管理
US20160335113A1 (en) Automated virtual desktop provisioning
US9317332B2 (en) Resolving deployment conflicts in heterogeneous environments
US9729610B2 (en) Method for intercepting an instruction produced by an application on a computer
US8898763B1 (en) Automated infrastructure operations
US20220357974A1 (en) Container creation in a computing system
US20230104787A1 (en) Multi-tenancy interference model for scaling in container orchestration systems
CN116414518A (zh) Kubernetes上的大数据的数据局部性
KR20200109819A (ko) 전자 장치 및 이의 제어 방법
Yu et al. Towards dynamic resource provisioning for traffic mining service cloud
KR102305122B1 (ko) 클라우드 기반 함수 실행 서비스를 제공하는 시스템 및 이의 자원 할당 방법
US20230281039A1 (en) Efficient Scheduling of Build Processes Executing on Parallel Processors

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
AMND Amendment
X701 Decision to grant (after re-examination)
GRNT Written decision to grant