KR102498301B1 - Server performing cloud architecture proposal for application development and service/solution implementation method thereof - Google Patents

Server performing cloud architecture proposal for application development and service/solution implementation method thereof Download PDF

Info

Publication number
KR102498301B1
KR102498301B1 KR1020210044819A KR20210044819A KR102498301B1 KR 102498301 B1 KR102498301 B1 KR 102498301B1 KR 1020210044819 A KR1020210044819 A KR 1020210044819A KR 20210044819 A KR20210044819 A KR 20210044819A KR 102498301 B1 KR102498301 B1 KR 102498301B1
Authority
KR
South Korea
Prior art keywords
information
cloud
type
application
machine learning
Prior art date
Application number
KR1020210044819A
Other languages
Korean (ko)
Other versions
KR20220118875A (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 박헌영
Publication of KR20220118875A publication Critical patent/KR20220118875A/en
Application granted granted Critical
Publication of KR102498301B1 publication Critical patent/KR102498301B1/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/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/20Software design
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/38Creation or generation of source code for implementing user interfaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • 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/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/4557Distribution of virtual machine instances; Migration and load balancing
    • 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/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45587Isolation or security of virtual machine instances
    • 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/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45595Network integration; Enabling network access in virtual machine instances

Abstract

어플리케이션 개발을 위한 클라우드 아키텍쳐 제안을 수행하는 서버 및 이의 구현 방법이 도시된다. 본 발명의 다양한 실시예 중 하나에 따르면, 개발자 단말기로부터 어플리케이션의 종류에 대한 정보 및 어플리케이션 동작에 필요한 클라우드 자원에 대한 정보를 수집하는 단계; 머신러닝 또는 룰 기반 알고리즘을 통해, 상기 어플리케이션의 종류에 대한 정보 및 어플리케이션 동작에 필요한 클라우드 자원에 대한 정보를 기초로 하여 어플리케이션 동작을 위한 클라우드 자원의 종류 및 규모를 도출하는 단계; 상기 머신러닝 또는 룰 기반 알고리즘을 통해 도출된 클라우드 자원의 종류 및 규모에 대한 정보를 상기 개발자 단말기로 전송하는 단계; 상기 개발자 단말기로부터 상기 머신러닝 또는 룰 기반 알고리즘을 통해 도출된 클라우드 자원의 종류 및 규모에 대한 수정 정보 또는 선택 정보를 수신하는 단계; 및 상기 머신러닝 또는 룰 기반 알고리즘을 통해 도출된 클라우드 자원의 종류 및 규모에 대한 정보와, 상기 개발자 단말기로부터 수신한 수정 정보 또는 선택 정보에 기초하여 클라우드 아키텍쳐에 대한 추천 정보를 생성하는 단계를 포함하는, 관리 서버의 클라우드 아키텍쳐 제안 수행 방법이 개시될 수 있다.A server performing a cloud architecture proposal for application development and an implementation method thereof are shown. According to one of the various embodiments of the present invention, collecting information on the type of application and cloud resources required for application operation from the developer terminal; Deriving a type and scale of a cloud resource for operating an application based on information on the type of the application and information on cloud resources required for operating the application through machine learning or a rule-based algorithm; Transmitting information about the type and scale of cloud resources derived through the machine learning or rule-based algorithm to the developer terminal; Receiving modification information or selection information about the type and size of cloud resources derived through the machine learning or rule-based algorithm from the developer terminal; And generating recommendation information for a cloud architecture based on information about the type and size of cloud resources derived through the machine learning or rule-based algorithm and modification information or selection information received from the developer terminal. , A method for performing a cloud architecture proposal of a management server may be disclosed.

Description

어플리케이션 개발을 위한 클라우드 아키텍쳐 제안을 수행하는 서버 및 이의 서비스/솔루션 구현 방법{SERVER PERFORMING CLOUD ARCHITECTURE PROPOSAL FOR APPLICATION DEVELOPMENT AND SERVICE/SOLUTION IMPLEMENTATION METHOD THEREOF}Server performing cloud architecture proposal for application development and its service/solution implementation method

본 발명의 다양한 실시예는 어플리케이션 개발을 위한 클라우드 아키텍쳐 제안을 수행하는 기술에 관한 것으로, 개발자가 어플리케이션을 만들기 위해 필요한 적절한 클라우드 자원이 자동으로 할당되도록 하는 기술에 관한 것이다. Various embodiments of the present invention relate to a technology for proposing a cloud architecture for application development, and to a technology for automatically allocating appropriate cloud resources necessary for a developer to create an application.

스마트폰이 거의 모든 사람들에게 보급되기 시작하면서, 어플리케이션을 판매하는 스토어에는 하루에도 수많은 어플리케이션이 등록되고 있으며 개발자들은 새로운 어플리케이션들을 제작하고 있다.As smartphones begin to spread to almost everyone, numerous applications are registered every day in stores that sell applications, and developers are creating new applications.

스마트폰 내에서 자체적으로 동작하는 어플리케이션이 아닌 이상, 어플리케이션의 원활한 동작을 위해서는 어플리케이션과 데이터를 주고받을 서버가 필요하게 되는데 자체적으로 서버를 구현하고 이를 지속적으로 관리하는 것에는 많은 비용과 어려움이 존재하였다.Unless it is an application that operates on its own within a smartphone, a server to exchange data with the application is required for smooth operation of the application. .

따라서, 개발자들은 타 회사들이 제공하는 클라우드 서비스로부터 어플리케이션에 필요한 자원들을 제공받는 방식으로 어플리케이션을 설계하는 경우가 많았다.Therefore, developers often design applications in such a way that resources necessary for applications are provided from cloud services provided by other companies.

다만, 클라우드 서비스를 활용하는 경우 각각의 클라우드 서비스별 사용법이 상이하기 때문에 개발하고자 하는 어플리케이션에 알맞은 클라우드 서비스의 사용법을 익혀야 한다는 어려움이 존재하였으며, 개발하고자 하는 어플리케이션에 적절한 자원량을 할당하는 것 또한 클라우드 사용에 있어서의 어려움 중 하나이다.However, when using cloud services, there was a difficulty in learning how to use cloud services suitable for the application to be developed because the usage of each cloud service was different. is one of the difficulties in

예를 들어, 어플리케이션의 개발자는 해당 어플리케이션의 규모, 목표 성능, 어플리케이션에 적용될 수 있는 각종 기능의 활용 여부, 보안 레벨 등 다양한 선택 사항을 결정하고 그에 알맞게 클라우드 서비스의 활용 정도를 조절하여야 한다.For example, a developer of an application must determine various options such as the scale of the application, target performance, use of various functions applicable to the application, and security level, and adjust the degree of use of cloud services appropriately.

이와 같이, 개발자들이 클라우드 서비스의 자원 관리에 드는 시간과 비용이 막대하게 되면 그에 따라 어플리케이션 개발에 소요되는 시간과 비용이 함께 증가하기 때문에, 클라우드 서비스의 자원 관리를 효율적으로 자동화하는 기술이 필요한 실정이다.In this way, when the time and cost required for resource management of cloud services by developers increases enormously, the time and cost required for application development increases accordingly. Therefore, a technology for efficiently automating resource management of cloud services is required. .

한국공개특허 제10-2016-0136489호Korean Patent Publication No. 10-2016-0136489

본 발명의 다양한 실시예는 어플리케이션에 필요한 클라우드 자원을 효율적으로 제공하는 것을 그 목적으로 한다. An object of various embodiments of the present invention is to efficiently provide cloud resources required for applications.

본 발명이 해결하고자 하는 과제들은 이상에서 언급된 과제로 제한되지 않으며, 언급되지 않은 또 다른 과제들은 아래의 기재로부터 통상의 기술자에게 명확하게 이해될 수 있을 것이다.The problems to be solved by the present invention are not limited to the problems mentioned above, and other problems not mentioned will be clearly understood by those skilled in the art from the description below.

상술한 과제를 해결하기 위한 본 발명의 다양한 실시예 중 하나에 따르면, 개발자 단말기로부터 어플리케이션의 종류에 대한 정보 및 어플리케이션 동작에 필요한 클라우드 자원에 대한 정보를 수집하는 단계; 머신러닝 또는 룰 기반 알고리즘을 통해, 상기 어플리케이션의 종류에 대한 정보 및 어플리케이션 동작에 필요한 클라우드 자원에 대한 정보를 기초로 하여 어플리케이션 동작을 위한 클라우드 자원의 종류 및 규모를 도출하는 단계; 상기 머신러닝 또는 룰 기반 알고리즘을 통해 도출된 클라우드 자원의 종류 및 규모에 대한 정보를 상기 개발자 단말기로 전송하는 단계; 상기 개발자 단말기로부터 상기 머신러닝 또는 룰 기반 알고리즘을 통해 도출된 클라우드 자원의 종류 및 규모에 대한 수정 정보 또는 선택 정보를 수신하는 단계; 및 상기 머신러닝 또는 룰 기반 알고리즘을 통해 도출된 클라우드 자원의 종류 및 규모에 대한 정보와, 상기 개발자 단말기로부터 수신한 수정 정보 또는 선택 정보에 기초하여 클라우드 아키텍쳐에 대한 추천 정보를 생성하는 단계를 포함하는, 관리 서버의 클라우드 아키텍쳐 제안 수행 방법이 개시될 수 있다.According to one of various embodiments of the present invention for solving the above problems, collecting information on the type of application and cloud resources required for application operation from the developer terminal; Deriving a type and scale of a cloud resource for operating an application based on information on the type of the application and information on cloud resources required for operating the application through machine learning or a rule-based algorithm; Transmitting information about the type and scale of cloud resources derived through the machine learning or rule-based algorithm to the developer terminal; Receiving modification information or selection information about the type and size of cloud resources derived through the machine learning or rule-based algorithm from the developer terminal; And generating recommendation information for a cloud architecture based on information about the type and size of cloud resources derived through the machine learning or rule-based algorithm and modification information or selection information received from the developer terminal. , A method for performing a cloud architecture proposal of a management server may be disclosed.

어플리케이션 동작에 필요한 클라우드 자원에 대한 정보는, 어플리케이션 사용자의 규모, 보안 레벨, 필요 기능 또는 확장성에 대한 정보 중 적어도 하나 이상을 포함할 수 있다.Information on cloud resources required for application operation may include at least one of the information on the scale of application users, security level, and necessary functions or scalability.

상기 머신러닝 또는 룰 기반 알고리즘을 통해 도출된 클라우드 자원의 종류 및 규모에 대한 정보는, 클라우드 서비스의 종류, 서버의 개수와 종류, 서버의 네트워크 종류, 보안 설정 또는 추가 기능의 선택 여부에 대한 정보 중 적어도 하나 이상을 포함할 수 있다.Information on the type and size of cloud resources derived through the machine learning or rule-based algorithm is information on the type of cloud service, number and type of servers, network type of server, security setting, or whether additional functions are selected It may contain at least one or more.

상술한 과제를 해결하기 위한 본 발명의 다양한 실시예 중 다른 하나에 따르면, 개발자 단말기로부터 템플릿의 선택 정보를 수신하는 단계; 상기 수신한 템플릿의 선택 정보를 기초로, 선택된 템플릿이 적용된 상태의 클라우드 아키텍쳐에 포함된 클라우드 자원의 종류 및 규모에 대한 정보를 상기 개발자 단말기로 전송하는 단계; 상기 개발자 단말기로부터 상기 템플릿이 적용된 상태의 클라우드 아키텍쳐에 포함된 클라우드 자원의 종류 및 규모에 대한 수정 정보 또는 선택 정보를 수신하는 단계; 및 상기 템플릿이 적용된 상태의 클라우드 아키텍쳐에 포함된 클라우드 자원의 종류 및 규모에 대한 정보와, 상기 개발자 단말기로부터 수신한 수정 정보 또는 선택 정보에 기초하여 클라우드 아키텍쳐에 대한 추천 정보를 생성하는 단계를 포함하는, 관리 서버의 클라우드 아키텍쳐 제안 수행 방법이 개시될 수 있다.According to another one of various embodiments of the present invention for solving the above problems, receiving template selection information from a developer terminal; Transmitting information about the type and scale of cloud resources included in the cloud architecture to which the selected template is applied based on the received selection information of the template to the developer terminal; Receiving modification information or selection information about the type and size of cloud resources included in the cloud architecture to which the template is applied, from the developer terminal; And generating recommendation information for the cloud architecture based on information on the type and scale of cloud resources included in the cloud architecture to which the template is applied, and modification information or selection information received from the developer terminal. , A method for performing a cloud architecture proposal of a management server may be disclosed.

상술한 과제를 해결하기 위한 본 발명의 다양한 실시예 중 다른 하나에 따르면, 개발자 단말기로부터 제1 정보(템플릿의 선택 정보) 또는 제2 정보(어플리케이션의 종류에 대한 정보 및 어플리케이션 동작에 필요한 클라우드 자원에 대한 정보) 중 어느 하나를 수집하는 단계를 포함하고, 상기 개발자 단말기로부터 제1 정보(템플릿의 선택 정보)를 수신한 경우, 상기 수신한 템플릿의 선택 정보를 기초로, 선택된 템플릿이 적용된 상태의 클라우드 아키텍쳐에 포함된 클라우드 자원의 종류 및 규모에 대한 정보를 상기 개발자 단말기로 전송하는 단계; 및 상기 개발자 단말기로부터 상기 템플릿이 적용된 상태의 클라우드 아키텍쳐에 포함된 클라우드 자원의 종류 및 규모에 대한 수정 정보 또는 선택 정보를 수신하는 단계를 더 포함하며, 상기 개발자 단말기로부터 제2 정보(어플리케이션의 종류에 대한 정보 및 어플리케이션 동작에 필요한 클라우드 자원에 대한 정보)를 수신한 경우, 머신러닝 또는 룰 기반 알고리즘을 통해, 상기 어플리케이션의 종류에 대한 정보 및 어플리케이션 동작에 필요한 클라우드 자원에 대한 정보를 기초로 하여 어플리케이션 동작을 위한 클라우드 자원의 종류 및 규모를 도출하는 단계; 상기 머신러닝 또는 룰 기반 알고리즘을 통해 도출된 클라우드 자원의 종류 및 규모에 대한 정보를 상기 개발자 단말기로 전송하는 단계; 및 상기 개발자 단말기로부터 상기 머신러닝 또는 룰 기반 알고리즘을 통해 도출된 클라우드 자원의 종류 및 규모에 대한 수정 정보 또는 선택 정보를 수신하는 단계를 더 포함하며, 상기 개발자 단말기로부터 클라우드 자원의 종류 및 규모에 대한 수정 정보 또는 선택 정보를 수신한 이후, 상기 머신러닝, 룰 기반 알고리즘 또는 템플릿에 의해 도출된 클라우드 자원의 종류 및 규모에 대한 정보와, 상기 개발자 단말기로부터 수신한 수정 정보 또는 선택 정보에 기초하여 클라우드 아키텍쳐에 대한 추천 정보를 생성하는 단계를 포함하는, 관리 서버의 클라우드 아키텍쳐 제안 수행 방법이 개시될 수 있다.According to another one of various embodiments of the present invention for solving the above problems, first information (template selection information) or second information (information on the type of application and cloud resources required for application operation) from the developer terminal information), and when first information (template selection information) is received from the developer terminal, the cloud in a state where the selected template is applied based on the received template selection information Transmitting information about the type and scale of cloud resources included in the architecture to the developer terminal; And receiving, from the developer terminal, modification information or selection information about the type and scale of cloud resources included in the cloud architecture to which the template is applied, and receiving second information (for the type of application) from the developer terminal. and information on cloud resources required for application operation) are received, through machine learning or rule-based algorithms, based on the information on the type of the application and the information on cloud resources necessary for application operation, the application operates Deriving the type and scale of cloud resources for; Transmitting information about the type and scale of cloud resources derived through the machine learning or rule-based algorithm to the developer terminal; And receiving correction information or selection information on the type and size of the cloud resource derived through the machine learning or rule-based algorithm from the developer terminal, and receiving information about the type and size of the cloud resource from the developer terminal After receiving the modification information or selection information, cloud architecture based on information on the type and size of cloud resources derived by the machine learning, rule-based algorithm or template, and the modification information or selection information received from the developer terminal A method of performing a cloud architecture proposal of a management server, including generating recommendation information for, may be disclosed.

상기 관리 서버의 클라우드 아키텍쳐 제안 수행 방법은, 개발자 단말기로부터 수신한 어플리케이션 종류에 대한 정보에 기반하여, 해당 어플리케이션 종류에 해당하는 오픈소스 아키텍쳐가 존재하는지 여부를 판단하는 단계를 더 포함하며, 해당 어플리케이션 종류에 해당하는 오픈소스 아키텍쳐가 존재하는 경우, 존재하는 오픈소스 아키텍쳐를 정규화하여 머신러닝의 학습 데이터로 추가하는 단계를 더 포함하고, 해당 어플리케이션 종류에 해당하는 오픈소스 아키텍쳐가 존재하지 않는 경우, 인터넷에 공개된 비정형화 형태의 자료에 대한 크롤링을 수행하고 크롤링된 데이터를 정규화하여 머신러닝의 학습 데이터로 추가하는 단계를 더 포함하는 것을 특징으로 할 수 있다.The cloud architecture proposal execution method of the management server further includes determining whether an open source architecture corresponding to the corresponding application type exists based on information on the application type received from the developer terminal, and the application type If there is an open source architecture corresponding to, normalizing the existing open source architecture and adding it as machine learning learning data. It may be characterized by further comprising the step of performing crawling on open unstructured data, normalizing the crawled data, and adding it as machine learning learning data.

생성된 클라우드 아키텍쳐에 대한 추천 정보는, 클라우드 아키텍쳐를 구성하는 클라우드의 자원들에 대한 정보 및 개발자의 요구 사항 만족 여부에 대한 정보를 포함하는 GUI(Graphical User Interface)의 형태로 생성되어 상기 개발자 단말기로 전송되는 것을 특징으로 할 수 있다.The recommendation information for the generated cloud architecture is generated in the form of a GUI (Graphical User Interface) including information on cloud resources constituting the cloud architecture and information on whether or not the developer's requirements are satisfied, and is transmitted to the developer terminal. It can be characterized as transmitted.

생성된 클라우드 아키텍쳐에 대한 추천 정보는, 상기 클라우드 아키텍쳐에 대한 추천 정보가 상기 머신러닝을 기초로 생성된 것인지 또는 상기 룰 기반 알고리즘을 통해 생성된 것인지에 대한 정보를 포함하며, 상기 관리 서버의 클라우드 아키텍쳐 제안 수행 방법은, 상기 개발자 단말기로부터 머신러닝 또는 룰 기반 알고리즘 중 하나의 선택 정보를 수신하고 이를 토대로 클라우드 아키텍쳐에 대한 추천 정보를 재생성하는 단계를 더 포함할 수 있다.The generated cloud architecture recommendation information includes information on whether the cloud architecture recommendation information is generated based on the machine learning or the rule-based algorithm, and the cloud architecture proposal of the management server The method may further include receiving selection information of one of machine learning and rule-based algorithms from the developer terminal and regenerating recommendation information for a cloud architecture based on the selection information.

상기 관리 서버의 클라우드 아키텍쳐 제안 수행 방법 상에서, 어플리케이션 동작을 위한 클라우드 자원의 종류 및 규모를 도출하는 단계에서 도출되는 결과값은 JSON 또는 Yaml 형식으로 구성된 중간 산출물이며, 상기 관리 서버의 클라우드 아키텍쳐 제안 수행 방법은, 상기 개발자 단말기로부터 상기 클라우드 아키텍쳐에 대한 추천 정보의 배포 요청을 수신한 후, 상기 중간 산출물을 IaC 형식의 코드 데이터로 변환하는 단계; 및 IaC 실행기를 활용하여 상기 IaC 형식의 코드 데이터를 실행함으로써 클라우드 서버에 클라우드 자원의 배포를 수행하는 단계를 더 포함할 수 있다.In the cloud architecture proposal implementation method of the management server, the result value derived from the step of deriving the type and scale of cloud resources for application operation is an intermediate product configured in JSON or Yaml format, and the cloud architecture proposal implementation method of the management server , after receiving a request for distributing recommendation information for the cloud architecture from the developer terminal, converting the intermediate product into IaC format code data; and distributing cloud resources to a cloud server by executing the code data in the IaC format using an IaC executor.

상술한 과제를 해결하기 위한 본 발명의 다양한 실시예 중 다른 하나에 따르면, 어플리케이션 개발을 위한 클라우드 아키텍쳐 제안을 수행하는 관리 서버에 있어서, 개발자 단말기로부터 어플리케이션의 종류에 대한 정보 및 어플리케이션 동작에 필요한 클라우드 자원에 대한 정보를 수집하는 요구 사항 수집부; 머신러닝 또는 룰 기반 알고리즘을 통해, 상기 어플리케이션의 종류에 대한 정보 및 어플리케이션 동작에 필요한 클라우드 자원에 대한 정보를 기초로 하여 어플리케이션 동작을 위한 클라우드 자원의 종류 및 규모를 도출하는 클라우드 자원 계산부; 상기 머신러닝 또는 룰 기반 알고리즘을 통해 도출된 클라우드 자원의 종류 및 규모에 대한 정보를 상기 개발자 단말기로 전송하는 정보 제공부; 상기 개발자 단말기로부터 상기 머신러닝 또는 룰 기반 알고리즘을 통해 도출된 클라우드 자원의 종류 및 규모에 대한 수정 정보 또는 선택 정보를 수신하는 추가 정보 수집부; 및 상기 머신러닝 또는 룰 기반 알고리즘을 통해 도출된 클라우드 자원의 종류 및 규모에 대한 정보와, 상기 개발자 단말기로부터 수신한 수정 정보 또는 선택 정보에 기초하여 클라우드 아키텍쳐에 대한 추천 정보를 생성하는 추천 정보 생성부를 포함하는, 관리 서버가 개시될 수 있다.According to another one of various embodiments of the present invention for solving the above problems, in a management server that performs a cloud architecture proposal for application development, information on the type of application from a developer terminal and cloud resources required for application operation Requirements collection unit to collect information about; A cloud resource calculation unit for deriving a type and scale of cloud resources for operating an application based on information on the type of the application and information on cloud resources required for operating the application through a machine learning or rule-based algorithm; an information provider for transmitting information about the type and scale of cloud resources derived through the machine learning or rule-based algorithm to the developer terminal; Additional information collection unit for receiving correction information or selection information about the type and scale of cloud resources derived through the machine learning or rule-based algorithm from the developer terminal; And a recommendation information generation unit for generating recommendation information for a cloud architecture based on information about the type and size of cloud resources derived through the machine learning or rule-based algorithm and modification information or selection information received from the developer terminal. Including, the management server may be initiated.

본 발명의 실시예에 따르면, 머신러닝, 룰 기반 알고리즘, 템플릿 등이 활용되어 개발하고자 하는 어플리케이션에 필요한 클라우드 자원의 종류와 규모가 자동으로 계산되고 알맞은 형태의 클라우드 아키텍쳐가 제공될 수 있다.According to an embodiment of the present invention, machine learning, rule-based algorithms, templates, etc. are utilized to automatically calculate the type and size of cloud resources required for an application to be developed, and provide a cloud architecture in an appropriate form.

본 발명의 효과들은 이상에서 언급된 효과로 제한되지 않으며, 언급되지 않은 또 다른 효과들은 아래의 기재로부터 통상의 기술자에게 명확하게 이해될 수 있을 것이다.The effects of the present invention are not limited to the effects mentioned above, and other effects not mentioned will be clearly understood by those skilled in the art from the description below.

도 1은 본 발명의 일 실시예에 따른 관리 서버가 동작하는 전체 환경에 대한 개략도이다.
도 2는 본 발명의 일 실시예에 따른 관리 서버의 구성을 개략적으로 나타낸 블록도이다.
도 3은 본 발명의 일 실시예에 따른 관리 서버가 개발자의 선택에 기초하여 클라우드 자원의 종류 및 규모에 대한 정보를 도출하고 이를 활용하는 과정을 설명하기 위한 흐름도이다.
도 4는 본 발명의 일 실시예에 따른 관리 서버가 머신 러닝을 활용하는 경우 머신 러닝에 필요한 학습 데이터 세트를 구성하는 방법을 설명하기 위한 흐름도이다.
1 is a schematic diagram of an entire environment in which a management server operates according to an embodiment of the present invention.
2 is a block diagram schematically showing the configuration of a management server according to an embodiment of the present invention.
3 is a flowchart illustrating a process in which a management server derives information on the type and scale of a cloud resource based on a developer's selection and uses it, according to an embodiment of the present invention.
4 is a flowchart illustrating a method of configuring a learning data set necessary for machine learning when a management server uses machine learning according to an embodiment of the present invention.

본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 명세서에서 사용되는 "포함한다(comprises)" 및/또는 "포함하는(comprising)"은 언급된 구성요소 외에 하나 이상의 다른 구성요소의 존재 또는 추가를 배제하지 않는다. 명세서 전체에 걸쳐 동일한 도면 부호는 동일한 구성 요소를 지칭하며, "및/또는"은 언급된 구성요소들의 각각 및 하나 이상의 모든 조합을 포함한다. 비록 "제1", "제2" 등이 다양한 구성요소들을 서술하기 위해서 사용되나, 이들 구성요소들은 이들 용어에 의해 제한되지 않음은 물론이다. 이들 용어들은 단지 하나의 구성요소를 다른 구성요소와 구별하기 위하여 사용하는 것이다. 따라서, 이하에서 언급되는 제1 구성요소는 본 발명의 기술적 사상 내에서 제2 구성요소일 수도 있음은 물론이다.Terminology used herein is for describing the embodiments and is not intended to limit the present invention. In this specification, singular forms also include plural forms unless specifically stated otherwise in a phrase. As used herein, "comprises" and/or "comprising" does not exclude the presence or addition of one or more other elements other than the recited elements. Like reference numerals throughout the specification refer to like elements, and “and/or” includes each and every combination of one or more of the recited elements. Although "first", "second", etc. are used to describe various components, these components are not limited by these terms, of course. These terms are only used to distinguish one component from another. Accordingly, it goes without saying that the first element mentioned below may also be the second element within the technical spirit of the present invention.

명세서 전체에서 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있음을 의미한다. 또한, 명세서에 기재된 "...부", "모듈" 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어 또는 소프트웨어로 구현되거나 하드웨어와 소프트웨어의 결합으로 구현될 수 있다.When it is said that a certain part "includes" a certain component throughout the specification, it means that it may further include other components without excluding other components unless otherwise stated. In addition, terms such as "...unit" and "module" described in the specification mean a unit that processes at least one function or operation, which may be implemented as hardware or software or a combination of hardware and software. .

본 명세서 상에서 '개발자'는 본 발명이 제공하는 클라우드 아키텍쳐 추천을 통해 어플리케이션을 개발하고자 하는 주체를 의미할 수 있으며, '사용자'라 함은 개발자가 개발한 어플리케이션을 소비자의 위치에서 활용하는 주체를 의미할 수 있다.In this specification, 'developer' may mean a subject who wants to develop an application through the cloud architecture recommendation provided by the present invention, and 'user' means a subject who utilizes an application developed by a developer at a consumer's location. can do.

본 명세서 상에서는 개발자가 스마트폰 상에서 실행되는 '어플리케이션'을 개발하는 것으로 예시되나, 본 발명의 범위는 이에 한정되지 아니하며 각종 전자 기기에서 동작하는 모든 소프트웨어 및 프로그램이 발명의 범위 내에 포함될 수 있다.In this specification, a developer is illustrated as developing an 'application' that runs on a smartphone, but the scope of the present invention is not limited thereto, and all software and programs operating in various electronic devices may be included within the scope of the present invention.

이하, 첨부된 도면들을 참조하여 본 발명의 다양한 실시예들을 설명하기로 한다.Hereinafter, various embodiments of the present invention will be described with reference to the accompanying drawings.

도 1은 본 발명의 일 실시예에 따른 관리 서버(100)가 동작하는 전체 환경에 대한 개략도이다.1 is a schematic diagram of an entire environment in which a management server 100 operates according to an embodiment of the present invention.

도 1을 참조하면, 관리 서버(100)는 개발자 단말기(200), 클라우드 서버(300) 및 외부 서버(400)와 통신하는 환경 내에서 동작할 수 있다.Referring to FIG. 1 , the management server 100 may operate within an environment communicating with the developer terminal 200 , the cloud server 300 and the external server 400 .

관리 서버(100)는 개발자가 어플리케이션 개발을 수행함에 있어 다양한 업체들이 제공하는 클라우드 관련 자원을 활용하고자 할 때 개발자로부터 개발하고자 하는 어플리케이션에 관련된 정보를 제공받고 해당 어플리케이션이 필요로 하는 클라우드 자원의 종류 및 규모를 도출하고 최종적으로는 클라우드 아키텍쳐에 대한 추천 정보를 개발자에게 제공하는 역할을 수행할 수 있다.The management server 100 receives information related to the application to be developed from the developer when the developer wants to utilize cloud-related resources provided by various companies in performing application development, and the type and type of cloud resource required by the application. It can play a role in deriving scale and ultimately providing recommendation information for cloud architecture to developers.

개발자 단말기(200)는 개발자 측에서 관리 서버(100)를 통해 어플리케이션 개발을 위한 클라우드에 대한 아키텍쳐 제안을 받기 위해 활용하는 단말기로, 개발자는 개발자 단말기(200)를 통해 자신이 개발하고자 하는 어플리케이션에 관한 정보를 관리 서버(100)에 전달하고 관리 서버(100)를 통해 클라우드 자원에 대한 정보를 획득할 수 있으며 최종적으로 클라우드 아키텍쳐에 대한 추천 정보를 획득하고 자신이 원하는 클라우드 아키텍쳐를 선택하여 배포받을 수 있다.The developer terminal 200 is a terminal used by the developer to receive an architecture proposal for the cloud for application development through the management server 100. Information can be delivered to the management server 100, information on cloud resources can be obtained through the management server 100, and finally, recommendation information on a cloud architecture can be obtained, and a desired cloud architecture can be selected and distributed. .

개발자 단말기(200)는 개발자에 의해 제어되며, 웹 브라우저 또는 개발자 단말기(200) 상에 설치된 컴퓨터 소프트웨어 또는 어플리케이션 등을 통하여 관리 서버(100)에 접속할 수 있다. 개발자 단말기(200)는 관리 서버(100), 클라우드 서버(300) 및 외부 서버(400)와 각종 데이터를 주고받을 수 있으며, 이와 같은 데이터를 기초로 하여 개발자 단말기(200)의 화면(디스플레이부)을 통해 표시할 내용을 결정할 수 있다.The developer terminal 200 is controlled by a developer and can access the management server 100 through a web browser or computer software or application installed on the developer terminal 200 . The developer terminal 200 can exchange various data with the management server 100, the cloud server 300, and the external server 400, and based on such data, the screen (display unit) of the developer terminal 200 You can decide what to display.

이러한 개발자 단말기(200)는 휴대폰, 스마트폰, PDA(Personal Digital Assistant), PMP(Portable Multimedia Player), 태블릿 PC, 등과 같이 네트워크를 통하여 웹 서버와 연결될 수 있는 모든 종류의 핸드헬드(Handheld) 기반의 무선 통신 장치를 포함할 수 있으며, 개인용 컴퓨터(예를 들어, 데스크탑 컴퓨터, 노트북 컴퓨터 등), 워크스테이션, PDA, 웹 패드 등과 같이 메모리 수단을 구비하고 마이크로 프로세서를 탑재하여 연산 능력을 갖춘 디지털 기기 중 하나일 수도 있다.This developer terminal 200 is based on all kinds of handhelds that can be connected to a web server through a network, such as a mobile phone, a smartphone, a personal digital assistant (PDA), a portable multimedia player (PMP), a tablet PC, and the like. It may include a wireless communication device, and includes a personal computer (eg, a desktop computer, a notebook computer, etc.), a workstation, a PDA, a web pad, etc. It could be one.

클라우드 서버(300)는 어플리케이션 구동에 필요한 각종 클라우드 자원을 제공하는 역할을 수행하는 서버일 수 있다. 클라우드 서버(300)는 다양한 형태로 구성된 클라우드 아키텍쳐를 제공하여 개발자에 의해 개발된 어플리케이션과 연동되도록 할 수 있다.The cloud server 300 may be a server that serves to provide various cloud resources necessary for running applications. The cloud server 300 may provide a cloud architecture configured in various forms so as to interwork with applications developed by developers.

예를 들어, 클라우드 서버(300)는 AWS™, Azure™ 등과 같이 현재 활용되고 있는 상용 서버로 구성될 수 있다.For example, the cloud server 300 may be composed of commercial servers that are currently being utilized, such as AWS™ and Azure™.

외부 서버(400)는 관리 서버(100) 및 클라우드 서버(300)와 별도로 존재하는 서버로, 일 실시예에 따르면 외부 서버(400)는 써드 파티(3rd party)에서 운영하는 서버로 클라우드 서버(300)을 통해 제공될 수 있는 써드 파티 어플리케이션 기능을 구현하는 서버일 수 있다.The external server 400 is a server that exists separately from the management server 100 and the cloud server 300. According to an embodiment, the external server 400 is a server operated by a third party and is a cloud server ( 300) may be a server implementing functions of a third party application that may be provided.

이와 같은 관리 서버(100), 클라우드 서버(300) 및 외부 서버(400)는 적어도 하나의 프로세서를 가지는 제어부, 통신 모듈, 저장부(예: 메모리) 등과 같은 하드웨어 또는 알고리즘 연산을 위한 소프트웨어를 포함하여 구성될 수 있다.The management server 100, the cloud server 300, and the external server 400 include hardware such as a control unit having at least one processor, a communication module, a storage unit (eg, memory), or software for algorithm operation. can be configured.

본 발명의 일 실시예에 따르면, 관리 서버(100), 개발자 단말기(200), 클라우드 서버(300) 및 외부 서버(400)가 통신하기 위해서 사용하는 통신망은 유선 및 무선 등과 같은 그 통신 양태를 가리지 않고 구성될 수 있으며, 예를 들면, 근거리 통신망(LAN: Local Area Network), 도시권 통신망(MAN: Metropolitan Area Network), 광역 통신망(WAN: Wide Area Network) 등 다양한 통신망으로 구현될 수 있다. 바람직하게는, 본 발명의 일 실시예에 따른 통신망은 공지의 월드와이드웹(WWW: World Wide Web) 등일 수도 있다.According to an embodiment of the present invention, the communication network used by the management server 100, the developer terminal 200, the cloud server 300, and the external server 400 to communicate does not cover the communication mode such as wired and wireless. It may be configured without, and may be implemented in various communication networks, such as, for example, a local area network (LAN), a metropolitan area network (MAN), and a wide area network (WAN). Preferably, the communication network according to an embodiment of the present invention may be a well-known World Wide Web (WWW) or the like.

도 2는 본 발명의 일 실시예에 따른 관리 서버(100)의 구성을 개략적으로 나타낸 블록도이다.Figure 2 is a block diagram schematically showing the configuration of the management server 100 according to an embodiment of the present invention.

도 2를 참조하면, 관리 서버(100)는 요구 사항 수집부(110), 클라우드 자원 계산부(120), 템플릿 활용부(130), 정보 제공부(140), 추가 정보 수집부(150), 추천 정보 생성부(160), 통신부(170), 저장부(180) 및 제어부(190)를 포함하여 구성될 수 있다.Referring to FIG. 2, the management server 100 includes a requirements collection unit 110, a cloud resource calculation unit 120, a template utilization unit 130, an information providing unit 140, an additional information collection unit 150, It may include a recommendation information generating unit 160, a communication unit 170, a storage unit 180, and a control unit 190.

요구 사항 수집부(110)는 개발자 단말기(200)로부터 개발하고자 하는 어플리케이션의 종류에 대한 정보 및 어플리케이션 동작에 필요한 클라우드 자원에 대한 정보를 수집할 수 있다.The requirements collection unit 110 may collect information on the type of application to be developed and information on cloud resources required for application operation from the developer terminal 200 .

일 실시예에 따르면, 개발자는 개발자 단말기(200)를 통해 개발하고자 하는 어플리케이션의 종류에 대한 정보, 어플리케이션을 이용하게 될 사용자들의 규모, 어플리케이션의 목표 성능, 어플리케이션 구동에 있어 필요로 하는 각종 기능(예를 들어, 인증 관련 기능, 권한 관리 기능, 데이터베이스 관리 기능)들의 포함 여부, 어플리케이션의 보안 레벨, 어플리케이션 가용성을 위한 이중화 또는 백업의 사용 여부, 어플리케이션의 확장성과 관련된 정보, 클라우드 서버(300)에서 제공하는 각종 기능들(API 게이트웨이 또는 써드 파티 어플리케이션)의 사용 여부와 같은 정보를 입력할 수 있으며, 개발자 단말기(200)는 이와 같은 입력 정보들을 관리 서버(100)로 전송할 수 있다.According to an embodiment, the developer provides information on the type of application to be developed through the developer terminal 200, the scale of users who will use the application, the target performance of the application, and various functions required for driving the application (e.g. For example, whether authentication-related functions, authority management functions, database management functions) are included, the security level of the application, whether to use redundancy or backup for application availability, information related to the scalability of the application, provided by the cloud server 300 Information such as whether various functions (API gateway or third party application) are used can be input, and the developer terminal 200 can transmit such input information to the management server 100.

클라우드 자원 계산부(120)는 머신러닝 또는 룰 기반 알고리즘을 통해, 요구 사항 수집부(110)가 수집한 어플리케이션 종류에 대한 정보 및 어플리케이션 동작에 필요한 클라우드 자원에 대한 정보를 기초로 어플리케이션 동작을 위한 클라우드 자원의 종류 및 규모에 대한 정보를 도출할 수 있다.The cloud resource calculation unit 120 uses a machine learning or rule-based algorithm to generate a cloud for application operation based on information about the type of application collected by the requirements collection unit 110 and information about cloud resources required for operation of the application. Information on the type and scale of resources can be derived.

클라우드 자원 계산부(120)는 사용하게 될 클라우드 서비스의 종류, 클라우드 서버(300)가 어플리케이션을 위해 제공할 서버의 개수와 종류, 각 서버의 네트워크 종류, 보안 설정, 서버에 포함될 수 있는 각종 추가 기능들의 선택 여부 등을 결정할 수 있다.The cloud resource calculator 120 determines the type of cloud service to be used, the number and type of servers to be provided by the cloud server 300 for applications, the network type of each server, security settings, and various additional functions that can be included in the server. You can decide whether or not to select them.

클라우드 자원 계산부(120)가 머신러닝 기술을 통해 클라우드 자원의 종류 미 규모에 대한 정보를 도출하는 경우, 머신 러닝 기술은 지도 학습(Supervised Learning) 또는 비지도 학습(Unsupervised Learning)의 형태로 구현될 수 있다.When the cloud resource calculation unit 120 derives information on the type and scale of cloud resources through machine learning technology, the machine learning technology may be implemented in the form of supervised learning or unsupervised learning. can

클라우드 자원 계산부(120)가 룰 기반 알고리즘을 통해 클라우드 자원의 종류 및 규모에 대한 정보를 도출하는 경우, 개발자가 입력한 각종 요구 사항을 기초로 하여 정형화된 룰을 기반으로 관리 서버(100)에 저장되어 있는 복수의 클라우드 아키텍쳐 중 하나를 선택할 수 있다.When the cloud resource calculator 120 derives information on the type and size of cloud resources through a rule-based algorithm, the management server 100 calculates information based on standardized rules based on various requirements input by developers. You can select one of a plurality of stored cloud architectures.

클라우드 자원 계산부(120)는 룰 기반 알고리즘을 적용하기 위하여 어플리케이션의 종류, 보안 레벨 등의 데이터를 인덱스화하여 저장할 수 있다.The cloud resource calculation unit 120 may index and store data such as the type of application and security level in order to apply the rule-based algorithm.

템플릿 활용부(130)는 개발자 단말기(200)로부터 템플릿의 선택 정보를 수신한 뒤, 수신한 템플릿의 선택 정보를 기초로 선택된 템플릿이 적용된 상태의 클라우드 아키텍쳐에 포함된 클라우드 자원의 종류 및 규모에 대한 정보를 도출할 수 있다.After receiving template selection information from the developer terminal 200, the template utilization unit 130 determines the type and scale of cloud resources included in the cloud architecture in which the selected template is applied based on the received template selection information. information can be derived.

본 발명의 일 실시예에 따르면, 클라우드 자원 계산부(120) 또는 템플릿 활용부에서 도출된, 어플리케이션 동작을 위한 클라우드 자원의 종류 및 규모에 대한 결과값은 JSON 또는 Yaml 형식으로 구성된 중간 산출물의 형태로 구성될 수 있다.According to an embodiment of the present invention, the result value for the type and scale of the cloud resource for application operation, derived from the cloud resource calculation unit 120 or the template utilization unit, is in the form of an intermediate product configured in JSON or Yaml format. can be configured.

이와 같이 JSON 또는 Yaml 형식으로 구성된 중간 산출물은, 추후 관리 서버(100)가 개발자 단말기(200)로부터 클라우드 아키텍쳐에 대한 배포 요청을 수신하면 관리 서버(100)에 의해 IaC(Infrastructure As Code) 형식의 코드 데이터로 변환될 수 있으며, 관리 서버(100)는 IaC를 최종 데이터로 생성한 후, 이와 같은 코드를 클라우드 서버(300) 측에 전달하여 클라우드 아키텍쳐가 배포되도록 할 수 있다. 관리 서버(100)는 Terraform™ 등과 같은 IaC 실행기를 활용하여 IaC 형식의 코드 데이터를 실행하여 클라우드 서버(300)에 클라우드 자원의 배포를 수행할 수 있다.In this way, when the management server 100 receives a deployment request for the cloud architecture from the developer terminal 200, the intermediate product configured in JSON or Yaml format is code in IaC (Infrastructure As Code) format by the management server 100. data, and after the management server 100 generates the IaC as final data, it can deliver the code to the cloud server 300 so that the cloud architecture is distributed. The management server 100 may distribute cloud resources to the cloud server 300 by executing code data in an IaC format by utilizing an IaC executor such as Terraform™.

정보 제공부(140)는 클라우드 자원 계산부(120) 또는 템플릿 활용부(130)에 의해 도출된 클라우드 자원의 종류 및 규모에 대한 정보를 개발자 단말기(200)로 전송하는 역할을 수행할 수 있다.The information providing unit 140 may serve to transmit information about the type and scale of cloud resources derived by the cloud resource calculation unit 120 or the template utilization unit 130 to the developer terminal 200 .

일 실시예에 따르면, 개발자는 어플리케이션에 대한 요구 사항을 입력하여 머신 러닝 또는 룰 기반 알고리즘이 적용되도록 하여 그에 따라 도출된 클라우드 자원에 대한 정보를 수신할 수 있으며, 이와 달리 예제로 제공되는 템플릿 중 하나를 선택하여 해당 템플릿이 적용된 상태의 클라우드 아키텍쳐에 포함된 클라우드 자원의 종류 및 규모에 대한 정보를 수신할 수도 있다.According to one embodiment, a developer may input requirements for an application so that machine learning or rule-based algorithms are applied to receive information on cloud resources derived accordingly. In contrast, one of the templates provided as examples Information on the type and scale of cloud resources included in the cloud architecture in which the corresponding template is applied may be received by selecting .

이와 같이, 본 발명의 실시예들에 따르면, 어플리케이션의 동작에 필요한 클라우드 자원의 종류 및 규모는 머신러닝 기반, 룰 기반 알고리즘 또는 템플릿 선택에 의해 도출될 수 있다.As such, according to embodiments of the present invention, the type and scale of cloud resources required for application operation may be derived by machine learning-based, rule-based algorithms, or template selection.

일 실시예에 따르면, 개발자는 제1 정보(템플릿의 선택 정보) 또는 제2 정보(어플리케이션의 종류에 대한 정보 및 어플리케이션 동작에 필요한 클라우드 자원에 대한 정보) 중 어느 하나를 선택하여 개발자 단말기(200)에 입력할 수 있다. 입력된 제1 정보 또는 제2 정보는 관리 서버(100)에 전달될 수 있으며, 관리 서버(100)는 제1 정보(템플릿의 선택 정보)를 수신한 경우 템플릿의 선택 정보를 기초로 선택된 템플릿이 적용된 상태의 클라우드 아키텍쳐에 포함된 클라우드 자원의 종류 및 규모에 대한 정보를 개발자 단말기로 전송할 수 있다. According to an embodiment, the developer selects any one of the first information (template selection information) or the second information (information on the type of application and information on cloud resources required for application operation) to obtain the developer terminal 200. can be entered in The input first information or second information may be transmitted to the management server 100, and the management server 100, when receiving the first information (template selection information), selects the template based on the template selection information. Information on the type and scale of cloud resources included in the applied cloud architecture may be transmitted to the developer terminal.

이와 달리, 관리 서버(100)가 제2 정보(어플리케이션의 종류에 대한 정보 및 어플리케이션 동작에 필요한 클라우드 자원에 대한 정보)를 수신한 경우 관리 서버(100)는 머신러닝 또는 룰 기반 알고리즘을 통해, 제2 정보를 기초로 하여 어플리케이션 동작을 위한 클라우드 자원의 종류 및 규모를 도출하고 그에 대한 정보를 개발자 단말기(200)로 전송할 수 있다. 이 경우, 머신러닝 기반 기술이 활용될 것인지 룰 기반 알고리즘이 활용될 것인지는 개발자의 선택에 의해 결정될 수도 있다.In contrast, when the management server 100 receives the second information (information on the type of application and information on cloud resources required for application operation), the management server 100 through machine learning or rule-based algorithm, 2 Based on the information, it is possible to derive the type and scale of cloud resources for application operation and transmit the information to the developer terminal 200. In this case, whether a machine learning-based technique or a rule-based algorithm is utilized may be determined by a developer's choice.

추가 정보 수집부(150)는 전술된 정보 제공부(140)가 머신러닝, 룰 기반 알고리즘 또는 템플릿 기반으로 도출된 클라우드 자원의 종류 및 규모에 대한 정보를 개발자 단말기(200)로 전송한 이후, 개발자 단말기(200)로부터 이와 같은 클라우드 자원의 종류 및 규모에 대한 수정 정보 또는 선택 정보를 수신할 수 있다.After the additional information collection unit 150 transmits information on the type and size of cloud resources derived based on machine learning, rule-based algorithms, or templates from the above-described information providing unit 140 to the developer terminal 200, the developer Modification information or selection information about the type and size of cloud resources may be received from the terminal 200 .

개발자는 개발자 단말기(200)를 통해 머신러닝, 룰 기반 알고리즘 또는 템플릿 기반으로 도출된 클라우드 자원의 종류 및 규모에 대한 정보를 수신하고, 이를 확인한 뒤 확인한 정보에 대한 수정 정보 또는 선택 정보를 개발자 단말기(200) 상에 입력하여 관리 서버(100)로 전송할 수 있다. 수정 정보라 함은, 클라우드 자원의 종류 및 규모에 대한 수정 요청 또는 이전에 입력했던 어플리케이션 동작에 필요한 클라우드 자원에 대한 정보에 대한 수정 요청을 포함할 수 있으며, 선택 정보는 머신러닝, 룰 기반 알고리즘 또는 템플릿 기반으로 도출된 클라우드 자원의 종류 및 규모에 대한 정보 중 만족하는 것을 선택하여 배포를 요청하는 것으로 구성될 수 있다.The developer receives information on the type and size of cloud resources derived based on machine learning, rule-based algorithms, or templates through the developer terminal 200, confirms it, and transmits correction information or selection information for the checked information to the developer terminal ( 200) and transmitted to the management server 100. The modification information may include a request for modification of the type and size of cloud resources or a request for modification of previously entered information about cloud resources required for application operation, and the selection information may be machine learning, rule-based algorithm or It may be configured to request distribution by selecting a satisfactory one from among information on the type and scale of cloud resources derived based on the template.

즉, 개발자는 개발자 단말기(200)를 통해 확인한 클라우드 자원의 종류 및 규모에 대한 정보를 수정할 수도 있으며 이와 달리 수정없이 바로 확인한 클라우드 자원의 종류 및 규모에 기초한 클라우드 아키텍쳐에 대한 배포 요청을 수행할 수도 있다.That is, the developer may modify the information on the type and size of the cloud resource checked through the developer terminal 200, and on the other hand, may request distribution of the cloud architecture based on the type and size of the cloud resource immediately checked without modification. .

추천 정보 생성부(160)는 머신러닝, 룰 기반 알고리즘을 통해 도출된 클라우드 자원의 종류 및 규모에 대한 정보를 활용하거나, 개발자에 의해 선택된 템플릿이 적용된 상태의 클라우드 아키텍쳐에 포함된 클라우드 자원의 종류 및 규모에 대한 정보를 활용하고, 추가적으로 추가 정보 수집부(150)가 개발자 단말기(200)로부터 수신한 수정 정보 또는 선택 정보에 기초하여 최종 클라우드 아키텍쳐에 대한 추천 정보를 생성할 수 있다. 즉, 추천 정보 생성부(160)는 개발자가 원하는 클라우드 자원의 종류 및 규모에 알맞은 클라우드 아키텍쳐를 개발자에게 추천할 수 있다.The recommendation information generation unit 160 utilizes information about the type and size of cloud resources derived through machine learning and rule-based algorithms, or uses information about the types and sizes of cloud resources included in the cloud architecture in which the template selected by the developer is applied. The information on the scale may be used, and additional information collection unit 150 may generate recommendation information for a final cloud architecture based on modification information or selection information received from the developer terminal 200 . That is, the recommendation information generating unit 160 may recommend a cloud architecture suitable for the type and scale of a cloud resource desired by the developer to the developer.

이후, 개발자가 추천받은 클라우드 아키텍쳐에 대한 배포를 요청하면, 관리 서버(100)는 해당 클라우드 아키텍쳐를 개발자의 어플리케이션에 적용시킬 수 있다.Then, when the developer requests distribution of the recommended cloud architecture, the management server 100 may apply the corresponding cloud architecture to the developer's application.

본 발명의 일 실시예에 따르면, 추천 정보 생성부(160)가 생성하는 클라우드 아키텍쳐에 대한 추천 정보는, 클라우드 아키텍쳐를 구성하는 클라우드의 자원들에 대한 정보 및 개발자의 요구 사항 만족 여부에 대한 정보를 포함할 수 있다.According to an embodiment of the present invention, the recommendation information on the cloud architecture generated by the recommendation information generation unit 160 includes information on cloud resources constituting the cloud architecture and information on whether the developer's requirements are satisfied. can include

또한, 추천 정보 생성부(160)가 생성하는 클라우드 아키텍쳐에 대한 추천 정보는 GUI(Graphical User Interface)의 형태로 생성되어 개발자 단말기(200)로 전송될 수 있다.In addition, the recommendation information on the cloud architecture generated by the recommendation information generating unit 160 may be generated in the form of a GUI (Graphical User Interface) and transmitted to the developer terminal 200 .

본 발명의 일 실시예에 따르면, 추천 정보 생성부(160)가 생성하는 클라우드 아키텍쳐에 대한 추천 정보에는, 클라우드 아키텍쳐에 대한 추천 정보가 머신러닝을 기초로 생성된 것인지 또는 룰 기반 알고리즘을 통해 생성된 것인지에 대한 정보가 포함될 수 있다. 개발자는 이와 같은 정보를 확인하고 머신러닝을 기초로 클라우드 아키텍쳐에 대한 추천 정보가 생성된 경우에는 룰 기반 알고리즘을 선택하고, 이와 반대로 룰 기반 알고리즘을 기초로 클라우드 아키텍쳐에 대한 추천 정보가 생성된 경우에는 머신러닝을 선택하여 선택 정보를 관리 서버(100)에 전송함으로써, 관리 서버(100) 상에서 클라우드 아키텍쳐에 대한 추천 정보가 재생성되어 개발자 단말기(200)로 전달되도록 할 수 있다.According to an embodiment of the present invention, in the recommendation information on the cloud architecture generated by the recommendation information generation unit 160, whether the recommendation information on the cloud architecture is generated based on machine learning or generated through a rule-based algorithm information may be included. The developer checks this information and selects a rule-based algorithm when recommendation information on cloud architecture is generated based on machine learning, and conversely, when recommendation information on cloud architecture is generated based on rule-based algorithm. By selecting machine learning and transmitting the selection information to the management server 100 , recommendation information on the cloud architecture may be regenerated on the management server 100 and transmitted to the developer terminal 200 .

통신부(170)는 관리 서버(100)가 개발자 단말기(200), 클라우드 서버(300) 및 외부 서버(400) 등과의 통신을 수행할 수 있도록 한다. 통신부(170)가 통신을 수행하기 위해서 사용하는 통신망은 유선 및 무선 등과 같은 그 통신 양태를 가리지 않고 구성될 수 있으며, 예를 들면, 근거리 통신망(LAN: Local Area Network), 도시권 통신망(MAN: Metropolitan Area Network), 광역 통신망(WAN: Wide Area Network) 등 다양한 통신망으로 구현될 수 있다. 근거리 통신망은 전술한 바와 같이 UWB(Ultra Wideband), NFC(Near Field Communication), 초음파, MAT, 비콘 등을 통해 구현될 수 있다.The communication unit 170 enables the management server 100 to communicate with the developer terminal 200, the cloud server 300, and the external server 400. The communication network used by the communication unit 170 to perform communication may be configured regardless of its communication mode, such as wired and wireless, for example, a local area network (LAN) and a metropolitan area network (MAN). It can be implemented in various communication networks such as Area Network) and Wide Area Network (WAN). As described above, the local area network may be implemented through Ultra Wideband (UWB), Near Field Communication (NFC), ultrasound, MAT, beacon, and the like.

저장부(180)는 관리 서버(100)의 각종 구성부 내에서 수집되고, 생성되고, 가공되는 정보들을 저장하는 역할을 수행한다. 즉, 저장부(180)에는 개발자 단말기(200)로부터 수신한 각종 정보, 머신러닝 엔진, 룰 기반 알고리즘, 템플릿 등에 대한 정보, 각종 상용 클라우드 서비스에 대한 정보 등이 저장될 수 있다. 이러한 저장부(180)는 예를 들어, 메모리(memory), 캐시(cash), 버퍼(buffer) 등을 포함할 수 있으며, 소프트웨어, 펌웨어, 하드웨어 또는 이들 중 적어도 둘 이상의 조합으로 구성될 수 있다.The storage unit 180 serves to store information collected, generated, and processed in various components of the management server 100 . That is, the storage unit 180 may store various types of information received from the developer terminal 200, information on machine learning engines, rule-based algorithms, templates, and the like, information on various commercial cloud services, and the like. The storage unit 180 may include, for example, a memory, a cache, a buffer, and the like, and may be composed of software, firmware, hardware, or a combination of at least two or more of these.

제어부(190)는 요구 사항 수집부(110), 클라우드 자원 계산부(120), 템플릿 활용부(130), 정보 제공부(140), 추가 정보 수집부(150), 추천 정보 생성부(160), 통신부(170) 및 저장부(180) 간의 데이터 흐름을 제어하는 기능을 수행할 수 있다. 즉, 제어부(190)는 요구 사항 수집부(110), 클라우드 자원 계산부(120), 템플릿 활용부(130), 정보 제공부(140), 추가 정보 수집부(150), 추천 정보 생성부(160), 통신부(170) 및 저장부(180)에서 각각 고유한 기능을 수행하도록 지원할 수 있다.The control unit 190 includes a requirements collection unit 110, a cloud resource calculation unit 120, a template utilization unit 130, an information providing unit 140, an additional information collection unit 150, a recommendation information generation unit 160 , It may perform a function of controlling data flow between the communication unit 170 and the storage unit 180. That is, the control unit 190 includes a requirements collection unit 110, a cloud resource calculation unit 120, a template utilization unit 130, an information providing unit 140, an additional information collection unit 150, a recommendation information generation unit ( 160), the communication unit 170, and the storage unit 180 may support each to perform a unique function.

도 2에서 요구 사항 수집부(110), 클라우드 자원 계산부(120), 템플릿 활용부(130), 정보 제공부(140), 추가 정보 수집부(150) 및 추천 정보 생성부(160)는 제어부(190)를 기능적으로 분류한 구성이므로 하나의 제어부(190)로서 통합되어 구성될 수도 있다.In FIG. 2, the requirements collection unit 110, the cloud resource calculation unit 120, the template utilization unit 130, the information providing unit 140, the additional information collection unit 150, and the recommendation information generation unit 160 are the control unit. 190 is functionally classified, so it may be integrated and configured as one control unit 190.

도 3은 본 발명의 일 실시예에 따른 관리 서버(100)가 개발자의 선택에 기초하여 클라우드 자원의 종류 및 규모에 대한 정보를 도출하고 이를 활용하는 과정을 설명하기 위한 흐름도이다.3 is a flowchart illustrating a process in which the management server 100 derives information on the type and scale of a cloud resource based on a developer's selection and uses it, according to an embodiment of the present invention.

도 3을 참조하면, 개발자가 개발자 단말기(200)를 활용하여 자신이 원하는 요구 사항을 입력하는 단계를 시작한 이후(S310), 개발자는 템플릿을 선택할 수도 있고, 템플릿을 선택하지 않고 머신 러닝을 통해 클라우드 자원의 종류 및 규모가 도출되도록 할 수도 있다(S320).Referring to FIG. 3, after the developer starts the step of inputting the desired requirements by using the developer terminal 200 (S310), the developer may select a template, or, without selecting a template, through machine learning, the cloud The type and scale of the resource may be derived (S320).

개발자가 템플릿을 선택하지 않은 경우, 개발자는 어플리케이션의 종류에 대한 정보 및 어플리케이션 동작에 필요한 클라우드 자원에 대한 정보를 입력할 수 있으며(S330), 관리 서버(100)는 개발자가 개발자 단말기(200)를 통해 입력한 정보를 수신하고 머신 러닝을 활용하여(S340) 어플리케이션 동작에 필요한 클라우드 자원의 종류 및 규모를 도출할 수 있다. 다른 실시예에 따르면, 관리 서버(100)는 머신 러닝이 아닌 미리 정해진 룰 기반 알고리즘을 활용하여 어플리케이션 동작에 필요한 클라우드 자원의 종류 및 규모를 도출할 수도 있다.If the developer does not select a template, the developer may input information about the type of application and information about cloud resources required for application operation (S330), and the management server 100 allows the developer to use the developer terminal 200 It is possible to derive the type and size of cloud resources required for application operation by receiving information input through and utilizing machine learning (S340). According to another embodiment, the management server 100 may derive the type and scale of cloud resources required for application operation by utilizing a predetermined rule-based algorithm rather than machine learning.

개발자가 템플릿을 선택하는 경우, 개발자는 제시되는 복수의 예제 템플릿 중 하나를 선택할 수 있으며(S350), 그에 따라 어플리케이션 동작에 필요한 클라우드 자원의 종류 및 규모가 도출될 수 있다.When a developer selects a template, the developer may select one of a plurality of example templates presented (S350), and accordingly, the type and scale of cloud resources required for application operation may be derived.

관리 서버(100)는 어플리케이션 동작에 필요한 클라우드 자원의 종류 및 규모를 도출할 때, 이를 JSON 또는 Yaml 형식으로 구성되는 중간 결과값으로 도출할 수 있다(S360).When the management server 100 derives the type and scale of cloud resources required for application operation, it may derive an intermediate result value configured in JSON or Yaml format (S360).

관리 서버(100)는 도출된 클라우드 자원에 대한 정보를 개발자에게 제공할 수 있으며(S370), 이와 같은 정보의 제공은 특정한 형식의 UI 또는 텍스트를 통해 이루어질 수 있다.The management server 100 may provide information about the derived cloud resources to the developer (S370), and such information may be provided through a UI or text in a specific format.

최종적으로, 개발자가 클라우드 자원의 종류 및 규모를 선택하거나, 특정한 클라우드 아키텍쳐를 선택하여 배포를 진행하고자 하는 경우, 관리 서버(100)는 개발자에 의해 선택된 클라우드 자원의 배포를 수행할 수 있다(S380). 이와 같은 클라우드 자원의 배포는 관리 서버(100)가 클라우드 서버(300)에 클라우드 자원에 대한 정보와 개발자의 어플리케이션에 대한 정보를 제공하면서 요청하면, 클라우드 서버(300)에 의해 수행될 수 있다.Finally, when the developer selects the type and scale of cloud resources or selects a specific cloud architecture to proceed with distribution, the management server 100 may distribute the cloud resources selected by the developer (S380). . Distribution of such cloud resources may be performed by the cloud server 300 when the management server 100 requests the cloud server 300 while providing information on cloud resources and information on developers' applications.

도 4는 본 발명의 일 실시예에 따른 관리 서버(100)가 머신 러닝을 활용하는 경우 머신 러닝에 필요한 학습 데이터 세트를 구성하는 방법을 설명하기 위한 흐름도이다.4 is a flowchart illustrating a method of configuring a learning data set necessary for machine learning when the management server 100 according to an embodiment of the present invention utilizes machine learning.

도 4를 참조하면, 개발자가 개발자 단말기(200)를 활용하여 자신이 원하는 요구 사항을 입력하는 단계를 시작한 이후(S410), 개발자는 특정한 어플리케이션 종류를 선택할 수 있다(S420).Referring to FIG. 4 , after the developer starts the step of inputting the desired requirements using the developer terminal 200 (S410), the developer can select a specific application type (S420).

관리 서버(100)는 개발자가 선택한 어플리케이션 종류에 기반하여, 해당 어플리케이션 종류에 해당하는 오픈소스 아키텍쳐가 존재하는지 여부를 판단하고(S430), 오픈소스 아키텍쳐가 존재하지 않는 경우에는 인터넷에 공개된 비정형화 형태의 자료에 대한 크롤링을 수행하고(S440), 크롤링된 데이터의 정규화를 수행하여(S450), 이를 머신 러닝의 학습 데이터로 추가할 수 있다(S480).Based on the type of application selected by the developer, the management server 100 determines whether an open source architecture corresponding to the type of application exists (S430), and if the open source architecture does not exist, the non-standardized architecture published on the Internet. Crawling is performed on data of the form (S440), normalization of the crawled data is performed (S450), and it can be added as learning data for machine learning (S480).

관리 서버(100)는 개발자가 선택한 어플리케이션 종류에 기반하여, 해당 어플리케이션 종류에 해당하는 오픈소스 아키텍쳐가 존재하는지 여부를 판단하고(S430), 오픈소스 아키텍쳐가 존재하는 경우에는 오픈소스 아키텍쳐를 자동 추출하고(S460), 추출된 데이터를 정규화 하여(S470), 정규화된 데이터를 머신 러닝의 학습 데이터로 추가할 수 있다(S480). Based on the type of application selected by the developer, the management server 100 determines whether an open source architecture corresponding to the type of application exists (S430), and if an open source architecture exists, automatically extracts the open source architecture and (S460), the extracted data may be normalized (S470), and the normalized data may be added as machine learning training data (S480).

이후, 관리 서버(100)에서 동작하는 머신 러닝 엔진은 누적된 학습 데이터를 기초로 하여 학습을 수행할 수 있다(S490).Thereafter, the machine learning engine operating in the management server 100 may perform learning based on the accumulated learning data (S490).

이와 같이, 본 발명의 다양한 실시예들에 따르면, 머신러닝, 룰 기반 알고리즘, 템플릿 등이 활용되어 개발하고자 하는 어플리케이션에 필요한 클라우드 자원의 종류와 규모가 자동으로 계산되고 알맞은 형태의 클라우드 아키텍쳐가 제공될 수 있다.In this way, according to various embodiments of the present invention, machine learning, rule-based algorithms, templates, etc. are utilized to automatically calculate the type and size of cloud resources required for an application to be developed, and provide an appropriate form of cloud architecture. can

본 발명의 실시예와 관련하여 설명된 방법 또는 알고리즘의 단계들은 하드웨어로 직접 구현되거나, 하드웨어에 의해 실행되는 소프트웨어 모듈로 구현되거나, 또는 이들의 결합에 의해 구현될 수 있다. 소프트웨어 모듈은 RAM(Random Access Memory), ROM(Read Only Memory), EPROM(Erasable Programmable ROM), EEPROM(Electrically Erasable Programmable ROM), 플래시 메모리(Flash Memory), 하드 디스크, 착탈형 디스크, CD-ROM, 또는 본 발명이 속하는 기술 분야에서 잘 알려진 임의의 형태의 컴퓨터 판독가능 기록매체에 상주할 수도 있다.Steps of a method or algorithm described in connection with an embodiment of the present invention may be implemented directly in hardware, implemented in a software module executed by hardware, or implemented by a combination thereof. A software module may include random access memory (RAM), read only memory (ROM), erasable programmable ROM (EPROM), electrically erasable programmable ROM (EEPROM), flash memory, hard disk, removable disk, CD-ROM, or It may reside in any form of computer readable recording medium well known in the art to which the present invention pertains.

이상, 첨부된 도면을 참조로 하여 본 발명의 실시예를 설명하였지만, 본 발명이 속하는 기술분야의 통상의 기술자는 본 발명이 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로, 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며, 제한적이 아닌 것으로 이해해야만 한다.Although the embodiments of the present invention have been described with reference to the accompanying drawings, those skilled in the art to which the present invention pertains can be implemented in other specific forms without changing the technical spirit or essential features of the present invention. you will be able to understand Therefore, it should be understood that the embodiments described above are illustrative in all respects and not restrictive.

100: 관리 서버
200: 개발자 단말기
300: 클라우드 서버
400: 외부 서버
100: management server
200: developer terminal
300: cloud server
400: external server

Claims (10)

관리 서버가 어플리케이션 개발을 위한 클라우드 아키텍쳐 제안을 수행하는 방법에 있어서,
개발자 단말기로부터 어플리케이션의 종류에 대한 정보 및 어플리케이션 동작에 필요한 클라우드 자원에 대한 정보를 수집하는 단계;
머신러닝 또는 룰 기반 알고리즘을 통해, 상기 어플리케이션의 종류에 대한 정보 및 어플리케이션 동작에 필요한 클라우드 자원에 대한 정보를 기초로 하여 어플리케이션 동작을 위한 클라우드 자원의 종류 및 규모를 도출하는 단계;
상기 머신러닝 또는 룰 기반 알고리즘을 통해 도출된 클라우드 자원의 종류 및 규모에 대한 정보를 상기 개발자 단말기로 전송하는 단계;
상기 개발자 단말기로부터 상기 머신러닝 또는 룰 기반 알고리즘을 통해 도출된 클라우드 자원의 종류 및 규모에 대한 수정 정보 또는 선택 정보를 수신하는 단계; 및
상기 머신러닝 또는 룰 기반 알고리즘을 통해 도출된 클라우드 자원의 종류 및 규모에 대한 정보와, 상기 개발자 단말기로부터 수신한 수정 정보 또는 선택 정보에 기초하여 클라우드 아키텍쳐에 대한 추천 정보를 생성하는 단계를 포함하는, 관리 서버의 클라우드 아키텍쳐 제안 수행 방법.
In the method for the management server to propose a cloud architecture for application development,
Collecting information on the type of application and information on cloud resources required for application operation from the developer terminal;
Deriving a type and scale of a cloud resource for operating an application based on information on the type of the application and information on cloud resources required for operating the application through machine learning or a rule-based algorithm;
Transmitting information about the type and scale of cloud resources derived through the machine learning or rule-based algorithm to the developer terminal;
Receiving modification information or selection information about the type and size of cloud resources derived through the machine learning or rule-based algorithm from the developer terminal; and
Generating recommendation information for a cloud architecture based on information on the type and size of cloud resources derived through the machine learning or rule-based algorithm and modification information or selection information received from the developer terminal. How to implement the management server's cloud architecture proposal.
제1항에 있어서,
어플리케이션 동작에 필요한 클라우드 자원에 대한 정보는,
어플리케이션 사용자의 규모, 보안 레벨, 필요 기능 또는 확장성에 대한 정보 중 적어도 하나 이상을 포함하는 것을 특징으로 하는, 관리 서버의 클라우드 아키텍쳐 제안 수행 방법.
According to claim 1,
Information on cloud resources required for application operation,
A method for performing a cloud architecture proposal of a management server, characterized in that it includes at least one or more of information on the size of the application user, security level, required function or scalability.
제1항에 있어서,
상기 머신러닝 또는 룰 기반 알고리즘을 통해 도출된 클라우드 자원의 종류 및 규모에 대한 정보는,
클라우드 서비스의 종류, 서버의 개수와 종류, 서버의 네트워크 종류, 보안 설정 또는 추가 기능의 선택 여부에 대한 정보 중 적어도 하나 이상을 포함하는 것을 특징으로 하는, 관리 서버의 클라우드 아키텍쳐 제안 수행 방법.
According to claim 1,
Information on the type and size of cloud resources derived through the machine learning or rule-based algorithm,
A method for performing a cloud architecture proposal of a management server, characterized in that it includes at least one of information about the type of cloud service, the number and type of servers, the type of network of the server, security settings, or whether additional functions are selected.
삭제delete 관리 서버가 어플리케이션 개발을 위한 클라우드 아키텍쳐 제안을 수행하는 방법에 있어서,
개발자 단말기로부터 제1 정보(템플릿의 선택 정보) 또는 제2 정보(어플리케이션의 종류에 대한 정보 및 어플리케이션 동작에 필요한 클라우드 자원에 대한 정보) 중 어느 하나를 수집하는 단계를 포함하고,
상기 개발자 단말기로부터 제1 정보(템플릿의 선택 정보)를 수신한 경우,
상기 수신한 템플릿의 선택 정보를 기초로, 선택된 템플릿이 적용된 상태의 클라우드 아키텍쳐에 포함된 클라우드 자원의 종류 및 규모에 대한 정보를 상기 개발자 단말기로 전송하는 단계; 및
상기 개발자 단말기로부터 상기 템플릿이 적용된 상태의 클라우드 아키텍쳐에 포함된 클라우드 자원의 종류 및 규모에 대한 수정 정보 또는 선택 정보를 수신하는 단계를 더 포함하며,
상기 개발자 단말기로부터 제2 정보(어플리케이션의 종류에 대한 정보 및 어플리케이션 동작에 필요한 클라우드 자원에 대한 정보)를 수신한 경우,
머신러닝 또는 룰 기반 알고리즘을 통해, 상기 어플리케이션의 종류에 대한 정보 및 어플리케이션 동작에 필요한 클라우드 자원에 대한 정보를 기초로 하여 어플리케이션 동작을 위한 클라우드 자원의 종류 및 규모를 도출하는 단계;
상기 머신러닝 또는 룰 기반 알고리즘을 통해 도출된 클라우드 자원의 종류 및 규모에 대한 정보를 상기 개발자 단말기로 전송하는 단계; 및
상기 개발자 단말기로부터 상기 머신러닝 또는 룰 기반 알고리즘을 통해 도출된 클라우드 자원의 종류 및 규모에 대한 수정 정보 또는 선택 정보를 수신하는 단계를 더 포함하며,
상기 개발자 단말기로부터 클라우드 자원의 종류 및 규모에 대한 수정 정보 또는 선택 정보를 수신한 이후, 상기 머신러닝, 룰 기반 알고리즘 또는 템플릿에 의해 도출된 클라우드 자원의 종류 및 규모에 대한 정보와, 상기 개발자 단말기로부터 수신한 수정 정보 또는 선택 정보에 기초하여 클라우드 아키텍쳐에 대한 추천 정보를 생성하는 단계를 포함하는, 관리 서버의 클라우드 아키텍쳐 제안 수행 방법.
In the method for the management server to propose a cloud architecture for application development,
Collecting any one of first information (template selection information) or second information (information on the type of application and information on cloud resources required for application operation) from the developer terminal,
When first information (template selection information) is received from the developer terminal,
Transmitting information about the type and scale of cloud resources included in the cloud architecture to which the selected template is applied based on the received selection information of the template to the developer terminal; and
Receiving modification information or selection information about the type and size of cloud resources included in the cloud architecture to which the template is applied from the developer terminal,
When second information (information on the type of application and information on cloud resources required for application operation) is received from the developer terminal,
Deriving a type and scale of a cloud resource for operating an application based on information on the type of the application and information on cloud resources required for operating the application through machine learning or a rule-based algorithm;
Transmitting information about the type and scale of cloud resources derived through the machine learning or rule-based algorithm to the developer terminal; and
Receiving modification information or selection information about the type and size of cloud resources derived through the machine learning or rule-based algorithm from the developer terminal,
After receiving correction information or selection information on the type and size of cloud resources from the developer terminal, information on the type and size of cloud resources derived by the machine learning, rule-based algorithm or template, and from the developer terminal A method of performing a cloud architecture proposal proposal by a management server, comprising generating recommendation information for a cloud architecture based on the received modification information or selection information.
제1항 또는 제5항 중 어느 하나에 있어서,
개발자 단말기로부터 수신한 어플리케이션 종류에 대한 정보에 기반하여, 해당 어플리케이션 종류에 해당하는 오픈소스 아키텍쳐가 존재하는지 여부를 판단하는 단계를 더 포함하며,
해당 어플리케이션 종류에 해당하는 오픈소스 아키텍쳐가 존재하는 경우, 존재하는 오픈소스 아키텍쳐를 정규화하여 머신러닝의 학습 데이터로 추가하는 단계를 더 포함하고,
해당 어플리케이션 종류에 해당하는 오픈소스 아키텍쳐가 존재하지 않는 경우, 인터넷에 공개된 비정형화 형태의 자료에 대한 크롤링을 수행하고 크롤링된 데이터를 정규화하여 머신러닝의 학습 데이터로 추가하는 단계를 더 포함하는 것을 특징으로 하는, 관리 서버의 클라우드 아키텍쳐 제안 수행 방법.
According to any one of claims 1 or 5,
Based on the information on the type of application received from the developer terminal, determining whether an open source architecture corresponding to the type of application exists;
If an open source architecture corresponding to the corresponding application type exists, normalizing the existing open source architecture and adding it as machine learning learning data;
If an open source architecture corresponding to the application type does not exist, performing crawling on unstructured data released on the Internet, normalizing the crawled data, and adding it as machine learning learning data. Characterized by, a method for implementing a cloud architecture proposal of a management server.
제1항 또는 제5항 중 어느 하나에 있어서,
생성된 클라우드 아키텍쳐에 대한 추천 정보는,
클라우드 아키텍쳐를 구성하는 클라우드의 자원들에 대한 정보 및 개발자의 요구 사항 만족 여부에 대한 정보를 포함하는 GUI(Graphical User Interface)의 형태로 생성되어 상기 개발자 단말기로 전송되는 것을 특징으로 하는, 관리 서버의 클라우드 아키텍쳐 제안 수행 방법.
According to any one of claims 1 or 5,
The recommended information for the created cloud architecture is:
A management server characterized in that it is created in the form of a GUI (Graphical User Interface) containing information on cloud resources constituting the cloud architecture and information on whether or not the developer's requirements are satisfied and transmitted to the developer terminal. How to implement cloud architecture proposals.
제1항 또는 제5항 중 어느 하나에 있어서,
생성된 클라우드 아키텍쳐에 대한 추천 정보는,
상기 클라우드 아키텍쳐에 대한 추천 정보가 상기 머신러닝을 기초로 생성된 것인지 또는 상기 룰 기반 알고리즘을 통해 생성된 것인지에 대한 정보를 포함하며,
상기 개발자 단말기로부터 머신러닝 또는 룰 기반 알고리즘 중 하나의 선택 정보를 수신하고 이를 토대로 클라우드 아키텍쳐에 대한 추천 정보를 재생성하는 단계를 더 포함하는 것을 특징으로 하는, 관리 서버의 클라우드 아키텍쳐 제안 수행 방법.
According to any one of claims 1 or 5,
The recommended information for the created cloud architecture is:
Includes information on whether the recommendation information for the cloud architecture is generated based on the machine learning or through the rule-based algorithm,
Receiving selection information of one of machine learning or rule-based algorithms from the developer terminal and regenerating recommendation information for the cloud architecture based on this, characterized in that, the method of performing the cloud architecture proposal of the management server.
제1항 또는 제5항 중 어느 하나에 있어서,
어플리케이션 동작을 위한 클라우드 자원의 종류 및 규모를 도출하는 단계에서 도출되는 결과값은 JSON 또는 Yaml 형식으로 구성된 중간 산출물이며,
상기 개발자 단말기로부터 상기 클라우드 아키텍쳐에 대한 추천 정보의 배포 요청을 수신한 후, 상기 중간 산출물을 IaC 형식의 코드 데이터로 변환하는 단계; 및
IaC 실행기를 활용하여 상기 IaC 형식의 코드 데이터를 실행함으로써 클라우드 서버에 클라우드 자원의 배포를 수행하는 단계를 더 포함하는, 관리 서버의 클라우드 아키텍쳐 제안 수행 방법.
According to any one of claims 1 or 5,
The result value derived from the step of deriving the type and scale of cloud resources for application operation is an intermediate product in JSON or Yaml format,
converting the intermediate product into IaC format code data after receiving a distribution request for recommendation information on the cloud architecture from the developer terminal; and
The method further comprising distributing cloud resources to a cloud server by executing the code data in the IaC format using an IaC executor.
어플리케이션 개발을 위한 클라우드 아키텍쳐 제안을 수행하는 관리 서버에 있어서,
개발자 단말기로부터 어플리케이션의 종류에 대한 정보 및 어플리케이션 동작에 필요한 클라우드 자원에 대한 정보를 수집하는 요구 사항 수집부;
머신러닝 또는 룰 기반 알고리즘을 통해, 상기 어플리케이션의 종류에 대한 정보 및 어플리케이션 동작에 필요한 클라우드 자원에 대한 정보를 기초로 하여 어플리케이션 동작을 위한 클라우드 자원의 종류 및 규모를 도출하는 클라우드 자원 계산부;
상기 머신러닝 또는 룰 기반 알고리즘을 통해 도출된 클라우드 자원의 종류 및 규모에 대한 정보를 상기 개발자 단말기로 전송하는 정보 제공부;
상기 개발자 단말기로부터 상기 머신러닝 또는 룰 기반 알고리즘을 통해 도출된 클라우드 자원의 종류 및 규모에 대한 수정 정보 또는 선택 정보를 수신하는 추가 정보 수집부; 및
상기 머신러닝 또는 룰 기반 알고리즘을 통해 도출된 클라우드 자원의 종류 및 규모에 대한 정보와, 상기 개발자 단말기로부터 수신한 수정 정보 또는 선택 정보에 기초하여 클라우드 아키텍쳐에 대한 추천 정보를 생성하는 추천 정보 생성부를 포함하는, 관리 서버.
In a management server that performs a cloud architecture proposal for application development,
Requirements collection unit for collecting information on the type of application and information on the cloud resources required for application operation from the developer terminal;
A cloud resource calculation unit for deriving a type and scale of cloud resources for operating an application based on information on the type of the application and information on cloud resources required for operating the application through a machine learning or rule-based algorithm;
an information provider for transmitting information about the type and scale of cloud resources derived through the machine learning or rule-based algorithm to the developer terminal;
Additional information collection unit for receiving correction information or selection information about the type and scale of cloud resources derived through the machine learning or rule-based algorithm from the developer terminal; and
Recommendation information generation unit for generating recommendation information for a cloud architecture based on information on the type and size of cloud resources derived through the machine learning or rule-based algorithm and modification information or selection information received from the developer terminal. , the management server.
KR1020210044819A 2021-02-19 2021-04-06 Server performing cloud architecture proposal for application development and service/solution implementation method thereof KR102498301B1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020210022579 2021-02-19
KR20210022579 2021-02-19

Publications (2)

Publication Number Publication Date
KR20220118875A KR20220118875A (en) 2022-08-26
KR102498301B1 true KR102498301B1 (en) 2023-02-10

Family

ID=83113322

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210044819A KR102498301B1 (en) 2021-02-19 2021-04-06 Server performing cloud architecture proposal for application development and service/solution implementation method thereof

Country Status (1)

Country Link
KR (1) KR102498301B1 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102571781B1 (en) * 2022-12-14 2023-08-29 스트라토 주식회사 Cluster node recommendation system and control method thereof

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130097651A1 (en) * 2011-10-12 2013-04-18 International Business Machines Corporation Capturing data parameters in templates in a networked computing environment
US20190028336A1 (en) * 2017-07-21 2019-01-24 Accenture Global Solutions Limited Automatic provisioning of a software development environment
US10382353B1 (en) 2016-12-14 2019-08-13 Amazon Technologies, Inc. Enhancing incomplete cloud templates for infrastructure deployment
WO2020210342A1 (en) 2019-04-11 2020-10-15 Servicenow, Inc. Programmatic orchestration of cloud-based services
KR102214139B1 (en) 2020-06-04 2021-02-09 (주)케이아이티원 Management system for cloud infrastructure template

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160136489A (en) 2015-05-19 2016-11-30 (주)나누미넷 Method for Resource Management base of Virtualization for cloud service
KR102524126B1 (en) * 2017-06-28 2023-04-20 주식회사 케이티 Apparatus for providing design and deployment of distributed cloud system for establishing 5G infra and method thereof

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130097651A1 (en) * 2011-10-12 2013-04-18 International Business Machines Corporation Capturing data parameters in templates in a networked computing environment
US10382353B1 (en) 2016-12-14 2019-08-13 Amazon Technologies, Inc. Enhancing incomplete cloud templates for infrastructure deployment
US20190028336A1 (en) * 2017-07-21 2019-01-24 Accenture Global Solutions Limited Automatic provisioning of a software development environment
WO2020210342A1 (en) 2019-04-11 2020-10-15 Servicenow, Inc. Programmatic orchestration of cloud-based services
KR102214139B1 (en) 2020-06-04 2021-02-09 (주)케이아이티원 Management system for cloud infrastructure template

Also Published As

Publication number Publication date
KR20220118875A (en) 2022-08-26

Similar Documents

Publication Publication Date Title
US20180286391A1 (en) Coordinating the execution of a voice command across multiple connected devices
Flores et al. Social-aware hybrid mobile offloading
US11461593B2 (en) Federated learning of clients
CN109067890B (en) CDN node edge computing system based on docker container
RU2693637C2 (en) Service integration client platform
US9647892B2 (en) Cloud-based service resource provisioning based on network characteristics
KR102271786B1 (en) Accelerated training of personal daemons
Mora et al. Multilayer architecture model for mobile cloud computing paradigm
KR20230023019A (en) Blockchain-based data storage method, system and device
US9264339B2 (en) Hosted network management
US11005718B2 (en) Determining capabilities of cognitive entities in a distributed network based on application of cognitive protocols
US11871338B2 (en) Distributed multi-access edge service delivery
Nawrocki et al. Adaptive service management in mobile cloud computing by means of supervised and reinforcement learning
US10686670B2 (en) Optimizing placement of internet-of-things (IoT) devices to provide full coverage and minimize coverage overlap
KR102498301B1 (en) Server performing cloud architecture proposal for application development and service/solution implementation method thereof
CN113010561B (en) Data acquisition method and device based on super account book and computer system
US20160041851A1 (en) Executing a command on an optimal smart device
CN114787803A (en) Risk detection of data loss for 5G enabled devices
CN111641715A (en) Data processing method, device, equipment and medium based on block chain
Gnana Jeevan et al. DyTO: dynamic task offloading strategy for Mobile cloud computing using surrogate object model
Sulaiman et al. Mamoc-android: Multisite adaptive computation offloading for android applications
CN108431813A (en) Special digital assistant for Scoped natural language result focusing options
US11797891B1 (en) Contextual bandits-based ecosystem recommender system for synchronized personalization
Thanapal et al. Energy saving offloading scheme for mobile cloud computing using CloudSim
US20220327597A1 (en) Systems and methods for quoting and recommending connectivity services

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