KR102319172B1 - 클라우드 컴퓨팅 기반의 플랫폼 제공 시스템 및 이를 이용한 플랫폼 제공 방법 - Google Patents
클라우드 컴퓨팅 기반의 플랫폼 제공 시스템 및 이를 이용한 플랫폼 제공 방법 Download PDFInfo
- Publication number
- KR102319172B1 KR102319172B1 KR1020190156991A KR20190156991A KR102319172B1 KR 102319172 B1 KR102319172 B1 KR 102319172B1 KR 1020190156991 A KR1020190156991 A KR 1020190156991A KR 20190156991 A KR20190156991 A KR 20190156991A KR 102319172 B1 KR102319172 B1 KR 102319172B1
- Authority
- KR
- South Korea
- Prior art keywords
- container
- api server
- platform
- node
- worker node
- Prior art date
Links
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/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
-
- 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
-
- 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
- G06F9/5077—Logical partitioning of resources; Management or configuration of virtualized resources
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
본 발명은 클라우드 컴퓨팅 기반의 플랫폼 제공 시스템 및 그를 이용한 플랫폼 제공 방법에 관한 것으로서, 더욱 상세하게는 클라우드 컴퓨팅 환경에서 다수의 가상머신 인스턴스들을 포함하는 클러스터링 환경을 구성하며, 상기 클러스터링 환경에서 사용자의 요청에 따라 선택된 워커 노드에 어플리케이션 개발 환경에 필요한 다양한 플랫폼을 구비한 맞춤형 컨테이너를 생성해줌으로써, 제한된 리소스를 이용하여 상기 어플리케이션 개발 환경을 효율적으로 제공할 수 있는 클라우드 컴퓨팅 기반의 플랫폼 제공 시스템 및 이를 이용한 플랫폼 제공 방법을 제공한다.
Description
본 발명은 클라우드 컴퓨팅 기반의 플랫폼 제공 시스템 및 이를 이용한 플랫폼 제공 방법에 관한 것으로서, 더욱 상세하게는 클라우드 컴퓨팅 환경에서 다수의 가상머신 인스턴스들을 포함하는 클러스터링 환경을 구성하며, 상기 클러스터링 환경에서 사용자의 요청에 따라 선택된 워커 노드에 어플리케이션 개발 환경에 필요한 다양한 플랫폼을 구비한 맞춤형 컨테이너를 생성해줌으로써, 제한된 리소스를 이용하여 상기 어플리케이션 개발 환경을 효율적으로 제공할 수 있는 클라우드 컴퓨팅 기반의 플랫폼 제공 시스템 및 이를 이용한 플랫폼 제공 방법에 관한 것이다.
클라우드 컴퓨팅이란, 인터넷 기반(Cloud)의 컴퓨터기술(Computing)을 의미하는 것으로, 이때의 구름(Cloud)은 컴퓨터 네트워크 상에 숨겨진 복잡한 인프라 구조, 즉, 인터넷을 뜻한다. 사용자가 필요한 소프트웨어를 자신의 컴퓨터에 설치하지 않고도 인터넷 접속을 통해 언제든 사용할 수 있고 동시에 각종 IT 기기로 데이터를 손쉽게 공유할 수 있는 사용 환경이다. 즉, 개인이 웹에 접속해서 포토샵, 오피스 같은 프로그램을 작업할 수 있고 그 작업에 대한 저장도 웹에서 하게 된다. 결국 가상의 공간에 하나의 서버(컴퓨터)만을 놓고 이 하나의 컴퓨터를 통해 여러 사람이 개인의 작업을 할 수 있는 것이다. 클라우드라는 용어는 1990년대에 거대한 규모의 ATM을 지칭하는 데서 쓰이다가, 소비자 중심의 웹 기반이 형성되는 21세기에 들어서야 클라우드 컴퓨팅이라는 용어가 널리 퍼지기 시작했다.
클라우드 컴퓨팅의 장점으로는, 사용자의 데이터를 신뢰성 높은 서버에 안전하게 보관할 수 있고 기기를 가지지 못한 소외계층도 공용 컴퓨터나 인터넷에 연결되기만 한다면 개인 컴퓨팅 환경을 누릴 수 있으며, 개인이 가지고 다녀야 하는 장비나 저장 공간의 제약이 사라진다는 점이다. 그러나 서버가 공격당하면 개인정보가 유출되거나 재해에 의한 서버의 데이터 손상시 미리 백업하지 않은 정보를 되살리지 못한다는 문제점도 있다.
클라우드(Cloud)는 컴퓨팅 서비스 사업자 서버를 구름 모양으로 표시하는 관행에 따라 '서비스 사업자의 서버'로 통한다. 소프트웨어와 데이터를 인터넷과 연결된 중앙 컴퓨터에 저장하고 인터넷에 접속하기만 하면 언제 어디서든 데이터를 이용할 수 있도록 하는 것이다.
한편, 클라우드는 도입과 배포 형태에 따라 오직 하나의 단체를 위해서만 운영되는 프라이빗 클라우드(Private cloud), 공개적 이용을 위해 열린 네트워크를 통해 렌더링 되는 퍼블릭 클라우드(Public cloud), 뚜렷한 실체는 유지하지만 함께 묶여 있는 둘 이상의 클라우드의 조합인 하이브리드 클라우드(Hybrid cloud) 등으로도 나눌 수 있다.
한편, 클라우드 컴퓨팅 환경에서 사용자의 요청에 따라 어플리케이션 개발 환경에 필요한 맞춤형 플랫폼을 제공해주는 시스템이 요구된다.
따라서, 본 발명은 상기한 바와 같은 문제점을 해결하기 위하여 안출된 것으로, 본 발명의 목적은 클라우드 컴퓨팅 환경에서 다수의 가상머신 인스턴스들을 포함하는 클러스터링 환경을 구성하며, 상기 클러스터링 환경에서 사용자의 요청에 따라 선택된 워커 노드에 어플리케이션 개발 환경에 필요한 다양한 플랫폼을 구비한 맞춤형 컨테이너를 생성해줌으로써, 제한된 리소스를 이용하여 상기 어플리케이션 개발 환경을 효율적으로 제공할 수 있는 클라우드 컴퓨팅 기반의 플랫폼 제공 시스템 및 이를 이용한 플랫폼 제공 방법을 제공하는 것이다.
본 발명의 실 시예들의 목적은 이상에서 언급한 목적으로 제한되지 않으며, 언급되지 않은 또 다른 목적들은 아래의 기재로부터 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
상기한 바와 같은 목적을 달성하기 위한 본 발명의 일 실시예에 따른 클라우드 컴퓨팅 기반의 플랫폼 제공 시스템에 있어서, 컴퓨팅, 네트워킹 및 스토리지를 포함하며 클라우드 서비스를 제공하는 클라우드(100); CPU 및 RAM 같은 리소스를 추상화하여 하이퍼바이저를 통해 가상머신 형태로 제공하는 다수의 가상머신 인스턴스(200); 상기 다수의 가상머신 인스턴스 상에 형성되어 컨테이너화된 응용프로그램을 배포, 스케줄링 및 관리하기 위한 컨테이너 오케스트레이션(300); 상기 컨테이너 오케스트레이션에 포함되며 클러스터를 관리하기 위한 마스터(400); 및 상기 컨테이너 오케스트레이션에 포함되며, 상기 응용프로그램이 실제로 동작하는 컨테이너가 생성되는 다수의 워커 노드(500, 600)를 포함한다.
상기 마스터(400)는, 상기 클러스터의 서버 정보 및 상태를 저장하고 있는 데이터베이스(401); 새로운 컨테이너 생성 요청시, 정책 및 클러스터 상태를 검색하여, 컨테이너가 생성될 워커 노드를 선택하기 위한 스케줄러(402); 상기 클러스터의 상태를 조회하고 변경 사항을 상기 데이터베이스에 저장하는 컨트롤러 매니저(403); 상기 컨테이너 오케스트레이션의 프론트 엔드이며, 컨테이너의 라이프사이클을 정의, 배포 및 관리하기 위한 API 서버(404); 및 상기 마스터를 관리하기 위한 마스터 컨테이너 엔진(405)을 포함하는 것을 특징으로 하고, 상기 다수의 워커 노드의 각 워커 노드(500, 600)는, 사용자 어플리케이션의 개발 환경에 필요한 적어도 하나 이상의 플랫폼(501, 502, 601, 602); 상기 생성된 컨테이너를 관리하기 위한 컨테이너 엔진(503,603); 및 상기 마스터로부터 수신한 컨테이너 관리 요청에 따라 상기 컨테이너 엔진으로 컨테이너의 생성, 삭제 및 업데이트를 요청하기 위한 컨테이너 매니저(504, 604)를 포함하는 것을 특징으로 한다.
상기 API 서버에서, 사용자로부터의 플랫폼 제공 서비스를 위한 컨테이너 생성을 요청받음에 따라, 컨테이너 이름, 컨테이너 이미지, 필요 할당 자원, 노드 타입을 포함한 스펙이 정의되는 것을 특징으로 하고, 상기 API 서버가, 상기 정의된 스펙 중 상기 노드 타입을 상기 스케줄러로 전달함에 따라, 상기 스케줄러가 상기 노드 타입을 분석하여 최적의 워커 노드를 검색하는 것을 특징으로 한다.
또한, 본 발명의 일 실시예에 따른 클라우드 컴퓨팅 기반의 플랫폼 제공 시스템을 이용한 플랫폼 제공 방법에 있어서, 마스터의 API 서버가 사용자로부터 플랫폼 서비스를 위한 컨테이너 생성을 요청받는 컨테이너생성요청수신단계(S310); 상기 API 서버가 데이터베이스에 새로운 컨테이너를 추가하고 컨테이너의 상태를 저장하는 제1저장단계(S320); 상기 API 서버가 스케줄러로 상기 새로운 컨테이너를 생성할 워커 노드의 검색을 요청하는 워커노드검색요청단계(S330); 상기 스케줄러는 상기 API 서버로 상기 새로운 컨테이너가 생성될 워커 노드의 정보를 전달하는 정보전달단계(S340); 상기 API 서버가 상기 데이터베이스에 상기 새로운 컨테이너의 변경된 상태를 저장하는 제2저장단계(S350); 상기 API 서버가 상기 검색된 워커 노드의 컨테이너 매니저에게 상기 새로운 컨테이너의 생성을 요청하는 컨테이너생성요청단계(S360); 상기 워커 노드가 상기 새로운 컨테이너를 생성하는 컨테이너생성단계(S370); 상기 워커 노드가 상기 API 서버에게 상기 생성된 컨테이너의 상태 업데이트를 요청하는 업데이트단계(S380); 및 상기 API 서버가 상기 데이터베이스에 상기 생성된 컨테이너의 변경된 상태를 저장하는 제3저장단계(S390)를 포함한다.
상기 컨테이너생성요청수신단계(S310)에서는, 상기 사용자로부터 컨테이너 이름, 컨테이너 이미지, 필요 할당 자원, 노드 타입을 포함한 스펙이 정의되는 것을 특징으로 하고, 상기 워커노드검색요청단계(S330)는, 상기 API 서버가 상기 정의된 스펙 중 상기 노드 타입을 상기 스케줄러로 전달하고, 상기 스케줄러는 상기 노드 타입을 분석하여 최적의 워커 노드를 검색하는 것을 특징으로 한다.
또한, 본 발명의 일 실시예에 따르면, 상기 클라우드 컴퓨팅 기반의 플랫폼 제공 시스템을 이용한 플랫폼 제공 방법을 구현하기 위한 프로그램이 저장된 컴퓨터 판독 가능한 기록매체가 제공되는 것을 특징으로 한다.
아울러, 본 발명의 일 실시예에 따르면, 상기 클라우드 컴퓨팅 기반의 플랫폼 제공 시스템을 이용한 플랫폼 제공 방법을 구현하기 위해, 컴퓨터 판독 가능한 기록매체에 저장된 프로그램이 제공되는 것을 특징으로 한다.
본 발명의 일 실시예에 따른 클라우드 컴퓨팅 기반의 플랫폼 제공 시스템 및 이를 이용한 플랫폼 제공 방법에 의하면, 클라우드 컴퓨팅 환경에서 다수의 가상머신 인스턴스들을 포함하는 클러스터링 환경을 구성하며, 상기 클러스터링 환경에서 사용자의 요청에 따라 선택된 워커 노드에 어플리케이션 개발 환경에 필요한 다양한 플랫폼을 구비한 맞춤형 컨테이너를 생성해줌으로써, 제한된 리소스를 이용하여 상기 어플리케이션 개발 환경을 효율적으로 제공할 수 있는 효과가 있다.
또한, 본 발명의 일 실시예에 따른 클라우드 컴퓨팅 기반의 플랫폼 제공 시스템 및 이를 이용한 플랫폼 제공 방법에 의하면, PaaS 서버와 플랫폼동작서버의 구분 대신, 모든 서버(노드)가 컨테이너 오케스트레이션(Container Orchestration)으로 클러스터링(Clustering) 되어 있고, 마스터(관리)와 워커 노드로 구분되며, 모든 노드에 컨테이너 엔진(Container Engine)이 설치되어 있어 필요한 서비스들(플랫폼들)이 하나의 컨테이너 내부에 설치되고, 상기 컨테이너 내부에서 동작이 가능하므로, 사용자는 본인이 필요한 사항(스펙)에 대한 입력만으로 간단히 최적의 개발 환경을 제공받을 수 있는 효과가 있다.
도 1은 본 발명이 적용되는 클라우드 서비스 모델을 설명하기 위한 도면.
도 2는 본 발명의 일 실시예에 따른 클라우드 컴퓨팅 기반의 플랫폼 제공 시스템의 구성도.
도 3은 본 발명에 따른 클라우드 컴퓨팅 기반의 플랫폼 제공 시스템을 이용한 플랫폼 제공 방법을 설명하기 위한 도면.
도 2는 본 발명의 일 실시예에 따른 클라우드 컴퓨팅 기반의 플랫폼 제공 시스템의 구성도.
도 3은 본 발명에 따른 클라우드 컴퓨팅 기반의 플랫폼 제공 시스템을 이용한 플랫폼 제공 방법을 설명하기 위한 도면.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는바, 특정 실시예들을 도면에 예시하고 상세하게 설명하고자 한다. 그러나 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야한다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다.
반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.
본 명세서에서 사용되는 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 공정, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 공정, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미가 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미가 있는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 첨부된 도면을 참조하여 본 발명을 더욱 상세하게 설명한다. 이에 앞서, 본 명세서 및 청구범위에 사용된 용어나 단어는 통상적이거나 사전적인 의미로 한정하여 해석되어서는 아니 되며, 발명자는 그 자신의 발명을 가장 최선의 방법으로 설명하기 위해 용어의 개념을 적절하게 정의할 수 있다는 원칙에 입각하여, 본 발명의 기술적 사상에 부합하는 의미와 개념으로 해석되어야만 한다. 또한, 사용되는 기술 용어 및 과학 용어에 있어서 다른 정의가 없다면, 이 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 통상적으로 이해하고 있는 의미를 가지며, 하기의 설명 및 첨부 도면에서 본 발명의 요지를 불필요하게 흐릴 수 있는 공지 기능 및 구성에 대한 설명은 생략한다. 다음에 소개되는 도면들은 당업자에게 본 발명의 사상이 충분히 전달될 수 있도록 하기 위해 예로서 제공되는 것이다. 따라서, 본 발명은 이하 제시되는 도면들에 한정되지 않고 다른 형태로 구체화될 수도 있다. 또한, 명세서 전반에 걸쳐서 동일한 참조번호들은 동일한 구성요소들을 나타낸다. 도면들 중 동일한 구성요소들은 가능한 한 어느 곳에서든지 동일한 부호들로 나타내고 있음에 유의해야 한다.
도 1은 본 발명이 적용되는 클라우드 서비스 모델을 설명하기 위한 도면이다.
최초 클라우드 서비스는 '지메일(Gmail)'이나 '드롭박스(Dropbox)', '네이버 클라우드'처럼 소프트웨어를 웹에서 쓸 수 있는 SaaS(Software as a Service, 서비스로서의 소프트웨어)가 대부분이었다. 그러다가 서버와 스토리지, 네트워크 장비 등의 IT 인프라 장비를 빌려주는 IaaS(Infrastructure as a Service, 서비스로서의 인프라스트럭처), 플랫폼을 빌려주는 PaaS(Platform as a Service, 서비스로서의 플랫폼)으로 늘어났다. 클라우드 서비스는 어떤 자원을 제공하느냐에 따라 이처럼 크게 3가지로 나뉜다.
먼저, SaaS는 클라우드 환경에서 운영되는 애플리케이션 서비스를 말한다. 모든 서비스가 클라우드에서 이뤄진다. 소프트웨어를 구입해서 PC에 설치하지 않아도 웹에서 소프트웨어를 빌려 쓸 수 있다.
웹메일 서비스는, e메일을 보내고 받는 과정에서 따로 소프트웨어를 PC에 설치하지 않는다. 웹사이트에 들어가서 주소를 입력하고 로그인하면 끝이다. 유클라우드나 네이버 클라우드, 드롭박스 같은 클라우드 서비스도 마찬가지다. PC에 별도로 프로그램을 설치할 필요 없이 인터넷에 접속하면 바로 주요 기능을 쓸 수 있다.
SaaS는 필요할 때 원하는 비용만 내면 어디서든 곧바로 쓸 수 있다는 장점이 있다. PC나 기업 서버에 소프트웨어를 설치할 필요가 없다. 소프트웨어 설치를 위해 비용과 시간을 들이지 않아도 된다. SaaS는 중앙에서 해당 소프트웨어를 관리하기 때문에 사용자가 일일이 업그레이드나 패치 작업을 할 필요도 없다.
대표적인 SaaS 서비스는 구글 앱스, 세일즈포스닷컴, MS오피스 365, 드롭박스와 같은 클라우드 스토리지 서비스 등이 있다. 이 중 세일즈포스닷컴은 고객관리솔루션(CRM)을 최초로 SaaS 방식으로 서비스한 회사다. 미국뿐 아니라 일본, 유럽 등 다양한 지역에서 세일즈포스닷컴 CRM 솔루션을 사용하고 있다.
국내에서는 한글과컴퓨터가 SaaS 형태의 오피스 솔루션인 '넷피스'를, 인프라웨어는 클라우드 오피스인 '폴라리스 오피스(Polaris Office)'를 선보였다. 그 외에도 다양한 클라우드 스토리지 서비스가 SaaS에 포함된다.
한편, IaaS는 인터넷을 통해 서버와 스토리지 등 데이터센터 자원을 빌려 쓸 수 있는 서비스를 일컫는다. 이용자는 직접 데이터센터를 구축할 필요 없이 클라우드 환경에서 필요한 인프라를 꺼내 쓰면 된다. 이렇게 빌려온 인프라에서 사용자는 운영체제를 설치하고, 애플리케이션 등을 설치한 다음 원하는 서비스를 운영할 수 있다.
IaaS로는 넷플릭스 사례가 대표적이다. 넷플릭스는 자체 데이터센터를 구축한 다음 서비스를 운영하는 방식 대신에 아마존웹서비스(AWS)의 IaaS 서비스를 이용하는 방식을 택했다. 전 세계에 보다 빠른 서비스를 제공하기 위해 AWS에서 필요한 컴퓨팅 자원을 빌려서 서비스를 운영한다. 때에 따라 필요한 컴퓨팅 인프라를 몇 분 또는 몇 시간 안에 IaaS로 구성하여 운영할 수 있다. 만약 기존 데이터센터 환경이었다면 서버를 추가로 들이거나 스토리지를 구입하는 과정에서 시간이 며칠 또는 몇 주 더 걸릴 수 있다.
IaaS는 가상 서버, 데이터 스토리지 같은 기존 데이터센터가 제공하는 서비스를 제공한다. 사용자는 이런 서비스를 조합해 애플리케이션을 실행하거나 운영할 수 있다. 게다가 물리적으로 만들어진 환경이 아니기 때문에 사용하지 않을 때 시스템을 해체하는 것도 손쉽다.
대표 Iaas 서비스로는 아마존웹서비스(AWS)를 꼽는다. AWS는 2002년 7월 '아마존 E-커머스 서비스(ECS)'란 이름으로 처음 클라우드 서비스를 시작했다. AWS는 2014년 말 기준으로 이용 고객이 100만 곳을 넘어섰으며 CIA, 미국 항공우주국 등 다양한 기관과 계약을 맺어 서비스를 제공하고 있다. AWS 뿐 아니라 MS, 구글, IBM, 오라클 등 다양한 회사가 IaaS 서비스를 운영 중이다. 국내에서는 KT, LG유플러스 등이 IaaS 서비스를 운영하고 있다.
한편, PaaS는 소프트웨어 서비스를 개발할 때 필요한 플랫폼을 제공하는 서비스다. 사용자는 PaaS에서 필요한 서비스를 선택해 애플리케이션을 개발하면 된다. PaaS 운영 업체는 개발자가 소프트웨어를 개발할 때 필요한 API를 제공해 개발자가 좀 더 편하게 앱을 개발할 수 있게 돕는다. 일종의 레고 블록 같은 서비스다.
앞서 설명한 SaaS가 이미 만들어진 레고 모형이고, IaaS가 레고 공장이라면, PaaS는 레고 블록이라 할 수 있다. PaaS 서비스 업체는 레고 블록을 개발자에게 제공하고, 개발자는 각 레고 블록을 바탕으로 자신만의 레고 모형을 만든다. 레고 블록이 소프트웨어(SW) 개발도구라면, 레고 모형이 완성된 소프트웨어(SW)나 서비스가 된다. PaaS를 이용하면 개발자는 모형을 만들기 위해서 직접 레고 블록을 설계하거나 만들 필요가 없다. 자신에게 필요한 블록 조각만 고르고, 그 비용을 치르면 된다.
개발자가 개발을 하는 데 필요한 도구와 환경을 사용하고, 사용한 만큼만 비용을 내기 때문에 개발자로선 비용 부담을 덜 수 있다. 단, 플랫폼 기반으로 애플리케이션을 개발하기 때문에 특정 플랫폼에 종속될 수 있다는 단점이 있다. A 서비스 업체의 PaaS에서 앱을 개발하고 이 작업을 B 회사의 PaaS에서 이어서 하기가 쉽지 않다는 뜻이다. 다양한 플랫폼에서 작업하려면 이에 맞게 앱을 수정하는 과정이 필요하다. 대표 PaaS 서비스 기업으로는 세일즈포스닷컴(salesforce.com), 구글 앱 엔진(Google App Engine) 등이 있다.
본 발명은, PaaS 서비스가 가능한 클라우드 컴퓨팅 기반의 플랫폼 제공 시스템에 관한 것이다.
도 2는 본 발명의 일 실시예에 따른 클라우드 컴퓨팅 기반의 플랫폼 제공 시스템의 구성도이다.
도 2에 도시된 바와 같이, 본 발명의 일 실시예에 따른 클라우드 컴퓨팅 기반의 플랫폼 제공 시스템은, 클라우드(100), 다수의 가상머신 인스턴스(200), 컨테이너 오케스트레이션(300), 마스터(400), 및 다수의 워커 노드(500, 600)를 포함한다.
상기 클라우드(100)는 공용 클라우드(Public Cloud)이거나 사설 클라우드(Private Cloud) 일 수 있으며, 컴퓨팅, 네트워킹 및 스토리지 등을 포함하며 클라우드 서비스를 제공한다.
상기 다수의 가상머신 인스턴스(200)는 CPU 및 RAM 같은 리소스를 추상화하여 하이퍼바이저를 통해 각 노드(마스터, 워커 노드)에 대응하여 가상머신 형태로 제공된다.
상기 컨테이너 오케스트레이션(300)은 상기 다수의 가상머신 인스턴스(200) 상에 형성되어 컨테이너화된 응용프로그램을 배포, 스케줄링 및 관리한다. 상기 컨테이너 오케스트레이션(300)은 마스터(400) 및 다수의 워커 노드(500, 600)로 구성되며 모든 노드들을 클러스터화하여 하나의 시스템으로 구성한다.
상기 마스터(400)는 상기 컨테이너 오케스트레이션(300)에 포함되며 클러스터를 관리한다.
상기 다수의 워커 노드(500, 600)는 상기 컨테이너 오케스트레이션(300)에 포함되며, 상기 응용프로그램이 실제로 동작하는 컨테이너(510, 610)가 생성된다.
상기 마스터(400)는, 데이터베이스(401), 스케줄러(402), 컨트롤러 매니저(403), API 서버(404), 마스터 컨테이너 엔진(405)을 포함한다.
상기 데이터베이스(401)는 상기 클러스터의 서버 정보 및 상태와 컨테이너의 상태를 key/value 형태로 저장한다.
상기 스케줄러(402)는 새로운 컨테이너 생성 요청시, 정책 및 클러스터 상태를 검색하여, 컨테이너가 생성될 워커 노드를 선택한다.
상기 컨트롤러 매니저(403)는 상기 클러스터의 상태를 조회하고 변경 사항을 상기 데이터베이스에 저장하고, 사용자가 컨테이너에 접근하기 위한 엔드 포인트를 제공하고, 클러스터 계정 및 API 접근 토큰을 관리한다.
상기 API 서버(404)는 상기 컨테이너 오케스트레이션(300)의 프론트 엔드이며, 컨테이너(510, 610)의 라이프사이클을 정의, 배포 및 관리한다.
상기 API 서버(404)에서는, 사용자로부터의 플랫폼 제공 서비스를 위한 컨테이너 생성을 요청받음에 따라, 컨테이너 이름, 컨테이너 이미지, 필요 할당 자원, 노드 타입을 포함한 스펙이 정의된다. 또한, 상기 API 서버(404)가, 상기 정의된 스펙 중 상기 노드 타입을 상기 스케줄러(402)로 전달함에 따라, 상기 스케줄러(402)가 상기 노드 타입을 분석하여 최적의 워커 노드를 검색한다.
상기 마스터 컨테이너 엔진(405)은 상기 마스터를 관리하기 위한 엔진(프레임워크)이다.
제1 워커 노드(500)는 사용자 어플리케이션의 개발 환경에 필요한 적어도 하나 이상의 플랫폼(예를 들어, 딥러닝 플랫폼(501), 데이터베이스 플랫폼(502)), 상기 생성된 컨테이너(510)를 관리하기 위한 제1 컨테이너 엔진(503), 상기 마스터(400)로부터 수신한 컨테이너 관리 요청에 따라 상기 제1 컨테이너 엔진(503)으로 컨테이너의 생성, 삭제 및 업데이트를 요청하기 위한 제1 컨테이너 매니저(504)를 포함한다.
제n 워커 노드(600)는 사용자 어플리케이션의 개발 환경에 필요한 적어도 하나 이상의 플랫폼(예를 들어, 딥러닝 플랫폼(601), 개발 툴 플랫폼(602)), 상기 생성된 컨테이너(610)를 관리하기 위한 제n 컨테이너 엔진(603), 상기 마스터(400)로부터 수신한 컨테이너 관리 요청에 따라 상기 제n 컨테이너 엔진(603)으로 컨테이너의 생성, 삭제 및 업데이트를 요청하기 위한 제n 컨테이너 매니저(604)를 포함한다.
컨테이너(510), 610)를 이용하여 하나의 호스트(워커 노드)에 여러 독립적인 개발 환경을 제공할 수 있다.
본 발명에 따른 클라우드 컴퓨팅 기반의 플랫폼 생성 프로세스는 다음과 같다.
사용자는 마스터(400)의 API 서버(404)에게 응용프로그램 개발 환경을 위한 플랫폼 생성을 요청한다.
이후, 상기 마스터(400)는 상기 API 서버(404)로 플랫폼 생성 요청이 수신되면, 스케줄러(402)에서 플랫폼 생성이 가능한 워커 노드(500, 600)를 검색한다.
상기 스케줄러(402)는 데이터베이스(401) 저장된 클러스터의 서버 정보 및 상태를 조회하고, 사용 가능한 워커 노드를 상기 API 서버(404)로 전달한다.
그러면, 상기 API 서버(404)는 워커 노드(500, 600)의 컨테이너 매니저(504, 604)에게 요청된 플랫폼 이미지가 저장된 컨테이너(510, 610)를 생성하도록 요청한다.
상기 워커 노드(500, 600)의 상기 컨테이너 매니저(504, 604)는 컨테이너 엔진(503, 603)에게 상기 컨테이너(510, 610)를 생성하도록 요청한다.
이후, 상기 워커 노드(500, 600)에 요청된 플랫폼 이미지가 저장된 컨테이너(510, 610)가 생성되고, 사용자는 해당 컨테이너(510, 610)에 접속하여 응용프로그램을 설치하고 동작시킬 수 있다.
한편, 컨테이너 생성시 스케줄링 정책을 적용하기 위해서는 먼저 워커 노드별 유형(노드 타입)을 설정해야 한다. 워커 노드별 유형(노드 타입)은, 컴퓨팅 최적화 노드, 스토리지 최적화 노드, GPU 컴퓨팅 여부 등을 포함한다.
예를 들어, 컴퓨터 최적화 워커 노드는, 3.6GHz의 CPU Core 기반 컨테이너를 제공하는 것이 가능하고, 일반 노드는 2.1GHz의 CPU Core 기반 컨테이너를 제공하는 것이 가능하다.
한편, 스토리지 최적화 워커 노드는, NVMe 기반 SSD 스토리지 제공하는 것이 가능하고, 일반 노드는 HDD 스토리지를 제공하는 것이 가능하다.
한편, GPU 컴퓨팅 가능 워커 노드는 컴퓨팅 컨테이너 내에 GPU 컴퓨팅 추가제공이 가능하고, 일반 노드는 컴퓨팅 컨테이너를 제공한다.
즉, 상기 스케줄러(402)가 사용자가 요청한 노드 타입을 확인하여, 사용자에게 필요한 스펙의 컨테이너가 생성될 수 있는 워커 노드를 선택하는 것이다.
참고로, 딥러닝 플랫폼으로는, 텐서플로우(TenserFlow), 파이토치(PyTorch), 케라스(Keras) 및 테아노(Theano) 등을 포함한다.
텐서플로우(TensorFlow)는 2015년 11월 구글에서 공개된 딥 러닝과 머신 러닝 기술인 오픈소스 소프트웨어를 의미한다. 이는 2011년부터 구글에서 내부적으로 사용되던 1세대 머신 러닝 시스템인 '디스트빌리프'의 뒤를 이은 2세대 머신 러닝 시스템이다. 오픈소스 소프트웨어인만큼 학생, 개발자 등 원하는 사람들은 누구나 사용할 수 있다. 구글은 텐서 플로가 스마트폰에서도, 데이터 센터의 수천대 컴퓨터에서도 동작할 수도 있다고 발표하면서, 어떠한 제약도 받지 않고 유연하게 사용될 수 있는 기술이라고 강조했다. 구글에서 발표한 오픈소스 소프트웨어인만큼 구글 검색, 구글앱 상의 음성인식, G메일에서 메일을 읽고 상황에 알맞은 예시 답장을 제공하는 '똑똑한 답장 서비스' 등에 적용되었다.
파이토치(PyTorch)는 파이썬(Python)을 위한 오픈소스 머신 러닝 라이브러리이다. Torch를 기반으로 하며, 자연어 처리와 같은 애플리케이션을 위해 사용된다. GPU사용이 가능하기 때문에 속도가 상당히 빠르다. 아직까지는 Tensorflow의 사용자가 많지만, 비직관적인 구조와 난이도 때문에, Pytorch의 사용자가 늘어나고 있는 추세이다. 이는 페이스북(Facebook)의 인공지능 연구팀이 개발했으며, 우버(Uber)의 "Pyro"(확률론적 프로그래밍 언어)소프트웨어가 Pytorch를 기반으로 한다.
케라스(Keras)는 파이썬으로 작성된 오픈 소스 신경망 라이브러리이다. MXNet, Deeplearning4j, 텐서플로, Microsoft Cognitive Toolkit 또는 Theano 위에서 수행할 수 있다. 딥 신경망과의 빠른 실험을 가능케 하도록 설계되었으며 최소한의 모듈 방식의 확장 가능성에 초점을 둔다. 오네이로스(ONEIROS : Open-ended Neuro-Electronic Intelligent Robot Operating System) 프로젝트의 연구적 노력의 일환으로 개발되었으며 주 개발자이자 유지보수자는 구글의 엔지니어 Francois Chollet이다. 2017년, 구글의 텐서플로 팀은 텐서플로의 코어 라이브러리에 케라스를 지원하기로 결정하였다. Chollet은 케라스가 단대단(end-to-end) 기계 학습 프레임워크가 아닌 인터페이스의 역할을 염두에 두었다. 더 높은 수준의 더 직관적인 추상화 집합을 표현함으로써 백엔드 과학 컴퓨팅 라이브러리임에도 불구하고 신경망을 구성하기 쉽게 만들어준다. 마이크로소프트 또한 CNTK 백엔드를 케라스에 추가하는 작업을 수행하고 있으며 기능은 현재 CNTK 2.0과 더불어 베타 릴리스 단계에 있다. 케라스(Keras)는 TensorFlow, Theano, CNTK 등 딥 러닝 라이브러리를 포함하고 있어 쉽게 다층 퍼셉트론 신경망 모델, 컨볼루션 신경망 모델, 순환 신경망 모델, 조합 모델 등을 구성할 수 있다.
테아노(Theano)는 파이선 라이브러리의 하나로 다차원 배열과 관계가 있는 수학적 표현을 정의하고, 최적화 하며, 평가하도록 해준다. 오픈소스 프로젝트로 캐나다 몬트리얼대학의 머신 러닝 연구 그룹 중 하나가 제일 먼저 개발했다. 1.0.0 버전이 등장한 것은 2017년 11월의 일이다.
도 3은 본 발명에 따른 클라우드 컴퓨팅 기반의 플랫폼 제공 시스템을 이용한 플랫폼 제공 방법을 설명하기 위한 도면이다.
먼저, 마스터(400)의 API 서버(404)가 사용자로부터 플랫폼 서비스를 위한 컨테이너 생성을 요청받는다(S310).
상기 컨테이너생성요청수신단계(S310)에서는, 사용자로부터 컨테이너 이름, 컨테이너 이미지, 필요 할당 자원, 노드 타입을 포함한 스펙이 정의된다.
이후, 상기 API 서버(404)가 데이터베이스(401)에 새로운 컨테이너를 추가하고 컨테이너의 상태를 저장한다(S320).
이후, 상기 API 서버(404)가 스케줄러(402)로 상기 새로운 컨테이너를 생성할 워커 노드의 검색을 요청한다(S330).
상기 워커노드검색요청단계(S330)는, 상기 API 서버(404)가 상기 정의된 스펙 중 상기 노드 타입을 상기 스케줄러(402)로 전달하고, 상기 스케줄러(402)는 상기 노드 타입을 분석하여 최적의 워커 노드를 검색한다.
상기 노드 타입은, 컴퓨팅 최적화 노드, 스토리지 최적화 노드, GPU 컴퓨팅 여부 등을 포함한다.
예를 들어, 컴퓨터 최적화 워커 노드는, 3.6GHz의 CPU Core 기반 컨테이너를 제공하는 것이 가능하고, 일반 노드는 2.1GHz의 CPU Core 기반 컨테이너를 제공하는 것이 가능하다.
한편, 스토리지 최적화 워커 노드는, NVMe 기반 SSD 스토리지 제공하는 것이 가능하고, 일반 노드는 HDD 스토리지를 제공하는 것이 가능하다.
한편, GPU 컴퓨팅 가능 워커 노드는 컴퓨팅 컨테이너 내에 GPU 컴퓨팅 추가제공이 가능하고, 일반 노드는 컴퓨팅 컨테이너를 제공한다.
이후, 상기 스케줄러(402)는 상기 API 서버(404)로 상기 새로운 컨테이너가 생성될 워커 노드(예: 제1 워커 노드)의 정보를 전달한다(S340).
이후, 상기 API 서버(404)가 상기 데이터베이스(401)에 상기 새로운 컨테이너의 변경된 상태를 저장한다(S350).
이후, 상기 API 서버(404)가 상기 검색된 워커 노드(예: 제1 워커 노드)의 컨테이너 매니저(504)에게 상기 새로운 컨테이너(500)의 생성을 요청한다(S360).
이후, 상기 워커 노드(예: 제1 워커 노드)가 상기 새로운 컨테이너(500)를 생성한다(S370).
이후, 상기 워커 노드(예: 제1 워커 노드)가 상기 API 서버(404)에게 상기 생성된 컨테이너(500)의 상태 업데이트를 요청한다(S380).
이후, 상기 API 서버(404)가 상기 데이터베이스(401)에 상기 생성된 컨테이너(500)의 변경된 상태를 저장한다(S390).
따라서, 본 발명에 따르면, 최적의 워커 노드에 생성된 컨테이너로 사용자에게 필요한 플랫폼을 제공하는 것이 가능하다.
이상에서 본 발명의 일 실시예에 따른 클라우드 컴퓨팅 기반의 플랫폼 제공 시스템을 이용한 플랫폼 제공 방법에 대하여 설명하였지만, 클라우드 컴퓨팅 기반의 플랫폼 제공 시스템을 이용한 플랫폼 제공 방법을 구현하기 위한 프로그램이 저장된 컴퓨터 판독 가능한 기록매체 및 클라우드 컴퓨팅 기반의 플랫폼 제공 시스템을 이용한 플랫폼 제공 방법을 구현하기 위한 컴퓨터 판독 가능한 기록매체에 저장된 프로그램 역시 구현 가능함은 물론이다.
즉, 상술한 클라우드 컴퓨팅 기반의 플랫폼 제공 시스템을 이용한 플랫폼 제공 방법은 이를 구현하기 위한 명령어들의 프로그램이 유형적으로 구현됨으로써, 컴퓨터를 통해 판독될 수 있는 기록매체에 포함되어 제공될 수도 있음을 당업자들이 쉽게 이해할 수 있을 것이다. 다시 말해, 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어, 컴퓨터 판독 가능한 기록매체에 기록될 수 있다. 상기 컴퓨터 판독 가능한 기록매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 컴퓨터 판독 가능한 기록매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 상기 컴퓨터 판독 가능한 기록매체의 예에는 하드 디스크, 플로피 디스크 및 자기테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리, USB 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 상기 컴퓨터 판독 가능한 기록매체는 프로그램 명령, 데이터 구조 등을 지정하는 신호를 전송하는 반송파를 포함하는 광 또는 금속선, 도파관 등의 전송 매체일 수도 있다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
본 발명은 상기한 실시예에 한정되지 아니하며, 적용범위가 다양함은 물론이고, 청구범위에서 청구하는 본 발명의 요지를 벗어남이 없이 다양한 변형 실시가 가능한 것은 물론이다.
100: 공용/사설 클라우드 200: 가상머신 인스턴스
300: 컨테이너 오케스트레이션 400: 마스터
401: 데이터베이스 402: 스케줄러
403: 컨트롤러 매니저 404: API 서버
405: 마스터 컨테이너 엔진 500: 제1 워커 노드
501: 딥러닝 플랫폼 502: 데이터베이스 플랫폼
503: 제1 컨테이너 엔진 504: 제1 컨테이너 매니저
510: 제1 컨테이너 600: 제n 워커 노드
601: 딥러닝 플랫폼 602: 개발 툴 플랫폼
603: 제n 컨테이너 엔진 604: 제n 컨테이너 매니저
610: 제n 컨테이너 S310: 컨테이너생성요청수신단계
S320: 제1저장단계 S330: 워커노드검색요청단계
S340: 정보전달단계 S350: 제2저장단계
S360: 컨테이너생성요청단계 S370: 컨테이너생성단계
S380: 업데이트단계 S390: 제3저장단계
300: 컨테이너 오케스트레이션 400: 마스터
401: 데이터베이스 402: 스케줄러
403: 컨트롤러 매니저 404: API 서버
405: 마스터 컨테이너 엔진 500: 제1 워커 노드
501: 딥러닝 플랫폼 502: 데이터베이스 플랫폼
503: 제1 컨테이너 엔진 504: 제1 컨테이너 매니저
510: 제1 컨테이너 600: 제n 워커 노드
601: 딥러닝 플랫폼 602: 개발 툴 플랫폼
603: 제n 컨테이너 엔진 604: 제n 컨테이너 매니저
610: 제n 컨테이너 S310: 컨테이너생성요청수신단계
S320: 제1저장단계 S330: 워커노드검색요청단계
S340: 정보전달단계 S350: 제2저장단계
S360: 컨테이너생성요청단계 S370: 컨테이너생성단계
S380: 업데이트단계 S390: 제3저장단계
Claims (5)
- 클라우드 컴퓨팅 기반의 플랫폼 제공 시스템에 있어서,
컴퓨팅, 네트워킹 및 스토리지를 포함하며 클라우드 서비스를 제공하는 클라우드(100);
CPU 및 RAM 같은 리소스를 추상화하여 하이퍼바이저를 통해 가상머신 형태로 제공하는 다수의 가상머신 인스턴스(200);
상기 다수의 가상머신 인스턴스 상에 형성되어 컨테이너화된 응용프로그램을 배포, 스케줄링 및 관리하기 위한 컨테이너 오케스트레이션(300);
상기 컨테이너 오케스트레이션에 포함되며 클러스터를 관리하기 위한 마스터(400); 및
상기 컨테이너 오케스트레이션에 포함되며, 상기 응용프로그램이 실제로 동작하는 컨테이너가 생성되는 다수의 워커 노드(500, 600)
를 포함하고,
상기 마스터(400)는,
상기 클러스터의 서버 정보 및 상태를 저장하고 있는 데이터베이스(401);
새로운 컨테이너 생성 요청시, 정책 및 클러스터 상태를 검색하여, 컨테이너가 생성될 워커 노드를 선택하기 위한 스케줄러(402);
상기 클러스터의 상태를 조회하고 변경 사항을 상기 데이터베이스에 저장하는 컨트롤러 매니저(403);
상기 컨테이너 오케스트레이션의 프론트 엔드이며, 컨테이너의 라이프사이클을 정의, 배포 및 관리하기 위한 API 서버(404); 및
상기 마스터를 관리하기 위한 마스터 컨테이너 엔진(405)
을 포함하는 것을 특징으로 하고,
상기 다수의 워커 노드의 각 워커 노드(500, 600)는,
사용자 어플리케이션의 개발 환경에 필요한 적어도 하나 이상의 플랫폼(501, 502, 601, 602);
상기 생성된 컨테이너를 관리하기 위한 컨테이너 엔진(503,603); 및
상기 마스터로부터 수신한 컨테이너 관리 요청에 따라 상기 컨테이너 엔진으로 컨테이너의 생성, 삭제 및 업데이트를 요청하기 위한 컨테이너 매니저(504, 604)
를 포함하는 것을 특징으로 하는 클라우드 컴퓨팅 기반의 플랫폼 제공 시스템.
- 삭제
- 제1항에 있어서,
상기 API 서버에서,
사용자로부터의 플랫폼 제공 서비스를 위한 컨테이너 생성을 요청받음에 따라, 컨테이너 이름, 컨테이너 이미지, 필요 할당 자원, 노드 타입을 포함한 스펙이 정의되는 것을 특징으로 하고,
상기 API 서버가,
상기 정의된 스펙 중 상기 노드 타입을 상기 스케줄러로 전달함에 따라, 상기 스케줄러가 상기 노드 타입을 분석하여 최적의 워커 노드를 검색하는 것을 특징으로 하는 클라우드 컴퓨팅 기반의 플랫폼 제공 시스템.
- 클라우드 컴퓨팅 기반의 플랫폼 제공 시스템을 이용한 플랫폼 제공 방법에 있어서,
마스터의 API 서버가 사용자로부터 플랫폼 서비스를 위한 컨테이너 생성을 요청받는 컨테이너생성요청수신단계(S310);
상기 API 서버가 데이터베이스에 새로운 컨테이너를 추가하고 컨테이너의 상태를 저장하는 제1저장단계(S320);
상기 API 서버가 스케줄러로 상기 새로운 컨테이너를 생성할 워커 노드의 검색을 요청하는 워커노드검색요청단계(S330);
상기 스케줄러는 상기 API 서버로 상기 새로운 컨테이너가 생성될 워커 노드의 정보를 전달하는 정보전달단계(S340);
상기 API 서버가 상기 데이터베이스에 상기 새로운 컨테이너의 변경된 상태를 저장하는 제2저장단계(S350);
상기 API 서버가 상기 검색된 워커 노드의 컨테이너 매니저에게 상기 새로운 컨테이너의 생성을 요청하는 컨테이너생성요청단계(S360);
상기 워커 노드가 상기 새로운 컨테이너를 생성하는 컨테이너생성단계(S370);
상기 워커 노드가 상기 API 서버에게 상기 생성된 컨테이너의 상태 업데이트를 요청하는 업데이트단계(S380); 및
상기 API 서버가 상기 데이터베이스에 상기 생성된 컨테이너의 변경된 상태를 저장하는 제3저장단계(S390)
를 포함하는 클라우드 컴퓨팅 기반의 플랫폼 제공 시스템을 이용한 플랫폼 제공 방법.
- 제4항에 있어서,
상기 컨테이너생성요청수신단계(S310)에서는,
상기 사용자로부터 컨테이너 이름, 컨테이너 이미지, 필요 할당 자원, 노드 타입을 포함한 스펙이 정의되는 것을 특징으로 하고,
상기 워커노드검색요청단계(S330)는,
상기 API 서버가 상기 정의된 스펙 중 상기 노드 타입을 상기 스케줄러로 전달하고, 상기 스케줄러는 상기 노드 타입을 분석하여 최적의 워커 노드를 검색하는 것을 특징으로 하는 클라우드 컴퓨팅 기반의 플랫폼 제공 시스템을 이용한 플랫폼 제공 방법.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020190156991A KR102319172B1 (ko) | 2019-11-29 | 2019-11-29 | 클라우드 컴퓨팅 기반의 플랫폼 제공 시스템 및 이를 이용한 플랫폼 제공 방법 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020190156991A KR102319172B1 (ko) | 2019-11-29 | 2019-11-29 | 클라우드 컴퓨팅 기반의 플랫폼 제공 시스템 및 이를 이용한 플랫폼 제공 방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20210067415A KR20210067415A (ko) | 2021-06-08 |
KR102319172B1 true KR102319172B1 (ko) | 2021-10-29 |
Family
ID=76399634
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020190156991A KR102319172B1 (ko) | 2019-11-29 | 2019-11-29 | 클라우드 컴퓨팅 기반의 플랫폼 제공 시스템 및 이를 이용한 플랫폼 제공 방법 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR102319172B1 (ko) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102434721B1 (ko) * | 2022-03-31 | 2022-08-22 | 주식회사 레빗 | 오픈소스 기반의 클라우드 서비스 제공 시스템 |
KR20230069485A (ko) * | 2021-11-12 | 2023-05-19 | 한국전자기술연구원 | 다중 협업형 컨테이너 플랫폼에서의 클러스터 연동과 확장 방법 |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102686802B1 (ko) * | 2021-06-14 | 2024-07-19 | 한국전자통신연구원 | 가상 멀티 클라우드 서비스 제공 장치 및 방법 |
KR102537163B1 (ko) * | 2021-06-16 | 2023-05-26 | 주식회사 엘지유플러스 | 단말기, 클라우드 서버 및 클라우드 증강현실(ar) 플랫폼의 영상 송수신 시스템 및 그 방법 |
CN113434281B (zh) * | 2021-07-19 | 2024-05-28 | 上海幻电信息科技有限公司 | 设备调度方法及云平台 |
KR102688689B1 (ko) * | 2021-10-26 | 2024-07-25 | 에스케이텔레콤 주식회사 | 가상자원운용장치 및 가상자원운용장치의 동작 방법 |
KR102683811B1 (ko) * | 2021-10-28 | 2024-07-10 | 주식회사 커먼컴퓨터 | 인공지능 기반의 가상 자산 관련 플랫폼 제공 방법 및 시스템 |
KR102488390B1 (ko) * | 2021-12-09 | 2023-01-13 | 래블업 주식회사 | 클러스터 상에서 다중 컨테이너 기반 연산 세션의 자동 스케일링 방법 및 시스템 |
KR102514114B1 (ko) * | 2021-12-14 | 2023-03-27 | 주식회사 테스트웍스 | 딥러닝 모델 기반의 서비스 제공을 위한 원격 서버 가상화 운용 방법, 시스템 및 컴퓨터 프로그램 |
CN114629789B (zh) * | 2022-03-10 | 2024-05-14 | 常州工程职业技术学院 | 一种基于OpenStack架构的私有云IaaS实践平台构建方法 |
CN114996352B (zh) * | 2022-05-18 | 2024-05-24 | 聚好看科技股份有限公司 | 数据库管理系统及方法 |
WO2023239008A1 (ko) * | 2022-06-10 | 2023-12-14 | 엘지전자 주식회사 | 차량의 신호 처리 장치 및 이를 구비하는 차량용 통신 장치용 통신 장치 |
WO2024071942A1 (ko) * | 2022-09-27 | 2024-04-04 | 엘지전자 주식회사 | 신호 처리 장치 및 이를 구비하는 차량용 디스플레이 장치 |
WO2024071944A1 (ko) * | 2022-09-27 | 2024-04-04 | 엘지전자 주식회사 | 신호 처리 장치 및 이를 구비하는 차량용 디스플레이 장치 |
KR102550107B1 (ko) * | 2022-10-31 | 2023-06-30 | (주)바질컴퍼니 | 클라우드 플랫폼에서 인공지능 모델을 활용한 감성 품질 검사 방법 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101714412B1 (ko) | 2016-12-28 | 2017-03-09 | 주식회사 티맥스클라우드 | 클라우드 환경에서 데이터베이스 시스템을 구성하는 방법 및 장치 |
KR101826498B1 (ko) * | 2017-05-02 | 2018-02-07 | 나무기술 주식회사 | 클라우드 플랫폼 시스템 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101578189B1 (ko) | 2009-06-23 | 2015-12-17 | 삼성전자주식회사 | 클라우드 컴퓨팅 서비스를 제공하는 관리 서버 및 방법 |
KR102052964B1 (ko) * | 2013-03-12 | 2019-12-06 | 삼성전자 주식회사 | 컴퓨팅 스케줄링 방법 및 시스템 |
KR102211850B1 (ko) | 2013-12-11 | 2021-02-02 | 주식회사 케이티 | 클라우드 기반의 가상머신 이미지 서비스 제공 방법 및 시스템 |
KR101557747B1 (ko) * | 2014-02-05 | 2015-10-19 | 순천향대학교 산학협력단 | 클라우드에서 다중 자원의 효율적인 활용을 위한 가상머신 할당 시스템 및 방법 |
KR20170072552A (ko) * | 2015-12-17 | 2017-06-27 | 에스케이텔레콤 주식회사 | 클라우드 개발 환경을 위한 컨테이너 서비스 방법 및 그 장치 |
-
2019
- 2019-11-29 KR KR1020190156991A patent/KR102319172B1/ko active IP Right Grant
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101714412B1 (ko) | 2016-12-28 | 2017-03-09 | 주식회사 티맥스클라우드 | 클라우드 환경에서 데이터베이스 시스템을 구성하는 방법 및 장치 |
KR101826498B1 (ko) * | 2017-05-02 | 2018-02-07 | 나무기술 주식회사 | 클라우드 플랫폼 시스템 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20230069485A (ko) * | 2021-11-12 | 2023-05-19 | 한국전자기술연구원 | 다중 협업형 컨테이너 플랫폼에서의 클러스터 연동과 확장 방법 |
KR102688939B1 (ko) | 2021-11-12 | 2024-07-26 | 한국전자기술연구원 | 다중 협업형 컨테이너 플랫폼에서의 클러스터 연동과 확장 방법 |
KR102434721B1 (ko) * | 2022-03-31 | 2022-08-22 | 주식회사 레빗 | 오픈소스 기반의 클라우드 서비스 제공 시스템 |
KR102488665B1 (ko) * | 2022-03-31 | 2023-01-13 | 주식회사 레빗 | 클라우드 서비스 플랫폼 구축 시스템 |
Also Published As
Publication number | Publication date |
---|---|
KR20210067415A (ko) | 2021-06-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102319172B1 (ko) | 클라우드 컴퓨팅 기반의 플랫폼 제공 시스템 및 이를 이용한 플랫폼 제공 방법 | |
Kim et al. | Nsml: Meet the mlaas platform with a real-world case study | |
US9864642B2 (en) | Determining storage tiers for placement of data sets during execution of tasks in a workflow | |
US20180276044A1 (en) | Coordinated, topology-aware cpu-gpu-memory scheduling for containerized workloads | |
US10048955B2 (en) | Accelerating software builds | |
US10764299B2 (en) | Access control manager | |
Van et al. | A performance analysis of openstack open-source solution for IaaS cloud computing | |
US20110314069A1 (en) | Data lifecycle management within a cloud computing environment | |
US10169238B2 (en) | Memory access for exactly-once messaging | |
CN105897805A (zh) | 对多层架构的数据中心的资源进行跨层调度的方法和装置 | |
US10671438B2 (en) | Providing additional memory and cache for the execution of critical tasks by folding processing units of a processor complex | |
JP7358005B2 (ja) | クラウド・サービスのためのネイティブ・コード生成 | |
US11886921B2 (en) | Serverless runtime container allocation | |
Kijsipongse et al. | A hybrid GPU cluster and volunteer computing platform for scalable deep learning | |
US10635492B2 (en) | Leveraging shared work to enhance job performance across analytics platforms | |
JP2023101462A (ja) | コンピュータ実装方法、システム及びコンピュータプログラム(Kubernetesにおけるビッグデータに関するデータ局所性) | |
US20230266997A1 (en) | Distributed scheduling in container orchestration engines | |
US20190377725A1 (en) | Dynamically optimizing flows in a distributed transaction processing environment | |
US20240323087A1 (en) | Generating optimized custom data planes | |
Mvelase et al. | HPC in the cloud environment: Challenges, and theoretical analysis | |
US12056353B2 (en) | Dynamically assigning storage objects to compartment constructs of a storage system to reduce application risk | |
US11681672B2 (en) | Virtual database resource usage | |
US20240354000A1 (en) | Dynamically assigning storage objects to compartment constructs of a storage system to reduce application risk | |
US20240015213A1 (en) | Extend controller for multi-tenancy | |
Rahman et al. | Cloud Computing Tools And Techniques |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |