KR20210116005A - Cloud-based platform building system and application service providing method - Google Patents

Cloud-based platform building system and application service providing method Download PDF

Info

Publication number
KR20210116005A
KR20210116005A KR1020200032600A KR20200032600A KR20210116005A KR 20210116005 A KR20210116005 A KR 20210116005A KR 1020200032600 A KR1020200032600 A KR 1020200032600A KR 20200032600 A KR20200032600 A KR 20200032600A KR 20210116005 A KR20210116005 A KR 20210116005A
Authority
KR
South Korea
Prior art keywords
application
service
cloud
requesting
cloud controller
Prior art date
Application number
KR1020200032600A
Other languages
Korean (ko)
Inventor
김영창
Original Assignee
주식회사 크로센트
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 크로센트 filed Critical 주식회사 크로센트
Priority to KR1020200032600A priority Critical patent/KR20210116005A/en
Publication of KR20210116005A publication Critical patent/KR20210116005A/en

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/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/20Software design
    • G06F8/24Object-oriented
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Stored Programmes (AREA)

Abstract

Disclosed are a cloud-based platform building system and an application service provision method. According to an embodiment of the present invention, a cloud-based platform building system includes: an infrastructure control and management module which manages a lifecycle of large-scale distributed services and provides integrated services for managing release and distribution services; an execution environment module which provides an application platform for application development and distribution, execution and operation management; an operating environment module which provides infrastructure control and interworking and management services for the application platform; a development environment module which provides a portal and a development tool for developing, distributing and operating the application; and a service environment module which provides API management service when the application is executed. Therefore, the present invention can provide convenience to PaaS users and support to smoothly perform the application development.

Description

클라우드 기반 플랫폼 구축 시스템 및 어플리케이션 서비스 제공 방법{Cloud-based platform building system and application service providing method}Cloud-based platform building system and application service providing method

본 발명은 클라우드 기반 플랫폼 구축 시스템 및 어플리케이션 서비스 제공 방법에 관한 것이다. The present invention relates to a cloud-based platform building system and a method for providing an application service.

클라우드 컴퓨팅은 서로 다른 물리적 위치에 존재하는 컴퓨터들의 리소스를 가상화 기술로 통합해 제공하는 기술로서, 사용자 중심의 컴퓨터 환경에 해당한다. Cloud computing is a technology that integrates and provides resources of computers in different physical locations with virtualization technology, and corresponds to a user-centered computer environment.

클라우드 컴퓨팅 기술은 크게 IaaS(Infrastructure as a Service), PaaS(Platform as a Service), SaaS(Software as a Service)로 구분될 수 있다. SaaS는 클라우드 환경에서 운영되는 어플리케이션 서비스를 말한다. IaaS는 인터넷을 통해 서버와 스토리지 등 데이터센터 자원을 빌려 쓸 수 있는 서비스를 말한다. PaaS는 소프트웨어 서비스를 개발할 때 필요한 플랫폼을 제공하는 서비스이다. Cloud computing technology can be largely divided into IaaS (Infrastructure as a Service), PaaS (Platform as a Service), and SaaS (Software as a Service). SaaS refers to application services operated in a cloud environment. IaaS refers to a service that can borrow data center resources such as servers and storage through the Internet. PaaS is a service that provides a platform necessary for developing software services.

PaaS 서비스 사용자는 개발, 테스트, 배포, 호스팅에 관한 플랫폼과 서비스를 제공받아 신규 어플리케이션을 개발하고 배포하게 된다. PaaS service users develop and distribute new applications by receiving platforms and services related to development, testing, distribution and hosting.

한국공개특허 제10-2016-0000604호 (2016.01.05. 공개) - PaaS 클라우드 시스템에서의 GPU 가상화 기법을 사용한 개발 툴 배포 방법Korean Patent Laid-Open Patent No. 10-2016-0000604 (published on Jan. 5, 2016) - Development tool distribution method using GPU virtualization technique in PaaS cloud system

본 발명은 클라우드 기반의 플랫폼을 구축하기 위한 솔루션 아키텍처가 정의되고, 클라우드 플랫폼 요구사항을 충족하기 위해 분석하고 설계된 기술 구조를 제공할 수 있는 클라우드 기반 플랫폼 구축 시스템 및 어플리케이션 서비스 제공 방법을 제공하기 위한 것이다. An object of the present invention is to provide a cloud-based platform building system and an application service providing method in which a solution architecture for building a cloud-based platform is defined, and a technology structure analyzed and designed to meet the cloud platform requirements is provided. .

본 발명은 클라우드 플랫폼(어플리케이션 플랫폼)을 구축하여 PaaS 사용자에게 편의성을 제공하고 원활히 응용어플리케이션 개발을 수행할 수 있게 지원할 수 있는 클라우드 기반 플랫폼 구축 시스템 및 어플리케이션 서비스 제공 방법을 제공하기 위한 것이다. An object of the present invention is to provide a cloud-based platform building system and an application service providing method that can provide convenience to PaaS users by building a cloud platform (application platform) and support to smoothly perform application development.

본 발명의 이외의 목적들은 하기의 설명을 통해 쉽게 이해될 수 있을 것이다.Objects other than the present invention will be easily understood through the following description.

본 발명의 일 측면에 따르면, 클라우드 기반 플랫폼 구축 시스템으로서, 대규모의 분산된 서비스들의 라이프사이클을 관리하고, 릴리즈 및 배포 서비스를 관리하기 위한 통합 서비스를 제공하는 인프라 제어 및 관리 모듈; 어플리케이션의 개발 및 배포, 실행 및 운영 관리를 위한 어플리케이션 플랫폼을 제공하는 실행환경 모듈; 인프라 제어 및 연동과 상기 어플리케이션 플랫폼을 위한 관리 서비스를 제공하는 운영환경 모듈; 상기 어플리케이션을 개발, 배포 및 운영하기 위한 포털과 개발도구를 제공하는 개발환경 모듈; 및 상기 어플리케이션 실행 시 API 관리 서비스를 제공하는 서비스환경 모듈을 포함하는 클라우드 기반 플랫폼 구축 시스템이 제공된다. According to one aspect of the present invention, there is provided a cloud-based platform building system, comprising: an infrastructure control and management module for managing the lifecycle of large-scale distributed services and providing an integrated service for managing release and distribution services; an execution environment module that provides an application platform for application development and distribution, execution and operation management; an operating environment module that provides infrastructure control and interworking and management services for the application platform; a development environment module that provides a portal and a development tool for developing, distributing and operating the application; And there is provided a cloud-based platform building system comprising a service environment module that provides an API management service when the application is executed.

상기 실행환경 모듈은 클라우드 파운드리 오픈 소스를 기반으로 구성된 어플리케이션 플랫폼을 제공하며, 상기 어플리케이션 플랫폼은, 사용자 요청 트래픽을 목적지로 라우트하는 라우터와; 태스크와 목표 LRP 요청을 수신하고, 현재 실행 중인 태스크 및 LRP 인스턴스 현황 정보를 제공하는 리셉터와; 상기 리셉터로부터 실제 LRP 상태를 모니터링하고, 목표 LRP와 비교하여 변경이 발생한 경우 상기 라우터로 라우트 정보 등록/해제 요청 메시지를 보내는 라우트 에미터와; 어플리케이션 스테이징과 실행을 위한 API를 제공하는 클라우드 컨트롤러와; 상기 클라우드 컨트롤러와 상호 통신하며, 상기 클라우드 컨트롤러의 어플리케이션 고유 메시지를 일반 태스크와 LRP로 변환하여 상기 리셉터로 전달하는 CC 브릿지와; 분산 키값 저장소 메시지 서비스를 이용하고 커뮤니케이션 정보를 인코딩하는 BBS와; 셀을 대표하며 상기 BBS를 통해 미리 지정된 서비스를 수행하는 중개부와; 컨테이너의 생성, 액션 수행, 삭제를 위한 HTTP API를 제공하는 익스큐터와; 가든 컨테이너 관리를 위한 플랫폼 독립적인 서버 및 클라이언트 인터페이스르 제공하는 가든과; 상기 어플리케이션의 라이프사이클을 관리하는 바이너리를 제공하는 앱 라이프사이클 모듈과; 상기 태스크와 상기 실제 LRP 인스턴스를 위한 경매를 저장하는 경매사 모듈과; 상기 태스크와 상기 LRP의 최종 일관성 및 고장 허용 범위를 보장하는 조치를 수행하는 컨버저와; 상기 어플리케이션 실행 시 연동되어 사용되는 서비스를 위해 서비스 인스턴스를 생성하는 서비스 브로커 중 하나 이상을 포함할 수 있다.The execution environment module provides an application platform configured based on a cloud foundry open source, the application platform comprising: a router for routing user request traffic to a destination; a receptor for receiving task and target LRP requests and providing status information on currently running tasks and LRP instances; a route emitter that monitors the actual LRP status from the receptor, and sends a route information registration/release request message to the router when a change occurs compared to the target LRP; a cloud controller that provides an API for application staging and execution; a CC bridge that communicates with the cloud controller and converts the application-specific message of the cloud controller into a general task and an LRP and delivers it to the receptor; a BBS that uses a distributed key value storage message service and encodes communication information; an intermediary unit representing a cell and performing a predetermined service through the BBS; an executor providing an HTTP API for container creation, action execution, and deletion; Garden, which provides platform-independent server and client interfaces for managing garden containers; an app lifecycle module that provides a binary for managing the lifecycle of the application; an auctioneer module for storing auctions for the task and the actual LRP instance; a converger for performing actions to ensure eventual consistency and fault tolerance between the task and the LRP; It may include one or more of the service brokers that create a service instance for a service used in conjunction with the application execution.

상기 CC 브릿지는, 상기 클라우드 컨트롤러로부터 스테이징 요청을 수신하여 일반 태스크로 변환 후 상기 리셉터에 요청하는 스테이저와; 어플리케이션 상태를 요청받아 상기 리셉터를 통해 목표 LRP를 생성, 업데이트, 삭제하는 엔싱크 모듈과;상기 클라우드 컨트롤러에 현재 실행 중인 LRP 정보를 제공하는 TPS와; 상기 익스큐터의 단순 HTTP POST 요청을 상기 클라우드 컨트롤러의 멀티파트-폼의 업로드로 변환하는 파일서버 중 하나 이상을 포함할 수 있다.The CC bridge includes: a stager that receives a staging request from the cloud controller, converts it into a general task, and makes a request to the receptor; An N-Sync module for generating, updating, and deleting a target LRP through the receptor in response to a request for an application state; A TPS for providing information about the currently running LRP to the cloud controller; and at least one of a file server that converts a simple HTTP POST request of the executor into a multipart-form upload of the cloud controller.

상기 중개부는 상기 BBS의 상기 태스크 및 상기 실제 LRP 정보가 상기 셀 내에 실제하고 있는 상기 컨테이너와 일치하는지 확인하고, 상기 BBS 내에 상기 셀이 실재하도록 유지시킬 수 있다.The intermediary unit may check whether the task and the actual LRP information of the BBS match the container actually being in the cell, and keep the cell present in the BBS.

또는 상기 중개부는 특정 셀이 실패할 경우 컨버저가 자동으로 해당 인스턴스를 다른 셀로 이전시키게 하고, 태스크 혹은 LRP 수신을 위해 경매에 참여하며, 상기 익스큐터가 요청하여 상기 태스크 혹은 상기 LRP을 실행하여 상기 컨테이너를 생성하고 상기 컨테이너 내에 수행될 액션을 실행할 수 있다.Alternatively, when a specific cell fails, the intermediary causes the converger to automatically transfer the corresponding instance to another cell, participates in an auction to receive a task or LRP, and executes the task or the LRP at the request of the executor. You can create a container and execute an action to be performed within the container.

상기 앱 라이프사이클 모듈은, 상기 어플리케이션의 스테이징을 수행하는 빌더와; 상기 어플리케이션을 실행시키는 런처와; 상기 컨테이너 내에서 실행 중인 상기 어플리케이션의 상태 점검을 수행하는 헬스체크부 중 하나 이상의 바이너리를 포함할 수 있다.The app lifecycle module may include: a builder performing staging of the application; a launcher for executing the application; It may include one or more binaries of a health check unit that performs a status check of the application running in the container.

한편 본 발명의 다른 측면에 따르면, 클라우드 기반 플랫폼 구축 시스템에서 구축된 클라우드 기반 플랫폼의 어플리케이션 서비스 제공 방법으로서, 어플리케이션 서비스를 생성하는 단계; 및 상기 어플리케이션 서비스를 바인딩하는 단계를 포함하되, 상기 어플리케이션 서비스를 생성하는 단계는, PaaS 사용자가 서비스 생성을 라우터로 요청하는 단계와; 상기 라우터가 클라우드 컨트롤러로 서비스 생성 API 요청을 포워딩하는 단계와; 상기 클라우드 컨트롤러가 서비스 브로커로 프로비저닝을 요청하는 단계와; 상기 서비스 브로커가 서비스 인스턴스를 생성하는 단계와; 상기 클라우드 컨트롤러는 생성한 서비스 정보를 클라우드 컨트롤러 데이터베이스에 저장 후 회신하는 단계를 포함하고, 상기 어플리케이션 서비스를 바인딩하는 단계는, 상기 PaaS 사용자가 서비스 바인딩을 상기 라우터로 요청하는 단계; 상기 라우터가 상기 클라우드 컨트롤러로 서비스 바인딩 API 요청을 포워딩하는 단계; 상기 클라우드 컨트롤러가 상기 서비스 브로커로 바인딩을 요청하는 단계; 상기 서비스 브로커가 상기 서비스 인스턴스의 자격 증명 정보를 회신하는 단계; 상기 클라우드 컨트롤러가 생성한 서비스 자격 증명 정보를 클라우드 컨트롤러 데이터베이스에 저장 후 회신하는 단계를 포함하는 것을 특징으로 하는 클라우드 기반 플랫폼의 어플리케이션 서비스 제공 방법이 제공된다.Meanwhile, according to another aspect of the present invention, there is provided a method for providing an application service of a cloud-based platform built in a cloud-based platform construction system, the method comprising: generating an application service; and binding the application service, wherein the generating of the application service includes: a PaaS user requesting a service creation to a router; forwarding, by the router, a service creation API request to a cloud controller; requesting, by the cloud controller, provisioning to a service broker; creating, by the service broker, a service instance; The cloud controller may include storing the generated service information in a cloud controller database and then replying, and the binding of the application service may include: the PaaS user requesting service binding to the router; forwarding, by the router, a service binding API request to the cloud controller; requesting, by the cloud controller, binding to the service broker; returning, by the service broker, credential information of the service instance; There is provided an application service providing method of a cloud-based platform, comprising the step of storing the service credential information generated by the cloud controller in a cloud controller database and then replying.

배포 대상 어플리케이션 바이너리를 서버에 저장하고 어플리케이션 정보를 메타데이터에 저장하는 어플리케이션의 생성 및 업로드 단계; 상기 배포 대상 어플리케이션 바이너리를 이용하여 독립적인 실행이 가능한 단일 바이너리 집합으로 패키징하는 배포 스테이징 단계; 및 상기 배포 스테이징 단계에서 생성한 드랍릿을 상기 PaaS 사용자가 요청한 인스턴스 유형과 수에 맞춰 컨테이너를 실행하고 서비스를 제공하는 배포 실행 단계를 더 포함할 수 있다.generating and uploading an application for storing the distribution target application binary in the server and storing the application information in metadata; a distribution staging step of packaging the distribution target application binary into a single binary set capable of independent execution; And it may further include a deployment execution step of running the droplet generated in the deployment staging step according to the instance type and number requested by the PaaS user, and running a container and providing a service.

상기 어플리케이션의 생성 및 업로드 단계는, 상기 PaaS 사용자가 어플리케이션 생성을 요청하는 단계; 상기 라우터가 상기 클라우드 컨트롤러로 어플리케이션 생성 API 요청을 포워딩하는 단계; 상기 클라우드 컨트롤러가 상기 클라우드 컨트롤러 데이터베이스에 어플리케이션 정보를 저장하는 단계; 상기 PaaS 사용자가 어플리케이션 저장을 요청하는 단계; 상기 라우터가 상기 클라우드 컨트롤러로 어플리케이션 저장 API 요청을 포워딩하는 단계; 상기 클라우드 컨트롤러가 파일 저장소에 어플리케이션 소스 및 바이너리를 저장하는 단계를 포함할 수 있다.The step of creating and uploading the application may include: requesting, by the PaaS user, to create an application; forwarding, by the router, an application creation API request to the cloud controller; storing, by the cloud controller, application information in the cloud controller database; requesting the PaaS user to store the application; forwarding, by the router, an application storage API request to the cloud controller; The cloud controller may include storing the application source and the binary in a file storage.

상기 배포 스테이징 단계는, 상기 PaaS 사용자가 어플리케이션 시작을 요청하는 단계; 상기 라우터는 상기 클라우드 컨트롤러로 어플리케이션 시작 API 요청을 포워딩하는 단계; 상기 클라우드 컨트롤러가 상기 클라우드 컨트롤러 데이터베이스에서 어플리케이션 드랍릿 생성 상태를 확인하는 단계; 상기 클라우드 컨트롤러가 CC 브릿지에 어플리케이션 스테이징 실행을 요청하는 단계; 상기 CC 브릿지가 스테이징 수행을 위한 태스크를 생성하여 리셉터에게 요청하는 단계; 상기 리셉터가 요청 태스크를 펜딩 상태로 변경 후 BBS에 요청하는 단계; 상기 BBS가 태스크 정보를 분산 키값 저장소에 저장 후 경매사 모듈에게 요청하는 단계; 상기 경매사 모듈이 상기 BBS에 런닝하고 있는 셀 정보를 요청하여 수신 후, 셀 별 가용 리소스를 요청하고 이를 기초로 태스크에 대한 경매를 실시하여 태스크 수행을 위한 최적의 셀을 선정하는 단계; 상기 경매사 모듈이 경매를 통해 전성된 셀에 해당하는 중개부에 태스크 처리를 요청하는 단계; 상기 중개부가 상기 태스크를 액션으로 변환하여 익스큐터에 요청하는 단계; 상기 익스큐터가 상기 태스크에 명시된 액션 요청에 따라 가든 컨테이너 생성 및 액션 수행을 요청하는 단계; 상기 가든 컨테이너가 상기 액션으로 요청된 절차에 따라 어플리케이션 스테이징을 수행 후 수행 결과 드랍릿을 상기 CC 브릿지에 요청하여 상기 파일 저장소에 저장하는 단계; 상기 중개부가 태스크 수행 결과를 상기 리셉터에 전달하고, 상기 리셉터는 상기 CC 브릿지를 통해 상기 클라우드 컨트롤러에 상기 태스크 수행 결과를 전달하는 단계를 포함할 수 있다.The distribution staging step may include: requesting the PaaS user to start an application; forwarding, by the router, an application start API request to the cloud controller; checking, by the cloud controller, an application droplet creation state in the cloud controller database; requesting, by the cloud controller, execution of application staging to the CC bridge; generating, by the CC bridge, a task for performing staging and requesting it from a receptor; requesting the BBS after the receptor changes the requested task to a pending state; storing the task information in the distributed key value storage by the BBS and requesting the auction house module; selecting, by the auctioneer module, an optimal cell for performing the task by requesting and receiving the information on the running cell from the BBS, requesting an available resource for each cell, and performing an auction on the task based on the request; requesting, by the auctioneer module, a task processing unit to an intermediary corresponding to a cell transferred through an auction; converting the task into an action by the mediation unit and requesting an executor; requesting, by the executor, to create a garden container and perform an action according to an action request specified in the task; after the garden container performs application staging according to the procedure requested as the action, requesting the execution result droplet to the CC bridge and storing it in the file storage; The intermediary may include transmitting the task execution result to the receptor, and the receptor transmitting the task execution result to the cloud controller through the CC bridge.

상기 배포 실행 단계는, 상기 클라우드 컨트롤러가 상기 CC 브릿지에 스테이징 어플리케이션 실행을 요청하는 단계; 상기 CC 브릿지가 어플리케이션 실행을 위한 목표 LRP를 생성하여 상기 리셉터에 요청하는 단계; 상기 리셉터가 요청 LRP의 상태를 변경하고 상기 BBS에 요청하는 단계; 상기 BBS가 LRP 정보를 상기 분산 키값 저장소에 저장 후 상기 경매사 모듈에 요청하는 단계; 상기 경매사 모듈이 상기 BBS에 런닝하고 있는 셀 정보를 요청하여 수신 후, 셀 별 가용 리소스를 요청하고 이를 기초로 태스크에 대한 경매를 실시하여 태스크 수행을 위한 최적의 셀을 선정하는 단계; 상기 경매사 모듈이 경매를 통해 전성된 셀에 해당하는 중개부에 LRP 처리를 요청하는 단계; 상기 중개부가 요청 LRP에 대한 BBS 정보를 클레임 상태로 변경하고, LRP를 액션으로 변환하여 상기 익스큐터에 요청하는 단계; 상기 익스큐터가 명시된 액션 요청에 따라 가든 컨테이너 생성을 요청하는 단계; 상기 가든 컨테이너가 상기 액션으로 요청된 절차에 따라 상기 클라우드 컨트롤러에서 드랍릿을 다운받은 후 어플리케이션을 실행하는 단계를 포함할 수 있다.The distribution execution step may include: requesting, by the cloud controller, execution of a staging application to the CC bridge; generating, by the CC bridge, a target LRP for application execution and requesting the receptor; changing the status of the requested LRP by the receptor and making a request to the BBS; storing the LRP information in the distributed key value storage by the BBS and requesting the auction house module; selecting, by the auctioneer module, an optimal cell for performing the task by requesting and receiving the information on the running cell from the BBS, requesting an available resource for each cell, and performing an auction on the task based on the request; requesting, by the auctioneer module, LRP processing to an intermediary unit corresponding to a cell transformed through an auction; changing the BBS information for the requested LRP to a claim state by the intermediary unit, converting the LRP into an action, and requesting the executor; requesting, by the executor, to create a garden container according to a specified action request; It may include the step of the garden container downloading the droplet from the cloud controller according to the requested procedure as the action, and then executing the application.

전술한 것 외의 다른 측면, 특징, 이점이 이하의 도면, 특허청구범위 및 발명의 상세한 설명으로부터 명확해질 것이다.Other aspects, features and advantages other than those described above will become apparent from the following drawings, claims, and detailed description of the invention.

본 발명의 실시예에 따르면, 클라우드 기반의 플랫폼을 구축하기 위한 솔루션 아키텍처가 정의되고, 클라우드 플랫폼 요구사항을 충족하기 위해 분석하고 설계된 기술 구조를 제공할 수 있는 효과가 있다.According to an embodiment of the present invention, a solution architecture for building a cloud-based platform is defined, and there is an effect that a technology structure designed and analyzed to meet the cloud platform requirements can be provided.

클라우드 기반의 플랫폼을 구축하기 위한 솔루션 아키텍처를 정의하고, 해당 기술 구조를 제공함으로써, 클라우드 플랫폼(어플리케이션 플랫폼)을 구축하여 PaaS 사용자에게 편의성을 제공하고 원활히 응용어플리케이션 개발을 수행할 수 있게 지원할 수 있다. By defining a solution architecture for building a cloud-based platform and providing the corresponding technical structure, it is possible to build a cloud platform (application platform) to provide convenience to PaaS users and support smooth application development.

도 1은 본 발명의 일 실시예에 따른 클라우드 기반 플랫폼 구축 시스템의 비즈니스 컨텍스트 모델을 나타낸 도면,
도 2는 본 발명의 일 실시예에 따른 클라우드 기반 플랫폼 구축 시스템의 어플리케이션 플랫폼 컴포넌트를 나타낸 도면,
도 3은 본 발명의 일 실시예에 따른 클라우드 기반 플랫폼 구축 시스템의 어플리케이션 플랫폼 서비스 접근 수행 절차를 나타낸 도면,
도 4는 본 발명의 일 실시예에 따른 클라우드 기반 플랫폼 구축 시스템의 어플리케이션 서비스 생성 및 바인딩 절차를 나타낸 도면,
도 5는 본 발명의 일 실시예에 따른 클라우드 기반 플랫폼 구축 시스템의 어플리케이션 생성 및 업로드 절차를 나타낸 도면,
도 6은 어플리케이션 배포(스테이징 단계) 절차를 나타낸 도면,
도 7은 어플리케이션 배포(실행 단계) 절차를 나타낸 도면,
도 8은 본 발명의 일 실시예에 따른 클라우드 기반 플랫폼 구축 시스템의 어플리케이션 인스턴스 장애 자동 복구 수행 절차를 나타낸 도면,
도 9는 본 발명의 일 실시예에 따른 클라우드 기반 플랫폼 구축 시스템의 클라우드 컨트롤러 데이터 모델을 나타낸 도면,
도 10은 본 발명의 일 실시예에 따른 클라우드 기반 플랫폼 구축 시스템의 서비스환경과 관련한 서비스 아키텍처를 나타낸 도면,
도 11은 서비스 브로커 API 아키텍처를 나타낸 도면,
도 12는 API 플랫폼 아키텍처를 나타낸 도면,
도 13은 본 발명의 일 실시예에 따른 클라우드 기반 플랫폼 구축 시스템의 개발환경과 관련한 플랫폼 연동 플러그인 아키텍처를 나타낸 도면,
도 14는 본 발명의 일 실시예에 따른 클라우드 기반 플랫폼 구축 시스템의 운영환경과 관련한 관리자 대시보드 아키텍처를 나타낸 도면,
도 15는 본 발명의 일 실시예에 따른 클라우드 기반 플랫폼 구축 시스템의 인프라 제어 및 관리 환경과 관련한 보쉬 아키텍처를 나타낸 도면.
1 is a view showing a business context model of a cloud-based platform building system according to an embodiment of the present invention;
2 is a view showing an application platform component of a cloud-based platform building system according to an embodiment of the present invention;
3 is a view showing an application platform service access execution procedure of a cloud-based platform building system according to an embodiment of the present invention;
4 is a view showing an application service creation and binding procedure of a cloud-based platform building system according to an embodiment of the present invention;
5 is a view showing an application creation and upload procedure of a cloud-based platform building system according to an embodiment of the present invention;
6 is a diagram showing an application distribution (staging step) procedure;
7 is a diagram showing an application distribution (execution step) procedure;
8 is a view showing a procedure for performing automatic recovery of an application instance failure of a cloud-based platform building system according to an embodiment of the present invention;
9 is a view showing a cloud controller data model of a cloud-based platform building system according to an embodiment of the present invention;
10 is a view showing a service architecture related to a service environment of a cloud-based platform building system according to an embodiment of the present invention;
11 is a diagram illustrating a service broker API architecture;
12 is a diagram showing the API platform architecture;
13 is a view showing a platform interworking plug-in architecture related to a development environment of a cloud-based platform building system according to an embodiment of the present invention;
14 is a view showing an administrator dashboard architecture related to the operating environment of the cloud-based platform building system according to an embodiment of the present invention;
15 is a diagram illustrating a Bosch architecture related to an infrastructure control and management environment of a cloud-based platform building system according to an embodiment of the present invention.

본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세하게 설명하고자 한다. 그러나 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.Since the present invention can have various changes and can have various embodiments, specific embodiments are illustrated in the drawings and described in detail. However, this is not intended to limit the present invention to specific embodiments, and it should be understood to include all modifications, equivalents and substitutes included in the spirit and scope of the present invention.

어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. When a component is referred to as being “connected” or “connected” to another component, it is understood that the other component may be directly connected or connected to the other component, but other components may exist in between. it should be On the other hand, when it is said that a certain element is "directly connected" or "directly connected" to another element, it should be understood that no other element is present in the middle.

제1, 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. Terms such as first, second, etc. may be used to describe various elements, but the elements should not be limited by the terms. The above terms are used only for the purpose of distinguishing one component from another.

본 명세서에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.The terms used herein are used only to describe specific embodiments, and are not intended to limit the present invention. The singular expression includes the plural expression unless the context clearly dictates otherwise. In this specification, terms such as "comprises" or "have" are intended to designate that the features, numbers, steps, operations, components, parts, or combinations thereof described in the specification exist, but one or more other features It should be understood that this does not preclude the existence or addition of numbers, steps, operations, components, parts, or combinations thereof.

또한, 각 도면을 참조하여 설명하는 실시예의 구성 요소가 해당 실시예에만 제한적으로 적용되는 것은 아니며, 본 발명의 기술적 사상이 유지되는 범위 내에서 다른 실시예에 포함되도록 구현될 수 있으며, 또한 별도의 설명이 생략될지라도 복수의 실시예가 통합된 하나의 실시예로 다시 구현될 수도 있음은 당연하다.In addition, the components of the embodiment described with reference to each drawing are not limitedly applied only to the embodiment, and may be implemented to be included in other embodiments within the scope of maintaining the technical spirit of the present invention, and also Even if the description is omitted, it is natural that a plurality of embodiments may be re-implemented as a single integrated embodiment.

또한, 첨부 도면을 참조하여 설명함에 있어, 도면 부호에 관계없이 동일한 구성 요소는 동일하거나 관련된 참조부호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다. 본 발명을 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다. 본 명세서에 첨부된 도면에서는 구성요소의 구분을 돕고자 색상이 부여되어 있다. 하지만, 동일 구성요소라 할지라도 사시도와 단면도에서는 그 색상이 달라질 수 있다. 그리고 다른 구성요소라 할지라도 동일 혹은 유사한 색상이 부여될 수도 있다.In addition, in the description with reference to the accompanying drawings, the same components regardless of the reference numerals are given the same or related reference numerals, and the overlapping description thereof will be omitted. In describing the present invention, if it is determined that a detailed description of a related known technology may unnecessarily obscure the gist of the present invention, the detailed description thereof will be omitted. In the drawings attached to this specification, colors are given to help distinguish the components. However, even the same component may have different colors in the perspective view and the cross-sectional view. In addition, the same or similar color may be assigned to different components.

또한, 명세서에 기재된 "…부", "…유닛", "…모듈", "…기" 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어나 소프트웨어 또는 하드웨어 및 소프트웨어의 결합으로 구현될 수 있다.In addition, terms such as “…unit”, “…unit”, “…module”, “…group”, etc. described in the specification mean a unit that processes at least one function or operation, which is hardware or software or hardware and software. It can be implemented by combining

도 1은 본 발명의 일 실시예에 따른 클라우드 기반 플랫폼 구축 시스템의 비즈니스 컨텍스트 모델을 나타낸 도면이다. 1 is a diagram illustrating a business context model of a cloud-based platform building system according to an embodiment of the present invention.

클라우드 기반 플랫폼(클라우드 플랫폼)은 어플리케이션의 개발 및 운영 시 요구되는 인프라 구축 및 유지 관리의 복잡성 없이도 웹 어플리케이션을 개발 및 운영할 수 있도록 지원하는 클라우드 컴퓨팅 서비스이다. A cloud-based platform (cloud platform) is a cloud computing service that supports the development and operation of web applications without the complexity of infrastructure construction and maintenance required for application development and operation.

클라우드 플랫폼은 인프라 서비스(IaaS)를 기반으로 구축 및 운영된다. 예를 들면 Java, Ruby, Phyton, PHP, Go 등 다양한 언어로 개발된 응용어플리케이션의 배포 및 실행을 통해 최종 사용자에게 어플리케이션 서비스를 제공한다. The cloud platform is built and operated based on infrastructure services (IaaS). For example, application services are provided to end users through distribution and execution of application applications developed in various languages such as Java, Ruby, Phyton, PHP, and Go.

클라우드 플랫폼의 인프라 제어 및 관리 환경은 인프라 서비스의 종속성을 배제하고, 예를 들면 AWS, OpenStack, VMWare 등 다양한 인프라 서비스를 지원한다. The infrastructure control and management environment of the cloud platform excludes dependencies on infrastructure services, and supports various infrastructure services such as AWS, OpenStack, and VMWare, for example.

클라우드 플랫폼 사용자는 인프라 서비스에 대한 복잡한 제어 및 관리 대신 개발환경을 통해 단순히 응용어플리케이션의 배포 및 실행을 요청함으로써 최종 사용자에게 응용어플리케이션의 서비스를 제공할 수 있다. Cloud platform users can provide application services to end users by simply requesting deployment and execution of application applications through the development environment instead of complex control and management of infrastructure services.

클라우드 플랫폼은 응용어플리케이션 실행 시 예를 들면 RDBMS, NoSQL, 메시징 서비스 등 다양한 대외 백엔드 플랫폼 서비스와 연계를 지원한다. The cloud platform supports connection with various external backend platform services such as RDBMS, NoSQL, and messaging services when running applications.

클라우드 플랫폼 운영환경은 PaaS 관리자에게 전체 클라우드 플랫폼의 리소스 모니터링 및 제어를 수행할 수 있게 한다. The cloud platform operating environment enables PaaS administrators to perform resource monitoring and control of the entire cloud platform.

도 1을 참조하면, 클라우드 기반 플랫폼 구축 시스템(10)은 인프라 제어 및 관리 모듈(11), 실행환경 모듈(12), 개발환경 모듈(14), 서비스환경 모듈(13), 운영환경 모듈(15)을 포함할 수 있다. Referring to FIG. 1 , the cloud-based platform building system 10 includes an infrastructure control and management module 11 , an execution environment module 12 , a development environment module 14 , a service environment module 13 , and an operating environment module 15 . ) may be included.

인프라 제어 및 관리 모듈(11)은 대규모(Large Scale)의 분산된 서비스들의 라이프사이클을 관리하고, 릴리즈(release) 및 배포(deployment) 서비스를 관리하기 위한 통합 서비스를 제공한다. 이 서비스는 다양한 클라우드 인프라와의 연동 기능을 제공할 수 있다.The infrastructure control and management module 11 manages the lifecycle of distributed services of a large scale, and provides an integrated service for managing release and deployment services. This service can provide interworking with various cloud infrastructures.

실행환경 모듈(12)은 어플리케이션의 개발 및 배포, 실행/운영 관리를 위한 서비스를 제공한다. 이 서비스는 예를 들면 Java, PHP, Ruby, Go 등 다양한 언어팩을 지원하여 어플리케이션 실행을 위한 컨테이너를 제공할 수 있다. 그리고 서비스환경 모듈(13)과 연계하여 데이터베이스, 메시지 큐 등 PaaS 내부 및 외부 서비스를 사용할 수 있도록 지원할 수 있다. The execution environment module 12 provides services for application development and distribution, and execution/operation management. This service can provide a container for application execution by supporting various language packs such as Java, PHP, Ruby, and Go, for example. And in connection with the service environment module 13, it is possible to support the use of PaaS internal and external services such as a database and message queue.

또한, PaaS 기능 사용을 위한 계정 등록 및 접근 인증, 인증 후 사용할 수 있는 API 혹은 제어가 가능한 리소스에 대한 제어를 수행하는 권한 관리, 어플리케이션에 접근하기 위한 접근 관리 서비스 등을 제공할 수 있다. In addition, it is possible to provide account registration and access authentication for using PaaS functions, permission management to control APIs or controllable resources that can be used after authentication, and access management services for accessing applications.

운영환경 모듈(15)은 인프라 제어 및 연동과 어플리케이션 플랫폼을 위한 관리 서비스를 제공한다. 관리자를 위한 운영 대시보드와 개별 테넌트 및 관리자를 위한 모니터링 대시보드와 로그 관리, 미터링 플러그인 서비스 등을 제공할 수 있다. The operating environment module 15 provides management services for infrastructure control and interworking and application platforms. It can provide an operation dashboard for administrators, a monitoring dashboard for individual tenants and administrators, log management, and metering plug-in services.

개발환경 모듈(14)은 PaaS 플랫폼을 활용하여 응용어플리케이션을 개발 및 배포, 운영하기 위한 셀프 서비스 포털과 개발도구를 제공한다. The development environment module 14 provides a self-service portal and development tools for developing, deploying, and operating application applications by utilizing the PaaS platform.

서비스환경 모듈(13)은 응용어플리케이션 실행 시 RDBMS, NoSQL, 메시징 서비스 등 다양한 대외 백엔드 플랫폼 서비스와 연계를 위한 대외 서비스 브로커를 제공하며, 내외의 API 관리 및 연계를 위한 API 관리 서비스를 제공할 수 있다. The service environment module 13 provides an external service broker for linking with various external back-end platform services such as RDBMS, NoSQL, and messaging services when executing application applications, and can provide API management services for managing and linking internal and external APIs. .

도 2는 본 발명의 일 실시예에 따른 클라우드 기반 플랫폼 구축 시스템의 어플리케이션 플랫폼 컴포넌트를 나타낸 도면이다.2 is a diagram illustrating an application platform component of a cloud-based platform building system according to an embodiment of the present invention.

어플리케이션 플랫폼은 실행환경 모듈(12)에 대응되며, 사용자 포털, 개발도구 및 관리 포털과 상호작용하여 어플리케이션의 배포 및 관리, 모니터링을 수행하기 위한 API 서비스를 제공한다. 또한, 어플리케이션 플랫폼에 배포되는 응용어플리케이션을 위한 API 관리를 제공하여 외부 API 서비스를 제공하거나 응용어플리케이션의 API 서비스를 대외에 제공할 수 있다. 어플리케이션 플랫폼은 다양한 유형의 IaaS를 지원하고 리소스 관리를 수행하는 하위 인프라 제어 및 관리 컴포넌트를 기반으로 운영 관리된다. The application platform corresponds to the execution environment module 12 and provides API services for distributing, managing, and monitoring the application by interacting with the user portal, the development tool, and the management portal. In addition, it is possible to provide an external API service by providing API management for an application application distributed on the application platform, or provide an API service of the application application to the outside. The application platform is operated and managed based on sub-infrastructure control and management components that support various types of IaaS and perform resource management.

도 2를 참조하면, 어플리케이션 플랫폼은 클라우드 파운드리(CF, Cloud Foundry) 오픈 소스를 기반으로 구성될 수 있다. Referring to FIG. 2 , the application platform may be configured based on a Cloud Foundry (CF) open source.

라우터(Router)(21)는 사용자 요청 트래픽을 목적지로 라우트하는 역할을 수행한다. 주 목적지는 클라우드 컨트롤러(23) 혹은 응용어플리케이션을 실행하고 있는 가든 컨테이너(34)가 된다. 라우터(21)의 라우터 정보는 백엔드 실행부(30)(예를 들어, 디에고(Diego))가 서비스하고 있는 어플리케이션 인스턴스 정보를 리셉터(Receptor)(31)에서 수신하여 라우트 에미터(22)를 통해 업데이트 받는다. 라우터(21)와 라우트 에미터(22)는 통합 모듈로 구현될 수도 있다.The router 21 serves to route user request traffic to a destination. The main destination is the cloud controller 23 or the garden container 34 running the application. The router information of the router 21 receives the application instance information serviced by the backend execution unit 30 (eg, Diego) from the receptor 31 and passes through the route emitter 22 . get updated The router 21 and the route emitter 22 may be implemented as an integrated module.

라우트 에미터(Route-Emitter)(22)는 리셉터(31)로부터 실제 LRP(Actual LRP(Long-Running Processes)) 상태를 모니터링하고, 목표 LRP(Desired LRP)와 비교하여 변경이 발생한 경우 라우터(21)로 라우트 정보 등록/해제 요청 메시지를 보낸다. 또한, 주기적으로 전체 라우팅 테이블을 라우터(21)로 보낸다. The route emitter 22 monitors the actual LRP (Long-Running Processes) status from the receptor 31, and compares it with the target LRP (Desired LRP) when a change occurs, the router 21 ) to send route information registration/removal request message. In addition, it periodically sends the entire routing table to the router 21 .

클라우드 컨트롤러(Cloud Controller)(23)는 어플리케이션 스테이징과 실행을 위한 API를 제공한다. 빌드팩 선정, 서비스와 바인딩, 접근 인가 처리와 같은 어플리케이션의 전반적인 관리를 담당한다. The cloud controller 23 provides an API for staging and executing the application. It is in charge of overall management of the application, such as build pack selection, service and binding, and access authorization processing.

개발자가 CLI(Command Line Interface, 명령 라인 인터페이스)를 통해 어플리케이션을 클라우드 파운드리로 전송하면 클라우드 컨트롤러(23)가 수신하게 된다. 클라우드 컨트롤러(23)는 어플리케이션 바이너리를 저장 후 어플리케이션 메타데이터 기록을 생성하고, 백엔드 실행부(30)와 통신하여 스테이지 상태 준비 및 어플리케이션 실행을 지시한다. 클라우드 컨트롤러(23)는 서비스를 위해 조직, 스페이스, 서비스, 서비스 인스턴스, 사용자 역할 등의 정보 유지를 위한 데이터베이스와 어플리케이션 코드 및 빌드팩 저장 등을 위한 파일 저장소(Blobstore)를 유지할 수 있다. When a developer transmits an application to the cloud foundry through a command line interface (CLI), the cloud controller 23 receives it. The cloud controller 23 stores the application binary, creates an application metadata record, and communicates with the backend execution unit 30 to instruct stage state preparation and application execution. The cloud controller 23 may maintain a database for maintaining information such as an organization, a space, a service, a service instance, and a user role for a service, and a file storage (Blobstore) for storing application codes and build packs.

CC 브릿지(CC-Bridge)(24)는 클라우드 컨트롤러(23)와 상호통신하며, 클라우드 컨트롤러(23)의 어플리케이션 고유 메시지를 일반 태스크(Task)와 LRP로 변환하여 리셉터(31)로 전달하는 중재 역할을 담당한다. The CC bridge (CC-Bridge) 24 communicates with the cloud controller 23 , and converts the application-specific message of the cloud controller 23 into a general task (Task) and LRP and delivers the mediation role to the receptor 31 . is responsible for

CC 브릿지(24)는 다음과 같은 4개의 하위 모듈(스테이저(Stager), 엔싱크 모듈(Nsync), TPS 및 파일서버(File-Server))을 포함할 수 있다. The CC bridge 24 may include the following four sub-modules (Stager, Nsync module, TPS and File-Server).

스테이저(Stager)는 클라우드 컨트롤러(23)로부터 스테이징 요청을 수신하여 일반 태스크로 변환 후 리셉터(31)에 요청한다. 태스크 액션을 통해 백엔드 실행부(30)의 셀을 지시하여, 실제 스테이징 프로세스를 수행 단계에서 플랫폼 고유 바이너리를 주입하게 한다. 태스크 수행 완료 시 클라우드 컨트롤러(23)에게 결과를 전송한다. The stager receives a staging request from the cloud controller 23 , converts it into a general task, and requests the receptor 31 . By instructing the cell of the backend execution unit 30 through the task action, the platform-specific binary is injected during the actual staging process. When the task is completed, the result is transmitted to the cloud controller 23 .

엔싱크 모듈(Nsync)은 어플리케이션 상태를 요청받아 리셉터(31)를 통해 목표 LRP를 생성하거나 업데이트, 삭제할 수 있다. 또한, 주기적으로 클라우드 컨트롤러(23)에게 요청하여 어플리케이션 전체 목표 상태를 백엔드 실행부(30)의 목표 상태(디에고 목표 상태)와 비교하고 일치하도록 유지할 수 있다. The Nsync module (Nsync) may generate, update, or delete a target LRP through the receptor 31 in response to a request for an application state. In addition, it is possible to periodically request the cloud controller 23 to compare the overall target state of the application with the target state (the Diego target state) of the backend execution unit 30 and maintain the same.

TPS는 클라우드 컨트롤러(23)에 현재 실행 중인 LRP 정보를 제공한다. 클라우드 컨트롤러(23)는 이 정보를 이용하여 "cf apps" 및 "cf app X" 요청에 응답할 수 있다.The TPS provides information about the currently running LRP to the cloud controller 23 . The cloud controller 23 can use this information to respond to "cf apps" and "cf app X" requests.

파일서버(File-Server)는 익스큐터(Executor)(33)의 단순 HTTP POST 요청을 클라우드 컨트롤러(23)의 멀티파트-폼(multipart-form)의 업로드로 변환하는 역할을 수행한다. 여러 컴포넌트에서 사용되는 정적 자원을 서비스하며, 특히 어플리케이션 라이플 사이클의 바이너리를 제공할 수 있다. The file server (File-Server) serves to convert a simple HTTP POST request of the executor 33 into a multipart-form upload of the cloud controller 23 . It serves static resources used by multiple components, and in particular can provide binaries of the application life cycle.

인증 관리 모듈(UAA)(25)은 인증 서버(예. OAuth2 서버) 및 로그인 서버로 동작하여 사용자 인증 관리를 제공한다. The authentication management module (UAA) 25 operates as an authentication server (eg, OAuth2 server) and a login server to provide user authentication management.

리셉터(31)는 태스크와 목표 LRP 요청을 수신하고, 현재 실행 중인 태스크 및 LRP 인스턴스 현황 정보를 디에고 클라이언트에 제공할 수 있다. The receptor 31 may receive the task and target LRP request, and may provide the currently running task and LRP instance status information to the Diego client.

중개부(Rep)(32)는 셀(Cell)을 대표하며, BBS(40)를 통해 다양한 서비스를 수행한다. 예를 들어, BBS(40)의 태스크 및 실제 LRP 정보가 셀 내에 실제하고 있는 컨테이너와 일치하는지 확인하고, BBS(40) 내 셀이 실재하도록 유지할 수 있다. 특정 셀이 실패할 경우, 컨버저(Converger)(53)가 자동으로 해당 인스턴스를 다른 셀로 이전시킬 수 있다. 또한, 태스크/LRP 수신을 위해 경매(Auction)에 참여하며, 익스큐터(33)가 요청하여 태스크/LRP를 실행하여 컨테이너를 생성하고 컨테이너 내에서 수행될 액션을 실행할 수 있다.The intermediary unit (Rep) 32 represents a cell and performs various services through the BBS (40). For example, it is possible to check whether the task and actual LRP information of the BBS 40 matches the container that is actually in the cell, and maintain the cell in the BBS 40 to exist. When a specific cell fails, the converger 53 may automatically transfer the corresponding instance to another cell. In addition, it participates in an auction to receive the task/LRP, and the executor 33 requests and executes the task/LRP to create a container and execute an action to be performed in the container.

익스큐터(33)는 컨테이너의 생성 및 컨테이너 내 액션 수행, 컨테이너 삭제를 위한 HTTP API를 제공할 수 있다. 태스크 및 LRP를 구분하지 않으며, 수행 액션을 위한 액션 API를 구현할 수 있다. 익스큐터(33)는 셀에서 실행 중인 메트론 에이전트(Metron-agent)로 출력과 에러 메시지에 관한 스트림(Stdout과 Stderr 스트림)을 전송하며, 해당 스트림은 로그리게이터(Loggregator)로 전달될 수 있다. The executor 33 may provide an HTTP API for creating a container, performing an action within the container, and deleting the container. It does not distinguish between tasks and LRPs, and an action API for performing actions can be implemented. The executor 33 transmits streams (Stdout and Stderr streams) related to output and error messages to the Metron-agent running in the cell, and the corresponding streams can be delivered to the Loggregator. .

가든(Garden)(34)은 가든 컨테이너 관리를 위한 플랫폼 독립적인 서버 및 클라이언트 인터페이스를 제공할 수 있다. 인터페이스는 액션 수행을 위한 메소드를 정의할 수 있다. 메소드가 정의되는 액션에는 컨테이너의 생성 및 삭제, 컨테이너의 리소스 제약 적용, 컨테이너에 네트워크 포트 연결 및 개발, 컨테이너 내부/외부로 파일 복사, 컨테이너 내 프로세스 실행과 Stdout 및 Stderr 데이터 스트리밍 처리, 컨테이너의 임의 메타데이터, 다운타임 없이 재배포하기 위한 컨테이너 스냅샷 생성 등이 포함될 수 있다. Garden 34 may provide a platform independent server and client interface for garden container management. Interfaces can define methods for performing actions. Actions for which methods are defined include creating and deleting containers, applying resource constraints of containers, connecting and developing network ports to containers, copying files into and out of containers, running processes in containers and handling Stdout and Stderr data streaming, arbitrary meta of containers This can include creating snapshots of data, containers for redistribution without downtime, and so on.

앱 라이프사이클 모듈(App Lifecycle)(35)은 클라우드 파운드리에서 실행될 어플리케이션(CF 어플리케이션)의 라이프사이클을 관리하기 위한 빌더(Builder), 런처(Launcher), 헬스체크부(Healthcheck)의 3가지 바이너리를 제공할 수 있다. The App Lifecycle module 35 provides three binaries: Builder, Launcher, and Healthcheck for managing the lifecycle of an application (CF application) to be executed in the Cloud Foundry. can do.

빌더는 CF 어플리케이션의 스테이징을 수행할 수 있다. CC 브릿지(24)는 스테이징 요청을 태스크로 요청하며, 빌더는 어플리케이션 실행 전 코드 정정분석과 필요한 사전 작업을 수행할 수 있다. The builder can perform the staging of the CF application. The CC bridge 24 requests a staging request as a task, and the builder can perform code correction analysis and necessary pre-work before running the application.

런처는 CF 어플리케이션을 실행할 수 있다. CC 브릿지(24)는 어플리케이션 목표 LRP를 액션으로 요청하며, 런처는 사용자가 지정한 시스템 환경 설정과 시작 명령을 수행할 수 있다.The launcher can run CF applications. The CC bridge 24 requests the application target LRP as an action, and the launcher may perform a user-specified system environment setting and start command.

헬스체크부는 컨테이너 내에서 실행 중인 CF 어플리케이션의 상태 점검을 수행할 수 있다. CC 브릿지(24)는 어플리케이션 목표 LRP에 헬스체크를 위한 모니터링 액션을 추가할 수 있다. The health check unit may perform a status check of the CF application running in the container. CC bridge 24 may add a monitoring action for health check to the application target LRP.

경매사 모듈(Auctioneer)(51)은 태스크와 실제 LRP 인스턴스를 위한 경매를 저장한다. 경매사 모듈(51)과 셀의 중개부(32) 간 경매를 HTTP로 통신할 수 있다.The auctioneer module (Auctioneer) 51 stores auctions for tasks and actual LRP instances. The auction between the auction house module 51 and the intermediary unit 32 of the cell may be communicated through HTTP.

컨버저(Converger)(53)는 태스크와 LRP의 최종 일관성(Eventual consistency) 및 고장 허용 범위(fault tolerance)를 보장하기 위한 부분이다. LRP 조정 시 컨버저(53)는 목표 LRP와 실제 LRP 상태가 일치하기 위해 필요한 조치를 수행할 수 있다. 만약 인스턴스가 부족한 경우 시작 경매를 전송한다. 인스턴스가 초과된 경우, 인스턴스를 호스팅하고 있는 셀의 중개부(32)에 정지 메시지를 전송한다. Converger 53 is a part for ensuring eventual consistency and fault tolerance between the task and the LRP. When adjusting the LRP, the converger 53 may perform necessary actions to match the target LRP and the actual LRP state. If there are not enough instances, a start auction is sent. If the instance is exceeded, it sends a stop message to the intermediary 32 of the cell hosting the instance.

메트릭 서버(Metrics-Server)(54)는 BBS(40)에서 메트릭(metrics)을 읽어 도플러(Doppler)로 전송한다. The metrics server (Metrics-Server) 54 reads metrics from the BBS 40 and transmits them to Doppler.

경매 모듈(Auction)(52)은 경매 시 행위 상세 정보를 저장한다. 경매사 모듈(51)과 중개부(32)가 경매에 참여하기 위해 경매 패키지를 이용할 수 있다. 알고리즘의 정확성과 성능 검증을 위한 시뮬레이션 테스트를 포함할 수 있다.The auction module (Auction) 52 stores detailed information on the action during the auction. The auctioneer module 51 and the intermediary 32 may use the auction package to participate in the auction. It may include simulation tests to verify the accuracy and performance of the algorithm.

BBS(40)는 분산 키값(key-value) 저장소(Etcd) 메시지 서비스를 이용하며, 백엔드 실행부(30)의 구성요소들(디에고 컴포넌트)와 Etcd 간 커뮤니케이션 정보를 인코딩할 수 있다. 리셉터(31), 중개부(32), 컨버저(53)가 사용할 수 있다. The BBS 40 uses a distributed key-value storage (Etcd) message service, and can encode communication information between the components (Diego component) of the backend execution unit 30 and Etcd. The receptor 31 , the mediator 32 , and the converger 53 can be used.

서비스 브로커(Service Brokers)는 메시지큐, 데이터베이스와 같은 어플리케이션 실행 시 연동되어 사용되는 서비스를 위해 서비스 인스턴스를 생성할 수 있다. SaaS 형태로 서비스를 제공하는 업체는 어플리케이션에 서비스 제공을 위해 서비스 브로커를 구현하고 서버로 제공할 필요가 있다.Service Brokers can create service instances for services that are used in conjunction with application execution such as message queues and databases. A company that provides services in the form of SaaS needs to implement a service broker and provide it as a server to provide services to applications.

빌드팩(Buildpacks) 모듈은 언어 및 프레임워크를 감지하고 필요한 라이브러리를 다운받아 소스코드를 실행파일로 컴파일 후 런타임환경과 함께 빌드팩을 생성할 수 있다. The Buildpacks module detects languages and frameworks, downloads necessary libraries, compiles the source code into an executable file, and can create buildpacks together with the runtime environment.

NATS는 Pub-Sub 패턴의 분산 메시지 큐를 지원하는 시스템으로, 클라우드 파운드리 컴포넌트 간 통신에 사용할 수 잇다.NATS is a system that supports the distributed message queue of the Pub-Sub pattern, and can be used for communication between Cloud Foundry components.

도플러는 어플리케이션 로그를 개발자에게 스트림으로 제공할 수 있다. Metron은 어플리케이션 로그 및 어플리케이션/디에고 메트릭 정보를 도플러로 전달할 수 있다. Doppler can provide application logs to developers as a stream. Metron can deliver application log and application/diego metric information to Doppler.

본 실시예에 따른 클라우드 기반 플랫폼 구축 시스템은 어플리케이션 서비스 제공 방법을 수행할 수 있으며, 이하에서는 어플리케이션 서비스 제공 방법에 포함되는 어플리케이션 플랫폼 서비스 접근 수행 절차, 어플리케이션 서비스 생성 및 바인딩 절차, 어플리케이션 생성 및 업로드 절차, 어플리케이션 배포(스테이징 단계) 절차, 어플리케이션 배포(실행 단계) 절차에 대해 관련 도면을 참조하여 설명하기로 한다. The cloud-based platform building system according to the present embodiment may perform an application service providing method, and hereinafter, an application platform service access execution procedure, an application service creation and binding procedure, an application creation and upload procedure, which are included in the application service providing method, An application distribution (staging step) procedure and an application distribution (execution step) procedure will be described with reference to related drawings.

도 3은 본 발명의 일 실시예에 따른 클라우드 기반 플랫폼 구축 시스템의 어플리케이션 플랫폼 서비스 접근 수행 절차를 나타낸 도면이다. 3 is a diagram illustrating an application platform service access execution procedure of a cloud-based platform building system according to an embodiment of the present invention.

어플리케이션 플랫폼 서비스 접근 유형은 크게 2가지로, 어플리케이션 개발자가 PaaS에서 개발 및 운영을 위해 CLI(Command Line Interface) 및 웹 콘솔로 접근하는 경우와, 일반 사용자(End-User, 서비스 사용자)가 PaaS에서 서비스 중인 어플리케이션에 접근하는 경우로 구분된다. 두 경우 어플리케이션 플랫폼의 내부 처리 절차는 다음과 같다. There are two main types of access to application platform services: when application developers access CLI (Command Line Interface) and web console for development and operation in PaaS, and general users (end-users, service users) provide services in PaaS It is divided into the case of accessing the application in progress. In both cases, the internal processing procedure of the application platform is as follows.

우선 서비스 사용자가 어플리케이션에 접근하는 경우는 다음과 같다. 사용자가 어플리케이션 접근 URL을 라우터(21)로 요청한다(①). 라우터(21)는 요청 도메인에 매핑되는 어플리케이션이 배치되어 있는 가든 컨테이너(34)에 있는 어플리케이션으로 요청을 포워딩한다(②). First, the case where the service user accesses the application is as follows. The user requests the application access URL to the router 21 (①). The router 21 forwards the request to the application in the garden container 34 in which the application mapped to the request domain is placed (②).

다음으로 PaaS 사용자가 어플리케이션 개발 및 배포하는 경우는 다음과 같다. 사용자가 어플리케이션 관리 명령어를 라우터(21)로 요청한다(③). 라우터(21)는 어플리케이션 관리 명령어를 클라우드 컨트롤러(23)로 포워딩한다(④). 클라우드 컨트롤러(23)는 사용자의 인증 및 인가를 점검하고, 요청 명령어를 수행한다. Next, PaaS users develop and distribute applications as follows. The user requests an application management command to the router 21 (③). The router 21 forwards the application management command to the cloud controller 23 (④). The cloud controller 23 checks the user's authentication and authorization, and executes a request command.

도 4는 본 발명의 일 실시예에 따른 클라우드 기반 플랫폼 구축 시스템의 어플리케이션 서비스 생성 및 바인딩 절차를 나타낸 도면이다. 4 is a diagram illustrating an application service creation and binding procedure of a cloud-based platform building system according to an embodiment of the present invention.

본 실시예에 따른 클라우드 기반 플랫폼 구축 시스템에 의하면, 어플리케이션 운영에 필요한 데이터베이스, 메시지 큐 등의 서비스를 생성하고 어플리케이션과 바인딩할 수 있다. According to the cloud-based platform building system according to the present embodiment, services such as a database and message queue required for application operation can be created and bound to the application.

어플리케이션 서비스 생성 절차는 다음과 같다. The application service creation procedure is as follows.

사용자가 서비스 생성을 라우터(21)로 요청한다(①). 라우터(21)는 클라우드 컨트롤러(23)로 API 요청을 포워딩한다(②). 클라우드 컨트롤러(23)는 서비스 브로커(63)로 프로비저닝(Provisioning)을 요청한다(③). 서비스 브로커(63)는 서비스 인스턴스(64)를 생성한다(④). 클라우드 컨트롤러(23)는 생성한 서비스 정보(Dashboard URL 등)를 CCDB(클라우드 컨트롤러 데이터베이스)(61)에 저장 후 회신한다(⑤). The user requests service creation to the router 21 (①). The router 21 forwards the API request to the cloud controller 23 (②). The cloud controller 23 requests provisioning to the service broker 63 (③). The service broker 63 creates a service instance 64 (④). The cloud controller 23 stores the generated service information (Dashboard URL, etc.) in the CCDB (cloud controller database) 61 and returns it (⑤).

서비스 생성 후 어플리케이션에서 사용할 수 있도록 준비하는 바인딩 절차는 다음과 같다. The binding procedure to prepare for use in applications after service creation is as follows.

사용자가 서비스 바인딩을 라우터(21)로 요청한다(⑥). 라우터(21)는 클라우드 컨트롤러(23)로 API 요청을 포워딩한다(⑦). 클라우드 컨트롤러(23)는 서비스 브로커(63)로 바인딩을 요청한다(⑧). 서비스 브로커(63)는 서비스 인스턴스의 자격 증명(Credential) 정보를 회신한다(⑨). 클라우드 컨트롤러(23)는 생성한 서비스 자격 증명 정보를 CCDB(61)에 저장 후 회신한다(⑩). The user requests a service binding to the router 21 (⑥). The router 21 forwards the API request to the cloud controller 23 (⑦). The cloud controller 23 requests binding to the service broker 63 (⑧). The service broker 63 returns credential information of the service instance (⑨). The cloud controller 23 stores the generated service credential information in the CCDB 61 and returns it (⑩).

도 5는 본 발명의 일 실시예에 따른 클라우드 기반 플랫폼 구축 시스템의 어플리케이션 생성 및 업로드 절차를 나타낸 도면이고, 도 6은 어플리케이션 배포(스테이징 단계) 절차를 나타낸 도면이며, 도 7은 어플리케이션 배포(실행 단계) 절차를 나타낸 도면이다. 5 is a diagram illustrating an application creation and upload procedure of a cloud-based platform building system according to an embodiment of the present invention, FIG. 6 is a diagram illustrating an application distribution (staging step) procedure, and FIG. 7 is an application distribution (execution step) ) is a diagram showing the procedure.

본 실시예에 따른 클라우드 기반 플랫폼 구축 시스템에 의하면, 어플리케이션 배포는 어플리케이션의 생성 및 업로드, 배포 스테이징, 배포 실행의 단계를 포함한다. According to the cloud-based platform building system according to the present embodiment, application distribution includes the steps of generating and uploading an application, staging distribution, and executing distribution.

어플리케이션의 생성 및 업로드 단계는 배포 대상 어플리케이션 바이너리를 서버에 저장하고, 어플리케이션 정보를 메타데이터에 저장한다. In the step of creating and uploading an application, the distribution target application binary is stored in the server, and application information is stored in metadata.

배포 스테이징 단계는 대상 어플리케이션의 바이너리를 이용하여 개발언어 및 프레임워크, 미들웨어, 어플리케이션 의존관계 라이브러리 등 어플리케이션의 독립적인 실행이 가능한 단일 바이너리 집합으로 패키징한다. 클라우드 파운드리는 스테이징 단계에서 생성된 최종 실행 가능한 바이너리를 드랍릿(Droplet)으로 정의한다. The distribution staging step uses the binary of the target application and packages it into a single set of binaries that can independently execute the application, such as the development language, framework, middleware, and application dependency library. Cloud Foundry defines the final executable binary generated in the staging phase as a Droplet.

배포 실행 단계는 스테이징 단계에서 생성한 드랍릿을 사용자가 요청한 인스턴스 유형과 수에 맞춰 컨테이너를 실행하고 서비스를 제공하는 단계이다. The deployment execution phase is a phase in which the droplet created in the staging phase is used to run containers and provide services according to the instance type and number requested by the user.

도 5를 참조하면, 어플리케이션 배포에서 생성 절차는 다음과 같다. Referring to FIG. 5 , a creation procedure in application distribution is as follows.

사용자가 어플리케이션 생성을 요청한다(①). 라우터(21)는 클라우드 컨트롤러(23)로 API 요청을 포워딩한다(②). 클라우드 컨트롤러(23)는 CCDB(61)에 어플리케이션 정보를 저장한다(③). A user requests to create an application (①). The router 21 forwards the API request to the cloud controller 23 (②). The cloud controller 23 stores the application information in the CCDB 61 (③).

어플리케이션 업로드 절차는 다음과 같다. The application upload procedure is as follows.

사용자가 어플리케이션 저장을 요청한다(④). 라우터(21)는 클라우드 컨트롤러(23)로 API 요청을 포워딩한다(⑤). 클라우드 컨트롤러(23)는 파일 저장소(Blobstore)(62)에 어플리케이션 소스/바이너리를 저장한다(⑥). The user requests to save the application (④). The router 21 forwards the API request to the cloud controller 23 (⑤). The cloud controller 23 stores the application source/binary in the file storage (Blobstore) 62 (⑥).

도 6을 참조하면, 어플리케이션 배포 스테이징 단계의 절차는 다음과 같다. Referring to FIG. 6 , the procedure of the application distribution staging step is as follows.

사용자가 어플리케이션 시작을 요청한다(①). 라우터(21)는 클라우드 컨트롤러(23)로 API 요청을 포워딩한다(②). 클라우드 컨트롤러(23)는 CCDB(61)에서 어플리케이션 드랍릿 생성 상태를 확인한다(③). 처음되는 배포이므로, 어플리케이션 드랍릿은 생성되지 않은 상태이다. The user requests to start the application (①). The router 21 forwards the API request to the cloud controller 23 (②). The cloud controller 23 checks the application droplet creation state in the CCDB 61 (③). Since this is the first deployment, the application droplet has not been created.

클라우드 컨트롤러(23)는 CC 브릿지(24)에 어플리케이션 스테이징 실행을 요청한다(④). CC 브릿지(24)는 스테이징 수행을 위한 태스크를 생성하여 리셉터(31)에게 요청한다(⑤). 리셉터(31)는 요청 태스크를 펜딩(Pending) 상태로 변경 후 BBS(40)에 요청한다(⑥). BBS(40)는 태스크 정보를 분산 키값 저장소(etcd)에 저장 후 경매사 모듈(51)에게 요청한다(⑦). The cloud controller 23 requests the CC bridge 24 to execute the application staging (④). The CC bridge 24 generates a task for performing staging and requests the receptor 31 (⑤). The receptor 31 requests the BBS 40 after changing the request task to a pending state (⑥). The BBS 40 stores the task information in the distributed key value storage (etcd) and requests the auction house module 51 (⑦).

경매사 모듈(51)은 BBS(40)에 런닝(Running)하고 있는 셀(Cell) 정보를 요청하여 수신 후, 셀 별 가용 리소스를 요청하고 이를 기초로 태스크에 대한 경매를 실시하여 태스크 수행을 위한 최적의 셀을 선정한다(⑧). 경매사 모듈(51)은 경매를 통해 선정된 셀에 해당하는 중개부(32)에 태스크 처리를 요청한다(⑨). The auctioneer module 51 requests and receives information on the running cell from the BBS 40, requests available resources for each cell, and conducts an auction for the task based on the request for optimal task performance. Select the cell of (⑧). The auctioneer module 51 requests task processing to the intermediary unit 32 corresponding to the cell selected through the auction (⑨).

중개부(32)는 요청 태스크에 대한 BBS 정보를 런닝(Running) 상태로 변경 후, 익스큐터(33)에 요청한다(⑩). 중개부(32)는 태스크를 액션으로 변환하여 익스큐터(33)에 요청한다. After changing the BBS information for the requested task to the running state, the mediation unit 32 requests the executor 33 (⑩). The mediation unit 32 converts the task into an action and makes a request to the executor 33 .

익스큐터(33)는 태스크에 명시된 액션 요청에 따라 가든 컨테이너 생성 및 액션 수행을 요청한다(⑪). 가든 컨테이너(34)는 액션으로 요청된 절차에 따라 어플리케이션 스테이징을 수행 후 수행 결과 드랍릿을 CC 브릿지(24)에 요청하여 클라우드 컨트롤러 파일 저장소(62)에 저장한다(⑫). 중개부(32)는 태스크 수행 결과를 리셉터(31)에 전달하며, 리셉터(31)는 CC 브릿지(24)(그 중에서도 스테이저)에, 스테이저는 클라우드 컨트롤러(23)에 수행 결과를 전달한다(⑬). The executor 33 requests to create a garden container and perform an action according to the action request specified in the task (⑪). After performing application staging according to the procedure requested as an action, the garden container 34 requests the CC bridge 24 for the execution result droplet and stores it in the cloud controller file storage 62 (⑫). The mediation unit 32 transmits the task execution result to the receptor 31, the receptor 31 transmits the execution result to the CC bridge 24 (particularly, the stager), and the stager transmits the execution result to the cloud controller 23 ( ⑬).

도 7을 참조하면, 어플리케이션 배포 실행 단계의 절차는 다음과 같다. Referring to FIG. 7 , the procedure of the application distribution execution step is as follows.

클라우드 컨트롤러(23)는 CC 브릿지(24)에 스테이징 어플리케이션 실행을 요청한다(①). CC 브릿지(24)는 어플리케이션 실행을 위한 목표 LRP(Desired LRP)를 생성하여 리셉터(31)에게 요청한다(②). 리셉터(31)는 요청 LRP를 ARP(Actual-Running Processes) 상태로 변경 후 BBS(40)에 요청한다(③). BBS(40)는 LRP 정보를 분산 키값 저장소(etcd)에 저장 후 경매사 모듈(51)에 요청한다(④). The cloud controller 23 requests the CC bridge 24 to execute the staging application (①). CC bridge 24 generates a target LRP (Desired LRP) for application execution and requests the receptor 31 (②). The receptor 31 makes a request to the BBS 40 after changing the requested LRP to an ARP (Actual-Running Processes) state (③). The BBS 40 stores the LRP information in the distributed key value storage (etcd) and requests the auction house module 51 (④).

경매사 모듈(51)은 BBS(40)에 런닝(Running)하고 있는 셀 정보를 요청하여 수신 후, 셀 별 가용 리소스를 요청하고 이를 기초로 태스크에 대한 경매를 실시하여 LRP 수행을 위한 최적의 셀을 선정한다(⑤). 경매사 모듈(51)은 경매를 통해 선정된 셀에 해당하는 중개부(32)에 LRP 처리를 요청한다(⑥). The auctioneer module 51 requests and receives information on the cell that is running from the BBS 40, requests the available resources for each cell, and conducts an auction for the task based on this to find the optimal cell for performing LRP Select (⑤). The auction company module 51 requests the LRP processing to the intermediary unit 32 corresponding to the cell selected through the auction (⑥).

중개부(32)는 요청 LRP에 대한 BBS 정보를 클레임(Claimed) 상태로 변경 후, 익스큐터(33)에 요청한다(⑦). 중개부(32)는 LRP를 액션으로 변환하여 익스큐터(33)에 요청한다. The mediation unit 32 changes the BBS information for the requested LRP to the claimed state, and then requests the executor 33 (⑦). The mediation unit 32 converts the LRP into an action and makes a request to the executor 33 .

익스큐터(33)는 명시된 액션 요청에 따라 가든 컨테이너 생성을 요청한다(⑧). 가든 컨테이너(34)는 액션으로 요청된 절차에 따라 클라우드 컨트롤러(23)에서 드랍릿을 다운받은 후 어플리케이션을 실행한다(⑨). The executor 33 requests creation of a garden container according to the specified action request (⑧). The garden container 34 downloads the droplet from the cloud controller 23 according to the procedure requested as an action and then executes the application (⑨).

도 8은 본 발명의 일 실시예에 따른 클라우드 기반 플랫폼 구축 시스템의 어플리케이션 인스턴스 장애 자동 복구 수행 절차를 나타낸 도면이다.8 is a diagram illustrating a procedure for automatically recovering an application instance failure in a cloud-based platform building system according to an embodiment of the present invention.

기존의 어플리케이션 인스턴스 장애 자동 복구는 헬스 매니저가 클라우드 컨트롤러의 드랍릿 실행 에이전트(DEA, Droplet Execution Agent)의 장애를 감지하고, 클라우드 컨트롤러에 신규 컨테이너 생성을 요청하면, 클라우드 컨틀롤러가 DEA에 명령하여 신규 컨테이너를 생성하고 어플리케이션을 배포하여 복구하는 방식이었다. In the automatic recovery of existing application instance failures, when the health manager detects the failure of the Droplet Execution Agent (DEA) of the cloud controller and requests the cloud controller to create a new container, the cloud controller commands the DEA to create a new It was a way to create a container and deploy an application to restore it.

본 실시예에서는 컨버저(53)가 헬스 메니저와 유사한 기능을 수행하며, 더불어 직접 장애에 대한 복구 명령을 관련 컴포넌트에 요청한다. 컨버저(53)는 주기적으로 목표 LRP와 실행 LRP, 태스크를 검토하여 장애 복구뿐만 아니라 만료되거나 조정되어야 할 태스크 및 LRP 정보를 삭제하거나 업데이트할 수 있다. In this embodiment, the converger 53 performs a function similar to that of the health manager, and directly requests a recovery command for a failure from the related component. The converger 53 may periodically review the target LRP, the running LRP, and the task to delete or update information about the task and LRP to be expired or adjusted as well as failover.

어플리케이션 인스턴스 장애 복구 수행 절차는 다음과 같다. The procedure for performing application instance failure recovery is as follows.

컨버저(53)는 타이머에 의해 주기적으로 혹은 BBS(40)의 셀 변동 이벤트가 발생한 경우에 태스크, 목표 LRP, 실행 LRP 정보와 실제 런닝(Running)하고 있는 셀 정보를 BBS(40)에서 수집한다(①). The converger 53 collects task, target LRP, execution LRP information and actual running cell information from the BBS 40 periodically by a timer or when a cell change event of the BBS 40 occurs. (①).

기준 시간을 초과한 태스크 및 LRP가 처리되지 않고 있는 경우 상태 정보에 따라 기준 시간 초과 오류 메시지와 함께 완료 처리하거나 삭제 혹은 신규 생성을 처리한다(②). If the task and LRP exceeding the standard time are not being processed, the completion or deletion or creation is processed with a standard time exceeded error message according to the status information (②).

컨테이너 장애가 발생한 경우와 요청한 LRP의 인스턴스 수보다 작은 수의 인스턴스가 실행되고 있는 경우, 경매사 모듈(51)을 호출하여 LRP 생성을 요청할 수 있다.When a container failure occurs and a number of instances smaller than the number of instances of the requested LRP are running, the auction house module 51 may be called to request LRP generation.

또는 요청한 LRP의 수보다 많은 수의 컨테이너가 실행되고 있는 경우, 중개부(32)를 호출하여 컨테이너 중지를 요청할 수 있다. Alternatively, if a number of containers greater than the number of requested LRPs are being executed, the intermediary unit 32 may be called to request container stop.

또는 태스크가 완료(Complete) 상태에서 기준 시간을 초과한 경우 리셉터(31)의 콜백URL(callbackurl)을 호출하여 태스크 수행을 완료 처리하고 해당 태스크를 삭제할 수 있다. Alternatively, when the task exceeds the reference time in the complete state, the callback URL of the receptor 31 may be called to complete the task execution and delete the corresponding task.

도 9는 본 발명의 일 실시예에 따른 클라우드 기반 플랫폼 구축 시스템의 클라우드 컨트롤러 데이터 모델을 나타낸 도면이다. 9 is a diagram illustrating a cloud controller data model of a cloud-based platform building system according to an embodiment of the present invention.

어플리케이션 플랫폼은 클라우드 컨트롤러와 인증 관리 모듈(UAA)를 위한 각각의 데이터 모델을 가지며, 클라우드 컨트롤러 내에 파일 저장소를 유지할 수 있다. The application platform has respective data models for the cloud controller and the authentication management module (UAA), and may maintain file storage in the cloud controller.

어플리케이션 플랫폼 사용자는 테넌트의 최상위 조직명을 메타 개체로 정의한다. 조작 하위에 어플리케이션 개발환경 요건에 따라 스페이스를 정의하고, 스페이스 별 권한을 갖는 사용자와 어플리케이션 접근을 위한 도메인을 등록한다. The application platform user defines the top-level organization name of the tenant as a meta object. Define the space according to the application development environment requirements under the operation, and register the user with authority for each space and the domain for application access.

어플리케이션 플랫폼에 배포되는 하나의 어플리케이션은 특정한 스페이스에 속하게 되며, 스페이스에서 정의한 서비스와 연동할 수 있고, 라우트 설정에 따라 조직에 등록된 도메인을 통해 사용자에게 어플리케이션 서비스를 제공할 수 있다. One application distributed on the application platform belongs to a specific space, can be linked with the service defined in the space, and can provide application services to users through the domain registered in the organization according to route settings.

클라우드 컨트롤러는 리소스(cc-resources), 패키지(cc-packages), 드랍릿(cc-droplets), 빌드팩(cc-buildpacks)을 포함하는 4개의 파일 저장소를 관리할 수 있다. The cloud controller can manage four file stores including resources (cc-resources), packages (cc-packages), drops (cc-droplets), and buildpacks (cc-buildpacks).

클라우드 컨트롤러는 어플리케이션의 리소스들, 즉 패키지되지 않은 업로드 파일들을 리소스 파일 저장소에 저장한다. 리소스 파일 저장소를 사용하여 중복된 리소스의 업로드를 생략할 수 있다. 어플리케이션의 리소스 업로드 시, 우선 업로드 하려는 리소스가 리소스 파일 저장소에 있는지 확인한다. 리소스들은 각각의 리소스에 대한 SHA1해시값을 통해 파일 저장소에 저장된다. 해시값의 앞 4자리는 리소스 파일 저장소의 하위 디렉터리 PATH로 사용되며, 해당 위치에 해시값을 파일명으로 확장자 없이 저장된다. The cloud controller stores the resources of the application, that is, unpackaged upload files in the resource file storage. You can use the resource file store to skip uploading duplicate resources. When uploading an application's resource, first check whether the resource to be uploaded is in the resource file storage. Resources are stored in a file store with a SHA1 hash value for each resource. The first 4 digits of the hash value are used as the subdirectory PATH of the resource file storage, and the hash value is stored in that location as a file name without an extension.

클라우드 컨트롤러는 업로드된 어플리케이션 파일, 즉 스테이지 이전의 파일을 패키지 파일 저장소에 저장한다. 업로드 된 어플리케이션 파일들은 package.zip으로 묶이고, 어플리케이션에 할당된 GUID를 통해 파일 저장소에 저장된다. GUID는 어플리케이션 배포 시, SecureRandom 모듈의 uuid() 메서드를 통해 자동으로 생성된다. GUID의 앞 4자리는 패키지 파일 저장소의 하위 디렉터리 PATH로 사용되며, 해당 위치에 GUID를 파일명으로 확장자 없이 저장된다. The cloud controller stores the uploaded application file, that is, the file before the stage in the package file storage. Uploaded application files are bundled in package.zip and stored in the file storage through the GUID assigned to the application. GUID is automatically generated through the uuid() method of the SecureRandom module when the application is deployed. The first 4 digits of the GUID are used as the PATH sub-directory of the package file storage, and the GUID is stored in that location as a file name without extension.

클라우드 컨트롤러는 패키징과 컴파일을 통해 어플리케이션을 실행 가능한 상태로 만들고, 이를 드랍릿 파일 저장소에 저장된다. 스테이징된 어플리케이션은 droplet.tgz로 묶이고, 어플리케이션에 할당된 GUID를 통해 파일 저장소에 저장된다. GUID는 드랍릿 파일 저장소의 하위 디렉터리 PATH로 사용되며, 해당 위치에 droplet.tgz의 SHA1해시값을 파일명으로 확장자 없이 저장된다.The cloud controller makes the application executable through packaging and compilation, and it is stored in the droplet file storage. The staged application is bundled with droplet.tgz and stored in the file store through the GUID assigned to the application. GUID is used as the PATH sub-directory of the droplet file storage, and the SHA1 hash value of droplet.tgz is stored in that location as a file name without extension.

클라우드 컨트롤러는 시스템에서 제공하는 관리자 필드팩(admin buildpack)과 추가 또는 수정된 커스터마이즈 필드팩(customize buildpack)들을 빌드팩 파일 저장소에 저장한다. 각각의 필드팩은 GUID와 SHA1해시값을 통해 파일 저장소에 저장된다. 빌드팩 파일의 SHA1해시값을 구하고, GUID의 앞 4자리는 빌드팩 파일 저장소의 하위 디렉터리 PATH로 사용한다. ‘GUID_해시값’을 파일명으로 하여 확장자 없이 저장한다. The cloud controller stores the system-provided admin buildpack and added or modified custom buildpacks in the buildpack file storage. Each fieldpack is stored in a file storage with a GUID and SHA1 hash value. Obtain the SHA1 hash value of the buildpack file, and use the first 4 digits of the GUID as the PATH subdirectory of the buildpack file storage. Save without extension with ‘GUID_hash value’ as the file name.

어플리케이션 플랫폼의 노드 구성은 하위 인프라 제어 및 관리(Bosh) 모듈(11)의 설치 방식에 영향을 받는다.The node configuration of the application platform is affected by the installation method of the sub-infrastructure control and management (Bosh) module 11 .

운영 시스템의 경우 Bosh 기반으로 어플리케이션 플랫폼(cf_release)를 배포하며, 이 경우 어플리케이션 플랫폼의 개별 컴포넌트 별 가상머신(VM)을 할당하고 고가용성(HA)을 위해 이중화 구성하도록 설정할 수 있다. In the case of the operating system, the application platform (cf_release) is distributed based on Bosh. In this case, a virtual machine (VM) for each individual component of the application platform can be allocated and configured to be redundant for high availability (HA).

개발 및 단위 테스트 시스템의 경우 Bosh-lite 기반으로 어플리케이션 플랫폼을 배포할 수 있으며, 이 경우 어플리케이션 플랫폼은 하나의 가상머신(VM) 상에 다수의 Warden 컨테이너로 배포될 수 있다. In the case of development and unit test systems, the application platform can be deployed based on Bosh-lite, and in this case, the application platform can be deployed as multiple Warden containers on one virtual machine (VM).

도 10은 본 발명의 일 실시예에 따른 클라우드 기반 플랫폼 구축 시스템의 서비스환경과 관련한 서비스 아키텍처를 나타낸 도면이고, 도 11은 서비스 브로커 API 아키텍처를 나타낸 도면이며, 도 12는 API 플랫폼 아키텍처를 나타낸 도면이다. 10 is a diagram showing a service architecture related to a service environment of a cloud-based platform building system according to an embodiment of the present invention, FIG. 11 is a diagram showing a service broker API architecture, and FIG. 12 is a diagram showing an API platform architecture .

도 10 및 도 11을 참조하면, 서비스 환경과 관련하여 서비스팩 아키텍처가 도시되어 있다. 10 and 11 , a service pack architecture is illustrated in relation to a service environment.

클라우드 파운드리 서비스 API는 클라우드 컨트롤러와 서비스 브로커 사이의 규약(catalog, provision, deprovision, updateprovision, bind, unbind)을 정의한다. 브로커는 HTTP(혹은 HTTPS) 엔드포인트 URI 형식의 RESTful API로 구현될 수 있다. 하나 이상의 서비스가 하나의 브로커에 의해 제공될 수 있고, 로드 밸런싱이 가능하게 수평 확장성 있게 제공될 수 있다. 또한, 여러 클라우드 파운드리 인스턴스는 다른 URL 접두사 및 자격 증명(credentials)을 사용하여 하나의 브로커에 의해 지원될 수 있다. The Cloud Foundry Service API defines the protocols (catalog, provision, deprovision, updateprovision, bind, unbind) between the cloud controller and the service broker. A broker can be implemented as a RESTful API in the form of an HTTP (or HTTPS) endpoint URI. One or more services may be provided by one broker, and may be provided with horizontal scalability to enable load balancing. Additionally, multiple Cloud Foundry instances can be supported by a single broker using different URL prefixes and credentials.

도 12를 참조하면, 서비스 환경과 관련하여 API 플랫폼 아키텍처가 도시되어 있다. Referring to FIG. 12 , an API platform architecture is illustrated in relation to a service environment.

API 플랫폼은 공통 컴포넌트를 클라우드 서비스화를 위해 API를 관리하고 인증 처리를 지원하기 위한 프레임워크이다. API 관리자(Manager)에서 API를 관리/통제/인증 등의 기능을 하고, 비즈니스 활동 모니터(BAM, Business Activity Monitor)에서 API 사용에 대한 통계를 수집/분석할 수 있다. BAM에서 수집, 분석한 데이터는 MySQL 데이터베이스에 주기적으로 저장하여 API 관리자의 통계에서 확인할 수 있다. The API platform is a framework for managing APIs and supporting authentication processing to make common components a cloud service. You can manage/control/authenticate APIs in the API Manager, and collect/analyze statistics on API usage in the Business Activity Monitor (BAM). The data collected and analyzed by BAM is periodically stored in the MySQL database and can be checked in the statistics of the API manager.

도 12에서와 같이 API 플랫폼은 5개의 영역으로 나누어져 있다. API 관리자가 API를 등록, 관리하는 퍼블리셔(Publisher)와, API 사용자가 API의 정보를 확인하고 사용 신청하는 스토어(Store), API를 사용할 때 각종 정책(SLA)을 적용하는 게이트웨이(Gateway), API를 사용하기 위한 키를 관리하는 키 관리자(Key Manager)를 포함할 수 있다. BAM은 API 관리자의 게이트웨이와 스토어에서 발생되는 이벤트를 수집하고 분석할 수 있다. As shown in FIG. 12, the API platform is divided into five areas. API manager registers and manages API, Publisher, API user checks API information and applies for use, Gateway applies various policies (SLA) when using API, API may include a key manager (Key Manager) that manages keys for using. BAM can collect and analyze events that occur in the API manager's gateway and store.

API 플랫폼은 Open PaaS 플랫폼에서 하나의 서비스 형태로 제공될 수 있다. 따라서, Open PaaS 플랫폼과의 연결을 위해 서비스팩 아키텍처 구성을 하게 된다. API 플랫폼과 서비스팩 구성을 위한 아키텍처는 서비스팩 기술 아키텍처에 같이 포함될 수 있다. The API platform may be provided as a service in the Open PaaS platform. Therefore, the service pack architecture is configured for connection with the Open PaaS platform. The architecture for the API platform and service pack configuration can be included in the service pack technical architecture.

도 13은 본 발명의 일 실시예에 따른 클라우드 기반 플랫폼 구축 시스템의 개발환경과 관련한 플랫폼 연동 플러그인 아키텍처를 나타낸 도면이다. 13 is a diagram illustrating a platform interworking plug-in architecture related to a development environment of a cloud-based platform building system according to an embodiment of the present invention.

도 13을 참조하면, 플랫폼 연동 플러그인은 이클립스 IDE의 플러그인으로 제공된다. 기존 이클립스 IDE를 사용하여 개발환경을 유지하며, 개발하는 어플리케이션을 이클립스 IDE 내에서 플랫폼과 연동하여 관리할 수 있도록 한다. Referring to FIG. 13 , the platform interworking plug-in is provided as a plug-in of the Eclipse IDE. The development environment is maintained using the existing Eclipse IDE, and the application being developed can be managed by interworking with the platform within the Eclipse IDE.

플랫폼 연동 플러그인은 이클립스 IDE 웹 개발 지원 플러그인인 WST(Web Standard Tool)과 JST(J2EE Standard Tool)의 기능을 확장하여 구현하며, 자바 언어로 작성된 cf-java-client를 사용하여 실행환경과 연동된다.The platform interworking plug-in is implemented by extending the functions of WST (Web Standard Tool) and JST (J2EE Standard Tool), which are Eclipse IDE web development support plug-ins, and is linked with the execution environment using cf-java-client written in Java language.

플랫폼 연동 플러그인은 이클립스를 통해 클라우드 파운드리와 연동하기 위한 플러그인(eclipse-integration-cloudfoundry)으로써 이클립스 플랫폼 상에서 동작한다. WST와 JST에서 제공하는 컴포넌트를 확장하여 클라우드 파운드리 서버에 연결하여 어플리케이션을 관리할 수 있도록 클라우드 파운드리 서버가 구현되어 있다. 클라우드 파운드리 서버는 실질적인 서버가 아닌 서버 연결 정보를 가지며, 서버 인스턴스를 통해 인증한 계정의 조직 및 목표 스페이스와 동기화되며, 목표 스페이스 내에 어플리케이션을 배포/관리하고 어플리케이션의 상태 제어, 자원 할당 관리, 라우트 정보, 환경 변수를 이클립스 내에서 관리할 수 있도록 하고, 목표 스페이스 내의 서비스팩 인스턴스의 관리 및 어플리케이션과의 바인딩 기능을 제공한다. The platform integration plug-in operates on the Eclipse platform as a plug-in (eclipse-integration-cloudfoundry) for interworking with Cloud Foundry through Eclipse. The Cloud Foundry Server is implemented so that the components provided by WST and JST can be extended to connect to the Cloud Foundry Server to manage applications. The Cloud Foundry Server has server connection information, not the actual server, and is synchronized with the organization and target space of the account authenticated through the server instance. , environment variables can be managed within Eclipse, and service pack instance management and binding functions in the target space are provided.

플랫폼 연동 플러그인을 구성하는 컴포넌트와 각 컴포넌트가 제공하는 기능은 아래와 같다.The components composing the platform interworking plug-in and the functions provided by each component are as follows.

플랫폼 연결 정보 관리 모듈은 클라우드 컨트롤러 URL, 사용자 인증 정보, 목표 스페이스 정보로 구성된 플랫폼 서버 연결 정보를 생성하고, 플랫폼 연동 플러그인에서 서버 인스턴스로 표현된다. 서버 인스턴스를 통해 목표 스페이스 내의 어플리케이션, 서비스팩, 환경변수 등에 대한 관리 기능을 제공할 수 있다.The platform connection information management module creates platform server connection information composed of cloud controller URL, user authentication information, and target space information, and is expressed as a server instance in the platform interworking plug-in. Management functions for applications, service packs, environment variables, etc. in the target space can be provided through the server instance.

어플리케이션 배포 모듈은 이클립스 IDE의 작업 공간 내의 배포가능한 웹 어플리케이션 프로젝트를 설정된 목표 스페이스로 배포하여 플랫폼에서 실행하도록 한다. 어플리케이션 배포를 위해 웹 어플리케이션 프로젝트를 웹 아카이브 포맷인 WAR(Web application Archive) 포맷으로 압축하고 이를 클라우드 컨트롤러 API를 통해 업로드할 수 있다.The application distribution module distributes the distributable web application project in the workspace of the Eclipse IDE to the set target space to run it on the platform. For application distribution, a web application project can be compressed into a web archive format, WAR (Web application archive) format, and uploaded through the cloud controller API.

어플리케이션 관리 모듈은 목표 스페이스 내에 배포되어 있는 어플리케이션을 조회하고 어플리케이션의 설정을 확인하고 수정할 수 있는 기능을 제공한다. 어플리케이션의 수평확장을 위한 인스턴스 수, 인스턴스 메모리, 어플리케이션 상태를 제어할 수 있으며, 어플리케이션에 바인딩된 서비스팩 인스턴스와 인스턴스 목록을 확인할 수 있다.The application management module provides a function to inquire the application distributed in the target space and to check and modify the application settings. You can control the number of instances, instance memory, and application status for horizontal expansion of the application, and you can check the service pack instance and instance list bound to the application.

서비스팩 인스턴스 관리 모듈은 목표 스페이스 내의 서비스팩 인스턴스 관리 기능을 제공한다. 플랫폼 서버로부터 생성 가능한 서비스팩 목록을 조회하고, 서비스팩 인스턴스를 목표 스페이스 내에 생성하도록 하며, 어플리케이션과 서비스팩 인스턴스의 바인딩 및 바인딩 해제를 통해 어플리케이션에서 서비스팩 인스턴스를 사용할 수 있도록 한다.The service pack instance management module provides the service pack instance management function in the target space. Inquires the list of service packs that can be created from the platform server, creates a service pack instance in the target space, and enables the application to use the service pack instance through binding and unbinding of the application and service pack instance.

라우트 관리 모듈은 어플리케이션 접속 URL 설정을 위한 라우트의 관리 기능을 제공한다. 플랫폼에 설정되어 있는 공개 도메인과 조직 관리자가 설정한 조직의 비공개 도메인을 선택하고, 서브도메인을 설정하여 라우트 정보를 구성하여 생성하고, 이를 어플리케이션에 매핑하여, 설정된 라우트로 어플리케이션에 접속할 수 있도록 한다.The route management module provides a route management function for setting the application access URL. Select the public domain set in the platform and the private domain of the organization set by the organization administrator, configure the subdomain to configure and create route information, and map it to the application so that the application can be accessed through the set route.

환경변수 관리 모듈은 어플리케이션의 환경변수의 관리 기능을 제공한다. 환경변수는 환경변수 이름과 값의 쌍으로 구성되며, 설정한 환경변수는 어플리케이션이 동작 중에 로드하여 사용한다.The environment variable management module provides the management function of environment variables of the application. Environment variables consist of a pair of environment variable names and values, and the set environment variables are loaded and used while the application is running.

인스턴스 로깅 모듈은 어플리케이션 인스턴스에서 출력하는 로그를 스트리밍하여 이클립스의 콘솔 뷰에 출력한다. 어플리케이션 인스턴스는 어플리케이션 관리에서 각 애플리케이 별로 인스턴스의 목록을 확인할 수 있으며, 목록에서 인스턴스를 선택하여 로그를 확인할 수 있다.The instance logging module streams the log output from the application instance and outputs it to the Eclipse console view. As for the application instance, the list of instances for each application can be checked in the application management, and the log can be checked by selecting the instance from the list.

이클립스는 다양한 플랫폼에서 동작하며, 자바를 비롯한 다양한 언어를 지원하는 프로그래밍 통합개발환경을 목적으로 구현되었으며, 현재는 OSGi를 도입하여, 범용 응용 소프트웨어를 위한 플랫폼을 제공한다.Eclipse operates on various platforms and was implemented for the purpose of a programming integrated development environment that supports various languages including Java. Currently, OSGi is introduced to provide a platform for general-purpose application software.

이클립스의 기반은 리치 클라이언트 플랫폼(RCP)으로, RCP는 아래와 같은 구성 요소로 이루어져 있다. The basis of Eclipse is the Rich Client Platform (RCP), which consists of the following components.

- 코어 플랫폼: 플러그인을 실행하는 이클립스의 기반- Core platform: the base of Eclipse running plugins

- OSGi: 표준 번들링 프레임워크- OSGi: standard bundling framework

- SWT (Standard Widget Toolkit): 이식 가능한 GUI 위젯 툴킷- SWT (Standard Widget Toolkit): Portable GUI widget toolkit

- JFace: SWT를 이용하여 고급 컴포넌트를 구성하는 작업을 간략화할 수 있도록 지원- JFace: support to simplify the task of configuring advanced components using SWT

- 이클립스 워크벤치(Workebench): 뷰(View), 편집기, 퍼스펙티브(Perspective), 마법사(Wizard)로 구성되어 효율적인 GUI를 제공하여 사용성을 높인다.- Eclipse Workebench: Consists of View, Editor, Perspective, and Wizard to provide an efficient GUI to enhance usability.

이클립스 플러그인은 확장점(Extension Point)을 제공하여 타 플러그인해서 해당 플러그인의 기능을 확장하여 구현할 수 있으며, 플랫폼 연동 플러그인은 WST와 JST 플러그인의 기능을 확장하여 클라우드 파운드리 서버와 연동하기 위한 기능을 구현한다.The Eclipse plug-in provides an extension point and can be implemented by extending the functionality of the plug-in by using other plug-ins. .

WST(Web Standard Tools) 플러그인은 이클립스 Web Tools 프로젝트의 서브 프로젝트로써 웹 어플리케이션 개발에 있어 다양한 서버군에서의 테스트 및 디버깅을 지원하는 확장성 있는 도구를 제공한다.WST (Web Standard Tools) plug-in is a sub-project of the Eclipse Web Tools project and provides extensible tools that support testing and debugging in various server groups in web application development.

WST 플러그인을 통해 이클립스에서 서버 관리 도구, 인터넷 속성, TCP/IP 모니터링을 수행할 수 있으며, 웹 언어(HTML, CSS, XML, Javascript) 편집을 위한 편집기, SQL 쿼리 편집기, XML/DTD/XSD 유틸리티 등을 사용할 수 있다.Server management tools, Internet properties, TCP/IP monitoring can be performed in Eclipse through WST plug-in, editor for web language (HTML, CSS, XML, Javascript) editing, SQL query editor, XML/DTD/XSD utility, etc. can be used

플랫폼 연동 플러그인은 WST의 서버 런타임 타입, 서버 타입, 패싯(프로젝트 속성) 등을 확장하여 클라우드 파운드리 서버 연동을 위한 서버 관리 인스턴스를 제공한다.The platform interworking plug-in provides a server management instance for interworking with the cloud foundry server by extending the server runtime type, server type, and facet (project property) of WST.

JST(J2EE Standard Tools) 플러그인은 이클립스 Web Tools 프로젝트의 서브 프로젝트로써 광범위한 J2EE 서버 군들에 대해 J2EE 어플리케이션의 개발, 테스트 및 디버깅을 지원하는 확장성 있는 도구를 제공한다. 이를 통해 웹 어플리케이션, 엔터프라이즈 자바 빈즈, 자바 웹 서비스 등을 이클립스 기반에서 개발하며 테스트하고, 디버깅을 할 수 있도록 지원한다.JST (J2EE Standard Tools) plug-in is a sub-project of the Eclipse Web Tools project and provides extensible tools that support development, testing and debugging of J2EE applications for a wide range of J2EE server groups. Through this, it supports development, testing, and debugging of web applications, enterprise Java beans, and Java web services based on Eclipse.

플랫폼 연동 플러그인은 JST의 런타임 패싯 매핑, 클래스패스 프로바이더, 위자드(마법사) 등을 확장하여 클라우드 파운드리 서버 연동을 위한 기능을 구현한다.The platform interworking plugin implements functions for interworking with the cloud foundry server by extending the runtime facet mapping of JST, classpath provider, and wizard (wizard).

클라우드 파운드리 클라이언트 라이브러리는 자바 언어를 통해 클라우드 파운드리의 클라우드 컨트롤러 REST API와 연동하여 사용할 수 있으며, JVM 기반의 언어인 Java를 포함하여 Groovy, Scala로 작성된 어플리케이션에서 클라우드 파운드리 서비스와 상호작용한다.The Cloud Foundry Client Library can be used in conjunction with Cloud Foundry's Cloud Controller REST API through the Java language, and interacts with the Cloud Foundry service in applications written in Groovy and Scala, including Java, a JVM-based language.

플랫폼 연동 플러그인은 WST, JST의 확장을 통해 이클립스에서 클라우드 파운드리와 연동을 위한 GUI 및 로직을 구현하며, 클라우드 컨트롤러에서 제공하는 REST API를 클라우드 파운드리 클라이언트 라이브러리를 통해 간접적으로 호출하여 이클립스 내에서 어플리케이션 및 서비스팩 인스턴스의 관리 기능을 제공한다.The platform interworking plugin implements GUI and logic for interworking with Cloud Foundry in Eclipse through the extension of WST and JST, and indirectly calls the REST API provided by the cloud controller through the Cloud Foundry client library to create applications and services within Eclipse. Provides management functions for pack instances.

도 14는 본 발명의 일 실시예에 따른 클라우드 기반 플랫폼 구축 시스템의 운영환경과 관련한 관리자 대시보드 아키텍처를 나타낸 도면이다. 14 is a diagram illustrating an architecture of an administrator dashboard related to an operating environment of a cloud-based platform building system according to an embodiment of the present invention.

관리자 대시보드(admin-ui)는 CCDB, UAADB로부터 데이터를 조회하고 클라우드 컨트롤러에서 제공하는 REST API 호출을 통해 상호작용하며, 웹 사용자 인터페이스 환경에서 플랫폼을 관리할 수 있도록 한다.The admin dashboard (admin-ui) inquires data from CCDB and UAADB, interacts through REST API calls provided by the cloud controller, and enables platform management in a web user interface environment.

관리자 대시보드는 웹 인터페이스를 통해 클라우드 파운드리의 데이터를 관리할 수 있도록 하는 웹 어플리케이션이다. 루비 언어로 작성된 백엔드 어플리케이션과 백엔드 어플리케이션에서 제공하는 REST API를 AJAX 통신을 통해 데이터와 웹 사용자 인터페이스를 제공하는 프론트엔드 어플리케이션으로 구성되어 있다.The admin dashboard is a web application that allows you to manage data in Cloud Foundry through a web interface. It consists of a back-end application written in Ruby language and a front-end application that provides data and web user interface through AJAX communication through REST API provided by the back-end application.

관리자 대시보드는 데이터 조회 시에는 CCDB 및 UAADB에 직접 쿼리하여 데이터를 조회하며, 조회 이 외의 기능은 클라우드 컨트롤러의 REST API를 호출하여 처리한다.When searching for data, the manager dashboard directly queries CCDB and UAADB to inquire data, and functions other than the query are handled by calling the REST API of the cloud controller.

UAADB의 유저 데이터와 CCDB의 플랫폼 데이터(조직, 스페이스, 어플리케이션, 서비스팩, 서비스팩 브로커, 서비스팩 인스턴스, 라우트, 도메인 등)를 주기적으로 읽은 후 메모리에 저장하여 관리자 대시보드를 통해 데이터를 빠르게 조회할 수 있도록 하며, 스케줄링 작업으로 인해 실시간 데이터 조회에는 제약이 따른다.After periodically reading UAADB user data and CCDB platform data (organization, space, application, service pack, service pack broker, service pack instance, route, domain, etc.) However, there are restrictions on real-time data inquiry due to scheduling tasks.

클라우드 파운드리 사용 현황 통계 데이터 수집을 위해 데이터베이스를 필요로 하며, 통계 테이블에 데이터별 컬럼을 정의하여 통계 데이터를 저장하고, 관리자 대시보드의 통계 페이지를 통해 데이터를 제공한다.Cloud Foundry requires a database to collect usage statistics data, stores statistical data by defining columns for each data in the statistics table, and provides data through the statistics page of the administrator dashboard.

도 15는 본 발명의 일 실시예에 따른 클라우드 기반 플랫폼 구축 시스템의 인프라 제어 및 관리 환경과 관련한 보쉬 아키텍처를 나타낸 도면이다. 15 is a diagram illustrating a Bosch architecture related to an infrastructure control and management environment of a cloud-based platform building system according to an embodiment of the present invention.

클라우드 파운드리 관리 및 배포를 위해 개발된 BOSH는 대규모 분산 시스템을 대상으로 한 배포 및 서비스의 생명주기를 관리하기 위한 공개 소프트웨어로 복수의 IaaS 환경에 맞게 가상머신을 생성하고 소프트웨어를 설치할 수 있는 기능을 제공한다.Developed for cloud foundry management and deployment, BOSH is an open software for managing the lifecycle of deployment and service targeting large-scale distributed systems. It provides the ability to create virtual machines and install software for multiple IaaS environments. do.

BOSH는 Bosh Outter SHell의 약자로 BOSH 배포와 관련된 시스템들을 "Outter Shell"이라 부르고, 이와 반대로 BOSH에 의해 배포되고 관리되는 시스템들을 "Inner Shell"이라 부른다. BOSH의 주요 컴포넌트의 정의와 역할은 다음과 같다.BOSH is an abbreviation of Bosh Outter SHell. Systems related to BOSH distribution are called "Outter Shell", and on the other hand, systems deployed and managed by BOSH are called "Inner Shell". Definition and roles of major components of BOSH are as follows.

명령 라인 인터페이스(CLI, Command Line Interface)는 BOSH 디렉터(Director)와 상호작용하면서 클라우드에 서비스를 배포하거나 특정 명령을 수행하도록 하는 운용도구이다. The Command Line Interface (CLI) is an operating tool that allows you to deploy services in the cloud or execute specific commands while interacting with the BOSH Director.

디렉터(Director)는 가상머신의 생성과 배포뿐만 아니라 소프트웨어와 서비스의 생명주기를 제어한다. Director controls the life cycle of software and services as well as creation and deployment of virtual machines.

헬스 모니터(Health Monitor)는 에이전트로부터 클라우드의 상태정보들을 수집한다. 클라우드로부터 특정 경고(Alert)가 발생하면 리저렉터(Resurrector)를 하거나 알림 플러그인(Notification Plug-in)을 통해 경고 메시지를 전송할 수도 있다. Health Monitor collects cloud status information from the agent. When a specific Alert is generated from the cloud, a Resurrector can be performed or a warning message can be transmitted through a Notification Plug-in.

데이터베이스는 디렉터가 사용하는 포스트그레스(Postgres) 데이터베이스로 배포(Deployment) 시에 필요로 하는 스템셀(Stemcell) / 릴리즈(Release) / 배포(Deployment)의 메타 정보들을 저장한다.The database is a Postgres database used by the director and stores meta information of Stemcell / Release / Deployment required for deployment.

파일 저장소(Blobstore)는 릴리즈 정보(BOSH Package의 Compiled Image 외에도 자체 제작된 S/W Packages)들을 저장하는 곳으로 사용된다. 이러한 릴리즈들은 CLI에 의해 업로드되고 디렉터에 의해 파일 저장소에 저장된다. 운용자가 배포시 에이전트는 파일 저장소로부터 현재 설정된 릴리즈에 지정된 잡(Job)과 해당 잡과 관련된 패키지 정보를 가지고 온다. The file storage (Blobstore) is used as a place to store release information (in addition to the Compiled Image of BOSH Package, self-made S/W Packages). These releases are uploaded by the CLI and stored in a file repository by the Director. When the operator distributes, the agent brings the job specified in the currently set release and package information related to the job from the file repository.

에이전트(Agent)는 클라우드에 배포되는 모든 가상머신에 설치되고 디렉터로부터 특정 명령을 받고 수행하는 역할을 하게 된다. 에이전트는 디렉터로부터 수신 받은 잡 명세서(Job Specification(설치할 패키지 및 구성 방법)) 정보로부터 해당 가상머신에 디렉터의 지시대로 지정된 패키지를 설치하고, 필요한 구성정보를 설정하게 된다.The agent is installed on all virtual machines deployed in the cloud and plays a role in receiving and executing specific commands from the director. From the job specification (package to be installed and configuration method) information received from the director, the agent installs the designated package in the virtual machine according to the director's instructions, and sets the necessary configuration information.

메시지 버스(Message Bus(NATS))는 디렉터와 에이전트 간 통신하기 위한 발행-구독(publish-subscribe) 방식의 메시지 시스템으로 가상머신 모니터링과 특정 명령을 수행하기 위해 사용된다.The Message Bus (NATS) is a publish-subscribe message system for communication between a director and an agent, and is used to monitor virtual machines and perform specific commands.

레지스트리(Registry)에는 디렉터가 가상머신을 생성 또는 수정할 때 설정 정보가 저장된다. 저장된 레지스트리 정보는 가상머신의 부트스트랩 스테이지(bootstrapping stage)에서 이용된다.The registry stores configuration information when a director creates or modifies a virtual machine. The stored registry information is used in the bootstrap stage of the virtual machine.

전술한 클라우드 기반 플랫폼 구축 방법 및 클라우드 기반 플랫폼을 통한 서비스 제공 방법은, 컴퓨터에 의해 실행되는 어플리케이션이나 프로그램 모듈과 같은 컴퓨터에 의해 실행가능한 명령어를 포함하는 기록매체의 형태로도 구현될 수 있다. 컴퓨터 판독 가능 매체는 컴퓨터에 의해 액세스될 수 있는 임의의 가용 매체일 수 있고, 휘발성 및 비휘발성 매체, 분리형 및 비분리형 매체를 모두 포함한다. 또한, 컴퓨터 판독 가능 매체는 컴퓨터 저장 매체를 포함할 수 있다. 컴퓨터 저장 매체는 컴퓨터 판독 가능 명령어, 데이터 구조, 프로그램 모듈 또는 기타 데이터와 같은 정보의 저장을 위한 임의의 방법 또는 기술로 구현된 휘발성 및 비휘발성, 분리형 및 비분리형 매체를 모두 포함한다. The above-described cloud-based platform building method and service providing method through the cloud-based platform may also be implemented in the form of a recording medium including instructions executable by a computer, such as an application or program module executed by a computer. Computer-readable media can be any available media that can be accessed by a computer and includes both volatile and nonvolatile media, removable and non-removable media. In addition, computer-readable media may include computer storage media. Computer storage media includes both volatile and nonvolatile, removable and non-removable media implemented in any method or technology for storage of information such as computer readable instructions, data structures, program modules or other data.

전술한 클라우드 기반 플랫폼 구축 방법 및 클라우드 기반 플랫폼을 통한 서비스 제공 방법은, 단말기에 기본적으로 설치된 어플리케이션(이는 단말기에 기본적으로 탑재된 플랫폼이나 운영체제 등에 포함된 프로그램을 포함할 수 있음)에 의해 실행될 수 있고, 사용자가 어플리케이션 스토어 서버, 어플리케이션 또는 해당 서비스와 관련된 웹 서버 등의 어플리케이션 제공 서버를 통해 마스터 단말기에 직접 설치한 어플리케이션(즉, 프로그램)에 의해 실행될 수도 있다. 이러한 의미에서, 전술한 클라우드 기반 플랫폼 구축 방법 및 클라우드 기반 플랫폼을 통한 서비스 제공 방법은 단말기에 기본적으로 설치되거나 사용자에 의해 직접 설치된 어플리케이션(즉, 프로그램)으로 구현되고 단말기 등의 컴퓨터로 읽을 수 있는 기록매체에 기록될 수 있다. The above-described cloud-based platform construction method and service provision method through the cloud-based platform may be executed by an application basically installed in the terminal (which may include a program included in the platform or operating system, etc., which is basically installed in the terminal) , may be executed by an application (ie, a program) directly installed in the master terminal by a user through an application providing server such as an application store server, an application, or a web server related to the corresponding service. In this sense, the above-described cloud-based platform construction method and service provision method through the cloud-based platform are implemented as an application (ie, program) installed by default in a terminal or directly installed by a user, and a computer-readable record such as a terminal may be recorded on the medium.

상기에서는 본 발명의 실시예를 참조하여 설명하였지만, 해당 기술 분야에서 통상의 지식을 가진 자라면 하기의 청구범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.Although the above has been described with reference to the embodiments of the present invention, those of ordinary skill in the art can variously modify and change the present invention within the scope without departing from the spirit and scope of the present invention described in the claims below. You will understand that it can be done.

10: 클라우드 기반 플랫폼 구축 시스템 11: 인프라 제어 및 관리 모듈
12: 실행환경 모듈 13: 서비스환경 모듈
14: 개발환경 모듈 15: 운영환경 모듈
21: 라우터 22: 라우트 에미터
23: 클라우드 컨트롤러 24: CC 브릿지
25: 인증 관리 모듈 26: 도플러
31: 리셉터 32: 중개부
33: 익스큐터 34: 가든
35: 앱 라이프사이클 모듈 36: 메트론 모듈
40: BBS 41: 경매사 모듈
42: 경매 모듈 43: 컨버저
44: 메트릭 서버 61: CCDB
62: 파일 저장소 63: 서비스 브로커
64: 서비스 인스턴스
10: Cloud-based platform building system 11: Infrastructure control and management module
12: Execution environment module 13: Service environment module
14: development environment module 15: operating environment module
21: router 22: route emitter
23: Cloud Controller 24: CC Bridge
25: authentication management module 26: doppler
31: receptor 32: intermediary
33: Executor 34: Garden
35: App Lifecycle Module 36: Metron Module
40: BBS 41: Auctioneer Module
42: auction module 43: converger
44: Metric Server 61: CCDB
62: file store 63: service broker
64: service instance

Claims (11)

클라우드 기반 플랫폼 구축 시스템으로서,
대규모의 분산된 서비스들의 라이프사이클을 관리하고, 릴리즈 및 배포 서비스를 관리하기 위한 통합 서비스를 제공하는 인프라 제어 및 관리 모듈;
어플리케이션의 개발 및 배포, 실행 및 운영 관리를 위한 어플리케이션 플랫폼을 제공하는 실행환경 모듈;
인프라 제어 및 연동과 상기 어플리케이션 플랫폼을 위한 관리 서비스를 제공하는 운영환경 모듈;
상기 어플리케이션을 개발, 배포 및 운영하기 위한 포털과 개발도구를 제공하는 개발환경 모듈; 및
상기 어플리케이션 실행 시 API 관리 서비스를 제공하는 서비스환경 모듈을 포함하는 클라우드 기반 플랫폼 구축 시스템.
As a cloud-based platform building system,
an infrastructure control and management module that manages the lifecycle of large-scale distributed services and provides integrated services for managing release and distribution services;
an execution environment module that provides an application platform for application development and distribution, execution and operation management;
an operating environment module that provides infrastructure control and interworking and management services for the application platform;
a development environment module that provides a portal and a development tool for developing, distributing and operating the application; and
A cloud-based platform construction system including a service environment module that provides API management services when the application is executed.
제1항에 있어서,
상기 실행환경 모듈은 클라우드 파운드리 오픈 소스를 기반으로 구성된 어플리케이션 플랫폼을 제공하며,
상기 어플리케이션 플랫폼은,
사용자 요청 트래픽을 목적지로 라우트하는 라우터와;
태스크와 목표 LRP 요청을 수신하고, 현재 실행 중인 태스크 및 LRP 인스턴스 현황 정보를 제공하는 리셉터와;
상기 리셉터로부터 실제 LRP 상태를 모니터링하고, 목표 LRP와 비교하여 변경이 발생한 경우 상기 라우터로 라우트 정보 등록/해제 요청 메시지를 보내는 라우트 에미터와;
어플리케이션 스테이징과 실행을 위한 API를 제공하는 클라우드 컨트롤러와;
상기 클라우드 컨트롤러와 상호 통신하며, 상기 클라우드 컨트롤러의 어플리케이션 고유 메시지를 일반 태스크와 LRP로 변환하여 상기 리셉터로 전달하는 CC 브릿지와;
분산 키값 저장소 메시지 서비스를 이용하고 커뮤니케이션 정보를 인코딩하는 BBS와;
셀을 대표하며 상기 BBS를 통해 미리 지정된 서비스를 수행하는 중개부와;
컨테이너의 생성, 액션 수행, 삭제를 위한 HTTP API를 제공하는 익스큐터와;
가든 컨테이너 관리를 위한 플랫폼 독립적인 서버 및 클라이언트 인터페이스르 제공하는 가든과;
상기 어플리케이션의 라이프사이클을 관리하는 바이너리를 제공하는 앱 라이프사이클 모듈과;
상기 태스크와 상기 실제 LRP 인스턴스를 위한 경매를 저장하는 경매사 모듈과;
상기 태스크와 상기 LRP의 최종 일관성 및 고장 허용 범위를 보장하는 조치를 수행하는 컨버저와;
상기 어플리케이션 실행 시 연동되어 사용되는 서비스를 위해 서비스 인스턴스를 생성하는 서비스 브로커 중 하나 이상을 포함하는 것을 특징으로 하는 클라우드 기반 플랫폼 구축 시스템.
According to claim 1,
The execution environment module provides an application platform configured based on cloud foundry open source,
The application platform is
a router for routing user request traffic to a destination;
a receptor for receiving task and target LRP requests and providing status information on currently running tasks and LRP instances;
a route emitter that monitors the actual LRP status from the receptor, and sends a route information registration/removal request message to the router when a change occurs compared to the target LRP;
a cloud controller that provides an API for application staging and execution;
a CC bridge that communicates with the cloud controller and converts the application-specific message of the cloud controller into a general task and an LRP and delivers it to the receptor;
a BBS that uses a distributed key value storage message service and encodes communication information;
an intermediary unit representing a cell and performing a predetermined service through the BBS;
an executor providing an HTTP API for container creation, action execution, and deletion;
Garden, which provides platform-independent server and client interfaces for managing garden containers;
an app lifecycle module that provides a binary for managing the lifecycle of the application;
an auctioneer module for storing auctions for the task and the actual LRP instance;
a converger for performing actions to ensure eventual consistency and fault tolerance between the task and the LRP;
Cloud-based platform building system, characterized in that it comprises one or more of the service brokers for creating a service instance for the service used in conjunction with the application execution.
제2항에 있어서,
상기 CC 브릿지는,
상기 클라우드 컨트롤러로부터 스테이징 요청을 수신하여 일반 태스크로 변환 후 상기 리셉터에 요청하는 스테이저와;
어플리케이션 상태를 요청받아 상기 리셉터를 통해 목표 LRP를 생성, 업데이트, 삭제하는 엔싱크 모듈과;
상기 클라우드 컨트롤러에 현재 실행 중인 LRP 정보를 제공하는 TPS와;
상기 익스큐터의 단순 HTTP POST 요청을 상기 클라우드 컨트롤러의 멀티파트-폼의 업로드로 변환하는 파일서버 중 하나 이상을 포함하는 것을 특징으로 하는 클라우드 기반 플랫폼 구축 시스템.
3. The method of claim 2,
The CC bridge is
a stager receiving a staging request from the cloud controller, converting it into a general task, and requesting the receptor;
an n-sync module for generating, updating, and deleting the target LRP through the receptor in response to a request for the application state;
a TPS that provides information about the currently running LRP to the cloud controller;
and at least one of a file server for converting a simple HTTP POST request of the executor into a multipart-form upload of the cloud controller.
제2항에 있어서,
상기 중개부는 상기 BBS의 상기 태스크 및 상기 실제 LRP 정보가 상기 셀 내에 실제하고 있는 상기 컨테이너와 일치하는지 확인하고, 상기 BBS 내에 상기 셀이 실재하도록 유지시키는 것을 특징으로 하는 클라우드 기반 플랫폼 구축 시스템.
3. The method of claim 2,
The intermediary unit confirms that the task of the BBS and the actual LRP information match the container that is actually in the cell, and maintains the cell to exist in the BBS.
제2항에 있어서,
상기 중개부는 특정 셀이 실패할 경우 컨버저가 자동으로 해당 인스턴스를 다른 셀로 이전시키게 하고, 태스크 혹은 LRP 수신을 위해 경매에 참여하며, 상기 익스큐터가 요청하여 상기 태스크 혹은 상기 LRP을 실행하여 상기 컨테이너를 생성하고 상기 컨테이너 내에 수행될 액션을 실행하는 것을 특징으로 하는 클라우드 기반 플랫폼 구축 시스템.
3. The method of claim 2,
When a specific cell fails, the intermediary causes the Converger to automatically transfer the instance to another cell, participates in an auction to receive a task or LRP, and executes the task or LRP at the request of the executor to execute the container A cloud-based platform building system, characterized in that it creates and executes an action to be performed in the container.
제2항에 있어서,
상기 앱 라이프사이클 모듈은,
상기 어플리케이션의 스테이징을 수행하는 빌더와;
상기 어플리케이션을 실행시키는 런처와;
상기 컨테이너 내에서 실행 중인 상기 어플리케이션의 상태 점검을 수행하는 헬스체크부 중 하나 이상의 바이너리를 포함하는 것을 특징으로 하는 클라우드 기반 플랫폼 구축 시스템.
3. The method of claim 2,
The app lifecycle module is
a builder performing staging of the application;
a launcher for executing the application;
Cloud-based platform building system, characterized in that it includes one or more binaries of a health check unit for performing a status check of the application running in the container.
클라우드 기반 플랫폼 구축 시스템에서 구축된 클라우드 기반 플랫폼의 어플리케이션 서비스 제공 방법으로서,
어플리케이션 서비스를 생성하는 단계; 및
상기 어플리케이션 서비스를 바인딩하는 단계를 포함하되,
상기 어플리케이션 서비스를 생성하는 단계는,
PaaS 사용자가 서비스 생성을 라우터로 요청하는 단계와;
상기 라우터가 클라우드 컨트롤러로 서비스 생성 API 요청을 포워딩하는 단계와;
상기 클라우드 컨트롤러가 서비스 브로커로 프로비저닝을 요청하는 단계와;
상기 서비스 브로커가 서비스 인스턴스를 생성하는 단계와;
상기 클라우드 컨트롤러는 생성한 서비스 정보를 클라우드 컨트롤러 데이터베이스에 저장 후 회신하는 단계를 포함하고,
상기 어플리케이션 서비스를 바인딩하는 단계는,
상기 PaaS 사용자가 서비스 바인딩을 상기 라우터로 요청하는 단계;
상기 라우터가 상기 클라우드 컨트롤러로 서비스 바인딩 API 요청을 포워딩하는 단계;
상기 클라우드 컨트롤러가 상기 서비스 브로커로 바인딩을 요청하는 단계;
상기 서비스 브로커가 상기 서비스 인스턴스의 자격 증명 정보를 회신하는 단계;
상기 클라우드 컨트롤러가 생성한 서비스 자격 증명 정보를 클라우드 컨트롤러 데이터베이스에 저장 후 회신하는 단계를 포함하는 것을 특징으로 하는 클라우드 기반 플랫폼의 어플리케이션 서비스 제공 방법.
A method for providing application services of a cloud-based platform built in a cloud-based platform construction system, the method comprising:
creating an application service; and
Including binding the application service,
The step of creating the application service includes:
a PaaS user requesting service creation to a router;
forwarding, by the router, a service creation API request to a cloud controller;
requesting, by the cloud controller, provisioning to a service broker;
creating, by the service broker, a service instance;
The cloud controller includes the step of storing the generated service information in a cloud controller database and then replying;
The step of binding the application service includes:
requesting, by the PaaS user, a service binding to the router;
forwarding, by the router, a service binding API request to the cloud controller;
requesting, by the cloud controller, binding to the service broker;
returning, by the service broker, credential information of the service instance;
and storing the service credential information generated by the cloud controller in a cloud controller database and then replying.
제7항에 있어서,
배포 대상 어플리케이션 바이너리를 서버에 저장하고 어플리케이션 정보를 메타데이터에 저장하는 어플리케이션의 생성 및 업로드 단계;
상기 배포 대상 어플리케이션 바이너리를 이용하여 독립적인 실행이 가능한 단일 바이너리 집합으로 패키징하는 배포 스테이징 단계; 및
상기 배포 스테이징 단계에서 생성한 드랍릿을 상기 PaaS 사용자가 요청한 인스턴스 유형과 수에 맞춰 컨테이너를 실행하고 서비스를 제공하는 배포 실행 단계를 더 포함하는 클라우드 기반 플랫폼의 어플리케이션 서비스 제공 방법.
8. The method of claim 7,
generating and uploading an application for storing the distribution target application binary in the server and storing the application information in metadata;
a distribution staging step of packaging the distribution target application binary into a single binary set capable of independent execution; and
The method of providing an application service of a cloud-based platform further comprising a distribution execution step of running a container according to the instance type and number requested by the PaaS user and providing the service using the droplet generated in the distribution staging step.
제8항에 있어서,
상기 어플리케이션의 생성 및 업로드 단계는,
상기 PaaS 사용자가 어플리케이션 생성을 요청하는 단계;
상기 라우터가 상기 클라우드 컨트롤러로 어플리케이션 생성 API 요청을 포워딩하는 단계;
상기 클라우드 컨트롤러가 상기 클라우드 컨트롤러 데이터베이스에 어플리케이션 정보를 저장하는 단계;
상기 PaaS 사용자가 어플리케이션 저장을 요청하는 단계;
상기 라우터가 상기 클라우드 컨트롤러로 어플리케이션 저장 API 요청을 포워딩하는 단계;
상기 클라우드 컨트롤러가 파일 저장소에 어플리케이션 소스 및 바이너리를 저장하는 단계를 포함하는 클라우드 기반 플랫폼의 어플리케이션 서비스 제공 방법.
9. The method of claim 8,
The step of creating and uploading the application is,
requesting the PaaS user to create an application;
forwarding, by the router, an application creation API request to the cloud controller;
storing, by the cloud controller, application information in the cloud controller database;
requesting the PaaS user to store the application;
forwarding, by the router, an application storage API request to the cloud controller;
The method of providing an application service of a cloud-based platform comprising the step of the cloud controller storing an application source and a binary in a file storage.
제9항에 있어서,
상기 배포 스테이징 단계는,
상기 PaaS 사용자가 어플리케이션 시작을 요청하는 단계;
상기 라우터는 상기 클라우드 컨트롤러로 어플리케이션 시작 API 요청을 포워딩하는 단계;
상기 클라우드 컨트롤러가 상기 클라우드 컨트롤러 데이터베이스에서 어플리케이션 드랍릿 생성 상태를 확인하는 단계;
상기 클라우드 컨트롤러가 CC 브릿지에 어플리케이션 스테이징 실행을 요청하는 단계;
상기 CC 브릿지가 스테이징 수행을 위한 태스크를 생성하여 리셉터에게 요청하는 단계;
상기 리셉터가 요청 태스크를 펜딩 상태로 변경 후 BBS에 요청하는 단계;
상기 BBS가 태스크 정보를 분산 키값 저장소에 저장 후 경매사 모듈에게 요청하는 단계;
상기 경매사 모듈이 상기 BBS에 런닝하고 있는 셀 정보를 요청하여 수신 후, 셀 별 가용 리소스를 요청하고 이를 기초로 태스크에 대한 경매를 실시하여 태스크 수행을 위한 최적의 셀을 선정하는 단계;
상기 경매사 모듈이 경매를 통해 전성된 셀에 해당하는 중개부에 태스크 처리를 요청하는 단계;
상기 중개부가 상기 태스크를 액션으로 변환하여 익스큐터에 요청하는 단계;
상기 익스큐터가 상기 태스크에 명시된 액션 요청에 따라 가든 컨테이너 생성 및 액션 수행을 요청하는 단계;
상기 가든 컨테이너가 상기 액션으로 요청된 절차에 따라 어플리케이션 스테이징을 수행 후 수행 결과 드랍릿을 상기 CC 브릿지에 요청하여 상기 파일 저장소에 저장하는 단계;
상기 중개부가 태스크 수행 결과를 상기 리셉터에 전달하고, 상기 리셉터는 상기 CC 브릿지를 통해 상기 클라우드 컨트롤러에 상기 태스크 수행 결과를 전달하는 단계를 포함하는 클라우드 기반 플랫폼의 어플리케이션 서비스 제공 방법.
10. The method of claim 9,
The distribution staging step is
requesting the PaaS user to start an application;
forwarding, by the router, an application start API request to the cloud controller;
checking, by the cloud controller, an application droplet creation state in the cloud controller database;
requesting, by the cloud controller, execution of application staging to the CC bridge;
generating, by the CC bridge, a task for performing staging and requesting it from a receptor;
requesting the BBS after the receptor changes the requested task to a pending state;
storing the task information in the distributed key value storage by the BBS and requesting the auction house module;
selecting, by the auctioneer module, the optimal cell for performing the task by requesting and receiving the information on the running cell from the BBS, requesting an available resource for each cell, and performing an auction on the task based on the request;
requesting, by the auctioneer module, a task processing unit to an intermediary corresponding to a cell transferred through an auction;
converting the task into an action by the mediation unit and requesting an executor;
requesting, by the executor, to create a garden container and perform an action according to an action request specified in the task;
after the garden container performs application staging according to the procedure requested as the action, requesting a droplet of the execution result to the CC bridge and storing it in the file storage;
and transmitting, by the intermediary unit, a task execution result to the receptor, and the receptor transmitting the task execution result to the cloud controller through the CC bridge.
제10항에 있어서,
상기 배포 실행 단계는,
상기 클라우드 컨트롤러가 상기 CC 브릿지에 스테이징 어플리케이션 실행을 요청하는 단계;
상기 CC 브릿지가 어플리케이션 실행을 위한 목표 LRP를 생성하여 상기 리셉터에 요청하는 단계;
상기 리셉터가 요청 LRP의 상태를 변경하고 상기 BBS에 요청하는 단계;
상기 BBS가 LRP 정보를 상기 분산 키값 저장소에 저장 후 상기 경매사 모듈에 요청하는 단계;
상기 경매사 모듈이 상기 BBS에 런닝하고 있는 셀 정보를 요청하여 수신 후, 셀 별 가용 리소스를 요청하고 이를 기초로 태스크에 대한 경매를 실시하여 태스크 수행을 위한 최적의 셀을 선정하는 단계;
상기 경매사 모듈이 경매를 통해 전성된 셀에 해당하는 중개부에 LRP 처리를 요청하는 단계;
상기 중개부가 요청 LRP에 대한 BBS 정보를 클레임 상태로 변경하고, LRP를 액션으로 변환하여 상기 익스큐터에 요청하는 단계;
상기 익스큐터가 명시된 액션 요청에 따라 가든 컨테이너 생성을 요청하는 단계;
상기 가든 컨테이너가 상기 액션으로 요청된 절차에 따라 상기 클라우드 컨트롤러에서 드랍릿을 다운받은 후 어플리케이션을 실행하는 단계를 포함하는 클라우드 기반 플랫폼의 어플리케이션 서비스 제공 방법.
11. The method of claim 10,
The distribution execution step is
requesting, by the cloud controller, to execute a staging application to the CC bridge;
generating, by the CC bridge, a target LRP for application execution and requesting the receptor;
changing the status of the requested LRP by the receptor and making a request to the BBS;
storing the LRP information in the distributed key value storage by the BBS and requesting the auction house module;
selecting, by the auctioneer module, the optimal cell for performing the task by requesting and receiving the information on the running cell from the BBS, requesting an available resource for each cell, and performing an auction on the task based on the request;
requesting, by the auctioneer module, LRP processing to an intermediary unit corresponding to a cell that has been transformed through an auction;
changing the BBS information for the requested LRP to a claim state by the intermediary unit, converting the LRP into an action and requesting the executor;
requesting, by the executor, to create a garden container according to a specified action request;
The method of providing an application service of a cloud-based platform comprising the step of the garden container downloading a droplet from the cloud controller according to the procedure requested as the action and then executing the application.
KR1020200032600A 2020-03-17 2020-03-17 Cloud-based platform building system and application service providing method KR20210116005A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020200032600A KR20210116005A (en) 2020-03-17 2020-03-17 Cloud-based platform building system and application service providing method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200032600A KR20210116005A (en) 2020-03-17 2020-03-17 Cloud-based platform building system and application service providing method

Publications (1)

Publication Number Publication Date
KR20210116005A true KR20210116005A (en) 2021-09-27

Family

ID=77926034

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200032600A KR20210116005A (en) 2020-03-17 2020-03-17 Cloud-based platform building system and application service providing method

Country Status (1)

Country Link
KR (1) KR20210116005A (en)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114024951A (en) * 2021-09-30 2022-02-08 威胜信息技术股份有限公司 Power edge heterogeneous deployment method based on cloud edge collaboration
KR102434721B1 (en) * 2022-03-31 2022-08-22 주식회사 레빗 Open source-based cloud service provision system
CN114938371A (en) * 2022-05-11 2022-08-23 浪潮云信息技术股份公司 Cloud edge cooperative data exchange service implementation method and system based on cloud originality
KR102438067B1 (en) * 2021-10-27 2022-08-31 주식회사 클라우드로 System that support automation and visualization service methods for cloud infrastructure deployment
CN115499310A (en) * 2022-08-26 2022-12-20 浪潮软件科技有限公司 Business application cloud method and system based on cloud computing platform container service
CN117319399A (en) * 2023-11-30 2023-12-29 苏州元脑智能科技有限公司 Cloud platform creation method, device, system, equipment and medium in cloud management platform
CN117608810A (en) * 2024-01-18 2024-02-27 腾讯科技(深圳)有限公司 Service processing method, device, electronic equipment and storage medium

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
한국공개특허 제10-2016-0000604호 (2016.01.05. 공개) - PaaS 클라우드 시스템에서의 GPU 가상화 기법을 사용한 개발 툴 배포 방법

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114024951A (en) * 2021-09-30 2022-02-08 威胜信息技术股份有限公司 Power edge heterogeneous deployment method based on cloud edge collaboration
KR102438067B1 (en) * 2021-10-27 2022-08-31 주식회사 클라우드로 System that support automation and visualization service methods for cloud infrastructure deployment
KR102434721B1 (en) * 2022-03-31 2022-08-22 주식회사 레빗 Open source-based cloud service provision system
KR102488665B1 (en) * 2022-03-31 2023-01-13 주식회사 레빗 System for building cloud service platform
CN114938371A (en) * 2022-05-11 2022-08-23 浪潮云信息技术股份公司 Cloud edge cooperative data exchange service implementation method and system based on cloud originality
CN115499310A (en) * 2022-08-26 2022-12-20 浪潮软件科技有限公司 Business application cloud method and system based on cloud computing platform container service
CN117319399A (en) * 2023-11-30 2023-12-29 苏州元脑智能科技有限公司 Cloud platform creation method, device, system, equipment and medium in cloud management platform
CN117319399B (en) * 2023-11-30 2024-02-23 苏州元脑智能科技有限公司 Cloud platform creation method, device, system, equipment and medium in cloud management platform
CN117608810A (en) * 2024-01-18 2024-02-27 腾讯科技(深圳)有限公司 Service processing method, device, electronic equipment and storage medium
CN117608810B (en) * 2024-01-18 2024-04-30 腾讯科技(深圳)有限公司 Service processing method, device, electronic equipment and storage medium

Similar Documents

Publication Publication Date Title
KR20210116005A (en) Cloud-based platform building system and application service providing method
US20210349706A1 (en) Release lifecycle management system for multi-node application
CN110572436B (en) Multi-place cross-cluster server deployment method and system
US8719782B2 (en) Integrated package development and machine configuration management
US9612817B2 (en) System and method for providing a physical plugin for use in a cloud platform environment
US20130326487A1 (en) Emulating cloud functioning of applications locally
US9747091B1 (en) Isolated software installation
US20080282242A1 (en) Simulation management within a grid infrastructure
CN111708550A (en) Application deployment method and device, computer equipment and storage medium
Kozlovszky et al. Enabling generic distributed computing infrastructure compatibility for workflow management systems
Kozmirchuk et al. PostgreSQL service with backup and recovery for cloud foundry
Wang et al. On-demand service hosting on production grid infrastructures
Brebner et al. Deployment of infrastructure and services in the open grid services architecture (OGSA)
US20230401045A1 (en) Bases for pattern-based cloud computing
Berton Ansible for K8s Data Plane
Melesse Vergara et al. Approaching the Final Frontier: Lessons Learned from the Deployment of HPE/Cray EX Spock and Crusher Supercomputers
Christian A study of live migration on OpenStack
Montalbano Definition of a Microservices-based Management and Monitoring System for Oracle Cloud
Sharma et al. Quick Tour of Kubernetes
Jakóbczyk et al. Oracle Container Engine for Kubernetes
Rallabandi LINCHPIN: A YAML Template Based Cross Cloud Resource Provisioning Tool
Seppänen Elastic Build System in a Hybrid Cloud Environment
Doglio et al. Deploying into Production
Diaz et al. Working with Azure Database Services Platform
Comas Gómez Despliegue de un gestor de infraestructura virtual basado en Openstack para NFV

Legal Events

Date Code Title Description
A201 Request for examination