[go: up one dir, main page]

KR20170139872A - 멀티 테넌트 기반의 서비스 제공 시스템 및 방법 - Google Patents

멀티 테넌트 기반의 서비스 제공 시스템 및 방법 Download PDF

Info

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
Application number
KR1020160072391A
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 삼성에스디에스 주식회사
Priority to KR1020160072391A priority Critical patent/KR20170139872A/ko
Priority to US15/616,492 priority patent/US20170359271A1/en
Priority to CN201710437436.0A priority patent/CN107493314A/zh
Publication of KR20170139872A publication Critical patent/KR20170139872A/ko
Withdrawn legal-status Critical Current

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/5061Partitioning or combining of resources
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/06Management of faults, events, alarms or notifications
    • H04L41/0654Management of faults, events, alarms or notifications using network fault recovery
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3006Monitoring 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations 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
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/14Network analysis or design
    • H04L41/147Network analysis or design for predicting network behaviour
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0876Network utilisation, e.g. volume of load or congestion level
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/12Avoiding congestion; Recovering from congestion
    • H04L47/125Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/70Admission control; Resource allocation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/70Admission control; Resource allocation
    • H04L47/78Architectures of resource allocation
    • H04L47/783Distributed allocation of resources, e.g. bandwidth brokers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/70Admission control; Resource allocation
    • H04L47/83Admission control; Resource allocation based on usage prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1034Reaction to server failures by a load balancer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling 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 BASED SYSTEM AND METHOD FOR PROVIDING SERVICES}
본 발명의 실시예들은 멀티 테넌트 기반의 서비스 제공 시스템을 효율적으로 운용하기 위한 기술과 관련된다.
멀티 테넌트(multi-tenant) 시스템은 다수의 테넌트에게 동시에 서비스를 제공하기 위한 시스템이다. 멀티 테넌트 시스템에서는 다수의 테넌트가 리소스를 공유함으로써 리소스 사용 효율을 높일 수 있었다.
그러나, 한편으로는 멀티 테넌트 시스템에서 복수의 테넌트가 단일의 시스템으로부터 각각의 서비스를 제공받으므로, 테넌트 간 리소스의 경합 문제가 발생하였고, 시스템 상에 발생된 장애에 대한 대처 측면에서도 취약점이 발견되었다. 예를 들어, 종래의 멀티 테넌트 시스템에 의하면 시스템 내 리소스가 특정 테넌트에 의해 독점될 수 있고, 시스템에 발생된 장애가 상기 시스템과 연관된 전체 테넌트에 영향을 줄 수 있었다. 따라서 멀티 테넌트 시스템 상에서 리소스를 효율적으로 분배하여 제공되는 서비스의 품질을 향상시키고 장애 대처 기능을 강화하기 위한 방안이 필요하게 되었다.
한국공개특허공보 제10-2014-0109334호(2014.09.15)
본 발명의 실시예들은 컨테이너를 이용하여 멀티 테넌트 기반의 서비스 제공 시스템 내 리소스를 효율적으로 분배하고 서비스의 품질을 향상시키기 위한 것이다.
또한 본 발명의 실시예들은 컨테이너를 이용하여 멀티 테넌트 기반의 서비스 제공 시스템의 장애 대처(fault tolerance) 기능을 강화하기 위한 것이다.
본 발명의 예시적인 실시예에 따르면, 클라우드 환경 내에서 복수의 테넌트(tenant) 별로 제공되는 서비스의 리소스(resource) 사용량을 측정하는 사용량 측정부; 측정된 상기 리소스 사용량을 분석하여 필요한 리소스 사용량을 예측하는 사용량 예측부; 및 각각 사용 가능한 리소스 할당량에 관한 정보를 포함하는 복수의 컨테이너 이미지를 구비하며, 상기 예측 결과에 따라 상기 서비스 실행을 위한 컨테이너 이미지를 상기 클라우드 환경으로 분배하거나 상기 클라우드 환경에 분배된 컨테이너 이미지를 회수하는 컨테이너 제어부를 포함하는, 멀티 테넌트 기반의 서비스 제공 시스템이 제공된다.
상기 컨테이너 제어부는, 상기 클라우드 환경에 분배된 컨테이너 이미지의 리소스 할당량의 합이 예측된 리소스 사용량보다 작은 경우, 상기 컨테이너 이미지를 상기 클라우드 환경으로 분배할 수 있다.
상기 컨테이너 제어부는, 상기 클라우드 환경에 분배된 컨테이너 이미지의 리소스 할당량의 합이 예측된 리소스 사용량보다 작은 경우, 상기 클라우드 환경에 필요한 리소스 필요량과 연관된 컨테이너 이미지의 개수에 기초하여 상기 컨테이너 이미지를 상기 클라우드 환경으로 분배 할 수 있다.
상기 복수의 테넌트로부터 상기 서비스에 관한 요청을 입력 받고 상기 클라우드 환경 내에서 상기 서비스에 대응되는 컨테이너로 라우팅하는 게이트웨이(gateway)를 더 포함할 수 있다.
상기 게이트웨이는, 입력된 상기 서비스의 요청량이 설정된 값을 초과하는 경우, 장애가 발생한 것으로 판단하고 상기 라우팅을 중단 할 수 있다.
상기 게이트웨이는, 상기 클라우드 환경에 분배된 컨테이너 이미지의 리소스 할당량의 합이 예측된 리소스 사용량보다 작은 경우, 요청된 상기 서비스의 처리를 지연시킬 수 있다.
상기 사용량 예측부는, 설정된 주기 동안 측정된 상기 리소스 사용량으로부터 상기 리소스 사용량의 패턴을 분석하며, 상기 컨테이너 제어부는, 상기 주기 동안 분석된 상기 패턴에 따라 상기 컨테이너 이미지를 상기 클라우드 환경으로 분배하거나 상기 클라우드 환경에 분배된 컨테이너 이미지를 회수 할 수 있다.
본 발명의 다른 예시적인 실시예에 따르면, 하나 이상의 프로세서들, 및 상기 하나 이상의 프로세서들에 의해 실행되는 하나 이상의 프로그램들을 저장하는 메모리를 구비한 서버에서 수행되는 방법으로서, 클라우드 환경 내에서 복수의 테넌트(tenant) 별로 제공되는 서비스의 리소스(resource) 사용량을 측정하는 단계; 측정된 상기 리소스 사용량을 분석하여 필요한 리소스 사용량을 예측하는 단계; 및 상기 예측 결과에 따라 상기 서비스 실행을 위한 컨테이너 이미지를 상기 클라우드 환경으로 분배하거나 상기 클라우드 환경에 분배된 컨테이너 이미지를 회수하는 단계를 포함하며, 복수의 상기 컨테이너는, 각각 사용 가능한 리소스 할당량에 관한 정보를 포함하는 복수의 컨테이너 이미지를 구비하는, 멀티 테넌트 기반의 서비스 제공 방법이 제공된다.
상기 컨테이너 이미지를 분배하거나 회수하는 단계는, 상기 클라우드 환경에 분배된 컨테이너 이미지의 리소스 할당량의 합이 예측된 리소스 사용량보다 작은 경우 상기 컨테이너 이미지를 상기 클라우드 환경으로 분배 할 수 있다.
상기 컨테이너 이미지를 분배하거나 회수하는 단계는, 상기 클라우드 환경에 분배된 컨테이너 이미지의 리소스 할당량의 합이 예측된 리소스 사용량보다 작은 경우, 상기 클라우드 환경에 필요한 리소스 필요량과 연관된 컨테이너 이미지의 개수에 기초하여 상기 컨테이너 이미지를 상기 클라우드 환경으로 분배 할 수 있다.
리소스(resource) 사용량을 측정하는 단계의 수행 이전에, 상기 복수의 테넌트로부터 상기 서비스에 관한 요청을 입력 받고 상기 클라우드 환경 내에서 상기 서비스에 대응되는 컨테이너로 라우팅하는 단계를 더 포함할 수 있다.
상기 라우팅하는 단계는, 입력된 상기 서비스의 요청량이 설정된 값을 초과하는 경우, 장애가 발생한 것으로 판단하고 상기 라우팅을 중단 할 수 있다.
상기 라우팅하는 단계는, 상기 클라우드 환경에 분배된 컨테이너 이미지의 리소스 할당량의 합이 예측된 리소스 사용량보다 작은 경우, 요청된 상기 서비스의 처리를 지연시킬 수 있다.
상기 예측하는 단계는, 설정된 주기 동안 측정된 상기 리소스 사용량으로부터 상기 리소스 사용량의 패턴을 분석하며, 상기 컨테이너 이미지를 분배하거나 회수하는 단계는, 상기 주기 동안 분석된 상기 패턴에 따라 상기 컨테이너 이미지를 상기 클라우드 환경으로 분배하거나 상기 클라우드 환경에 분배된 컨테이너 이미지를 회수 할 수 있다.
본 발명의 실시예들에 따르면, 클라우드 환경에서 각각 리소스 할당량을 가지는 컨테이너 이미지를 이용하여 서비스를 제공함으로써 특정 테넌트에 의해 시스템 내 리소스가 독점되는 것을 방지할 수 있다.
또한 본 발명의 실시예들에 따르면, 클라우드 환경에서 컨테이너 단위로 서비스를 제공함으로써 특정 컨테이너와 관련된 장애가 발생한 경우 발생된 장애가 다른 테넌트로 영향이 미치는 것을 방지할 수 있다.
또한 본 발명의 실시예들에 따르면, 멀티 테넌트 기반의 서비스 제공 시스템이 동일한 서비스에 대해 서로 다른 리소스 할당량을 가지는 컨테이너 이미지의 종류 및 개수를 제어함으로써, 낭비되는 자원의 양을 줄일 수 있고 게이트웨이가 서비스를 라우팅하는데 발생되는 부하를 감소시킬 수 있다.
도 1은 본 발명의 일 실시예에 따른 멀티 테넌트 기반의 서비스 제공 시스템의 상세 구성을 나타낸 블록도
도 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: 테넌트

Claims (7)

  1. 클라우드 환경 내에서 복수의 테넌트(tenant) 별로 제공되는 서비스의 리소스(resource) 사용량을 측정하는 사용량 측정부;
    측정된 상기 리소스 사용량을 분석하여 필요한 리소스 사용량을 예측하는 사용량 예측부; 및
    각각 사용 가능한 리소스 할당량에 관한 정보를 포함하는 복수의 컨테이너 이미지를 구비하며, 상기 예측 결과에 따라 상기 서비스 실행을 위한 컨테이너 이미지를 상기 클라우드 환경으로 분배하거나 상기 클라우드 환경에 분배된 컨테이너 이미지를 회수하는 컨테이너 제어부를 포함하는, 멀티 테넌트 기반의 서비스 제공 시스템.
  2. 청구항 1에 있어서,
    상기 컨테이너 제어부는, 상기 클라우드 환경에 분배된 컨테이너 이미지의 리소스 할당량의 합이 예측된 리소스 사용량보다 작은 경우, 상기 컨테이너 이미지를 상기 클라우드 환경으로 분배하는, 멀티 테넌트 기반의 서비스 제공 시스템.
  3. 청구항 1에 있어서,
    상기 컨테이너 제어부는, 상기 클라우드 환경에 분배된 컨테이너 이미지의 리소스 할당량의 합이 예측된 리소스 사용량보다 작은 경우, 상기 클라우드 환경에 필요한 리소스 필요량과 연관된 컨테이너 이미지의 개수에 기초하여 상기 컨테이너 이미지를 상기 클라우드 환경으로 분배하는, 멀티 테넌트 기반의 서비스 제공 시스템.
  4. 청구항 1에 있어서,
    상기 복수의 테넌트로부터 상기 서비스에 관한 요청을 입력 받고 상기 클라우드 환경 내에서 상기 서비스에 대응되는 컨테이너로 라우팅하는 게이트웨이(gateway)를 더 포함하는, 멀티 테넌트 기반의 서비스 제공 시스템.
  5. 청구항 4에 있어서,
    상기 게이트웨이는, 입력된 상기 서비스의 요청량이 설정된 값을 초과하는 경우, 장애가 발생한 것으로 판단하고 상기 라우팅을 중단하는, 멀티 테넌트 기반의 서비스 제공 시스템.
  6. 청구항 4에 있어서,상기 게이트웨이는, 상기 클라우드 환경에 분배된 컨테이너 이미지의 리소스 할당량의 합이 예측된 리소스 사용량보다 작은 경우, 요청된 상기 서비스의 처리를 지연시키는, 멀티 테넌트 기반의 서비스 제공 시스템.
  7. 청구항 1에 있어서,
    상기 사용량 예측부는, 설정된 주기 동안 측정된 상기 리소스 사용량으로부터 상기 리소스 사용량의 패턴을 분석하며,
    상기 컨테이너 제어부는, 상기 주기 동안 분석된 상기 패턴에 따라 상기 컨테이너 이미지를 상기 클라우드 환경으로 분배하거나 상기 클라우드 환경에 분배된 컨테이너 이미지를 회수하는, 멀티 테넌트 기반의 서비스 제공 시스템.
KR1020160072391A 2016-06-10 2016-06-10 멀티 테넌트 기반의 서비스 제공 시스템 및 방법 Withdrawn KR20170139872A (ko)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Cited By (2)

* Cited by examiner, † Cited by third party
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