KR20220074367A - Serverless development support platform - Google Patents

Serverless development support platform Download PDF

Info

Publication number
KR20220074367A
KR20220074367A KR1020200162796A KR20200162796A KR20220074367A KR 20220074367 A KR20220074367 A KR 20220074367A KR 1020200162796 A KR1020200162796 A KR 1020200162796A KR 20200162796 A KR20200162796 A KR 20200162796A KR 20220074367 A KR20220074367 A KR 20220074367A
Authority
KR
South Korea
Prior art keywords
function
serverless
support platform
development
event
Prior art date
Application number
KR1020200162796A
Other languages
Korean (ko)
Other versions
KR102553440B1 (en
Inventor
임정선
이정일
장광선
신지강
최승환
Original Assignee
한국전력공사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 한국전력공사 filed Critical 한국전력공사
Priority to KR1020200162796A priority Critical patent/KR102553440B1/en
Publication of KR20220074367A publication Critical patent/KR20220074367A/en
Application granted granted Critical
Publication of KR102553440B1 publication Critical patent/KR102553440B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
    • G06Q10/067Enterprise or organisation modelling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
    • G06Q10/063Operations research, analysis or management
    • G06Q10/0637Strategic management or analysis, e.g. setting a goal or target of an organisation; Planning actions based on goals; Analysis or evaluation of effectiveness of goals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/10Office automation; Time management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
    • G06Q50/06Energy or water supply
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y04INFORMATION OR COMMUNICATION TECHNOLOGIES HAVING AN IMPACT ON OTHER TECHNOLOGY AREAS
    • Y04SSYSTEMS INTEGRATING TECHNOLOGIES RELATED TO POWER NETWORK OPERATION, COMMUNICATION OR INFORMATION TECHNOLOGIES FOR IMPROVING THE ELECTRICAL POWER GENERATION, TRANSMISSION, DISTRIBUTION, MANAGEMENT OR USAGE, i.e. SMART GRIDS
    • Y04S10/00Systems supporting electrical power generation, transmission or distribution
    • Y04S10/50Systems or methods supporting the power network operation or management, involving a certain degree of interaction with the load-side end user applications

Landscapes

  • Business, Economics & Management (AREA)
  • Engineering & Computer Science (AREA)
  • Human Resources & Organizations (AREA)
  • Strategic Management (AREA)
  • Economics (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Marketing (AREA)
  • General Physics & Mathematics (AREA)
  • General Business, Economics & Management (AREA)
  • Tourism & Hospitality (AREA)
  • Educational Administration (AREA)
  • Operations Research (AREA)
  • Quality & Reliability (AREA)
  • Development Economics (AREA)
  • Health & Medical Sciences (AREA)
  • Game Theory and Decision Science (AREA)
  • Public Health (AREA)
  • Water Supply & Treatment (AREA)
  • Primary Health Care (AREA)
  • General Health & Medical Sciences (AREA)
  • Data Mining & Analysis (AREA)
  • Stored Programmes (AREA)

Abstract

본 발명의 서버리스 개발 지원 플랫폼은, 개발자가 함수 기반의 어플리케이션을 위한 함수를 등록할 수 있는 사용자 포털; 상기 개발자가 등록한 함수에 대한 코드들을 저장하는 소스코드 저장소와, 상기 소스코드 저장소에 저장된 코드를 빌드하여 도커 이미지를 생성하는 빌드툴과, 생성된 상기 도커 이미지를 저장하는 이미지 저장소를 구비하는 개발 파이프라인; 및 함수 실행 환경에서 도커 이미지를 컨테이너(POD) 단위로 실행시키는 함수 실행부를 포함할 수 있다.The serverless development support platform of the present invention includes: a user portal through which a developer can register a function for a function-based application; A development pipe having a source code repository for storing codes for functions registered by the developer, a build tool for building a code stored in the source code repository to generate a Docker image, and an image repository for storing the generated Docker image line; and a function execution unit that executes the Docker image in container (POD) units in the function execution environment.

Description

서버리스 개발 지원 플랫폼 및 방법{SERVERLESS DEVELOPMENT SUPPORT PLATFORM}Serverless development support platform and method {SERVERLESS DEVELOPMENT SUPPORT PLATFORM}

본 발명은 전력 분야에서 대중적인 개발자의 개발 편의성 및 관련 시스템 운영 효율을 높일 수 있는 서버리스 개발 지원 플랫폼 및 방법에 관한 것이다. The present invention relates to a serverless development support platform and method that can increase development convenience and related system operation efficiency of popular developers in the power field.

전력 분야에서 신재생 발전의 증가 및 개별 관리가 가능한 마이크로그리드의 증가는 전력회사 뿐만 아니라 다양한 사용자가 다양한 목적으로 전력 관련 정보에 대한 수집/검색/처리를 수행하는 상황을 가져왔다. In the electric power field, the increase in renewable power generation and the increase in microgrids that can be individually managed have brought about a situation in which not only electric power companies but also various users collect/search/process power-related information for various purposes.

최근 국가에서 직면하고 있는 전력 수요 증가에 따른 전력 관리 이슈, RPS(Renewable Portfolio Standard) 본격 시행에 따른 신재생 에너지 발전 설비 구축 확대, 에너지저장장치에 대한 정부의 적극적인 법/제도 등의 지원과 투자 정책 등으로 인해 전력/에너지 분야에서 다양한 어플리케이션의 개발을 유도하고 있다.Power management issues due to the increase in electricity demand that the country is facing recently, expansion of construction of new and renewable energy power generation facilities following the full-scale implementation of the Renewable Portfolio Standard (RPS), and support and investment policies of the government for energy storage devices, such as active laws/systems This is leading to the development of various applications in the power/energy field.

한편, 전력/에너지 분야는 사용하는 정보/데이터가 비교적 적은 편이나, 전체 계통의 통일적인 운영을 위해, 사용하는 정보/데이터에 대한 사후 지원으로서 수정 등은 일괄적으로 수행되어야 할 필요가 있다. 또한, 사용하는 정보/데이터가 비교적 적은 편이어도, 불필요하게 빈번한 데이터 수집 등으로 통신 채널을 보유하는 어플리케이션이 존재하는 경우, 전력 계통 관리 시스템 및 다른 어플리케이션들에 대해서도 운영 효율성을 떨어뜨리게 된다. 또한, 전력/에너지 분야는 사용하는 정보/데이터는 대부분 전력 시스템에서 도출된 것이며, 어플리케애션 개발자나 이용자가 생성한 것은 거의 없다.On the other hand, in the power/energy field, relatively little information/data is used, but for the unified operation of the entire system, as a follow-up support for the information/data used, corrections and the like need to be performed collectively. In addition, even if the amount of information/data used is relatively small, if there is an application having a communication channel due to unnecessarily frequent data collection, etc., the operational efficiency of the power system management system and other applications is also reduced. In addition, in the power/energy field, most of the information/data used is derived from the power system, and almost nothing is generated by application developers or users.

그러나, 전력/에너지 분야에서 제3자인 개발자의 어플리케이션 개발을 지원하고, 후속 조치를 지원할 수 있는 개발 플랫폼이 제시되지 않아, 일반적인 어플리케이션 개발 툴을 이용할 수 밖에 없어, 개발 효율을 떨어뜨리고, 전력 시스템 운용은 난립한 어플리케이션으로 인하여 곤란하게 되었다.However, in the power/energy field, there is no development platform that can support application development of third-party developers and support follow-up measures, so there is no choice but to use general application development tools, which reduces development efficiency and power system operation has become difficult due to the sprawl of applications.

대한민국 공개공보 10-2017-0133055호Republic of Korea Publication No. 10-2017-0133055

본 발명은 전력 분야에서 응용 프로그램을 개발하는데 있어 개발자의 개발 편의성을 높이고, 전력 관리 시스템에서 응용 프로그램에 대한 지원 효율을 높일 수 있는 서버리스 개발 지원 플랫폼 및 방법을 제공하고자 한다.An object of the present invention is to provide a serverless development support platform and method that can increase developer convenience in developing application programs in the power field and increase support efficiency for applications in a power management system.

본 발명의 일 측면에 따른 서버리스 개발 지원 플랫폼은, 개발자가 함수 기반의 어플리케이션을 위한 함수를 등록할 수 있는 사용자 포털; 상기 개발자가 등록한 함수에 대한 코드들을 저장하는 소스코드 저장소와, 상기 소스코드 저장소에 저장된 코드를 빌드하여 도커 이미지를 생성하는 빌드툴과, 생성된 상기 도커 이미지를 저장하는 이미지 저장소를 구비하는 개발 파이프라인; 및 함수 실행 환경에서 도커 이미지를 컨테이너(POD) 단위로 실행시키는 함수 실행부를 포함할 수 있다.Serverless development support platform according to an aspect of the present invention, a user portal through which a developer can register a function for a function-based application; A development pipe having a source code repository for storing codes for functions registered by the developer, a build tool for building a code stored in the source code repository to generate a Docker image, and an image repository for storing the generated Docker image line; and a function execution unit that executes the Docker image in container (POD) units in the function execution environment.

여기서, 상기 사용자 포털은, 함수와 실행환경에 대한 정보를 입력하는 코드 에디터; 및 입력된 코드를 함수로서 등록시키는 함수입력/등록기를 포함할 수 있다.Here, the user portal, a code editor for inputting information about the function and the execution environment; and a function input/register for registering the input code as a function.

여기서, 내·외부에서 발생한 함수 관련 이벤트를 처리하기 위한 이벤트 처리 모듈을 더 포함할 수 있다.Here, it may further include an event processing module for processing function-related events that occur internally and externally.

여기서, 상기 이벤트 처리 모듈은, 이벤트가 발생을 감지하는 이벤트 감지부; 발생된 이벤트에 대한 메시지 종류에 따라 트리거를 동작시키는 트리거; 및 동작된 상기 트리거에 따라 함수를 실행하여 해당 이벤트를 처리하는 이벤트 처리부를 포함할 수 있다.Here, the event processing module, an event detection unit for detecting the occurrence of an event; a trigger that operates a trigger according to a message type for an event that has occurred; and an event processing unit for processing a corresponding event by executing a function according to the actuated trigger.

여기서, 상기 이미지 저장소에 저장된 함수의 함수 사용 현황 및 상기 함수에서 이용하는 리소스에 대한 모니터링을 수행하는 운영자 포털을 더 포함할 수 있다.Here, it may further include an operator portal for monitoring the function usage status of the function stored in the image storage and the resource used by the function.

여기서, 상기 함수 실행부는, 트래픽 증가에 따라 서버, 스토리지 등 자원을 자동으로 확장하기 위한 오토 스케일링 기능을 제공할 수 있다.Here, the function execution unit may provide an auto-scaling function for automatically expanding resources such as a server and storage according to an increase in traffic.

본 발명의 다른 측면에 따른 서버리스 개발 지원 방법은, 개발자가 작성한 함수 기반의 어플리케이션을 위한 함수를 입력받는 단계; 개발자가 등록한 함수에 대한 코드들을 저장하는 단계; 저장된 함수에 대한 코드를 빌드하여 도커 이미지를 생성하는 단계; 생성된 상기 도커 이미지를 실행을 위한 이미지 저장소에 저장하는 단계; 및 상기 어플리케이션의 함수 실행 환경에서 도커 이미지를 컨테이너(POD) 단위로 상기 함수를 실행시키는 단계를 포함할 수 있다.Serverless development support method according to another aspect of the present invention, the step of receiving a function for a function-based application written by a developer as input; storing codes for functions registered by the developer; building the code for the stored function to create a Docker image; storing the generated Docker image in an image storage for execution; and executing the function in a container (POD) unit using a Docker image in the function execution environment of the application.

여기서, 함수 실행 환경에서의 상기 함수에 의한 트래픽 증가를 예상하면, 상기 함수의 컨테이너(POD) 수를 증가시키는 단계를 더 포함할 수 있다.Here, if traffic increase by the function is expected in the function execution environment, the method may further include increasing the number of containers (PODs) of the function.

상술한 구성의 본 발명의 사상에 따른 서버리스 개발 지원 플랫폼 및/또는 방법을 실시하면, 전력 분야에서 응용 프로그램을 개발하는데 있어 개발자의 개발 편의성을 높이고, 전력 관리 시스템에서 응용 프로그램에 대한 지원 효율을 높일 수 있는 이점이 있다.When the serverless development support platform and/or method according to the spirit of the present invention of the above configuration is implemented, the developer's development convenience in developing applications in the power field is improved, and the support efficiency for applications in the power management system is improved. There are advantages to be increased.

본 발명의 서버리스 개발 지원 플랫폼 및/또는 방법은, 자동화된 개발파이프라인을 통해 전력 어플리케이션 개발 및 배포에 소요되는 시간을 단축하고, 서비스를 제공하는데 집중할 수 있는 이점이 있다.The serverless development support platform and/or method of the present invention has the advantage of reducing the time required for power application development and distribution through an automated development pipeline, and concentrating on providing services.

본 발명의 서버리스 개발 지원 플랫폼 및/또는 방법은, 파이프라인을 통한 배포 자동화 및 함수 단위 서비스 배포로 인해 빠른 개발 및 배포가 가능하여 서비스 개선 주기를 단축할 수 있고, 개발파이프라인 자동화로 개발/운영 인력을 최소화하여 비용을 절감할 수 있는 이점이 있다.The serverless development support platform and/or method of the present invention can shorten the service improvement cycle by enabling rapid development and distribution due to distribution automation and function unit service distribution through a pipeline, and development/ It has the advantage of reducing costs by minimizing operating personnel.

본 발명의 서버리스 개발 지원 플랫폼 및/또는 방법은, 함수단위 개발 및 배포로 인해 전체적인 서비스 장애를 예방하여 시스템의 장애 발생 횟수와 위험 요소를 감소시켜 서비스를 안정적으로 제공할 수 있는 이점이 있다.The serverless development support platform and/or method of the present invention has the advantage of being able to provide services stably by preventing overall service failure due to functional unit development and distribution, thereby reducing the number of occurrences of system failures and risk factors.

본 발명의 서버리스 개발 지원 플랫폼 및/또는 방법은, 오토 스케일링 아키텍처를 활용하여 전력 어플리케이션 서비스의 유연성을 향상시키고 효율적인 리소스 사용이 가능한 이점이 있다.The serverless development support platform and/or method of the present invention has the advantage of improving the flexibility of the power application service by utilizing the auto-scaling architecture and enabling efficient resource use.

도 1은 컴퓨팅 환경의 변화 추세를 나타낸 개념도.
도 2는 어플리케이션 로직의 변화 추세를 나타낸 개념도.
도 3은 서버리스 컴퓨팅의 개요를 나타낸 개념도.
도 4는 본 발명의 사상에 따른 서버리스 개발 지원 플랫폼의 전체 시스템을 도시한 블록도.
도 5는 본 발명의 사상에 따라 생성된 서비스로서의 함수(FaaS)를 위한 플랫폼의 동작 시퀀스를 도시한 다이어그램.
도 6은 전력 서버리스 서비스 플랫폼의 코드 에디터 예시 화면.
도 7a 내지 7c는 코드 템플릿 등 개발자를 위한 인터페이스 예시 화면들.
도 8은 이벤트 발생과 트리거 처리 과정을 나타낸 다이어그램.
도 9는 오토 스케일링 과정을 나타낸 다이어그램.
도 10은 오토 스케일링 과정 중 POD 복제/제거 개념을 나타낸 도식.
도 11은 본 발명의 사상에 따른 서버리스 개발 지원 플랫폼의 운영자 포털에서 제공하는 모니터링 서비스를 도시한 블록도.
도 12는 본 발명의 사상에 따른 서버리스 개발 지원 방법을 도시한 흐름도.
1 is a conceptual diagram illustrating a change trend of a computing environment.
2 is a conceptual diagram illustrating a change trend of application logic.
3 is a conceptual diagram illustrating an overview of serverless computing.
Figure 4 is a block diagram showing the entire system of the serverless development support platform according to the spirit of the present invention.
Fig. 5 is a diagram illustrating the operational sequence of the platform for a function-as-a-service (FaaS) created according to the teachings of the present invention;
6 is a code editor example screen of the power serverless service platform.
7A to 7C are example interface screens for developers such as code templates.
8 is a diagram illustrating an event generation and trigger processing process.
9 is a diagram illustrating an auto-scaling process.
10 is a schematic diagram illustrating the concept of POD replication/removal during the auto-scaling process.
11 is a block diagram illustrating a monitoring service provided by an operator portal of a serverless development support platform according to the spirit of the present invention.
12 is a flowchart illustrating a serverless development support method according to the spirit of the present invention.

본 발명을 설명함에 있어서 제 1, 제 2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 구성요소들은 용어들에 의해 한정되지 않을 수 있다. 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제 1 구성요소는 제 2 구성요소로 명명될 수 있고, 유사하게 제 2 구성요소도 제 1 구성요소로 명명될 수 있다. In describing the present invention, terms such as first, second, etc. may be used to describe various components, but the components may not be limited by the terms. The terms are only for the purpose of distinguishing one component from another. For example, without departing from the scope of the present invention, a first component may be referred to as a second component, and similarly, a second component may also be referred to as a first component.

어떤 구성요소가 다른 구성요소에 연결되어 있다거나 접속되어 있다고 언급되는 경우는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해될 수 있다.When a component is referred to as being connected or connected to another component, it may be directly connected or connected to the other component, but it can be understood that other components may exist in between. .

본 명세서에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함할 수 있다. The terminology used herein is used only to describe specific embodiments, and is not intended to limit the present invention. The singular expression may include the plural expression unless the context clearly dictates otherwise.

본 명세서에서, 포함하다 또는 구비하다 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것으로서, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해될 수 있다. In this specification, the terms include or include are intended to designate that a feature, number, step, operation, component, part, or combination thereof described in the specification exists, and includes one or more other features or numbers, It may be understood that the existence or addition of steps, operations, components, parts, or combinations thereof is not precluded in advance.

또한, 도면에서의 요소들의 형상 및 크기 등은 보다 명확한 설명을 위해 과장될 수 있다.In addition, shapes and sizes of elements in the drawings may be exaggerated for clearer description.

도 1은 컴퓨팅 환경의 변화 추세를 나타낸 개념도이다.1 is a conceptual diagram illustrating a change trend of a computing environment.

기업의 IT 환경이 On-Premise에서 클라우드 기반으로 변화하면서 확장성 및 효율성이 높아졌다. 도 1과 같이 클라우드 서비스는 인프라를 제공하는 서비스로서의 인프라스트럭처(Infrastructure as a Service, IaaS)와 개발/운영환경까지 가상화한 방식인 서비스로서의 플랫폼(Platform as a Service, PaaS), 어플리케이션을 만들어 고객에게 제공하는 방식인 서비스로서의 소프트웨어(Software as a Service, SaaS)로 진화하였다. 최근에는 어플리케이션을 보다 효율적으로 구축 및 운영이 가능한 서버리스(Serverless) 아키텍처가 출연하면서 많은 서비스들이 서버리스 아키텍처 환경으로 옮겨지는 추세이다. As the corporate IT environment has changed from on-premises to cloud-based, scalability and efficiency have increased. As shown in Figure 1, the cloud service provides infrastructure as a service (IaaS) and a platform as a service (PaaS), which is a virtualized development/operation environment, and application to customers. It has evolved to Software as a Service (SaaS), which is a method of providing. Recently, as a serverless architecture that enables more efficient application construction and operation has appeared, many services are moving to a serverless architecture environment.

서버리스 아키텍처는 서버를 상시 운영하는 서비스로서의 인프라스트럭처, 서비스로서의 플랫폼과 달리 이벤트 기반, 트리거 방식으로 코드가 실행될 때만 호출되어 처리되기 때문에 유휴자원이 발생하지 않는다. 서버리스 아키텍처는 서비스로서의 백엔드(Backend as a Service, BaaS)와 서비스로서의 함수(Function as a Service, FaaS)로 나뉜다. Serverless architecture does not generate idle resources because it is called and processed only when code is executed in an event-based, triggering manner, unlike the infrastructure-as-a-service and platform-as-a-service where the server is always operated. Serverless architecture is divided into Backend as a Service (BaaS) and Function as a Service (FaaS).

도 2는 어플리케이션 로직의 변화 추세를 나타낸 개념도이다.2 is a conceptual diagram illustrating a change trend of application logic.

도 2의 왼쪽과 같이 과거에는 어플리케이션 전체를 하나의 로직으로 구성하는 모노리틱 아키텍처 방식을 사용하였다. 시스템이 커지고 복잡도가 증가하면서 어플리케이션을 작은 어플리케이션의 조합으로 쪼개는 방식인 마이크로서비스 아키텍처 방식이 등장하였다. 또한, 더 작은단위(함수)로 쪼개는 방식인 서비스로서의 함수 등장하면서, 마이크로서비스 아키텍처와 함께 활용되고 있다.As shown on the left of FIG. 2 , in the past, a monolithic architecture method in which the entire application is configured as one logic was used. As the system grew and the complexity increased, the microservice architecture method emerged, which is a method of breaking up an application into a combination of small applications. In addition, functions as a service, a method of breaking down into smaller units (functions), have emerged and are being utilized together with microservice architectures.

먼저, 본 발명에서 전력분야의 어플리케이션 개발 과정에 도입하는 서버리스 컴퓨팅에 대하여 살펴보겠다. First, let's look at serverless computing introduced in the application development process in the power field in the present invention.

도 3은 서버리스 컴퓨팅의 개요를 나타낸 개념도이다.3 is a conceptual diagram illustrating an overview of serverless computing.

서버리스(Serverless)는 ‘Server + Less’의 합성어로, 도 3과 같이 요청이나 특정 이벤트가 있을 때만 클라우드의 서버를 이용하거나 서비스할 어플리케이션을 동작시키는 것이다. 서버가 없다는 것은 상징적인 표현으로 작업을 시행하는 서버는 존재하지만, 클라우드 서비스 공급자에게 서버에 대한 관리를 전가하는 것이다. 따라서 개발자는 서버의 사양·대수, 네트워크 구성 등을 고민하지 않고 실제 구현에 집중할 수 있다.Serverless is a compound word of ‘Server + Less’, and as shown in FIG. 3, only when there is a request or a specific event, a server in the cloud is used or an application to be serviced is operated. The absence of a server is a symbolic expression, and there is a server that executes the work, but the management of the server is transferred to the cloud service provider. Therefore, developers can focus on actual implementation without worrying about server specifications, number, and network configuration.

특정한 작업을 수행하기 위해 컴퓨터, 가상머신에 서버를 설정하는 것이 아닌, 서비스로서의 백엔드 혹은 서비스로서의 함수에 의해 작업을 처리한다. 대표적인 서비스로서의 백엔드로는 Google Firebase, Azure Fabric, Kinvey 등이 있고, 서비스로서의 함수로는 AWS Lambda, Azure Functions, Google Cloud Functions 등이 있다.Instead of setting up a server on a computer or virtual machine to perform a specific task, the task is processed by a backend as a service or a function as a service. Typical backends as services include Google Firebase, Azure Fabric, and Kinvey, and functions as services include AWS Lambda, Azure Functions, and Google Cloud Functions.

서버리스 컴퓨팅에 이용되는 서비스로서의 함수(Function as a Service, FaaS)는, 어플리케이션 개발 사용자가 사용할 기능을 함수 단위로 나누어 구현하고 이를 서비스하는 형태이다. 서버에 함수 업로드, 코드 구성 및 배포, 실행과 같은 일련의 과정을 없애고, 원하는 로직을 함수로 등록만 해놓으면 특정 이벤트(HTTP Request, API 호출, 특정 조건 등)가 발생할 때마다 함수가 실행되는 서비스이다.Function as a Service (FaaS) used in serverless computing is a form of dividing and implementing functions to be used by application development users into function units and providing services. A service that runs a function whenever a specific event (HTTP Request, API call, specific condition, etc.) occurs by eliminating a series of processes such as uploading a function to the server, configuring and distributing the code, and executing it, and registering the desired logic as a function. to be.

서비스로서의 플랫폼의 경우 전체 어플리케이션을 배포하기 때문에 서버가 24시간 돌지만, 서비스로서의 함수는 함수단위로 쪼갠 어플리케이션을 배포하여 특정 이벤트가 발생했을 때 실행되고 작업이 끝나면 종료된다. 사용자는 클라우드 사업자에게 함수가 실행된 시간, 호출된 횟수만큼 비용을 지불하고, 요청량에 따라서 서버는 알아서 확장 및 축소되기 때문에 효율적인 운영이 가능하다. In the case of a platform as a service, since the entire application is distributed, the server runs 24 hours a day, but the function as a service distributes the application divided into function units and executes when a specific event occurs, and ends when the task is finished. Efficient operation is possible because the user pays the cloud provider for the time the function is executed and the number of times it is called, and the server automatically expands and shrinks according to the request amount.

본 발명에서 제안하는 기술은 전력 어플리케이션 개발을 위한 서비스로서의 함수기반 서버리스 서비스를 제공하는 플랫폼이다. The technology proposed in the present invention is a platform that provides a function-based serverless service as a service for power application development.

도 4는 본 발명의 사상에 따른 서버리스 개발 지원 플랫폼의 전체 시스템을 도시한 블록도이다.4 is a block diagram illustrating an entire system of a serverless development support platform according to the spirit of the present invention.

도시한 서버리스 개발 지원 플랫폼은, 본 발명의 사상을 구현하기 위한 구성들로서, 개발자가 함수 기반의 어플리케이션을 위한 함수를 등록할 수 있는 사용자 포털(100); 개발자가 등록한 함수에 대한 코드들을 저장하는 소스코드 저장소(210)와, 소스코드 저장소에 저장된 (함수에 대한) 코드를 빌드하여 도커 이미지를 생성하는 빌드툴(220, 230)과, 생성된 상기 도커 이미지를 저장하는 이미지 저장소(240)를 구비하는 개발 파이프라인(200); 및 함수 실행 환경에서 도커 이미지를 컨테이너(POD) 단위로 실행시키는 함수 실행부(400)를 포함할 수 있다.The illustrated serverless development support platform includes, as components for implementing the spirit of the present invention, a user portal 100 through which a developer can register a function for a function-based application; A source code repository 210 that stores codes for a function registered by a developer, build tools 220 and 230 that build a code (for a function) stored in the source code repository to generate a Docker image, and the generated Docker a development pipeline 200 having an image repository 240 for storing images; and a function execution unit 400 that executes the Docker image in container (POD) units in the function execution environment.

서버리스 개발 지원 플랫폼의 전체 시스템은, 개발자가 함수를 등록하기 위한 사용자 포털(100), 등록된 함수를 저장 및 관리, 빌드하기 위한 개발파이프라인 모듈(200), 내·외부에서 발생한 이벤트를 처리하기 위한 이벤트 처리 모듈(700, 800, 900), 함수를 실행하기 위한 함수 실행 모듈(400, 500), 함수 사용 현황 및 리소스 모니터링을 위한 운영자 포털(600)로 구성된다.The entire system of the serverless development support platform is a user portal 100 for developers to register functions, a development pipeline module 200 for storing, managing, and building registered functions, and processes internal and external events. It consists of an event processing module 700, 800, 900 for executing a function, a function execution module 400 and 500 for executing a function, and an operator portal 600 for monitoring the function usage status and resource.

도시한 이벤트 처리 모듈(700, 800, 900)은, 이벤트 발생을 감지하는 이벤트 감지부(700); 발생된 이벤트에 대한 메시지 종류에 따라 트리거를 동작시키는 트리거(800); 및 동작된 상기 트리거에 따라 해당 이벤트를 처리하는 이벤트 처리부(900)를 포함할 수 있다.The illustrated event processing module 700 , 800 , 900 includes an event detection unit 700 for detecting the occurrence of an event; a trigger 800 for operating a trigger according to a message type for the generated event; and an event processing unit 900 that processes a corresponding event according to the operated trigger.

전력 분야 어플리케이션을 사용될 함수는 사용자 포털(100)에 등록하여 사용이 가능하다. 사용자 포털에서 제공하는 코드 에디터를 통해 함수와 실행환경에 대한 정보를 입력하고 함수를 등록하게 되면 개발 파이프라인(200)으로 전달된다. 개발 파이프라인(200)에서는 등록된 함수를 소스코드저장소(210)에 저장하고, 빌드하여 이미지를 생성하여 이미지 저장소(240)에 저장한다. 함수에 대한 요청이 발생하면 빌드된 이미지를 컨테이너(POD#1 ~#3)에서 실행한다.The function to be used for the power field application can be used by registering it in the user portal 100 . When information on a function and execution environment is input through the code editor provided by the user portal and the function is registered, it is transmitted to the development pipeline 200 . In the development pipeline 200 , the registered function is stored in the source code storage 210 , and an image is generated by building it and stored in the image storage 240 . When a function request occurs, the built image is executed in the container (POD#1 ~#3).

이를 위해, 상기 사용자 포털(100)은, 함수와 실행환경에 대한 정보를 입력하는 코드 에디터(120); 및 입력된 코드를 함수로서 등록시키는 함수입력/등록기(140, 160)를 포함할 수 있다.To this end, the user portal 100 includes a code editor 120 for inputting information on functions and execution environments; and function input/registries 140 and 160 for registering the input code as a function.

다음, 본 발명의 사상에 따른 서버리스 개발 지원 플랫폼을 이용한 개발 과정의 시퀀스를 살펴본다.Next, the sequence of the development process using the serverless development support platform according to the spirit of the present invention will be described.

도 5는 본 발명의 사상에 따라 생성된 서비스로서의 함수(FaaS)를 위한 플랫폼의 동작 시퀀스를 도시한 다이어그램이다. 즉, 본 발명에서 제안하는 플랫폼을 이용하여 어플리케이션을 개발하고, 실행하는 동작 시퀀스를 나타낸다. 5 is a diagram illustrating an operation sequence of a platform for a function-as-a-service (FaaS) created according to the teachings of the present invention. That is, an operation sequence for developing and executing an application using the platform proposed by the present invention is shown.

도시한 다이어그램에서, 사용자 포털(100), 소스코드 저장소(210), CI Tool(230) 및 이미지 저장소(240)를 거쳐 함수를 실행한다.In the diagram shown, the function is executed through the user portal 100 , the source code repository 210 , the CI Tool 230 , and the image repository 240 .

사용자 포털(100)에 대하여 사용자는 함수 기반의 어플리케이션을 구현하기 위해 사용자 포털에서 제공하는 코드 에디터를 통해 함수를 입력하고 등록한다. 사용자가 함수 등록을 시행하면, 사용자 포털(100)은 소스코드 저장소(210)에 해당 함수의 코드정보를 저장한다.With respect to the user portal 100 , a user inputs and registers a function through a code editor provided by the user portal to implement a function-based application. When the user executes function registration, the user portal 100 stores the code information of the function in the source code storage 210 .

빌드 도구로서 CI Tool(230)은 사용자가 함수 등록을 하면 API 요청을 받아 CI/CD 명령어를 실행하고, 소스코드 저장소(210)에 저장된 코드를 빌드하여 도커 이미지를 생성한다.As a build tool, when a user registers a function, the CI Tool 230 receives an API request, executes a CI/CD command, and builds the code stored in the source code storage 210 to generate a Docker image.

생성된 도커 이미지를 이미지 저장소(240) 내 도커 레지스트리에 저장되고, 함수 실행환경(400)은 어플리케이션 실행을 위해 이미지 실행을 요청한다.The generated Docker image is stored in the Docker registry in the image storage 240 , and the function execution environment 400 requests image execution to execute the application.

함수 실행환경(400)에서 도커 이미지를 POD(컨테이너) 단위로 실행시키고, 서비스를 제어한다. 내·외부에서 해당 함수에 대한 실행 요청이 있는 경우 함수 실행환경(400)에서 POD(컨테이너) 단위로 실행한다.In the function execution environment 400, the Docker image is executed in POD (container) units, and the service is controlled. When there is an execution request for the function from the inside or the outside, the function execution environment 400 executes the POD (container) unit.

도 6은 전력 서버리스 서비스 플랫폼의 코드 에디터 예시 화면이다.6 is a code editor example screen of the power serverless service platform.

도시한 코드 에디터 및 코드 템플릿은 파이썬과 같은 개발 언어의 구문 강조 표시 및 실시간 구문 검사 기능을 제공할 수 있다.The illustrated code editor and code template can provide syntax highlighting and real-time syntax checking of a development language such as Python.

도 7a 내지 7c는 코드 템플릿 등 개발자를 위한 인터페이스 예시 화면들이다.7A to 7C are example interface screens for developers such as code templates.

도 7a는 전력 서버리스 서비스 플랫폼의 코드 템플릿 예시 화면이고, 7b는 사용자 포털의 대시보드 예시 화면이고, 7c는 사용자 포털의 함수관리 예시 화면이다. 휴먼 에러를 방지하기 위해 사용자의 코드 입력을 최소화하는 코드 템플릿을 제공할 수 있으며, 비개발자도 쉽게 서비스를 개발하고, 적용할 수 있도록 이벤트 처리, 코드 등을 패키지화하여 템플릿을 제공할 수 있다..Figure 7a is a code template example screen of the power serverless service platform, 7b is a dashboard example screen of the user portal, 7c is a function management example screen of the user portal. In order to prevent human error, a code template that minimizes the user's code input can be provided, and event processing and code can be packaged so that non-developers can easily develop and apply the service.

도 8은 이벤트 발생과 트리거 처리 과정을 나타낸 다이어그램이다.8 is a diagram illustrating an event generation and trigger processing process.

이벤트가 발생하면 메시지 종류에 따라 트리거(810 ~ 840)가 작동한다. 트리거는 이벤트 속성을 기반으로 이벤트를 필터링한다. 예컨대, 트리거의 종류로는 HTTP 트리거(810), 스케쥴러 트리거(820), 데이터베이스 트리거(830), 스토리지 트리거(840) 등이 있다. 이벤트 종류가 추가될 경우 트리거도 추가하여 이벤트 메시지 필터링이 가능하도록 한다. When an event occurs, triggers (810 to 840) are activated according to the message type. Triggers filter events based on event attributes. For example, the types of triggers include an HTTP trigger 810 , a scheduler trigger 820 , a database trigger 830 , and a storage trigger 840 . When an event type is added, a trigger is also added to enable event message filtering.

이렇게 분류된 이벤트 데이터는 비동기 메시지 처리를 위한 이벤트 처리 모듈(900)로 전달된다. 이벤트 처리 모듈(900)은 이벤트 속성에 따라 이벤트 소스(910 ~ 940)에 등록 및 채널에 저장한다. 로드밸런서(990)에서 채널에 저장된 내용을 확인하고, 트래픽 상황에 따라 함수를 실행하는 서비스 콜을 발생시킨다. The event data classified in this way is transmitted to the event processing module 900 for asynchronous message processing. The event processing module 900 registers with the event sources 910 to 940 according to the event attribute and stores it in the channel. The load balancer 990 checks the contents stored in the channel, and generates a service call that executes a function according to the traffic condition.

다음, 함수로 인한 트래픽 증가를 방지하기 위한 오토 스케일링에 대하여 기술한다.Next, auto-scaling to prevent traffic increase due to a function will be described.

구현에 따라, 본 발명의 서버리스 개발 지원 플랫폼의 함수 실행환경(400)은, 트래픽 증가에 따라 서버, 스토리지 등 자원을 자동으로 확장하기 위한 오토 스케일링 기능을 제공할 수 있다. 트래픽이 증가하면 POD의 수를 증가시켜 지연 및 장애 없이 서비스를 제공할 수 있다. Depending on implementation, the function execution environment 400 of the serverless development support platform of the present invention may provide an auto-scaling function for automatically expanding resources such as servers and storage according to an increase in traffic. As traffic increases, the number of PODs can be increased to provide services without delay and failure.

도 9는 오토 스케일링 과정을 나타낸 다이어그램이다.9 is a diagram illustrating an auto-scaling process.

도 10은 오토 스케일링 과정 중 POD 복제/제거 개념을 나타낸 도식이다.10 is a schematic diagram illustrating the concept of POD duplication/removal during the auto-scaling process.

서비스가 활성화되지 않았을 경우 라우트(1700)에서 액티베이터(1600)에게 활성화 요청을 한다. 서비스가 활성화되면 POD(1300, 1400)에서 함수를 실행한다. 메트릭을 기반으로 POD 리소스의 사용량을 모니터링하고, 그 결과를 오토 스케일러(1800)에게 전달하여 POD를 리사이즈(스케일 업, 스케일 다운)하여 레플리카 셋(1200)에 배포한다.When the service is not activated, the route 1700 requests activation from the activator 1600 . When the service is activated, the function is executed in the PODs (1300, 1400). POD resource usage is monitored based on the metric, and the result is delivered to the auto scaler 1800 to resize (scale up, scale down) the POD and distribute it to the replica set 1200 .

이때, 레플리카 셋(1200)이 POD를 복제/제거하여 오토스케일링 하는 방법은 도 10과 같다. 레플리카 셋(1200)은 실행되는 POD 개수에 대한 가용성을 보장하여 지정된 POD 수만큼 실행될 수 있도록 관리한다. 레플리카 셋(1200)은 리소스 모니터링 결과 메트릭을 기준으로 POD를 복제하거나 제거하여 리사이징한다.At this time, the replica set 1200 auto-scaling by duplicating/removing the POD is shown in FIG. 10 . The replica set 1200 guarantees availability of the number of PODs to be executed and manages the number of PODs to be executed as many as the specified number of PODs. The replica set 1200 resizes the POD by duplicating or removing it based on the resource monitoring result metric.

본 발명의 사상에 따른 서버리스 개발 지원 플랫폼은, 전력 분야에서 사용되기 위해, 지원하는 함수의 입력 데이터로서, 전력 계통에서의 검침 데이터, 측정 데이터, 분산 발전 데이터, 환경 데이터(날씨, 부하/사용량)이 적용될 수 있으며, 이벤트로서, 단순한 어플리케이션 사용자의 지시/주문/조회, 갑작스러운 전력 수요, 전력 판매/매수 주문, 날씨의 급변, 배전 계통의 사고, 발전 설비의 사고, 마이크로그리드 변경, 계약 변경 등이 있을 수 있다. 또한, 상술한 스케일링에서 조정되는 구체적인 파라미터로서, 예컨대, 입력 데이터 획득 간격 조정, 통신 자원 할당량 조정이 반영될 수 있다.The serverless development support platform according to the spirit of the present invention is used in the power field, as input data of a supported function, meter reading data, measurement data, distributed power generation data, and environmental data (weather, load/usage) in the power system. ) can be applied, and as events, simple application user's instruction/order/inquiry, sudden power demand, power sale/purchase order, sudden change in weather, distribution system accident, power generation facility accident, microgrid change, contract change etc. may exist. In addition, as specific parameters adjusted in the above-described scaling, for example, input data acquisition interval adjustment and communication resource allocation adjustment may be reflected.

이에 따라, 전력 분야에서의 어플리케이션의 트랜잭션과 부하가 증가할 경우 자동으로 서비스를 확장하여 효율적인 서비스 제공이 가능하다. 또한, 이벤트 발생시 리소스를 자동으로 할당하고, 서비스가 종료되면 리소스를 회수하기 때문에 효율적인 리소스 사용이 가능하며 리소스 부족 현상을 감소시킬 수 있다.Accordingly, when the transaction and load of the application in the power field increase, it is possible to automatically expand the service to provide an efficient service. In addition, since resources are automatically allocated when an event occurs, and resources are recovered when the service is terminated, efficient resource use is possible and resource shortages can be reduced.

다음, 본 발명의 사상에 따라 개발된 어플리케이션의 이벤트 기반 (Event-Driven) 서비스에 대하여 기술한다.Next, an event-driven service of an application developed according to the spirit of the present invention will be described.

본 발명의 사상에 따른 플랫폼은 이벤트 기반의 서비스로, 이벤트가 발생하였을 경우에만 리소스를 할당하고 사용할 수 있다. 입력되는 이벤트에 따라 처리되는 다양한 동작을 제공하며 하기 표 2(이벤트 기반 서비스를 나타냄)와 같이 대화형 서비스를 포함한 다양한 서비스에 활용이 가능하다.The platform according to the present invention is an event-based service, and can allocate and use resources only when an event occurs. It provides various actions processed according to input events and can be used for various services including interactive services as shown in Table 2 below (representing event-based services).

Figure pat00001
Figure pat00001

도 11은 본 발명의 사상에 따른 서버리스 개발 지원 플랫폼의 운영자 포털(600)에서 제공하는 모니터링 서비스를 도시한다. 상기 운영자 포털(600)은 상기 이미지 저장소(240)에 저장된 함수의 함수 사용 현황 및 상기 함수에서 이용하는 리소스에 대한 모니터링을 수행할 수 있다. 11 illustrates a monitoring service provided by the operator portal 600 of the serverless development support platform according to the spirit of the present invention. The operator portal 600 may monitor the function usage status of the function stored in the image storage 240 and the resources used by the function.

이벤트가 발생하여 해당 함수가 실행되면 모니터링을 위해 서비스 메쉬 플래폼은 트래픽 정보를 수집한다. 전력 서버리스 플랫폼 모니터링을 위한 대시보드에서 Rest API를 이용하여 모니터링 대상에 정보를 가져온다. 함수 모니터링 대상으로는 하기 표 2(모니터링 기능 및 대상을 나타냄)와 같이 함수별 로그, 함수 호출 건수, Web Request 성공률 등이 있다. When an event occurs and the corresponding function is executed, the service mesh platform collects traffic information for monitoring. In the dashboard for monitoring the power serverless platform, information is brought to the monitoring target using the Rest API. Function monitoring targets include log by function, number of function calls, and Web Request success rate as shown in Table 2 below (indicating monitoring functions and targets).

수집된 데이터를 이용하여 운영자 포털(600)에서 모니터링을 위한 대시보드를 제공한다. 대시보드에는 함수 등록 현황, 트리거 등록 현황, 함수 사용 현황 등을 시각화 도구를 이용하여 제공한다.A dashboard for monitoring is provided in the operator portal 600 using the collected data. The dashboard provides function registration status, trigger registration status, function usage status, etc. using visualization tools.

도 12는 본 발명의 사상에 따른 서버리스 개발 지원 방법을 도시한 흐름도이다.12 is a flowchart illustrating a serverless development support method according to the spirit of the present invention.

도시한 서버리스 개발 지원 방법은, 개발자가 작성한 함수 기반의 어플리케이션을 위한 함수를 입력받는 단계(S120); 개발자가 등록한 함수에 대한 코드들을 저장하는 단계(S140); 저장된 함수에 대한 코드를 빌드하여 도커 이미지를 생성하는 단계(S160); 생성된 상기 도커 이미지를 실행을 위한 이미지 저장소에 저장하는 단계(S180); 및 상기 어플리케이션의 함수 실행 환경에서 도커 이미지를 컨테이너(POD) 단위로 상기 함수를 실행시키는 단계(S200)를 포함할 수 있다.The illustrated serverless development support method includes: receiving a function for a function-based application written by a developer (S120); Storing codes for functions registered by the developer (S140); Building a code for the stored function to generate a Docker image (S160); storing the generated Docker image in an image storage for execution (S180); and executing the function in a container (POD) unit of a Docker image in the function execution environment of the application ( S200 ).

여기서, 상기 함수를 실행시키는 단계 이전 및/또는 이후에, 함수 실행 환경에서의 상기 함수에 의한 트래픽 증가를 예상하면, 오토스케일링에 따라 상기 함수의 컨테이너(POD) 수를 증가시키는 단계를 더 포함할 수 있다.Here, before and/or after executing the function, if traffic increase by the function in the function execution environment is expected, increasing the number of containers (PODs) of the function according to autoscaling may be further included. can

도 12에 도시한 흐름도는 앞서 설명한 본 발명의 사상에 따른 서버리스 개발 지원 플랫폼에서 수행되는 서버리스 개발 지원 방법을 순차적 흐름으로 나타낸 것으로, 중복되는 상세 설명은 생략한다.The flowchart shown in FIG. 12 shows the serverless development support method performed in the serverless development support platform according to the spirit of the present invention described above in a sequential flow, and overlapping detailed descriptions will be omitted.

이상의 설명은 본 발명의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 다양한 수정 및 변형이 가능할 것이다. 따라서, 본 발명에 개시된 실시예들은 본 발명의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예에 의하여 본 발명의 기술 사상의 범위가 한정되는 것은 아니다. 본 발명의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 발명의 권리범위에 포함되는 것으로 해석되어야 할 것이다.The above description is merely illustrative of the technical spirit of the present invention, and various modifications and variations will be possible without departing from the essential characteristics of the present invention by those skilled in the art to which the present invention pertains. Accordingly, the embodiments disclosed in the present invention are not intended to limit the technical spirit of the present invention, but to explain, and the scope of the technical spirit of the present invention is not limited by these embodiments. The protection scope of the present invention should be construed by the following claims, and all technical ideas within the scope equivalent thereto should be construed as being included in the scope of the present invention.

100 : 사용자 포털 200 : 개발 파이프라인
210 : 소스코드 저장소 220, 230 : 빌드툴
240 : 이미지 저장소 400 : 함수 실행부
600 : 운영자 포털 700 : 이벤트 감지부
800 : 트리거 900 : 이벤트 처리부
100: user portal 200: development pipeline
210: source code repository 220, 230: build tool
240: image storage 400: function execution unit
600: operator portal 700: event detection unit
800: trigger 900: event processing unit

Claims (8)

개발자가 함수 기반의 어플리케이션을 위한 함수를 등록할 수 있는 사용자 포털;
상기 개발자가 등록한 함수에 대한 코드들을 저장하는 소스코드 저장소와,
상기 소스코드 저장소에 저장된 코드를 빌드하여 도커 이미지를 생성하는 빌드툴과,
생성된 상기 도커 이미지를 저장하는 이미지 저장소
를 구비하는 개발 파이프라인; 및
함수 실행 환경에서 도커 이미지를 컨테이너(POD) 단위로 실행시키는 함수 실행부
를 포함하는 서버리스 개발 지원 플랫폼.
a user portal where developers can register functions for function-based applications;
a source code storage for storing codes for functions registered by the developer;
A build tool that builds the code stored in the source code repository to create a Docker image;
Image storage to store the generated docker image
A development pipeline comprising; and
The function execution unit that executes the Docker image in container (POD) units in the function execution environment.
A serverless development support platform that includes
제1항에 있어서,
상기 사용자 포털은,
함수와 실행환경에 대한 정보를 입력하는 코드 에디터; 및
입력된 코드를 함수로서 등록시키는 함수입력/등록기
를 포함하는 서버리스 개발 지원 플랫폼.
According to claim 1,
The user portal is
Code editor to input information about functions and execution environment; and
Function input/register to register the input code as a function
A serverless development support platform that includes
제1항에 있어서,
내·외부에서 발생한 함수 관련 이벤트를 처리하기 위한 이벤트 처리 모듈
을 더 포함하는 서버리스 개발 지원 플랫폼.
According to claim 1,
Event processing module to handle function-related events that occur internally and externally
Serverless development support platform that further includes.
제3항에 있어서,
상기 이벤트 처리 모듈은,
이벤트가 발생을 감지하는 이벤트 감지부;
발생된 이벤트에 대한 메시지 종류에 따라 트리거를 동작시키는 트리거; 및
동작된 상기 트리거에 따라 함수를 실행하여 해당 이벤트를 처리하는 이벤트 처리부
를 포함하는 서버리스 개발 지원 플랫폼.
4. The method of claim 3,
The event processing module,
an event detection unit for detecting the occurrence of an event;
a trigger that operates a trigger according to a message type for an event that has occurred; and
Event processing unit that processes the event by executing a function according to the triggered trigger
A serverless development support platform that includes
제1항에 있어서,
상기 이미지 저장소에 저장된 함수의 함수 사용 현황 및 상기 함수에서 이용하는 리소스에 대한 모니터링을 수행하는 운영자 포털
을 더 포함하는 서버리스 개발 지원 플랫폼.
According to claim 1,
An operator portal that monitors the function usage status of the function stored in the image storage and the resources used by the function
Serverless development support platform that further includes.
제1항에 있어서,
상기 함수 실행부는,
트래픽 증가에 따라 서버, 스토리지 등 자원을 자동으로 확장하기 위한 오토 스케일링 기능을 제공하는 서버리스 개발 지원 플랫폼.
According to claim 1,
The function execution unit,
A serverless development support platform that provides an auto-scaling function to automatically expand resources such as servers and storage according to traffic growth.
개발자가 작성한 함수 기반의 어플리케이션을 위한 함수를 입력받는 단계;
개발자가 등록한 함수에 대한 코드들을 저장하는 단계;
저장된 함수에 대한 코드를 빌드하여 도커 이미지를 생성하는 단계;
생성된 상기 도커 이미지를 실행을 위한 이미지 저장소에 저장하는 단계; 및
상기 어플리케이션의 함수 실행 환경에서 도커 이미지를 컨테이너(POD) 단위로 상기 함수를 실행시키는 단계
를 포함하는 서버리스 개발 지원 방법.
receiving a function input for a function-based application written by a developer;
storing codes for functions registered by the developer;
building the code for the stored function to create a Docker image;
storing the generated Docker image in an image storage for execution; and
executing the function in a container (POD) unit using a Docker image in the function execution environment of the application
How to support serverless development, including.
제7항에 있어서,
함수 실행 환경에서의 상기 함수에 의한 트래픽 증가를 예상하면, 상기 함수의 컨테이너(POD) 수를 증가시키는 단계
를 더 포함하는 서버리스 개발 지원 방법.
8. The method of claim 7,
Increasing the number of containers (PODs) of the function when traffic increase by the function is expected in the function execution environment
Serverless development support method further comprising.
KR1020200162796A 2020-11-27 2020-11-27 Serverless development support platform KR102553440B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020200162796A KR102553440B1 (en) 2020-11-27 2020-11-27 Serverless development support platform

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200162796A KR102553440B1 (en) 2020-11-27 2020-11-27 Serverless development support platform

Publications (2)

Publication Number Publication Date
KR20220074367A true KR20220074367A (en) 2022-06-03
KR102553440B1 KR102553440B1 (en) 2023-07-11

Family

ID=81982949

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200162796A KR102553440B1 (en) 2020-11-27 2020-11-27 Serverless development support platform

Country Status (1)

Country Link
KR (1) KR102553440B1 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102544635B1 (en) * 2023-04-03 2023-06-16 주식회사 도들랩 System for providing component and baas-based website builder services
KR102592152B1 (en) * 2022-09-30 2023-10-20 주식회사 코드잇 Method for, and system for scalable remote code execution
KR102636698B1 (en) * 2023-08-02 2024-02-15 (주)아스트론시큐리티 Vulnerability check method of serverless function and check server

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170133055A (en) 2016-05-25 2017-12-05 주식회사 엘시스 Recording medium storing computer program for energy management system
KR20190016895A (en) * 2017-08-09 2019-02-19 삼성전자주식회사 System for providing Function as a service and operating method for the same
KR20190142837A (en) * 2018-06-19 2019-12-30 한국과학기술원 Method and System for supporting virtualized GPU resource in Serverless computing environment

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170133055A (en) 2016-05-25 2017-12-05 주식회사 엘시스 Recording medium storing computer program for energy management system
KR20190016895A (en) * 2017-08-09 2019-02-19 삼성전자주식회사 System for providing Function as a service and operating method for the same
KR20190142837A (en) * 2018-06-19 2019-12-30 한국과학기술원 Method and System for supporting virtualized GPU resource in Serverless computing environment

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102592152B1 (en) * 2022-09-30 2023-10-20 주식회사 코드잇 Method for, and system for scalable remote code execution
KR102544635B1 (en) * 2023-04-03 2023-06-16 주식회사 도들랩 System for providing component and baas-based website builder services
KR102636698B1 (en) * 2023-08-02 2024-02-15 (주)아스트론시큐리티 Vulnerability check method of serverless function and check server

Also Published As

Publication number Publication date
KR102553440B1 (en) 2023-07-11

Similar Documents

Publication Publication Date Title
KR102553440B1 (en) Serverless development support platform
CN109933522B (en) Test method, test system and storage medium for automatic case
US10656929B2 (en) Autonomously healing microservice-based applications
CN106897206B (en) Service testing method and device
CN107038089B (en) Method and system for supporting high availability of orchestrated services
CN111047190A (en) Diversified business modeling framework system based on interactive learning technology
EP3944082A1 (en) Extending the kubernetes api in-process
CN108243012B (en) Charging application processing system, method and device in OCS (online charging System)
CN111258565B (en) Method, system, server and storage medium for generating applet
US20220129809A1 (en) Systems and methods for distributed business processmanagement
US9760441B2 (en) Restoration of consistent regions within a streaming environment
US20210326184A1 (en) Dynamically allocated cloud worker management system and method therefor
CN110928548A (en) Data processing method and equipment
US10255127B2 (en) Optimized diagnostic data collection driven by a ticketing system
CN113867600A (en) Development method and device for processing streaming data and computer equipment
CN115335821A (en) Offloading statistics collection
US11327788B2 (en) Methods for scheduling multiple batches of concurrent jobs
CN114416849A (en) Data processing method and device, electronic equipment and storage medium
CN110011827A (en) Towards doctor conjuncted multi-user's big data analysis service system and method
KR20170122874A (en) Apparatus for managing log of application based on data distribution service
CN115729679A (en) Task processing method and device, computer readable storage medium and electronic device
CN114090268B (en) Container management method and container management system
CN115617480A (en) Task scheduling method, device and system and storage medium
CN113419829B (en) Job scheduling method, device, scheduling platform and storage medium
CN112115118B (en) Database pressure measurement optimization method and device, storage medium and electronic equipment

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant