KR20170139872A - 멀티 테넌트 기반의 서비스 제공 시스템 및 방법 - Google Patents
멀티 테넌트 기반의 서비스 제공 시스템 및 방법 Download PDFInfo
- Publication number
- KR20170139872A KR20170139872A KR1020160072391A KR20160072391A KR20170139872A KR 20170139872 A KR20170139872 A KR 20170139872A KR 1020160072391 A KR1020160072391 A KR 1020160072391A KR 20160072391 A KR20160072391 A KR 20160072391A KR 20170139872 A KR20170139872 A KR 20170139872A
- Authority
- KR
- South Korea
- Prior art keywords
- container
- cloud environment
- service
- resource
- resource usage
- Prior art date
- Legal status (The legal status 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 status listed.)
- Withdrawn
Links
- 238000000034 method Methods 0.000 title claims abstract description 21
- 238000013468 resource allocation Methods 0.000 claims description 68
- 230000001934 delay Effects 0.000 claims description 2
- 238000005259 measurement Methods 0.000 abstract description 4
- 238000010586 diagram Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 5
- 238000004891 communication Methods 0.000 description 4
- 230000007423 decrease Effects 0.000 description 4
- 230000010485 coping Effects 0.000 description 2
- 230000003247 decreasing effect Effects 0.000 description 2
- 230000003203 everyday effect Effects 0.000 description 2
- 230000001413 cellular effect Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 230000007773 growth pattern Effects 0.000 description 1
- 230000001788 irregular Effects 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/06—Management of faults, events, alarms or notifications
- H04L41/0654—Management of faults, events, alarms or notifications using network fault recovery
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/3006—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is distributed, e.g. networked systems, clusters, multiprocessor systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation 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/505—Allocation 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/14—Network analysis or design
- H04L41/147—Network analysis or design for predicting network behaviour
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0876—Network utilisation, e.g. volume of load or congestion level
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/12—Avoiding congestion; Recovering from congestion
- H04L47/125—Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/70—Admission control; Resource allocation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/70—Admission control; Resource allocation
- H04L47/78—Architectures of resource allocation
- H04L47/783—Distributed allocation of resources, e.g. bandwidth brokers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/70—Admission control; Resource allocation
- H04L47/83—Admission control; Resource allocation based on usage prediction
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1034—Reaction to server failures by a load balancer
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/60—Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- Environmental & Geological Engineering (AREA)
- Mathematical Physics (AREA)
- Quality & Reliability (AREA)
- Information Transfer Between Computers (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
멀티 테넌트 기반의 서비스 제공 시스템 및 방법이 개시된다. 본 발명의 일 실시예에 따른 멀티 테넌트 기반의 서비스 제공 시스템은 클라우드 환경 내에서 복수의 테넌트(tenant) 별로 제공되는 서비스의 리소스(resource) 사용량을 측정하는 사용량 측정부; 측정된 상기 리소스 사용량을 분석하여 필요한 리소스 사용량을 예측하는 사용량 예측부; 및 각각 사용 가능한 리소스 할당량에 관한 정보를 포함하는 복수의 컨테이너 이미지를 구비하며, 상기 예측 결과에 따라 상기 서비스 실행을 위한 컨테이너 이미지를 상기 클라우드 환경으로 분배하거나 상기 클라우드 환경에 분배된 컨테이너 이미지를 회수하는 컨테이너 제어부를 포함한다.
Description
본 발명의 실시예들은 멀티 테넌트 기반의 서비스 제공 시스템을 효율적으로 운용하기 위한 기술과 관련된다.
멀티 테넌트(multi-tenant) 시스템은 다수의 테넌트에게 동시에 서비스를 제공하기 위한 시스템이다. 멀티 테넌트 시스템에서는 다수의 테넌트가 리소스를 공유함으로써 리소스 사용 효율을 높일 수 있었다.
그러나, 한편으로는 멀티 테넌트 시스템에서 복수의 테넌트가 단일의 시스템으로부터 각각의 서비스를 제공받으므로, 테넌트 간 리소스의 경합 문제가 발생하였고, 시스템 상에 발생된 장애에 대한 대처 측면에서도 취약점이 발견되었다. 예를 들어, 종래의 멀티 테넌트 시스템에 의하면 시스템 내 리소스가 특정 테넌트에 의해 독점될 수 있고, 시스템에 발생된 장애가 상기 시스템과 연관된 전체 테넌트에 영향을 줄 수 있었다. 따라서 멀티 테넌트 시스템 상에서 리소스를 효율적으로 분배하여 제공되는 서비스의 품질을 향상시키고 장애 대처 기능을 강화하기 위한 방안이 필요하게 되었다.
본 발명의 실시예들은 컨테이너를 이용하여 멀티 테넌트 기반의 서비스 제공 시스템 내 리소스를 효율적으로 분배하고 서비스의 품질을 향상시키기 위한 것이다.
또한 본 발명의 실시예들은 컨테이너를 이용하여 멀티 테넌트 기반의 서비스 제공 시스템의 장애 대처(fault tolerance) 기능을 강화하기 위한 것이다.
본 발명의 예시적인 실시예에 따르면, 클라우드 환경 내에서 복수의 테넌트(tenant) 별로 제공되는 서비스의 리소스(resource) 사용량을 측정하는 사용량 측정부; 측정된 상기 리소스 사용량을 분석하여 필요한 리소스 사용량을 예측하는 사용량 예측부; 및 각각 사용 가능한 리소스 할당량에 관한 정보를 포함하는 복수의 컨테이너 이미지를 구비하며, 상기 예측 결과에 따라 상기 서비스 실행을 위한 컨테이너 이미지를 상기 클라우드 환경으로 분배하거나 상기 클라우드 환경에 분배된 컨테이너 이미지를 회수하는 컨테이너 제어부를 포함하는, 멀티 테넌트 기반의 서비스 제공 시스템이 제공된다.
상기 컨테이너 제어부는, 상기 클라우드 환경에 분배된 컨테이너 이미지의 리소스 할당량의 합이 예측된 리소스 사용량보다 작은 경우, 상기 컨테이너 이미지를 상기 클라우드 환경으로 분배할 수 있다.
상기 컨테이너 제어부는, 상기 클라우드 환경에 분배된 컨테이너 이미지의 리소스 할당량의 합이 예측된 리소스 사용량보다 작은 경우, 상기 클라우드 환경에 필요한 리소스 필요량과 연관된 컨테이너 이미지의 개수에 기초하여 상기 컨테이너 이미지를 상기 클라우드 환경으로 분배 할 수 있다.
상기 복수의 테넌트로부터 상기 서비스에 관한 요청을 입력 받고 상기 클라우드 환경 내에서 상기 서비스에 대응되는 컨테이너로 라우팅하는 게이트웨이(gateway)를 더 포함할 수 있다.
상기 게이트웨이는, 입력된 상기 서비스의 요청량이 설정된 값을 초과하는 경우, 장애가 발생한 것으로 판단하고 상기 라우팅을 중단 할 수 있다.
상기 게이트웨이는, 상기 클라우드 환경에 분배된 컨테이너 이미지의 리소스 할당량의 합이 예측된 리소스 사용량보다 작은 경우, 요청된 상기 서비스의 처리를 지연시킬 수 있다.
상기 사용량 예측부는, 설정된 주기 동안 측정된 상기 리소스 사용량으로부터 상기 리소스 사용량의 패턴을 분석하며, 상기 컨테이너 제어부는, 상기 주기 동안 분석된 상기 패턴에 따라 상기 컨테이너 이미지를 상기 클라우드 환경으로 분배하거나 상기 클라우드 환경에 분배된 컨테이너 이미지를 회수 할 수 있다.
본 발명의 다른 예시적인 실시예에 따르면, 하나 이상의 프로세서들, 및 상기 하나 이상의 프로세서들에 의해 실행되는 하나 이상의 프로그램들을 저장하는 메모리를 구비한 서버에서 수행되는 방법으로서, 클라우드 환경 내에서 복수의 테넌트(tenant) 별로 제공되는 서비스의 리소스(resource) 사용량을 측정하는 단계; 측정된 상기 리소스 사용량을 분석하여 필요한 리소스 사용량을 예측하는 단계; 및 상기 예측 결과에 따라 상기 서비스 실행을 위한 컨테이너 이미지를 상기 클라우드 환경으로 분배하거나 상기 클라우드 환경에 분배된 컨테이너 이미지를 회수하는 단계를 포함하며, 복수의 상기 컨테이너는, 각각 사용 가능한 리소스 할당량에 관한 정보를 포함하는 복수의 컨테이너 이미지를 구비하는, 멀티 테넌트 기반의 서비스 제공 방법이 제공된다.
상기 컨테이너 이미지를 분배하거나 회수하는 단계는, 상기 클라우드 환경에 분배된 컨테이너 이미지의 리소스 할당량의 합이 예측된 리소스 사용량보다 작은 경우 상기 컨테이너 이미지를 상기 클라우드 환경으로 분배 할 수 있다.
상기 컨테이너 이미지를 분배하거나 회수하는 단계는, 상기 클라우드 환경에 분배된 컨테이너 이미지의 리소스 할당량의 합이 예측된 리소스 사용량보다 작은 경우, 상기 클라우드 환경에 필요한 리소스 필요량과 연관된 컨테이너 이미지의 개수에 기초하여 상기 컨테이너 이미지를 상기 클라우드 환경으로 분배 할 수 있다.
리소스(resource) 사용량을 측정하는 단계의 수행 이전에, 상기 복수의 테넌트로부터 상기 서비스에 관한 요청을 입력 받고 상기 클라우드 환경 내에서 상기 서비스에 대응되는 컨테이너로 라우팅하는 단계를 더 포함할 수 있다.
상기 라우팅하는 단계는, 입력된 상기 서비스의 요청량이 설정된 값을 초과하는 경우, 장애가 발생한 것으로 판단하고 상기 라우팅을 중단 할 수 있다.
상기 라우팅하는 단계는, 상기 클라우드 환경에 분배된 컨테이너 이미지의 리소스 할당량의 합이 예측된 리소스 사용량보다 작은 경우, 요청된 상기 서비스의 처리를 지연시킬 수 있다.
상기 예측하는 단계는, 설정된 주기 동안 측정된 상기 리소스 사용량으로부터 상기 리소스 사용량의 패턴을 분석하며, 상기 컨테이너 이미지를 분배하거나 회수하는 단계는, 상기 주기 동안 분석된 상기 패턴에 따라 상기 컨테이너 이미지를 상기 클라우드 환경으로 분배하거나 상기 클라우드 환경에 분배된 컨테이너 이미지를 회수 할 수 있다.
본 발명의 실시예들에 따르면, 클라우드 환경에서 각각 리소스 할당량을 가지는 컨테이너 이미지를 이용하여 서비스를 제공함으로써 특정 테넌트에 의해 시스템 내 리소스가 독점되는 것을 방지할 수 있다.
또한 본 발명의 실시예들에 따르면, 클라우드 환경에서 컨테이너 단위로 서비스를 제공함으로써 특정 컨테이너와 관련된 장애가 발생한 경우 발생된 장애가 다른 테넌트로 영향이 미치는 것을 방지할 수 있다.
또한 본 발명의 실시예들에 따르면, 멀티 테넌트 기반의 서비스 제공 시스템이 동일한 서비스에 대해 서로 다른 리소스 할당량을 가지는 컨테이너 이미지의 종류 및 개수를 제어함으로써, 낭비되는 자원의 양을 줄일 수 있고 게이트웨이가 서비스를 라우팅하는데 발생되는 부하를 감소시킬 수 있다.
도 1은 본 발명의 일 실시예에 따른 멀티 테넌트 기반의 서비스 제공 시스템의 상세 구성을 나타낸 블록도
도 2는 본 발명의 일 실시예에 따른 클라우드 환경의 구조를 나타낸 예시도
도 3은 본 발명의 일 실시예에 따른 사용량 측정부에 의해 측정된 리소스 사용량의 예시적인 그래프
도 4는 본 발명의 일 실시예에 따라 측정된 리소스 사용량의 예시적인 패턴을 나타낸 그래프
도 5는 본 발명의 일 실시예에 따른 멀티 테넌트 기반의 서비스 제공 방법을 설명하기 위한 흐름도
도 6은 예시적인 실시예들에서 사용되기에 적합한 컴퓨팅 장치를 포함하는 컴퓨팅 환경을 예시하여 설명하기 위한 블록도
도 2는 본 발명의 일 실시예에 따른 클라우드 환경의 구조를 나타낸 예시도
도 3은 본 발명의 일 실시예에 따른 사용량 측정부에 의해 측정된 리소스 사용량의 예시적인 그래프
도 4는 본 발명의 일 실시예에 따라 측정된 리소스 사용량의 예시적인 패턴을 나타낸 그래프
도 5는 본 발명의 일 실시예에 따른 멀티 테넌트 기반의 서비스 제공 방법을 설명하기 위한 흐름도
도 6은 예시적인 실시예들에서 사용되기에 적합한 컴퓨팅 장치를 포함하는 컴퓨팅 환경을 예시하여 설명하기 위한 블록도
이하, 도면을 참조하여 본 발명의 구체적인 실시형태를 설명하기로 한다. 이하의 상세한 설명은 본 명세서에서 기술된 방법, 장치 및/또는 시스템에 대한 포괄적인 이해를 돕기 위해 제공된다. 그러나 이는 예시에 불과하며 본 발명은 이에 제한되지 않는다.
본 발명의 실시예들을 설명함에 있어서, 본 발명과 관련된 공지기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략하기로 한다. 그리고, 후술되는 용어들은 본 발명에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다. 상세한 설명에서 사용되는 용어는 단지 본 발명의 실시예들을 기술하기 위한 것이며, 결코 제한적이어서는 안 된다. 명확하게 달리 사용되지 않는 한, 단수 형태의 표현은 복수 형태의 의미를 포함한다. 본 설명에서, "포함" 또는 "구비"와 같은 표현은 어떤 특성들, 숫자들, 단계들, 동작들, 요소들, 이들의 일부 또는 조합을 가리키기 위한 것이며, 기술된 것 이외에 하나 또는 그 이상의 다른 특성, 숫자, 단계, 동작, 요소, 이들의 일부 또는 조합의 존재 또는 가능성을 배제하도록 해석되어서는 안 된다.
도 1은 본 발명의 일 실시예에 따른 멀티 테넌트 기반의 서비스 제공 시스템(100)의 구성을 나타낸 블록도이다. 도 1에 도시된 바와 같이, 본 발명의 일 실시예에 따른 멀티 테넌트 기반의 서비스 제공 시스템(100)은 클라우드 환경(102), 게이트웨이(104), 사용량 측정부(106), 사용량 예측부(108) 및 컨테이너 제어부(110)를 포함한다.
본 실시예들에서 컨테이너란, 실행하고자 하는 애플리케이션 및 상기 애플리케이션을 구동하는 데 필요한 종속물, 예를 들어 라이브러리, 시스템 도구, 런타임 환경(runtime environment)등을 함께 패키징하여 제공하는 소프트웨어 제공 기술을 의미한다. 이러한 컨테이너는 운영체제의 커널(kernel)을 포함하지 않으므로 종래의 가상 머신(virtual machine)과 비교하여 빠르고 민첩하며 더 적은 리소스를 사용한다는 장점이 있다. 컨테이너와 컨테이너 이미지와의 관계는 프로세스(process)와 실행 파일의 관계와 동일하다. 다시 말해, 컨테이너를 구성하는 각 요소들이 스토리지 내에 정적으로 존재하는 경우 이를 컨테이너 이미지(container image)라 칭하며, 해당 컨테이너 이미지가 실제 메모리에 로드되어 프로세스 상태가 된 경우 이를 컨테이너라고 칭한다.
본 실시예들에서 컨테이너 이미지는, 각각 사용할 수 있는 리소스(resource) 할당량에 관한 정보를 포함할 수 있다. 여기서, 리소스는 애플리케이션을 구동하기 위한 컴퓨팅 자원들(예를 들어 CPU, 메모리, 하드디스크 등)의 조합일 수 있다. 또한, 리소스는 멀티 테넌트 기반의 서비스 제공 시스템(100)에 포함된 유휴 자원일 수 있다. 본 실시예들에서, 리소스의 사용량이 증가 또는 감소하였다는 것은 상기 리소스를 구성하는 요소들의 사용량이 증가 또는 감소하였다는 것을 가리킬 수 있다. 또한, 컨테이너의 리소스 할당량에 따라 상기 컨테이너 이미지에 대응되는 서비스의 처리 속도(예를 들어, 분당 처리 건수)가 달라질 수 있다. 다시 말해, 본 발명의 일 실시예에 따른 멀티 테넌트 기반의 서비스 제공 시스템(100)는 컨테이너 이미지를 분배 또는 회수함으로써 상기 시스템 내 리소스를 효율적으로 할당할 수 있다.
클라우드 환경(102)은 네트워크를 통해 연결된 하나 이상의 테넌트(150)로 클라우드 기반의 컴퓨팅 자원 제공 서비스를 제공하기 위한 하나 이상의 서버의 집합을 의미한다. 여기서, 네트워크는 인터넷, 하나 이상의 로컬 영역 네트워크(local area networks), 광역 네트워크(wire area networks), 셀룰러 네트워크, 모바일 네트워크, 그 밖에 다른 종류의 네트워크들, 또는 이러한 네트워크들의 조합을 포함할 수 있다. 또한, 테넌트(150)는 서비스를 요청하며 상기 서비스를 제공받는 단위(예를 들어, 개인 또는 기업 등)일 수 있다.
클라우드 환경(102)은 복수의 테넌트(150)에게 동시에 서비스를 제공할 수 있다. 클라우드 환경(102)은 예를 들어, 클라우드 기반에서 SaaS(software as a service) 형태로 테넌트(150)에게 서비스를 제공할 수 있으며, 본 발명의 실시예들은 특정 종류 또는 형태의 서비스에 제한되는 것은 아니다.
클라우드 환경(102)은 컨테이너 이미지를 이용하여 상기 서비스를 제공할 수 있다. 구체적으로, 클라우드 환경(102)은 컨테이너 이미지를 구동시킴으로써 상기 컨테이너 이미지에 저장된 애플리케이션에 상응하는 서비스를 제공할 수 있다. 일 예시에서, 클라우드 환경(102)은 복수의 컨테이너 이미지를 이용하여 상기 서비스를 제공할 수 있다. 이 경우, 각각의 컨테이너 이미지는 동일한 종류의 서비스를 제공하도록 구성될 수 있으나, 서로 다른 리소스 할당량을 가질 수 있다.
클라우드 환경(102)은 후술할 컨테이너 제어부(110)에 의해 분배된 컨테이너 이미지의 리소스 할당량의 범위에서 서비스를 제공할 수 있다. 컨테이너 제어부(110)에 의해 클라우드 환경(102)으로 클라우드 이미지가 분배되었다는 것은, 컨테이너 이미지가 클라우드 환경(102)에서 프로세스 형태로 구동됨을 의미할 수 있다. 즉, 클라우드 환경(102)은 분배된 컨테이너 이미지만을 실행할 수 있고 상기 컨테이너 이미지는 각각 리소스 할당량을 포함하므로, 클라우드 환경(102)이 서비스를 제공하기 위해 사용할 수 있는 리소스의 양은 컨테이너 이미지의 리소스 할당량의 합으로 제한될 수 있다. 이에 따라, 테넌트(150) 중 어느 하나로부터 요청된 서비스에 의해 사용되는 리소스가 다른 테넌트에 의해 침해되는 것을 방지할 수 있다.
클라우드 환경(102)은 테넌트(150) 별로 요청된 서비스는 서로 논리적으로 구분될 수 있다. 구체적으로, 클라우드 환경(102)에는 테넌트(150) 각각의 서비스 별로 논리적인 영역이 존재할 수 있다. 예를 들어, 클라우드 환경(102)은 제1 테넌트(150-1)와 대응되는 영역(예를 들어, 테넌트 각각의 서비스 별로 할당된 서버)을 포함하며, 상기 영역으로 분배된 컨테이너 이미지는 제1 테넌트(150-1)에 의해 요청된 서비스를 제공하는데 사용할 수 있다. 즉, 클라우드 환경(102) 내에서 제1 테넌트(150-1)의 영역으로 분배된 컨테이너 이미지는 제2 테넌트(150-2)와 공유되지 않는다. 클라우드 환경(102)은 테넌트(150) 별로 컨테이너 이미지를 구분하여 실행함으로써 특정 컨테이너 이미지에 대해 발생된 장애가 다른 테넌트(150)로 확산되는 것을 방지할 수 있다.
게이트웨이(104, gateway)는 복수의 테넌트(150)와 클라우드 환경(102)을 상호 접속시키기 위한 모듈이다. 구체적으로, 게이트웨이(104)는 복수의 테넌트(150)로부터 서비스에 관한 요청을 입력 받고, 클라우드 환경(102) 내에서 상기 서비스에 대응되는 컨테이너로 라우팅할 수 있다. 다시 말해, 게이트웨이(150)는 테넌트(150)로부터 입력된 서비스에 관한 요청을 클라우드 환경(102) 내 상기 테넌트(150) 및 상기 서비스에 대응되는 영역으로 라우팅할 수 있다. 여기서, 테넌트(150)로부터 입력 받는 서비스에 관한 요청은 서비스의 종류, 서비스의 요청량 등을 포함할 수 있다. 서비스의 요청량은 서비스의 처리 속도를 의미할 수 있으며, 처리 속도는 예를 들어, 분당 처리 건수일 수 있다. 서비스의 요청량은 상술한 리소스의 양과 관련된다. 예를 들어, 서비스의 요청량이 클수록 필요한 리소스의 양은 증가할 수 있다.
게이트웨이(104)는 테넌트(150)로부터 요청 받은 서비스의 처리를 지연시킬 수 있다. 구체적으로, 게이트웨이(104)는 후술할 컨테이너 제어부(110)에 의해 클라우드 환경(102)으로 컨테이너 이미지가 추가적으로 분배될 필요가 있는 경우, 유량 제어(flow control)를 통해 요청된 서비스의 처리를 지연시킬 수 있다. 일 실시예에 따르면, 상기 클라우드 환경(102)에 분배된 컨테이너 이미지의 리소스 할당량의 합이 예측된 리소스 사용량보다 작은 경우, 게이트웨이(104)는 요청된 상기 서비스의 처리를 지연시킬 수 있다. 게이트웨이(104)는 테넌트(150)로부터 요청된 서비스를 지연 처리함으로써 컨테이너 제어부(110)에 의해 컨테이너 이미지가 분배되는 시간을 확보할 수 있다. 이에 따라, 요청된 서비스들은 새롭게 조정된 컨테이너 이미지에 의해 제공될 수 있다.
게이트웨이(104)는 테넌트(150)로부터 입력된 서비스의 요청량이 설정된 값을 초과하는 경우, 장애가 발생한 것으로 판단하고 테넌트(150)로부터 입력 받은 요청을 블록(block)할 수 있다. 다시 말해, 게이트웨이(104)는 서비스의 요청이 지나치게 많이 입력된 경우, 라우팅을 중단할 수 있다.
사용량 측정부(106)는 클라우드 환경(102) 내에서 요청된 서비스를 제공하는데 사용되는 리소스 사용량을 측정할 수 있다. 구체적으로, 사용량 측정부(106)는 클라우드 환경(102) 내에서 복수의 테넌트(150) 별로 제공되는 서비스의 리소스 사용량을 측정할 수 있다. 즉, 사용량 측정부(106)는 복수의 테넌트(150) 및 상기 테넌트(150)에 의해 요청된 서비스 별로 사용되는 리소스 사용량을 측정할 수 있다. 일 실시예에 따르면, 사용량 측정부(106)는 설정된 주기(예를 들어, 1일 또는 1개월) 별로 리소스 사용량을 측정할 수 있다.
다음으로, 사용량 예측부(108)는 측정된 리소스 사용량을 분석하여 필요한 리소스 사용량을 예측할 수 있다. 일 예시에서, 사용량 예측부(108)는 현재 측정된 리소스 사용량을 필요한 리소스 사용량인 것으로 예측할 수 있으나, 이에 한정되는 것은 아니다.
일 실시예에 따르면, 사용량 예측부(108)는 측정된 리소스 사용량에 기초하여 설정된 주기(예를 들어, 1일 또는 1개월) 동안 상기 리소스 사용량의 패턴을 분석할 수 있다. 리소스 사용량의 패턴은 예를 들어, 리소스 사용량이 존재하는 구간 및 존재하지 않는 구간이 반복되는 패턴, 리소스 사용량이 점진적으로 증가하는 패턴, 불규칙적인 패턴, 예측 가능한 패턴 등을 포함할 수 있다.
컨테이너 제어부(110)는 서비스 별로 구비된 컨테이너 이미지를 관리할 수 있다. 이때, 동일한 서비스에 대응되는 컨테이너 이미지는 다양한 리소스 할당량을 가지도록 구성될 수 있다. 구체적으로, 컨테이너 제어부(110)는 상기 예측 결과에 따라 클라우드 환경(102)으로 분배되는 컨테이너 이미지의 종류(예를 들어, 대응되는 서비스의 종류 또는 리소스 할당량의 종류) 및 개수를 조정할 수 있다. 즉, 컨테이너 제어부(110)는 상기 서비스 실행을 위한 컨테이너 이미지를 클라우드 환경(102)으로 분배하거나 상기 클라우드 환경(102)에 분배된 컨테이너 이미지를 회수할 수 있다.
구체적으로, 컨테이너 제어부(110)는 상기 예측 결과에 따라 클라우드 환경(102)에 분배된 컨테이너 이미지가 부족한 경우, 컨테이너 이미지를 클라우드 환경(102)에 더 분배할 수 있다. 일 실시예에 따르면, 컨테이너 제어부(110)는 클라우드 환경(102)에 분배된 컨테이너 이미지의 리소스 할당량의 합이 예측된 리소스 사용량보다 작은 경우, 컨테이너 이미지를 클라우드 환경(102)으로 분배할 수 있다.
또한, 컨테이너 제어부(110)는 상기 예측 결과에 따라 클라우드 환경(102)에 분배된 컨테이너 이미지의 일부가 불필요한 경우, 불필요한 컨테이너 이미지를 회수할 수 있다. 일 실시예에 따르면, 컨테이너 제어부(110)는 클라우드 환경(102)에 분배된 컨테이너 이미지의 리소스 할당량의 합이 예측된 리소스 사용량보다 큰 경우, 분배된 컨테이너 이미지의 일부를 회수할 수 있다.
컨테이너 제어부(110)는 설정된 주기(예를 들어, 1일 또는 1개월) 동안 분석된 리소스 사용량의 패턴에 따라 컨테이너 이미지를 분배하거나 회수할 수 있다. 구체적으로, 컨테이너 제어부(110)는 시간대에 따라 클라우드 환경(102)에 분배되는 컨테이너 이미지의 종류 및 개수를 자동으로 조정하도록 구성될 수 있다. 예를 들어, 제1 테넌트(150-1)에 의해 요청되는 서비스의 처리량이 9시에 최고점을 기록했고 제2 테넌트(150-2)에 의해 요청되는 서비스의 처리량이 11시에 최고점을 기록한 경우, 컨테이너 제어부(110)는 9시에 제1 테넌트(150-1)에 대해 컨테이너 이미지를 더 분배할 수 있고, 11시에 제2 테넌트(150-2)에 대해 컨테이너 이미지를 더 분배할 수 있다. 제1 테넌트(150-1) 및 제2 테넌트(150-2)의 서비스 처리량의 최고점에 대응되는 시간이 도과하여 분배된 컨테이너가 불필요해진 경우, 컨테이너 제어부(110)는 분배된 컨테이너를 다시 회수할 수 있다.
이와 같이, 컨테이너 제어부(110)는 획득된 패턴에 따라 컨테이너 이미지를 분배 또는 회수할 수 있고, 이와 동시에 실시간으로 컨테이너 이미지를 분배 또는 회수할 수도 있다.
한편, 테넌트(150)에 제공되는 서비스와 연관된 컨테이너 이미지가 클라우드 환경(102)에 많이 분배될수록 테넌트(150)와 서비스를 라우팅하는 게이트웨이(104)의 부담이 증가하게 된다. 예를 들어, 동일한 서비스 요청에 대해서 작은 리소스 할당량을 가지는 다수의 컨테이너 이미지를 동작시키는 경우는 큰 리소스 할당량을 가지는 하나의 컨테이너 이미지를 동작시키는 경우보다 게이트웨이(150)의 라우팅 부하를 증가시킨다. 이하에서는, 컨테이너 이미지의 개수 및 상기 컨테이너 이미지 각각의 리소스 할당량을 고려하여 컨테이너 이미지를 분배 또는 회수하는 과정에 대해 살펴보기로 한다.
먼저, 컨테이너 제어부(110)는 현재 클라우드 환경(102)에 분배된 컨테이너 이미지의 리소스 사용량과 예측된 리소스 사용량을 비교할 수 있다.
다음으로, 분배된 컨테이너 이미지의 리소스 할당량의 합이 예측된 리소스 사용량보다 작은 경우, 컨테이너 제어부(110)는 상기 클라우드 환경(102)에 필요한 리소스 필요량과 연관된 컨테이너 이미지의 개수에 기초하여 컨테이너 이미지를 클라우드 환경으로 분배할 수 있다. 리소스 필요량은 클라우드 환경(102)에서 연산 처리의 지연 없이 작업을 수행하는데 추가적으로 요구되는 리소스의 양으로서 예를 들어, 예측된 리소스 사용량과 분배된 컨테이너 이미지의 리소스 할당량의 합의 차이일 수 있다. 클라우드 환경(102)의 리소스 필요량과 연관된 하나 이상의 컨테이너 이미지는, 각각 대응되는 리소스 할당량의 합이 상기 리소스 필요량 이상이 되도록 구성될 수 있다. 일 실시예에 따르면, 컨테이너 제어부(110)는 컨테이너 이미지 각각에 대응되는 리소스 할당량의 크기를 고려하여 클라우드 환경에 분배되는 상기 컨테이너 이미지의 개수를 제어할 수 있다.
구체적으로, 분배된 컨테이너 이미지의 리소스 할당량의 합이 예측된 리소스 사용량보다 작은 경우, 컨테이너 제어부(110)는 상기 리소스 할당량의 합과 예측된 리소스 사용량의 차이의 범위 내에서 가장 큰 리소스 할당량을 가지는 컨테이너 이미지를 클라우드 환경(102)으로 분배할 수 있다. 즉, 컨테이너 제어부(110)는 반드시 필요한 리소스의 범위 내에서는 리소스 할당량이 가장 큰 컨테이너를 분배함으로써 컨테이너의 개수가 불필요하게 증가하는 것을 방지할 수 있다.
예를 들어, 컨테이너 제어부(110)는 2, 5 및 10이라는 크기의 리소스 할당량을 가지는 복수의 컨테이너 이미지를 포함한다고 가정하자. 이 경우, 사용량 예측부(108)에서 예측된 리소스 사용량이 8이라면, 컨테이너 제어부(110)는 먼저 리소스 할당량이 5인 컨테이너 이미지를 클라우드 환경(102)에 분배할 수 있다. 컨테이너 제어부(110)는 상술한 과정을 반복하여 컨테이너 이미지를 분배할 수 있다. 상술한 예시에서, 컨테이너 제어부(110)는 리소스 할당량이 2인 컨테이너 이미지를 더 분배할 수 있다. 이 경우, 클라우드 환경(102)에 분배된 컨테이너 이미지의 리소스 할당량의 합은 7일 수 있다.
다음으로, 컨테이너 이미지에 대응되는 리소스 할당량 중 가장 작은 리소스 할당량보다, 클라우드 환경(102)으로 분배된 컨테이너 이미지의 리소스 할당량의 합과 예측된 리소스 사용량의 차이가 작은 경우, 상기 가장 작은 리소스 할당량을 가지는 컨테이너 이미지를 클라우드 환경(102)으로 분배할 수 있다. 즉, 어떠한 컨테이너 이미지를 추가로 분배하더라도 분배된 컨테이너 이미지의 리소스 할당량의 합이 예측된 리소스 사용량을 초과하는 경우, 컨테이너 제어부(110)는 가장 작은 리소스 할당량을 가지는 컨테이너 이미지를 분배할 수 있다. 상술한 예시에서, 컨테이너 제어부(110)는 리소스 할당량이 2인 컨테이너 이미지를 더 분배할 수 있다. 이 경우, 클라우드 환경(102)에 분배된 컨테이너 이미지의 리소스 할당량의 합은 9일 수 있다. 이와 같이, 컨테이너 제어부(110)는 예측된 리소스 사용량에 비해 낭비되는 리소스를 최소화할 수 있다.
한편, 분배된 컨테이너 이미지의 리소스의 할당량의 합이 예측된 리소스 사용량보다 크고 상기 리소스 할당량의 합과 예측된 리소스 사용량의 차이보다 작은 크기의 리소스 할당량을 가지는 컨테이너 이미지가 존재하는 경우, 컨테이너 제어부(110)는 분배된 상기 컨테이너 이미지 중 가장 작은 리소스 할당량을 가지는 컨테이너 이미지를 회수할 수 있다. 컨테이너 이미지가 불필요한 컨테이너 이미지를 클라우드 환경에서 제거함으로써 불필요한 컨테이너 이미지의 리소스 할당량만큼의 리소스를 절약할 수 있다.
도 2는 본 발명의 일 실시예에 따른 클라우드 환경(102)의 구조를 나타낸 예시도이다. 도 2에 도시된 바와 같이, 클라우드 환경(102)은 테넌트(150) 각각의 서비스 별로 대응되는 영역을 논리적으로 구분할 수 있다. 일 예시에서, 클라우드 환경(102) 내의 상기 영역은 테넌트(150) 각각으로 할당된 서비스 별 서버를 의미할 수 있다.
구체적으로, 클라우드 환경(102)은 제1 테넌트(150-1)와 대응되는 영역을 포함하며, 상기 영역으로 분배된 컨테이너 이미지는 제1 테넌트(150-1)에 의해 요청된 서비스를 제공하는데 사용할 수 있다. 즉, 클라우드 환경(102)은 제1 테넌트(150-1)의 영역으로 분배된 컨테이너 이미지는 제2 테넌트(150-2)와 공유하지 않을 수 있다. 클라우드 환경(102)은 테넌트(150) 별로 컨테이너 이미지를 구분하여 실행함으로써 특정 컨테이너 이미지에 대해 발생된 장애가 다른 테넌트(150)로 확산되는 것을 방지할 수 있다.
도 2를 참조하면, 제1 테넌트(150-1)와 대응되는 영역으로 서비스 A, 서비스 B 및 서비스 C와 연관된 컨테이너 이미지가 분배되어 있다. 여기서 도 2에 도시된 각 컨테이너 박스의 크기는 상기 컨테이너 이미지의 리소스 할당량을 나타낸다. 예를 들어, 제2 테넌트(150-2)에 대응되는 영역에는 서비스 A와 연관된 가장 큰 크기의 리소스 할당량을 가지는 컨테이너 이미지 한 개와 가장 작은 크기의 리소스 할당량을 가지는 컨테이너 이미지 두 개가 분배될 수 있다. 또한, 제2 테넌트(150-2)에 대응되는 영역에는 서비스 B와 연관된 가장 작은 크기의 리소스 할당량을 가지는 컨테이너 이미지 네 개가 분배될 수 있다. 또한, 제2 테넌트(150-2)에 대응되는 영역에는 서비스 C와 연관된 중간 크기의 리소스 할당량을 가지는 컨테이너 이미지 한 개가 분배될 수 있다.
클라우드 환경(102)은 테넌트(150) 각각의 서비스 별로 분배된 컨테이너 이미지를 이용하여 서비스를 제공할 수 있고, 이때 사용할 수 있는 리소스 양은 각각 분배된 컨테이너 이미지의 리소스 할당량에 의해 결정될 수 있다.
도 3은 본 발명의 일 실시예에 따른 사용량 측정부(106)에 의해 측정된 리소스 사용량의 예시적인 그래프이다. 도 3에 도시된 그래프는 특정 서비스(예를 들어, 서비스 A 또는 서비스 B)에 관한 복수의 테넌트(150) 각각의 리소스 사용량을 나타낸 것이다. 여기서, 테넌트(150)가 리소스 사용량을 가진다는 것은 상기 테넌트(150)의 요청에 따라 클라우드 환경(102)에서 컨테이너 이미지가 구동되는데 리소스가 사용된다는 것을 의미한다.
먼저 도 3a를 참조하면, 하루 중 9시에 제1 테넌트(150-1)의 리소스 사용량이 가장 높은 것을 알 수 있다. 일 예시에서, 사용량 예측부(108)는 측정된 리소스 사용량을 분석한 결과, 다른 날에도 제1 테넌트(150-1)의 리소스 사용량이 하루 중 9시에 최대값을 가질 것이라고 예측할 수 있다. 이후 컨테이너 제어부(110)는 매일 9시에 컨테이너 이미지를 클라우드 환경(102)으로 더 분배할 수 있다. 또한, 9시가 지나면 컨테이너 제어부(110)는 클라우드 환경(102)에 분배된 컨테이너 이미지를 다시 회수할 수 있다.
다음으로 도 3b를 참조하면, 하루 중 11시에 제3 테넌트의 리소스 사용량이 가장 높은 것을 알 수 있다. 일 예시에서, 사용량 예측부(108)는 측정된 리소스 사용량을 분석한 결과, 다른 날에도 제3 테넌트의 리소스 사용량이 하루 중 11시에 최대값을 가질 것이라고 예측할 수 있다. 이후 컨테이너 제어부(110)는 매일 11시에 컨테이너 이미지를 클라우드 환경(102)으로 더 분배할 수 있다. 또한, 11시가 지나면 컨테이너 제어부(110)는 클라우드 환경(102)에 분배된 컨테이너 이미지를 다시 회수할 수 있다.
이와 같이, 컨테이너 제어부(110)는 실시간으로 리소스 사용량을 분석하여 컨테이너 이미지를 분배 또는 회수 할 수 있지만, 주기(예를 들어, 1일 또는 1개월) 단위로 자동으로 컨테이너 이미지를 분배 또는 회수하도록 구성될 수도 있다. 이에 따라, 테넌트(150)의 요청에 따라 급변하는 리소스의 수요에 대해 신속하고 유연하게 대처할 수 있다.
도 4는 본 발명의 일 실시예에 따라 측정된 리소스 사용량의 예시적인 패턴을 나타낸 그래프이다. 도 4에 도시된 그래프는 특정 테넌트(예를 들어, 제1 테넌트(150-1))의 특정 서비스(예를 들어, 서비스 A)에 대한 리소스 사용량을 나타낸다.
도 4a의 그래프를 참조하면, 리소스 사용량이 존재하는 구간 및 존재하지 않는 구간이 반복되는 패턴(on and off pattern)이 나타남을 알 수 있다. 즉, 특정 시간에만 리소스가 사용되고 이외의 시간에는 리소스가 사용되지 않는 경우일 수 있다. 일 실시예에 따르면, 이 경우 컨테이너 제어부(110)는 리소스가 사용되는 시간 동안 큰 리소스 할당량을 가지는 컨테이너 이미지를 분배할 수 있다. 또한, 컨테이너 제어부(110)는 리소스가 사용되지 않는 시간 동안 상기 컨테이너 이미지를 다시 회수할 수 있다. 이에 따라, 컨테이너 제어부(110)는 적은 수의 컨테이너 이미지를 분배 또는 회수할 수 있고, 게이트웨이(104)가 라우팅을 수행하는데 발생되는 부하의 양 또한 줄일 수 있다.
도 4b의 그래프를 참조하면, 리소스 사용량이 증가하는 패턴(fast growth pattern)이 나타남을 알 수 있다. 즉, 일정 시간 동안 컨테이너 제어부(110)는 지속적으로 컨테이너 이미지를 클라우드 환경(102)으로 분배할 수 있다. 일 실시예에 따르면, 이 경우 컨테이너 제어부(110)는 리소스 사용량이 증가하기 시작하는 시점까지는 큰 리소스 할당량을 가지는 컨테이너 이미지를 분배하고, 이후부터는 작은 리소스 할당량을 가지는 컨테이너 이미지를 추가적으로 분배할 수 있다. 이에 따라, 컨테이너 제어부(110)는 최적의 리소스 양을 산정함으로써 리소스 효율을 증대시킬 수 있고, 동시에 서비스 품질을 향상시킬 수 있다.
도 4c의 그래프를 참조하면, 리소스 사용량이 불규칙적인 패턴(variable pattern)임을 알 수 있다. 일 실시예에 따르면, 리소스 사용량이 불규칙적으로 증가 또는 감소하는 경우 작은 리소스 할당량을 가지는 컨테이너 이미지를 분배 또는 회수할 수 있다. 컨테이너 제어부(110)는 잦은 리소스 사용량의 증감에 대응하여 작은 리소스 할당량을 가지는 컨테이너들을 분배 또는 회수함으로써 유연하게 리소스를 산정할 수 있다.
도 4d의 그래프를 참조하면, 리소스 사용량이 예측 가능한 패턴(predictable pattern)임을 알 수 있다. 구체적으로, 도 4d의 그래프는 일정한 리소스 사용량이 일정하게 측정되고, 일정한 리소스 사용량의 증가 및 감소가 반복되는 패턴일 수 있다. 일 실시예에 따르면, 컨테이너 제어부(110)는 보장된 리소스 양, 및 증가 또는 감소하는 리소스의 양에 대응하여 큰 리소스 할당량을 가지는 컨테이너 이미지를 분배 또는 회수할 수 있다.
이와 같이, 컨테이너 제어부(110)는 경우에 따라 서비스 별로 리소스 할당량이 다른 컨테이너 이미지를 적절하게 분배 또는 회수함으로써, 리소스의 효율 증대 및 게이트웨이(104)의 라우팅 부하 감소를 모두 달성할 수 있다.
도 5는 본 발명의 일 실시예에 따른 멀티 테넌트 기반의 서비스 제공 방법을 설명하기 위한 흐름도(500)이다. 도시된 흐름도에서는 상기 방법을 복수 개의 단계로 나누어 기재하였으나, 적어도 일부의 단계들은 순서를 바꾸어 수행되거나, 다른 단계와 결합되어 함께 수행되거나, 생략되거나, 세부 단계들로 나뉘어 수행되거나, 또는 도시되지 않은 하나 이상의 단계가 부가되어 수행될 수 있다.
먼저, 사용량 측정부(106)에서 클라우드 환경(102) 내에서 복수의 테넌트(tenant, 150) 별로 제공되는 서비스의 리소스(resource) 사용량을 측정할 수 있다(S502). 한편, 게이트웨이(104)에서 상기 복수의 테넌트(150)로부터 상기 서비스에 관한 요청을 입력 받고 상기 클라우드 환경(102) 내에서 상기 테넌트(150) 및 상기 서비스에 대응되는 컨테이너로 라우팅할 수 있다.
다음으로, 사용량 예측부(108)에서 측정된 상기 리소스 사용량을 분석하여 필요한 리소스 사용량을 예측할 수 있다(S504). 이때, 사용량 예측부(108)는 설정된 주기 동안 상기 리소스 사용량의 패턴을 분석할 수 있다.
다음으로, 컨테이너 제어부(110)에서 상기 예측 결과에 따라 상기 서비스 실행을 위한 컨테이너 이미지를 상기 클라우드 환경(102)으로 분배하거나 상기 클라우드 환경(102)에 분배된 컨테이너 이미지를 회수할 수 있다(S506). 이를 위해, 컨테이너 제어부(110)는 각각 사용 가능한 리소스 할당량에 관한 정보를 포함하는 복수의 컨테이너 이미지를 구비할 수 있다. 구체적으로, 컨테이너 제어부(110)는 상기 클라우드 환경(102)에 분배된 컨테이너 이미지의 리소스 할당량의 합이 예측된 리소스 사용량보다 작은 경우, 상기 컨테이너 이미지를 상기 클라우드 환경(102)으로 분배할 수 있다. 또한, 컨테이너 제어부(110)는 주기 동안 분석된 상기 패턴에 따라 상기 컨테이너 이미지를 상기 클라우드 환경(102)으로 분배하거나 상기 클라우드 환경(102)에 분배된 컨테이너 이미지를 회수할 수 있다.
일 실시예에 따르면, 컨테이너 제어부(110)는 상기 클라우드 환경(102)에 분배된 컨테이너 이미지의 리소스 할당량의 합이 예측된 리소스 사용량보다 작은 경우, 상기 리소스 할당량의 합과 예측된 상기 리소스 사용량의 차이 내에서 가장 큰 리소스 할당량을 가지는 컨테이너 이미지를 상기 클라우드 환경으로 분배할 수 있다.
일 실시예에 따르면, 컨테이너 제어부(110)는 상기 컨테이너 이미지에 대응되는 리소스 할당량 중 가장 작은 리소스 할당량보다 상기 클라우드 환경(102)으로 분배된 컨테이너 이미지의 리소스 할당량의 합과 예측된 리소스 사용량의 차이가 작은 경우, 상기 가장 작은 리소스 할당량을 가지는 컨테이너 이미지를 상기 클라우드 환경(102)으로 분배할 수 있다.
일 실시예에 따르면, 컨테이너 제어부(110)는 상기 클라우드 환경(102)에 분배된 컨테이너 이미지의 리소스 할당량의 합이 예측된 리소스 사용량보다 큰 경우, 분배된 상기 컨테이너 이미지 중 가장 작은 리소스 할당량을 가지는 컨테이너 이미지를 회수할 수 있다.
한편, 게이트웨이(104)에서 테넌트(150)로부터 입력된 상기 서비스의 요청량이 설정된 값을 초과하는 경우, 장애가 발생한 것으로 판단하고 상기 라우팅을 중단할 수 있다.
또한, 게이트웨이(104)에서 상기 클라우드 환경(102)에 분배된 컨테이너 이미지의 리소스 할당량의 합이 예측된 리소스 사용량보다 작은 경우, 요청된 상기 서비스의 로드 밸런싱(load balancing)을 수행할 수 있다.
도 6은 예시적인 실시예들에서 사용되기에 적합한 컴퓨팅 장치를 포함하는 컴퓨팅 환경(10)을 예시하여 설명하기 위한 블록도이다. 도시된 실시예에서, 각 컴포넌트들은 이하에 기술된 것 이외에 상이한 기능 및 능력을 가질 수 있고, 이하에 기술되지 것 이외에도 추가적인 컴포넌트를 포함할 수 있다.
도시된 컴퓨팅 환경(10)은 컴퓨팅 장치(12)를 포함한다. 일 실시예에서, 컴퓨팅 장치(12)는 멀티 테넌트 기반의 서비스 제공 시스템(100)일 수 있다.
컴퓨팅 장치(12)는 적어도 하나의 프로세서(14), 컴퓨터 판독 가능 저장 매체(16) 및 통신 버스(18)를 포함한다. 프로세서(14)는 컴퓨팅 장치(12)로 하여금 앞서 언급된 예시적인 실시예에 따라 동작하도록 할 수 있다. 예컨대, 프로세서(14)는 컴퓨터 판독 가능 저장 매체(16)에 저장된 하나 이상의 프로그램들을 실행할 수 있다. 상기 하나 이상의 프로그램들은 하나 이상의 컴퓨터 실행 가능 명령어를 포함할 수 있으며, 상기 컴퓨터 실행 가능 명령어는 프로세서(14)에 의해 실행되는 경우 컴퓨팅 장치(12)로 하여금 예시적인 실시예에 따른 동작들을 수행하도록 구성될 수 있다.
컴퓨터 판독 가능 저장 매체(16)는 컴퓨터 실행 가능 명령어 내지 프로그램 코드, 프로그램 데이터 및/또는 다른 적합한 형태의 정보를 저장하도록 구성된다. 컴퓨터 판독 가능 저장 매체(16)에 저장된 프로그램(20)은 프로세서(14)에 의해 실행 가능한 명령어의 집합을 포함한다. 일 실시예에서, 컴퓨터 판독 가능 저장 매체(16)는 메모리(랜덤 액세스 메모리와 같은 휘발성 메모리, 비휘발성 메모리, 또는 이들의 적절한 조합), 하나 이상의 자기 디스크 저장 디바이스들, 광학 디스크 저장 디바이스들, 플래시 메모리 디바이스들, 그 밖에 컴퓨팅 장치(12)에 의해 액세스되고 원하는 정보를 저장할 수 있는 다른 형태의 저장 매체, 또는 이들의 적합한 조합일 수 있다.
통신 버스(18)는 프로세서(14), 컴퓨터 판독 가능 저장 매체(16)를 포함하여 컴퓨팅 장치(12)의 다른 다양한 컴포넌트들을 상호 연결한다.
컴퓨팅 장치(12)는 또한 하나 이상의 입출력 장치(24)를 위한 인터페이스를 제공하는 하나 이상의 입출력 인터페이스(22) 및 하나 이상의 네트워크 통신 인터페이스(26)를 포함할 수 있다. 입출력 인터페이스(22) 및 네트워크 통신 인터페이스(26)는 통신 버스(18)에 연결된다. 입출력 장치(24)는 입출력 인터페이스(22)를 통해 컴퓨팅 장치(12)의 다른 컴포넌트들에 연결될 수 있다. 예시적인 입출력 장치(24)는 포인팅 장치(마우스 또는 트랙패드 등), 키보드, 터치 입력 장치(터치패드 또는 터치스크린 등), 음성 또는 소리 입력 장치, 다양한 종류의 센서 장치 및/또는 촬영 장치와 같은 입력 장치, 및/또는 디스플레이 장치, 프린터, 스피커 및/또는 네트워크 카드와 같은 출력 장치를 포함할 수 있다. 예시적인 입출력 장치(24)는 컴퓨팅 장치(12)를 구성하는 일 컴포넌트로서 컴퓨팅 장치(12)의 내부에 포함될 수도 있고, 컴퓨팅 장치(12)와는 구별되는 별개의 장치로 컴퓨팅 장치(102)와 연결될 수도 있다.
이상에서 본 발명의 대표적인 실시예들을 상세하게 설명하였으나, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 상술한 실시예에 대하여 본 발명의 범주에서 벗어나지 않는 한도 내에서 다양한 변형이 가능함을 이해할 것이다. 그러므로 본 발명의 권리범위는 설명된 실시예에 국한되어 정해져서는 안 되며, 후술하는 특허청구범위뿐만 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 한다.
100: 멀티 테넌트 기반의 서비스 제공 시스템
102: 클라우드 환경
104: 게이트웨이
106: 사용량 측정부
108: 사용량 예측부
110: 컨테이너 제어부
150: 테넌트
102: 클라우드 환경
104: 게이트웨이
106: 사용량 측정부
108: 사용량 예측부
110: 컨테이너 제어부
150: 테넌트
Claims (7)
- 클라우드 환경 내에서 복수의 테넌트(tenant) 별로 제공되는 서비스의 리소스(resource) 사용량을 측정하는 사용량 측정부;
측정된 상기 리소스 사용량을 분석하여 필요한 리소스 사용량을 예측하는 사용량 예측부; 및
각각 사용 가능한 리소스 할당량에 관한 정보를 포함하는 복수의 컨테이너 이미지를 구비하며, 상기 예측 결과에 따라 상기 서비스 실행을 위한 컨테이너 이미지를 상기 클라우드 환경으로 분배하거나 상기 클라우드 환경에 분배된 컨테이너 이미지를 회수하는 컨테이너 제어부를 포함하는, 멀티 테넌트 기반의 서비스 제공 시스템.
- 청구항 1에 있어서,
상기 컨테이너 제어부는, 상기 클라우드 환경에 분배된 컨테이너 이미지의 리소스 할당량의 합이 예측된 리소스 사용량보다 작은 경우, 상기 컨테이너 이미지를 상기 클라우드 환경으로 분배하는, 멀티 테넌트 기반의 서비스 제공 시스템.
- 청구항 1에 있어서,
상기 컨테이너 제어부는, 상기 클라우드 환경에 분배된 컨테이너 이미지의 리소스 할당량의 합이 예측된 리소스 사용량보다 작은 경우, 상기 클라우드 환경에 필요한 리소스 필요량과 연관된 컨테이너 이미지의 개수에 기초하여 상기 컨테이너 이미지를 상기 클라우드 환경으로 분배하는, 멀티 테넌트 기반의 서비스 제공 시스템.
- 청구항 1에 있어서,
상기 복수의 테넌트로부터 상기 서비스에 관한 요청을 입력 받고 상기 클라우드 환경 내에서 상기 서비스에 대응되는 컨테이너로 라우팅하는 게이트웨이(gateway)를 더 포함하는, 멀티 테넌트 기반의 서비스 제공 시스템.
- 청구항 4에 있어서,
상기 게이트웨이는, 입력된 상기 서비스의 요청량이 설정된 값을 초과하는 경우, 장애가 발생한 것으로 판단하고 상기 라우팅을 중단하는, 멀티 테넌트 기반의 서비스 제공 시스템.
- 청구항 4에 있어서,상기 게이트웨이는, 상기 클라우드 환경에 분배된 컨테이너 이미지의 리소스 할당량의 합이 예측된 리소스 사용량보다 작은 경우, 요청된 상기 서비스의 처리를 지연시키는, 멀티 테넌트 기반의 서비스 제공 시스템.
- 청구항 1에 있어서,
상기 사용량 예측부는, 설정된 주기 동안 측정된 상기 리소스 사용량으로부터 상기 리소스 사용량의 패턴을 분석하며,
상기 컨테이너 제어부는, 상기 주기 동안 분석된 상기 패턴에 따라 상기 컨테이너 이미지를 상기 클라우드 환경으로 분배하거나 상기 클라우드 환경에 분배된 컨테이너 이미지를 회수하는, 멀티 테넌트 기반의 서비스 제공 시스템.
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020160072391A KR20170139872A (ko) | 2016-06-10 | 2016-06-10 | 멀티 테넌트 기반의 서비스 제공 시스템 및 방법 |
US15/616,492 US20170359271A1 (en) | 2016-06-10 | 2017-06-07 | Multi-tenant based system and method for providing services |
CN201710437436.0A CN107493314A (zh) | 2016-06-10 | 2017-06-09 | 基于多租户的服务提供系统及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020160072391A KR20170139872A (ko) | 2016-06-10 | 2016-06-10 | 멀티 테넌트 기반의 서비스 제공 시스템 및 방법 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20170139872A true KR20170139872A (ko) | 2017-12-20 |
Family
ID=60574132
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020160072391A Withdrawn KR20170139872A (ko) | 2016-06-10 | 2016-06-10 | 멀티 테넌트 기반의 서비스 제공 시스템 및 방법 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20170359271A1 (ko) |
KR (1) | KR20170139872A (ko) |
CN (1) | CN107493314A (ko) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20210058401A (ko) * | 2019-11-14 | 2021-05-24 | 대구대학교 산학협력단 | 클라우드 컴퓨팅 환경에서의 컨테이너 배치 장치 및 방법 |
KR20230099444A (ko) * | 2021-12-27 | 2023-07-04 | 주식회사 이노그리드 | 클라우드 멀티테넌트 기반 빅데이터 분석 서비스 시스템 및 그 운영 방법 |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3688586B1 (en) | 2017-09-30 | 2024-08-21 | Oracle International Corporation | Leveraging microservice containers to provide tenant isolation in a multi-tenant api gateway |
CN110913082B (zh) * | 2018-09-14 | 2021-02-19 | 中国电信股份有限公司 | 呼叫中心及其云资源多租户管理方法、装置和系统 |
CN109412878A (zh) * | 2019-01-16 | 2019-03-01 | 紫光云数科技有限公司 | 多租户业务接入实现方法、装置及电子设备 |
US11561706B2 (en) * | 2019-11-20 | 2023-01-24 | International Business Machines Corporation | Storage allocation enhancement of microservices based on phases of a microservice run |
CN113783712A (zh) * | 2020-06-09 | 2021-12-10 | 中兴通讯股份有限公司 | 默认网关管理方法、网关管理器、服务器及存储介质 |
CN111988412A (zh) * | 2020-08-25 | 2020-11-24 | 东北大学 | 一种多租户服务资源需求智能预测系统及方法 |
US12293224B2 (en) * | 2021-04-08 | 2025-05-06 | Cisco Technology, Inc. | Tenant fairness in a multi-tenant environment |
CN115348208B (zh) * | 2021-04-27 | 2024-04-09 | 中移(苏州)软件技术有限公司 | 一种流量控制方法、装置、电子设备和存储介质 |
US11997127B2 (en) * | 2021-05-07 | 2024-05-28 | Netskope, Inc. | Policy based vulnerability identification, correlation, remediation, and mitigation |
CN113760549B (zh) * | 2021-08-30 | 2024-03-15 | 聚好看科技股份有限公司 | 一种pod部署方法及装置 |
JP2024071259A (ja) * | 2022-11-14 | 2024-05-24 | 株式会社日立製作所 | 計算機システム及びリソース割当制御方法 |
CN116578426B (zh) * | 2023-07-12 | 2024-04-09 | 工业富联(佛山)创新中心有限公司 | 基于容器化技术的云平台多租户资源分配方法及相关装置 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8220054B1 (en) * | 2008-10-31 | 2012-07-10 | Trend Micro, Inc. | Process exception list updating in a malware behavior monitoring program |
US8244874B1 (en) * | 2011-09-26 | 2012-08-14 | Limelight Networks, Inc. | Edge-based resource spin-up for cloud computing |
US8595722B2 (en) * | 2010-10-14 | 2013-11-26 | International Business Machines Corporation | Preprovisioning virtual machines based on request frequency and current network configuration |
US8738972B1 (en) * | 2011-02-04 | 2014-05-27 | Dell Software Inc. | Systems and methods for real-time monitoring of virtualized environments |
US9027024B2 (en) * | 2012-05-09 | 2015-05-05 | Rackspace Us, Inc. | Market-based virtual machine allocation |
US9251115B2 (en) * | 2013-03-07 | 2016-02-02 | Citrix Systems, Inc. | Dynamic configuration in cloud computing environments |
US20140351199A1 (en) * | 2013-05-24 | 2014-11-27 | Connectloud, Inc. | Method and apparatus for dynamically predicting workload growth based on heuristic data |
US9300552B2 (en) * | 2013-12-16 | 2016-03-29 | International Business Machines Corporation | Scaling a cloud infrastructure |
US9325576B2 (en) * | 2014-01-15 | 2016-04-26 | Sas Institute Inc. | Dynamic server to server configuration and initialization |
US9256467B1 (en) * | 2014-11-11 | 2016-02-09 | Amazon Technologies, Inc. | System for managing and scheduling containers |
US10031785B2 (en) * | 2015-04-10 | 2018-07-24 | International Business Machines Corporation | Predictive computing resource allocation for distributed environments |
-
2016
- 2016-06-10 KR KR1020160072391A patent/KR20170139872A/ko not_active Withdrawn
-
2017
- 2017-06-07 US US15/616,492 patent/US20170359271A1/en not_active Abandoned
- 2017-06-09 CN CN201710437436.0A patent/CN107493314A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20210058401A (ko) * | 2019-11-14 | 2021-05-24 | 대구대학교 산학협력단 | 클라우드 컴퓨팅 환경에서의 컨테이너 배치 장치 및 방법 |
KR20230099444A (ko) * | 2021-12-27 | 2023-07-04 | 주식회사 이노그리드 | 클라우드 멀티테넌트 기반 빅데이터 분석 서비스 시스템 및 그 운영 방법 |
Also Published As
Publication number | Publication date |
---|---|
US20170359271A1 (en) | 2017-12-14 |
CN107493314A (zh) | 2017-12-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR20170139872A (ko) | 멀티 테넌트 기반의 서비스 제공 시스템 및 방법 | |
US20220329651A1 (en) | Apparatus for container orchestration in geographically distributed multi-cloud environment and method using the same | |
US20200137151A1 (en) | Load balancing engine, client, distributed computing system, and load balancing method | |
EP3577558B1 (en) | Resource management for virtual machines in cloud computing systems | |
US10162684B2 (en) | CPU resource management in computer cluster | |
US20130086272A1 (en) | Network-aware coordination of virtual machine migrations in enterprise data centers and clouds | |
US20210109787A1 (en) | Estimating resource requests for workloads to offload to host systems in a computing environment | |
US20160154676A1 (en) | Method of Resource Allocation in a Server System | |
CN109032751B (zh) | 一种虚拟机部署方法及omm虚拟机 | |
US10866838B2 (en) | Cluster computing service assurance apparatus and method | |
US10721177B2 (en) | Completion-side client throttling | |
US11438271B2 (en) | Method, electronic device and computer program product of load balancing | |
KR102519721B1 (ko) | 컴퓨팅 자원 관리 장치 및 방법 | |
KR20140117905A (ko) | 클라우드 서비스의 가상자원 할당을 위한 퍼지 로직 기반의 자원평가 장치 및 방법 | |
US10009249B2 (en) | System with on-demand state for applications | |
US9417924B2 (en) | Scheduling in job execution | |
KR102045039B1 (ko) | 통합 서버의 자원 분배 관리장치 및 방법 | |
KR101702218B1 (ko) | 역경매 방식 자원할당 장치를 포함하는 하이브리드 클라우드 서버 및 그 자원 할당 방법 및 시스템 | |
KR102261263B1 (ko) | 클라우드 자원 간 간섭 및 병목 현상 해소를 위한 클라우드 자원의 적응적 관리 방법 및 장치 | |
US10277503B2 (en) | Cross-domain service request placement in a software defined environment (SDE) | |
US11513856B2 (en) | Method, devices and computer program products for resource usage | |
US11108698B2 (en) | Systems and methods for client-side throttling after server handling in a trusted client component | |
Ru et al. | Providing fairer resource allocation for multi-tenant cloud-based systems | |
US20190250957A1 (en) | System and method of dynamic allocation of hardware accelerator | |
Vakilinia et al. | Preemptive cloud resource allocation modeling of processing jobs |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PA0109 | Patent application |
Patent event code: PA01091R01D Comment text: Patent Application Patent event date: 20160610 |
|
PG1501 | Laying open of application | ||
PC1203 | Withdrawal of no request for examination |