본 발명은 에지 컴퓨팅(edge computing), 및 마이크로 서비스(micro service)에 관한 것으로, 데이터 위치를 고려하여 빅데이터 처리를 가능하게 하는 컨테이너 기반 동적 워크로드 처리 기술에 관한 것이다.The present invention relates to edge computing and micro services, and relates to a container-based dynamic workload processing technology that enables big data processing by considering the location of data.
이 부분에 기술된 내용은 단순히 본 실시예에 대한 배경 정보를 제공할 뿐 종래 기술을 구성하는 것은 아니다.The material described in this section merely provides background information for the present embodiment and does not constitute prior art.
종래 기술에 따르면 대부분의 응용 프로그램은 모놀로식(Monolithic) 구조로 개발되었다. 모놀리식 구조는 응용 프로그램을 하나의 큰 덩어리 단위로 개발하여 프로그램의 동작에 필요한 다양한 프로세스와 데이터베이스를 연결하고, 프로그램을 계층적으로 구성하는 방식이다. 모놀리식 구조 스타일은 각각의 내부 프로세스와 긴밀히 연결되어 있으며, 일반적으로 하나의 설계 프로그램을 이용하여 개발된다.According to the conventional technology, most applications are developed in a monolithic structure. A monolithic structure is a method of developing an application as a single large unit, connecting various processes and databases required for the operation of the program, and organizing the program hierarchically. The monolithic structure style is closely connected to each internal process, and is generally developed using a single design program.
반면, 마이크로서비스 구조(Microservice Architecture)는 하나의 응용 프로그램을 개발할 때 복수 개의 작은 서비스들로 분할하고, 분할된 작은 서비스들을 병합하여 하나의 응용 프로그램을 완성한다. 즉, 마이크로서비스 구조는 각각의 서비스를 모듈별로 특화하고, 인터페이스를 이용하여 각각의 모듈을 연결하고 통합함으로써, 하나의 응용 서비스를 생성한다.On the other hand, the microservice architecture divides an application into multiple small services when developing it, and merges the divided small services to complete a single application. In other words, the microservice architecture creates a single application service by specializing each service by module and connecting and integrating each module using an interface.
센서가 부착된 사물 인터넷(Internet of Things; IoT) 디바이스에서 클라우드 또는 서버로 수집된 데이터를 전송하는 경우 기존 디바이스는 펌웨어 형식으로 프로그램을 구현하여 데이터를 전송하거나, 임베디드(Embedded) OS(Operating System)를 이용하여 소프트웨어를 생성하여 데이터를 전송한다.When transmitting data collected from an Internet of Things (IoT) device equipped with a sensor to the cloud or a server, existing devices transmit data by implementing a program in firmware format or by generating software using an embedded OS (Operating System).
사물인터넷(IoT)의 출현으로, 상당한 양의 데이터가 에지(Edge) 네트워크에서 생성된다. 방대하고 다양한 데이터, 빅데이터 도메인은 빠르게 발전했으며, 복잡한 비즈니스 로직에서 끊임없이 증가하는 볼륨, 속도 및 다양한 데이터를 처리하는데 필요한 인프라에 이르기까지 다양한 부분에서 문제가 발생하고 있다.With the advent of the Internet of Things (IoT), a significant amount of data is generated in the edge network. The domain of big data, which is vast and diverse, has developed rapidly, and problems are occurring in various areas, from complex business logic to the infrastructure required to process the ever-increasing volume, velocity, and variety of data.
에지 컴퓨팅(edge computing) 기술은 에지 디바이스의 하드웨어 리소스를 활용하여 클라우드 컴퓨팅을 보완하는 것을 목적으로 한다. 하지만 방대하고 다양한 데이터를 처리하는 솔루션(빅데이터 처리 솔루션)들은 전통적으로 클라우드 서비스 워크로드에 맞게 설계되었기 때문에 마이크로 서비스 및 에지 컴퓨팅에 적용하는 것은 적합하지 않거나 비효율적인 문제점이 지적되고 있다.Edge computing technology aims to complement cloud computing by utilizing hardware resources of edge devices. However, solutions for processing large and diverse data (big data processing solutions) have traditionally been designed for cloud service workloads, so they are not suitable for application to microservices and edge computing, or they are inefficient.
본 발명의 목적은 데이터 소스의 위치/지역 정보를 고려하여 효율적으로 데이터 서비스를 제공할 수 있는 컨테이너 기반 동적 워크로드 처리 시스템, 장치, 및 방법을 제안하는 것이다.The purpose of the present invention is to propose a container-based dynamic workload processing system, device, and method capable of efficiently providing data services by considering location/region information of a data source.
본 발명의 목적은 데이터 소스의 위치/지역 정보를 고려하여 효율적으로 데이터 서비스를 제공할 수 있는 에지 서버 노드의 클러스터 기반 동적 워크로드 처리 시스템, 장치, 및 방법을 제안하는 것이다.The purpose of the present invention is to propose a cluster-based dynamic workload processing system, device, and method of edge server nodes capable of efficiently providing data services by considering location/regional information of data sources.
상기 목적을 달성하기 위한 본 발명의 일 실시예에 따른 서비스를 제공하기 위한 워크로드(workload)를 동적으로 처리하는 동적 워크로드 처리 장치는, 적어도 하나 이상의 명령을 저장하는 메모리(memory); 및 적어도 하나 이상의 명령을 수행하는 프로세서(processor)를 포함한다. 이때 프로세서는 적어도 하나 이상의 명령을 수행함으로써, 사용자 서비스 요청을 지원하기 위하여 필요한 태스크 정보를 획득하고, 태스크 정보에 대응하는 태스크를 처리하기 위한 데이터 소스의 로컬 정보를 획득하고, 로컬 정보에 기반하여 태스크 정보에 대응하는 태스크를 처리하기 위한 워크로드를 동적으로 처리한다.According to one embodiment of the present invention for achieving the above object, a dynamic workload processing device for dynamically processing a workload for providing a service includes a memory storing at least one command; and a processor executing at least one command. At this time, the processor obtains task information necessary to support a user service request by executing at least one command, obtains local information of a data source for processing a task corresponding to the task information, and dynamically processes a workload for processing a task corresponding to the task information based on the local information.
프로세서는, 워크로드를 동적으로 처리함에 있어서, 로컬 정보에 기반하여 워크로드의 순서, 및 워크로드의 수행 주체 중 적어도 하나 이상의 스케줄링을 동적으로 재구성할 수 있다.The processor can dynamically reconfigure the order of the workload and the scheduling of at least one of the workload execution entities based on local information when dynamically processing the workload.
프로세서는, 사용자 서비스 요청을 지원하기 위하여 필요한 태스크 정보를 획득함에 있어서, 제1 클러스터 내의 제어 계층으로부터 사용자 서비스 요청을 지원하기 위하여 필요한 태스크 정보를 요청하는 태스크 정보 요청을 수신할 수 있고, 태스크 정보 요청에 대응하는 사용자 서비스 요청을 분석하여 사용자 서비스 요청을 지원하기 위하여 필요한 태스크 정보를 획득할 수 있다.The processor may receive a task information request requesting task information necessary to support the user service request from a control layer within the first cluster, and may analyze the user service request corresponding to the task information request to obtain task information necessary to support the user service request.
프로세서는, 데이터 소스의 로컬 정보를 획득함에 있어서, 제1 클러스터 내의 데이터 계층으로부터 태스크 정보에 대응하는 태스크를 처리하기 위한 데이터 소스의 로컬 정보를 획득할 수 있다.The processor can obtain local information of the data source for processing a task corresponding to task information from a data layer within the first cluster when obtaining local information of the data source.
프로세서는, 데이터 소스의 로컬 정보에 기반하여 데이터 소스 주변에 위치하는 제1 근접 동적 워크로드 처리 노드의 정보를 획득할 수 있다.The processor can obtain information about a first proximate dynamic workload processing node located around the data source based on local information of the data source.
프로세서는, 워크로드를 동적으로 처리함에 있어서, 데이터 소스의 로컬 정보 및 제1 근접 동적 워크로드 처리 노드의 정보에 기반하여 워크로드를 동적으로 처리할 수 있다.The processor can dynamically process the workload based on local information of the data source and information of the first proximate dynamic workload processing node when dynamically processing the workload.
프로세서는, 데이터 소스의 로컬 정보에 기반하여 데이터 소스 주변에 위치하는 제2 근접 동적 워크로드 처리 노드가 포함되는 제2 클러스터의 정보를 획득할 수 있다.The processor can obtain information about a second cluster that includes second proximate dynamic workload processing nodes located around the data source based on local information about the data source.
프로세서는, 워크로드를 동적으로 처리함에 있어서, 데이터 소스의 로컬 정보 및 제2 클러스터의 정보에 기반하여 워크로드를 동적으로 처리할 수 있다.The processor can dynamically process the workload based on local information of the data source and information from the second cluster when dynamically processing the workload.
프로세서는, 제2 근접 동적 워크로드 처리 노드가 복수개인 경우에, 제2 클러스터 내의 복수개의 제2 근접 동적 워크로드 처리 노드들이 태스크 정보에 대응하는 태스크를 분산 처리하도록 워크로드를 동적으로 스케줄링할 수 있다.The processor can dynamically schedule the workload so that, when there are multiple second proximity dynamic workload processing nodes, multiple second proximity dynamic workload processing nodes within the second cluster distribute and process tasks corresponding to task information.
본 발명의 일 실시예에 따른 동적 워크로드 처리 시스템은 제1 클러스터 내의 제어 계층에 대응하는 제1 동적 워크로드 처리 노드; 및 제1 클러스터 내의 연산 계층에 대응하는 제2 동적 워크로드 처리 노드를 포함한다.A dynamic workload processing system according to one embodiment of the present invention includes a first dynamic workload processing node corresponding to a control layer within a first cluster; and a second dynamic workload processing node corresponding to a computation layer within the first cluster.
이때 제1 동적 워크로드 처리 노드가 사용자 서비스 요청을 수신하고, 제1 동적 워크로드 처리 노드가 사용자 서비스 요청을 지원하기 위하여 필요한 태스크 정보를 요청하는 태스크 정보 요청을 제2 동적 워크로드 처리 노드로 전달하고, 제2 동적 워크로드 처리 노드가 태스크 정보 요청에 대응하는 사용자 서비스 요청을 분석하여 사용자 서비스 요청을 지원하기 위하여 필요한 태스크 정보를 획득하고, 제2 동적 워크로드 처리 노드가 태스크 정보에 대응하는 태스크를 처리하기 위한 데이터 소스의 로컬 정보를 획득하고, 제2 동적 워크로드 처리 노드가 로컬 정보에 기반하여 태스크 정보에 대응하는 태스크를 처리하기 위한 워크로드를 동적으로 처리한다.At this time, a first dynamic workload processing node receives a user service request, and the first dynamic workload processing node transmits a task information request requesting task information necessary to support the user service request to a second dynamic workload processing node, and the second dynamic workload processing node analyzes the user service request corresponding to the task information request to obtain task information necessary to support the user service request, and the second dynamic workload processing node obtains local information of a data source for processing a task corresponding to the task information, and the second dynamic workload processing node dynamically processes a workload for processing the task corresponding to the task information based on the local information.
제2 동적 워크로드 처리 노드가 워크로드를 동적으로 처리함에 있어서, 로컬 정보에 기반하여 워크로드의 순서, 및 워크로드의 수행 주체 중 적어도 하나 이상의 스케줄링을 동적으로 재구성할 수 있다.When the second dynamic workload processing node dynamically processes the workload, the order of the workload and the scheduling of at least one of the workload execution entities can be dynamically reconfigured based on local information.
제2 동적 워크로드 처리 노드가 데이터 소스의 로컬 정보를 획득함에 있어서, 제1 클러스터 내의 데이터 계층에 대응하는 제1 근접 동적 워크로드 처리 노드로부터 태스크 정보에 대응하는 태스크를 처리하기 위한 데이터 소스의 로컬 정보를 획득할 수 있다.When the second dynamic workload processing node obtains local information of a data source, it can obtain local information of a data source for processing a task corresponding to the task information from a first adjacent dynamic workload processing node corresponding to a data layer within the first cluster.
제2 동적 워크로드 처리 노드는, 데이터 소스의 로컬 정보에 기반하여 데이터 소스 주변에 위치하는 제2 근접 동적 워크로드 처리 노드의 정보를 획득할 수 있다.The second dynamic workload processing node can obtain information about second nearby dynamic workload processing nodes located around the data source based on local information of the data source.
제2 동적 워크로드 처리 노드는, 워크로드를 동적으로 처리함에 있어서, 데이터 소스의 로컬 정보 및 제2 근접 동적 워크로드 처리 노드의 정보에 기반하여 워크로드를 동적으로 처리할 수 있다.The second dynamic workload processing node can dynamically process the workload based on local information of the data source and information of the second nearby dynamic workload processing node when dynamically processing the workload.
제2 동적 워크로드 처리 노드는, 데이터 소스의 로컬 정보에 기반하여 데이터 소스 주변에 위치하는 제2 근접 동적 워크로드 처리 노드가 포함되는 제2 클러스터의 정보를 획득할 수 있다.The second dynamic workload processing node can obtain information about a second cluster that includes second proximate dynamic workload processing nodes located around the data source based on local information of the data source.
제2 동적 워크로드 처리 노드는, 워크로드를 동적으로 처리함에 있어서, 데이터 소스의 로컬 정보 및 제2 클러스터의 정보에 기반하여 워크로드를 동적으로 처리할 수 있다.The second dynamic workload processing node can dynamically process the workload based on local information of the data source and information of the second cluster when dynamically processing the workload.
제2 동적 워크로드 처리 노드는, 제2 근접 동적 워크로드 처리 노드가 복수개인 경우에, 제2 클러스터 내의 복수개의 제2 근접 동적 워크로드 처리 노드들이 태스크 정보에 대응하는 태스크를 분산 처리하도록 워크로드를 동적으로 스케줄링할 수 있다.The second dynamic workload processing node can dynamically schedule the workload so that, when there are multiple second adjacent dynamic workload processing nodes, multiple second adjacent dynamic workload processing nodes within the second cluster distribute and process tasks corresponding to task information.
제2 동적 워크로드 처리 노드가 복수개인 경우에, 제1 동적 워크로드 처리 노드의 동작 실패 여부, 및 업데이트된 로컬 정보 중 적어도 하나 이상에 기반하여 복수개의 제2 동적 워크로드 처리 노드 중 하나가 제1 동적 워크로드 처리 노드를 대체하여 제어 계층에 대응될 수 있다.In the case where there are multiple second dynamic workload processing nodes, one of the multiple second dynamic workload processing nodes can correspond to the control layer by replacing the first dynamic workload processing node based on whether the first dynamic workload processing node has failed to operate and at least one of the updated local information.
본 발명의 일 실시예에 따른 동적 워크로드 처리 방법은, 제1 클러스터 내의 제어 계층에 대응하는 제1 동적 워크로드 처리 노드를 경유하여 수신되는 사용자 서비스 요청을, 제1 클러스터 내의 연산 계층에 대응하는 제2 동적 워크로드 처리 노드가 분석하여 사용자 서비스 요청을 지원하기 위하여 필요한 태스크 정보를 획득하는 단계; 제2 동적 워크로드 처리 노드가 태스크 정보에 대응하는 태스크를 처리하기 위한 데이터 소스의 로컬 정보를 획득하는 단계; 및 제2 동적 워크로드 처리 노드가 로컬 정보에 기반하여 태스크 정보에 대응하는 태스크를 처리하기 위한 워크로드를 동적으로 처리하는 단계를 포함한다.A dynamic workload processing method according to one embodiment of the present invention includes a step of allowing a second dynamic workload processing node corresponding to a computational layer in the first cluster to analyze a user service request received via a first dynamic workload processing node corresponding to a control layer in the first cluster and obtain task information necessary to support the user service request; a step of allowing the second dynamic workload processing node to obtain local information of a data source for processing a task corresponding to the task information; and a step of allowing the second dynamic workload processing node to dynamically process a workload for processing a task corresponding to the task information based on the local information.
제2 동적 워크로드 처리 노드가 워크로드를 동적으로 처리하는 단계에서, 로컬 정보에 기반하여 워크로드의 순서, 및 워크로드의 수행 주체 중 적어도 하나 이상의 스케줄링이 동적으로 재구성될 수 있다.At the stage where the second dynamic workload processing node dynamically processes the workload, the order of the workload and the scheduling of at least one of the workload execution entities can be dynamically reconfigured based on local information.
본 발명의 일 실시예에 따른 동적 워크로드 처리 방법은, 제1 동적 워크로드 처리 노드가 사용자 서비스 요청을 수신하는 단계; 제1 동적 워크로드 처리 노드가 사용자 서비스 요청을 지원하기 위하여 필요한 태스크 정보를 요청하는 태스크 정보 요청을 제2 동적 워크로드 처리 노드로 전달하는 단계를 더 포함할 수 있다.A method for processing a dynamic workload according to one embodiment of the present invention may further include a step of a first dynamic workload processing node receiving a user service request; and a step of the first dynamic workload processing node transmitting a task information request requesting task information necessary to support the user service request to a second dynamic workload processing node.
제2 동적 워크로드 처리 노드가 데이터 소스의 로컬 정보를 획득하는 단계에서, 제1 클러스터 내의 데이터 계층에 대응하는 제1 근접 동적 워크로드 처리 노드로부터 태스크 정보에 대응하는 태스크를 처리하기 위한 데이터 소스의 로컬 정보가 획득될 수 있다.In the step of the second dynamic workload processing node obtaining local information of the data source, local information of the data source for processing a task corresponding to the task information can be obtained from the first adjacent dynamic workload processing node corresponding to the data layer within the first cluster.
본 발명의 일 실시예에 따른 동적 워크로드 처리 방법은, 제2 동적 워크로드 처리 노드가 데이터 소스의 로컬 정보에 기반하여 데이터 소스 주변에 위치하는 제2 근접 동적 워크로드 처리 노드의 정보를 획득하는 단계를 더 포함할 수 있다.A method for processing a dynamic workload according to one embodiment of the present invention may further include a step of the second dynamic workload processing node acquiring information about a second nearby dynamic workload processing node located around the data source based on local information of the data source.
제2 동적 워크로드 처리 노드가 워크로드를 동적으로 처리하는 단계에서, 데이터 소스의 로컬 정보 및 제2 근접 동적 워크로드 처리 노드의 정보에 기반하여 워크로드가 동적으로 처리될 수 있다.At the stage where the second dynamic workload processing node dynamically processes the workload, the workload can be dynamically processed based on local information of the data source and information of the second nearby dynamic workload processing node.
본 발명의 일 실시예에 따른 동적 워크로드 처리 방법은, 제2 동적 워크로드 처리 노드가 데이터 소스의 로컬 정보에 기반하여 데이터 소스 주변에 위치하는 제2 근접 동적 워크로드 처리 노드가 포함되는 제2 클러스터의 정보를 획득하는 단계를 더 포함할 수 있다.A method for processing a dynamic workload according to one embodiment of the present invention may further include a step of a second dynamic workload processing node acquiring information of a second cluster including a second proximate dynamic workload processing node located around a data source based on local information of the data source.
제2 동적 워크로드 처리 노드가 워크로드를 동적으로 처리하는 단계에서, 데이터 소스의 로컬 정보 및 제2 클러스터의 정보에 기반하여 워크로드가 동적으로 처리될 수 있다.At the stage where the second dynamic workload processing node dynamically processes the workload, the workload can be dynamically processed based on local information of the data source and information of the second cluster.
제2 근접 동적 워크로드 처리 노드가 복수개인 경우에, 제2 동적 워크로드 처리 노드가 워크로드를 동적으로 처리하는 단계에서, 제2 동적 워크로드 처리 노드는, 제2 클러스터 내의 복수개의 제2 근접 동적 워크로드 처리 노드들이 태스크 정보에 대응하는 태스크를 분산 처리하도록 워크로드를 동적으로 스케줄링할 수 있다.In the case where there are multiple second proximity dynamic workload processing nodes, at the step where the second dynamic workload processing nodes dynamically process the workload, the second dynamic workload processing nodes can dynamically schedule the workload so that multiple second proximity dynamic workload processing nodes within the second cluster distribute and process tasks corresponding to the task information.
본 발명의 일 실시예에 따른 동적 워크로드 처리 방법은, 제2 동적 워크로드 처리 노드가 복수개인 경우에, 제1 동적 워크로드 처리 노드의 동작 실패 여부, 및 업데이트된 로컬 정보 중 적어도 하나 이상에 기반하여 복수개의 제2 동적 워크로드 처리 노드 중 하나를 제1 동적 워크로드 처리 노드를 대체하여 제어 계층에 대응시키는 단계를 더 포함할 수 있다.A method for processing a dynamic workload according to one embodiment of the present invention may further include, in a case where there are a plurality of second dynamic workload processing nodes, a step of causing one of the plurality of second dynamic workload processing nodes to correspond to a control layer by replacing the first dynamic workload processing node based on whether the operation of the first dynamic workload processing node has failed and at least one of updated local information.
본 발명의 실시예에 따르면 방대한 데이터를 직접 클라우드 서버로 전송하는 과정을 생략할 수 있으므로 종래 기술의 클라우드로 전송할 때 발생하는 대기 시간으로 인한 비용을 절감할 수 있다.According to an embodiment of the present invention, the process of directly transmitting massive data to a cloud server can be omitted, thereby reducing costs due to waiting time incurred when transmitting to a cloud in the related art.
본 발명의 실시예에 따르면 대기 시간이 짧은 시나리오의 비용 손실 없이 서비스를 지원할 수 있다.According to an embodiment of the present invention, a service can be supported without cost loss in a scenario with a short waiting time.
본 발명의 실시예에 따르면 쿠버네티스 컨테이너 기반으로 동작함으로써 데이터 통합 및 처리 논리 측면에서 에지 디바이스가 동작하는 기술의 종류에 구애받지 않는 방식으로 통합적으로 문제를 해결할 수 있다.According to an embodiment of the present invention, by operating based on Kubernetes containers, it is possible to comprehensively solve problems in terms of data integration and processing logic in a manner independent of the type of technology on which edge devices operate.
본 발명의 실시예에 따르면 에지 서버 하드웨어 리소스를 최대한 활용하는 빅데이터 워크로드를 처리할 수 있다.According to an embodiment of the present invention, it is possible to process a big data workload that makes maximum use of edge server hardware resources.
본 발명의 실시예에 따르면 데이터 소스의 지역/위치를 고려한 효율적인 빅데이터 연산을 처리할 수 있다.According to an embodiment of the present invention, efficient big data operations can be processed considering the region/location of a data source.
도 1은 본 발명의 일 실시예에 따른 동적 워크로드 처리 방법이 적용되는 서비스 시나리오를 도시하는 개념도이다.
도 2는 본 발명의 일 실시예에 따른 동적 워크로드 처리 장치 및 시스템을 도시하는 개념도이다.
도 3은 본 발명의 일 실시예에 따른 동적 워크로드 처리 장치 및 시스템에서 실행되는 처리 방법을 도시하는 개념도이다.
도 4는 본 발명의 일 실시예에 따른 동적 워크로드 처리 장치 및 시스템의 일부인 제어 계층을 도시하는 개념도이다.
도 5는 본 발명의 일 실시예에 따른 동적 워크로드 처리 장치 및 시스템의 일부인 연산 계층을 도시하는 개념도이다.
도 6은 본 발명의 일 실시예에 따른 동적 워크로드 처리 장치 및 시스템의 일부인 데이터 계층을 도시하는 개념도이다.
도 7은 본 발명의 일 실시예에 따른 동적 워크로드 처리 장치 및 시스템에서 계층 간 통신 프로토콜을 도시하는 개념도이다.
도 8은 본 발명의 일 실시예에 따른 동적 워크로드 처리 장치 및 시스템에서 실행되는 동적 워크로드 처리 방법을 도시하는 동작 흐름도이다.
도 9는 본 발명의 일 실시예에 따른 동적 워크로드 처리 장치 및 시스템에서 실행되는 동적 워크로드 스케줄링의 시나리오를 도시하는 개념도이다.
도 10은 본 발명의 일 실시예에 따른 동적 워크로드 처리 장치 및 시스템에서 실행되는 동적 워크로드 스케줄링의 시나리오를 도시하는 개념도이다.
도 11은 도 1 내지 도 10의 과정의 적어도 일부를 수행할 수 있는 일반화된 동적 워크로드 장치, 동적 워크로드 시스템 또는 컴퓨팅 시스템의 예시를 도시하는 개념도이다.FIG. 1 is a conceptual diagram illustrating a service scenario to which a dynamic workload processing method according to one embodiment of the present invention is applied.
FIG. 2 is a conceptual diagram illustrating a dynamic workload processing device and system according to one embodiment of the present invention.
FIG. 3 is a conceptual diagram illustrating a processing method executed in a dynamic workload processing device and system according to one embodiment of the present invention.
FIG. 4 is a conceptual diagram illustrating a control layer that is part of a dynamic workload processing device and system according to one embodiment of the present invention.
FIG. 5 is a conceptual diagram illustrating a computational layer that is part of a dynamic workload processing device and system according to one embodiment of the present invention.
FIG. 6 is a conceptual diagram illustrating a data layer that is part of a dynamic workload processing device and system according to one embodiment of the present invention.
FIG. 7 is a conceptual diagram illustrating an inter-layer communication protocol in a dynamic workload processing device and system according to one embodiment of the present invention.
FIG. 8 is a flowchart illustrating a dynamic workload processing method executed in a dynamic workload processing device and system according to one embodiment of the present invention.
FIG. 9 is a conceptual diagram illustrating a scenario of dynamic workload scheduling executed in a dynamic workload processing device and system according to one embodiment of the present invention.
FIG. 10 is a conceptual diagram illustrating a scenario of dynamic workload scheduling executed in a dynamic workload processing device and system according to one embodiment of the present invention.
FIG. 11 is a conceptual diagram illustrating an example of a generalized dynamic workload device, dynamic workload system, or computing system capable of performing at least a portion of the processes of FIGS. 1 through 10.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.The present invention can have various modifications and various embodiments, and specific embodiments are illustrated in the drawings and described in detail. However, this is not intended to limit the present invention to specific embodiments, but should be understood to include all modifications, equivalents, or substitutes included in the spirit and technical scope of the present invention.
제1, 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. '및/또는' 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다.The terms first, second, etc. may be used to describe various components, but the components should not be limited by the terms. The terms are only used to distinguish one component from another. For example, without departing from the scope of the present invention, the first component could be referred to as the second component, and similarly, the second component could also be referred to as the first component. The term "and/or" includes any combination of a plurality of related listed items or any item among a plurality of related listed items.
본 출원의 실시예들에서, "A 및 B 중에서 적어도 하나"는 "A 또는 B 중에서 적어도 하나" 또는 "A 및 B 중 하나 이상의 조합들 중에서 적어도 하나"를 의미할 수 있다. 또한, 본 출원의 실시예들에서, "A 및 B 중에서 하나 이상"은 "A 또는 B 중에서 하나 이상" 또는 "A 및 B 중 하나 이상의 조합들 중에서 하나 이상"을 의미할 수 있다.In the embodiments of the present application, “at least one of A and B” can mean “at least one of A or B” or “at least one of combinations of one or more of A and B.” Furthermore, in the embodiments of the present application, “at least one of A and B” can mean “at least one of A or B” or “at least one of combinations of one or more of A and B.”
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.When it is said that a component is "connected" or "connected" to another component, it should be understood that it may be directly connected or connected to that other component, but that there may be other components in between. On the other hand, when it is said that a component is "directly connected" or "directly connected" to another component, it should be understood that there are no other components in between.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.The terminology used in this application is only used to describe specific embodiments and is not intended to limit the present invention. The singular expression includes the plural expression unless the context clearly indicates otherwise. In this application, it should be understood that the terms "comprises" or "has" and the like are intended to specify the presence of a feature, number, step, operation, component, part or combination thereof described in the specification, but do not exclude in advance the possibility of the presence or addition of one or more other features, numbers, steps, operations, components, parts or combinations thereof.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가진 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.Unless otherwise defined, all terms used herein, including technical or scientific terms, have the same meaning as commonly understood by one of ordinary skill in the art to which this invention belongs. Terms defined in commonly used dictionaries, such as those defined in common dictionaries, should be interpreted as having a meaning consistent with the meaning they have in the context of the relevant art, and will not be interpreted in an idealized or overly formal sense unless expressly defined in this application.
한편 본 출원일 전에 공지된 기술이라 하더라도 필요 시 본 출원 발명의 구성의 일부로서 포함될 수 있으며, 이에 대해서는 본 발명의 취지를 흐리지 않는 범위 내에서 본 명세서에서 설명한다. 다만 본 출원 발명의 구성을 설명함에 있어, 본 출원일 전에 공지된 기술로서 당업자가 자명하게 이해할 수 있는 사항에 대한 자세한 설명은 본 발명의 취지를 흐릴 수 있으므로, 공지 기술에 대한 지나치게 자세한 사항의 설명은 생략한다.Meanwhile, even if it is a technology known prior to the filing date of this application, it may be included as a part of the composition of the invention of this application if necessary, and this will be described in this specification within the scope that does not obscure the purpose of the invention. However, in explaining the composition of the invention of this application, a detailed description of matters that were known prior to the filing date of this application and could be clearly understood by those skilled in the art may obscure the purpose of the invention, and therefore, an excessively detailed description of the known technology will be omitted.
예를 들어, 마이크로 서비스 구조를 재구성하는 기술, 쿠버네티스 환경에서 컨테이너 기반 서비스 구조를 구현하는 기술 등은 본 발명의 출원 전 공지 기술을 이용할 수 있으며, 이들 공지 기술들 중 적어도 일부는 본 발명을 실시하는 데에 필요한 요소 기술로서 적용될 수 있다.For example, a technology for reconstructing a microservice structure, a technology for implementing a container-based service structure in a Kubernetes environment, etc. can utilize technologies known prior to the filing of the present invention, and at least some of these known technologies can be applied as element technologies necessary for implementing the present invention.
그러나 본 발명의 취지는 이들 공지 기술에 대한 권리를 주장하고자 하는 것이 아니며 공지 기술의 내용은 본 발명의 취지에 벗어나지 않는 범위 내에서 본 발명의 일부로서 포함될 수 있다.However, the purpose of the present invention is not to claim rights to these known technologies, and the contents of the known technologies may be included as part of the present invention within a scope that does not deviate from the purpose of the present invention.
이하, 첨부한 도면들을 참조하여, 본 발명의 바람직한 실시예를 보다 상세하게 설명하고자 한다. 본 발명을 설명함에 있어 전체적인 이해를 용이하게 하기 위하여 도면상의 동일한 구성요소에 대해서는 동일한 참조부호를 사용하고 동일한 구성요소에 대해서 중복된 설명은 생략한다.Hereinafter, with reference to the attached drawings, a preferred embodiment of the present invention will be described in more detail. In order to facilitate an overall understanding in describing the present invention, the same reference numerals are used for the same components in the drawings, and redundant descriptions of the same components are omitted.
도 1은 본 발명의 일 실시예에 따른 동적 워크로드 처리 방법이 적용되는 서비스 시나리오를 도시하는 개념도이다.FIG. 1 is a conceptual diagram illustrating a service scenario to which a dynamic workload processing method according to one embodiment of the present invention is applied.
도 1을 참조하면 서버(240)와 에지 디바이스(250) 사이에 에지 서버(210)들이 배치되며, 에지 서버(210)들 각각은 하나의 노드로서 서버(240)와 에지 디바이스(250) 사이에서 데이터 서비스를 위한 연산을 분담할 수 있다.Referring to FIG. 1, edge servers (210) are placed between a server (240) and an edge device (250), and each of the edge servers (210) can share operations for data services between the server (240) and the edge device (250) as a single node.
데이터 서비스의 사용자는 에지 디바이스(250)를 통하여 필요한 데이터 서비스를 제공받을 수 있고, 별도의 사용자 단말을 통하여 데이터 서비스를 제공받을 수 있다.Users of data services can receive necessary data services through edge devices (250) and can receive data services through separate user terminals.
에지 디바이스(250)는 데이터 소스가 될 수 있다. 예를 들어, 데이터 서비스에서는 에지 디바이스 A가 가진 데이터에 대한 연산 및 처리가 수행되어 사용자 측의 에지 디바이스 B로 서비스가 제공될 수 있다.An edge device (250) can be a data source. For example, in a data service, calculations and processing can be performed on data held by edge device A, and a service can be provided to edge device B on the user side.
이때 에지 디바이스 A가 가진 데이터에 대한 연산 및 처리는 에지 디바이스 A, 에지 디바이스 B, 및 에지 서버(210)들에 의하여 분담되어 처리될 수 있다.At this time, the calculation and processing of data held by edge device A can be divided and processed by edge device A, edge device B, and edge servers (210).
즉, 에지 디바이스(250)는 데이터 소스이면서 워크로드의 수행의 일부를 분담할 수 있는 수행 주체가 될 수 있다.That is, the edge device (250) can be a data source and also an execution entity that can share part of the execution of the workload.
이때 본 발명의 일 실시예에서는 에지 서버(210)들 중 복수개의 노드들이 하나의 클러스터(100)를 형성하고 클러스터(100) 내의 노드들이 역할을 분담하여 데이터 서비스를 처리하고, 데이터 서비스 처리에 필요한 워크로드를 동적으로 처리하고, 워크로드의 처리를 위한 스케줄링을 동적으로 수행할 수 있다.At this time, in one embodiment of the present invention, multiple nodes among edge servers (210) form a cluster (100), and nodes within the cluster (100) divide roles to process data services, dynamically process workloads required for data service processing, and dynamically perform scheduling for processing of workloads.
사물인터넷(IoT)의 출현으로, 상당한 양의 데이터가 에지(Edge) 네트워크에서 생성되고 있으며, 여기에서 생성되는 방대한 데이터를 처리하여 데이터 서비스를 사용자에게 제공하는 경우에 네트워크를 통한 데이터 전송 지연 및 비용이 대표적인 문제점으로 지적되고 있다. 이런 방대한 데이터를 클라우드로 전송하는 것은 대기 시간이 발생할 수 있는 높은 비용의 작업이고, 이로 인해 대기 시간이 짧은 서비스 시나리오는 실현 불가능하게 되는 경우가 생긴다. 이러한 문제를 해결하기 위해 에지 컴퓨팅 플랫폼 기술이 등장하였다.With the advent of the Internet of Things (IoT), a significant amount of data is being generated in the edge network, and when processing the massive data generated here to provide data services to users, the delay and cost of data transmission through the network are pointed out as representative problems. Transmitting such massive data to the cloud is a high-cost task that can result in latency, which sometimes makes service scenarios with short latency impossible. Edge computing platform technology has emerged to solve these problems.
종래의 에지 컴퓨팅 기술은 에지 디바이스의 하드웨어 리소스를 활용하여 클라우드 컴퓨팅을 보완하는 것을 목적으로 한다. 일반적으로 지연 시간 요구사항을 만족시키기 위해 네트워크의 에지 디바이스(250)에 더 가깝게 에지 컴퓨팅 디바이스를 더 가깝게 배치해서 프로세스 부하를 줄인다.Conventional edge computing technology aims to complement cloud computing by utilizing hardware resources of edge devices. Typically, edge computing devices are placed closer to the edge devices (250) of the network to reduce processing load in order to satisfy latency requirements.
하지만 에지 컴퓨팅을 통한 데이터 서비스를 처리하는 솔루션들은 전통적으로 클라우드 서버(240)에 워크로드를 집중시키는 방향으로 설계되었기 때문에 에지 디바이스(250) 상호 간에 요구되는 데이터 서비스를 처리하기 위하여 클라우드 서버에서 워크로드를 스케줄링하고, 할당하고 워크로드를 처리하는 과정은 에지 컴퓨팅의 취지를 충분히 살리지 못하는 비효율이 존재하였다.However, since solutions for processing data services through edge computing have traditionally been designed to concentrate workloads on cloud servers (240), the process of scheduling, allocating, and processing workloads on cloud servers to process data services required between edge devices (250) has been inefficient and has not fully fulfilled the purpose of edge computing.
종래 기술에서 전통적으로 빅데이터를 처리하기 위한 표준 솔루션으로 클라우드 서비스 공급자가 이용되고 있다. 클라우드 서비스는 본질적으로 전 세계 소수의 위치(예를 들면, 데이터 센터)에 과도하게 중앙 집중화되어 있다.In conventional technology, cloud service providers have traditionally been used as a standard solution for processing big data. Cloud services are inherently overly centralized in a small number of locations (e.g., data centers) around the world.
사물인터넷(IoT)의 출현으로 많은 데이터가 에지 디바이스(250)에서 생성이 되고 있는 현재, 지리적으로 분산된 시스템에서 빅데이터 처리를 수행하면서도 데이터 전송 지연 및 비용을 줄여야 하는 요구가 대두되고 있다.With the advent of the Internet of Things (IoT), a large amount of data is being generated from edge devices (250). There is an increasing need to reduce data transmission delay and costs while performing big data processing in geographically distributed systems.
일반적으로 에지 컴퓨팅 환경은 에지 디바이스(250)에 가까울수록 사용 가능한 리소스가 제한되고 단일 호스트에서 지정된 시점에 처리되는 데이터의 양이 작으므로 데이터 연산 및 스트리밍이 지속적으로 처리되고 효과적인 처리량을 달성하기 위해 워크로드 처리가 가능한 한 신속하게 이루어질 것이 요구된다.In general, edge computing environments are limited in available resources the closer they are to edge devices (250) and the amount of data processed at a given point in time on a single host is small, so data operations and streaming are continuously processed and workload processing is required to be performed as quickly as possible to achieve effective throughput.
워크로드가 가능한 한 신속하게 처리되기 위해서는 데이터 소스의 지역/위치, 즉 데이터의 로컬 정보를 고려한 워크로드 처리 메커니즘이 지원되어 동적으로 처리될 것이 요구된다.In order for the workload to be processed as quickly as possible, a workload processing mechanism that considers the region/location of the data source, i.e. local information of the data, is required to be supported and processed dynamically.
이에 비하여, 종래 기술은 사물인터넷의 출현으로 기하급수적인 에지 단말 수의 증가에 따른 데이터 서비스의 수요 증가, 이로 인한 빅데이터 처리를 위한 워크로드를 효율적으로 처리하지 못하는 문제점이 있었다.In comparison, conventional technologies have had the problem of not being able to efficiently process the workload for big data processing resulting from the exponential increase in demand for data services due to the advent of the Internet of Things and the exponential increase in the number of edge terminals.
종래 기술에서는 빅데이터 처리를 위해 클라우드의 서버(240)로 전송되는 데이터 양이 증가하여, 이로 인한 워크로드 과부하 발생 및 긴 대기 시간 발생의 문제점과 이로 인한 비용 증가가 문제점으로 대두되었다.In the conventional technology, the amount of data transmitted to the server (240) in the cloud for big data processing has increased, and problems such as workload overload and long waiting times have emerged, as well as increased costs due to this.
종래 기술에서는 대기시간이 짧고, 적은 리소스를 필요로 하며, 빈번하게 발생하는 서비스들에 대한 워크로드를 처리할 때에도 매번 컨테이너를 생성 및 삭제함으로써 불필요한 비용이 발생하는 문제점이 있었다.In the past, there was a problem that unnecessary costs were incurred by creating and deleting containers every time when processing workloads for services that had short waiting times, required few resources, and occurred frequently.
종래 기술에서는 서로 다른 프로그래밍 언어 또는 기술로 개발된 데이터 처리 방식을 통합적으로 처리하기 어려운 문제점이 있었다.In conventional technology, there was a problem in integrating and processing data processing methods developed using different programming languages or technologies.
이러한 종래 기술의 문제점을 해결하기 위해 본 발명의 실시예에서는 에지 디바이스(250)를 컨테이너 기반의 클러스터(100)로 구성하고, 이를 기반으로 효율적인 워크로드를 처리할 수 있는 시스템 및 장치를 제공할 수 있다.In order to solve the problems of the prior art, in an embodiment of the present invention, an edge device (250) is configured as a container-based cluster (100), and a system and device capable of efficiently processing a workload based on this can be provided.
본 발명의 실시예에서는 에지 디바이스(250)와 가까운 에지 서버(210)들로 이루어진 클러스터 개념을 도입하여 클러스터를 이용하여 워크로드를 동적으로 처리함에 있어서 효율을 높일 수 있다.In an embodiment of the present invention, a cluster concept consisting of edge servers (210) close to an edge device (250) is introduced to increase efficiency in dynamically processing a workload using the cluster.
본 발명의 실시예에서는 에지 서버(210)들이 동적 워크로드 처리 및 데이터 서비스에 필요한 연산을 분담하여 수행함으로써 서버(240) 측에 전달되는 데이터 및 정보의 양을 절감하고 전체 네트워크 내의 트래픽을 저감하며, 이로 인하여 낮은 비용으로 데이터 서비스를 제공할 수 있는 동적 워크로드 처리 시스템, 장치, 및 방법을 제공할 수 있다.In an embodiment of the present invention, edge servers (210) perform and share computations required for dynamic workload processing and data services, thereby reducing the amount of data and information transmitted to the server (240) side and reducing traffic within the entire network, thereby providing a dynamic workload processing system, device, and method capable of providing data services at a low cost.
위에서 언급한 문제점들을 해결하기 위해서 본 발명의 실시예에서는 데이터 소스의 지역/위치 정보를 고려하고, 장수명(Long-lived) 컨테이너(즉, 수명 주기가 서비스 종료 시 함께 소멸되지 않고 사용자가 지정한 요건에 만족할 때까지 살아서 동작하는 컨테이너)를 활용하여 워크로드 처리 과정을 수행하고, 컨테이너를 통해 서로 다른 데이터 소스와의 상호 작용을 처리할 수 있다In order to solve the problems mentioned above, the embodiment of the present invention considers the region/location information of the data source, utilizes a long-lived container (i.e., a container whose life cycle is not destroyed when the service ends but remains alive and operates until the user-specified requirements are satisfied) to perform the workload processing process, and can handle interactions with different data sources through the container.
본 발명의 실시예에서는 데이터 소스의 지역/위치 정보를 고려하여 효율적으로 데이터를 처리할 수 있는 컨테이너 기반의 동적 워크로드 처리 시스템, 장치, 및 방법을 제안할 수 있다.In an embodiment of the present invention, a container-based dynamic workload processing system, device, and method can be proposed that can efficiently process data by considering regional/location information of a data source.
본 발명의 실시예에서는 데이터 소스의 지역/위치 정보를 고려하여 효율적으로 데이터를 처리할 수 있는 에지 서버(210) 노드의 클러스터(100) 기반의 동적 워크로드 처리 시스템, 장치, 및 방법을 제안할 수 있다.In an embodiment of the present invention, a dynamic workload processing system, device, and method based on a cluster (100) of edge server (210) nodes capable of efficiently processing data by considering regional/location information of a data source can be proposed.
본 발명의 실시예에서는 에지 서버(210) 노드들이 스케줄링을 동적으로 재구성할 수 있다. 이때 스케줄링은 워크로드(workload)의 수행 순서, 수행 주체를 재구성하는 것을 의미할 수 있다.In an embodiment of the present invention, edge server (210) nodes can dynamically reconfigure scheduling. At this time, scheduling may mean reconfiguring the execution order and execution subject of a workload.
종래 기술은 이러한 스케줄링 과정이 클라우드의 메인 서버(240)에서 수행되기 때문에 필요한 정보가 메인 서버(240)까지 전달되고 워크로드의 수행 순서 및 수행 주체가 메인 서버(240)에 의하여 결정되므로 메인 서버(240)에 연산 부하가 집중되고 스케줄링의 결정에 걸리는 시간 지연이 존재하였다.In the conventional technology, since this scheduling process is performed on the main server (240) of the cloud, necessary information is transmitted to the main server (240) and the execution order and execution subject of the workload are determined by the main server (240), so the computational load is concentrated on the main server (240) and there is a time delay in determining the scheduling.
본 발명의 실시예에서는 local cluster를 설정하여 그 안에서 에지 서버(210)들을 관리함으로써 클라우드의 메인 서버(240)를 거치지 않고 에지 서버(210)들끼리 협력하여 스케줄링을 동적으로 재구성할 수 있다. 즉, 에지 서버(210)의 클러스터 내에서 워크로드의 수행 순서, 및/또는 수행 주체를 재구성할 수 있다.In an embodiment of the present invention, by setting up a local cluster and managing edge servers (210) within it, scheduling can be dynamically reconfigured through cooperation between edge servers (210) without going through the main server (240) of the cloud. That is, the execution order of the workload and/or the execution subject can be reconfigured within the cluster of edge servers (210).
이때 워크로드의 수행 주체는 에지 디바이스(250), 및/또는 에지 서버(210)일 수 있다. 에지 디바이스(250)는 데이터 소스이면서 워크로드의 수행의 일부를 분담할 수 있는 주체이고, 도 1의 서비스 시나리오에서는 데이터 서비스를 제공받는 사용자일 수도 있다.At this time, the subject performing the workload may be an edge device (250) and/or an edge server (210). The edge device (250) is a data source and a subject that can share part of the workload performance, and in the service scenario of Fig. 1, may be a user receiving a data service.
본 발명의 실시예에서는 스케줄링을 동적으로 재구성하는 것은 주로 에지 서버(210)에서 실행될 수 있다.In an embodiment of the present invention, dynamically reconfiguring scheduling can be primarily performed on an edge server (210).
한편 본 발명의 실시예에서는 클러스터를 long-live 컨테이너에 기반하여 관리하고 동적 스케줄링을 수행할 수 있는데 long-live 컨테이너를 이용함으로써 동적 스케줄링의 효율을 증대할 수 있다.Meanwhile, in an embodiment of the present invention, a cluster can be managed based on a long-live container and dynamic scheduling can be performed. By using a long-live container, the efficiency of dynamic scheduling can be increased.
도 2는 본 발명의 일 실시예에 따른 동적 워크로드 처리 장치 및 시스템을 도시하는 개념도이다.FIG. 2 is a conceptual diagram illustrating a dynamic workload processing device and system according to one embodiment of the present invention.
도 2를 참조하면, 복수개의 노드들로 구성된 클러스터(100) 내부의 구성 요소 및 상호 작용이 도시된다.Referring to FIG. 2, components and interactions within a cluster (100) composed of multiple nodes are illustrated.
후술할 제어 계층(110)에 대응하여 마스터 노드(220)가 설정될 수 있다. 마스터 노드(220)는 에지 서버(210) 중의 하나일 수 있다.A master node (220) may be set corresponding to the control layer (110) to be described later. The master node (220) may be one of the edge servers (210).
후술할 연산 계층(120) 및/또는 데이터 계층(130)에 대응하여 워커 노드(230)가 설정될 수 있다. 워커 노드(220)는 에지 서버(210) 중의 하나일 수 있다.A worker node (230) may be set corresponding to the operation layer (120) and/or data layer (130) to be described later. The worker node (220) may be one of the edge servers (210).
하나의 클러스터(100) 내에 어떤 노드가 포함되는 지, 어떤 노드가 마스터 노드(220)로 설정되고 어떤 노드가 워커 노드(230)로 설정되는 지가 클러스터(100) 내의 노드들의 상호협력적 동작에 의하여 동적으로 결정될 수 있다.Which nodes are included in a cluster (100), which node is set as a master node (220) and which node is set as a worker node (230), can be dynamically determined by the cooperative operation of the nodes within the cluster (100).
마스터 노드(220)가 가지는 속성 및 워커 노드(230)가 가지는 속성 중 적어도 일부는 종래 기술인 쿠버네티스(K8S, Kubernetes)) 플랫폼에서 개시된 사항을 참조할 수 있다. 그러나 본 발명의 사상은 쿠버네티스 플랫폼을 이용하는 실시예에 국한되지 않음은 당업자에게 자명하게 이해될 것이다.At least some of the properties of the master node (220) and the properties of the worker node (230) may refer to matters disclosed in the prior art Kubernetes (K8S, Kubernetes) platform. However, it will be clearly understood by those skilled in the art that the idea of the present invention is not limited to an embodiment using the Kubernetes platform.
본 발명의 실시예에서는 마스터 노드(220) 및 워커 노드(230)의 동적 설정에 필요한 속성이 추가적으로 설정될 수 있다. 마스터 노드(220) 및 워커 노드(230)의 지정은 영구적이지 않으며 상황 및 시스템의 요구에 응답하여 동적으로 변경될 수 있다. 또한 각 노드가 클러스터(100)에 포함되는 지 여부, 및 어떤 클러스터(100)에 포함되는 지도 영구적으로 결정되지 않으며 상황 및 시스템의 요구에 응답하여 동적으로 변경될 수 있다.In an embodiment of the present invention, properties required for dynamic configuration of the master node (220) and the worker node (230) may be additionally configured. The designation of the master node (220) and the worker node (230) is not permanent and may be dynamically changed in response to situations and system requirements. In addition, whether each node is included in a cluster (100) and which cluster (100) it is included in are not permanently determined and may be dynamically changed in response to situations and system requirements.
본 발명의 일 실시예에 따른 서비스를 제공하기 위한 워크로드를 동적으로 처리하는 동적 워크로드 처리 장치는, 적어도 하나 이상의 명령을 저장하는 메모리(memory); 및 적어도 하나 이상의 명령을 수행하는 프로세서(processor)를 포함하는 에지 서버(210) 중의 하나일 수 있다.A dynamic workload processing device for dynamically processing a workload for providing a service according to one embodiment of the present invention may be one of edge servers (210) including a memory storing at least one command; and a processor executing at least one command.
이때 에지 서버(210)의 프로세서는 적어도 하나 이상의 명령을 수행함으로써, 사용자 서비스 요청을 지원하기 위하여 필요한 태스크 정보를 획득하고, 태스크 정보에 대응하는 태스크를 처리하기 위한 데이터 소스의 로컬 정보를 획득하고, 로컬 정보에 기반하여 태스크 정보에 대응하는 태스크를 처리하기 위한 워크로드를 동적으로 처리한다.At this time, the processor of the edge server (210) obtains task information necessary to support a user service request by performing at least one command, obtains local information of a data source for processing a task corresponding to the task information, and dynamically processes a workload for processing a task corresponding to the task information based on the local information.
설명의 편의상 대상 노드가 속하는 클러스터를 제1 클러스터로 표시하고, 제1 클러스터 이외의 클러스터를 제2 클러스터로 구분하여 표시할 수 있다.For convenience of explanation, the cluster to which the target node belongs can be indicated as the first cluster, and clusters other than the first cluster can be indicated as the second cluster.
프로세서는, 워크로드를 동적으로 처리함에 있어서, 로컬 정보에 기반하여 워크로드의 순서, 및 워크로드의 수행 주체 중 적어도 하나 이상의 스케줄링을 동적으로 재구성할 수 있다. 워크로드의 수행 주체는 각 노드 자기 자신, 제1 클러스터 내의 다른 노드, 제2 클러스터의 노드, 및 에지 디바이스(250) 중 적어도 하나 이상을 포함할 수 있다.The processor, when dynamically processing a workload, can dynamically reconfigure the order of the workload and the scheduling of at least one of the workload execution entities based on local information. The workload execution entities can include at least one of each node itself, other nodes in the first cluster, nodes in the second cluster, and edge devices (250).
프로세서는, 사용자 서비스 요청을 지원하기 위하여 필요한 태스크 정보를 획득함에 있어서, 특정한 노드가 속하는 제1 클러스터 내의 제어 계층(110)으로부터 사용자 서비스 요청을 지원하기 위하여 필요한 태스크 정보를 요청하는 태스크 정보 요청을 수신할 수 있고, 태스크 정보 요청에 대응하는 사용자 서비스 요청을 분석하여 사용자 서비스 요청을 지원하기 위하여 필요한 태스크 정보를 획득할 수 있다.The processor may receive a task information request requesting task information necessary to support the user service request from a control layer (110) within a first cluster to which a specific node belongs, in order to obtain task information necessary to support the user service request, and may analyze the user service request corresponding to the task information request to obtain task information necessary to support the user service request.
프로세서는, 데이터 소스의 로컬 정보를 획득함에 있어서, 제1 클러스터 내의 데이터 계층(130)으로부터 태스크 정보에 대응하는 태스크를 처리하기 위한 데이터 소스의 로컬 정보를 획득할 수 있다. 데이터 소스는 에지 디바이스(250) 중의 하나일 수 있다. 데이터 소스는 데이터 서비스를 수행하는 데 필요한 데이터를 보유하고 있는 에지 디바이스(250)를 의미할 수 있다.The processor may obtain local information of a data source for processing a task corresponding to task information from a data layer (130) within the first cluster when obtaining local information of a data source. The data source may be one of the edge devices (250). The data source may mean an edge device (250) that holds data necessary for performing a data service.
프로세서는, 데이터 소스의 로컬 정보에 기반하여 데이터 소스 주변에 위치하는 제1 근접 동적 워크로드 처리 노드의 정보를 획득할 수 있다. 데이터 소스의 로컬 정보는 데이터 소스의 지리적 위치, 데이터 소스에 가까운 위치의 노드들의 정보를 포함할 수 있다. 데이터 소스에 가까운 위치의 노드들 중 데이터 서비스의 수행에 필요한 워크로드의 적어도 일부를 분담하기 위해 선택된 노드를 설명의 편의상 제1 근접 동적 워크로드 처리 노드라 칭할 수 있다. 데이터 소스에 가까운 위치의 노드들 중 제1 근접 동적 워크로드 처리 노드를 선택하는 과정은 제1 클러스터 내의 노드들의 상호 협력적 동작에 의하여 수행될 수 있다.The processor can obtain information about a first proximate dynamic workload processing node located around the data source based on local information about the data source. The local information about the data source can include a geographical location of the data source and information about nodes located close to the data source. A node selected to share at least a portion of a workload required for performing a data service among the nodes located close to the data source can be referred to as a first proximate dynamic workload processing node for convenience of explanation. The process of selecting the first proximate dynamic workload processing node among the nodes located close to the data source can be performed by cooperative operations of nodes within the first cluster.
제1 근접 동적 워크로드 처리 노드는 제1 클러스터 내에 포함될 수도 있고, 제1 클러스터 내에 포함되지 않을 수도 있다.The first proximity dynamic workload processing node may or may not be included within the first cluster.
프로세서는, 워크로드를 동적으로 처리함에 있어서, 데이터 소스의 로컬 정보 및 제1 근접 동적 워크로드 처리 노드의 정보에 기반하여 워크로드를 동적으로 처리할 수 있다.The processor can dynamically process the workload based on local information of the data source and information of the first proximate dynamic workload processing node when dynamically processing the workload.
프로세서는, 데이터 소스의 로컬 정보에 기반하여 데이터 소스 주변에 위치하는 제2 근접 동적 워크로드 처리 노드가 포함되는 제2 클러스터의 정보를 획득할 수 있다. 데이터 소스에 가까운 위치의 노드들 중 워크로드의 처리를 분담하면서 제1 클러스터가 아닌 제2 클러스터에 속하는 노드를 설명의 편의상 근접 제2 동적 워크로드로 칭할 수 있다.The processor can obtain information about a second cluster including second proximate dynamic workload processing nodes located around the data source based on local information about the data source. Nodes that belong to the second cluster, not the first cluster, and share the workload processing among nodes located close to the data source can be referred to as proximate second dynamic workload for convenience of explanation.
프로세서는, 워크로드를 동적으로 처리함에 있어서, 데이터 소스의 로컬 정보 및 제2 클러스터의 정보에 기반하여 워크로드를 동적으로 처리할 수 있다.The processor can dynamically process the workload based on local information of the data source and information from the second cluster when dynamically processing the workload.
프로세서는, 제2 근접 동적 워크로드 처리 노드가 복수개인 경우에, 제2 클러스터 내의 복수개의 제2 근접 동적 워크로드 처리 노드들이 태스크 정보에 대응하는 태스크를 분산 처리하도록 워크로드를 동적으로 스케줄링할 수 있다. 즉, 워크로드의 동적 처리는 데이터 소스 주변의 노드들 중 어느 하나에 의하여 분담될 수도 있고, 데이터 소스 주변의 노드들을 포함하는 클러스터(제2 클러스터)에 의하여 분담될 수도 있다. 제2 클러스터 내의 복수개의 노드들이 워크로드를 분담하여 처리하는 경우에는 태스크의 처리가 제2 클러스터 내의 복수개의 노드들에 분산 할당될 수 있다.The processor can dynamically schedule the workload so that, when there are multiple second adjacent dynamic workload processing nodes, the multiple second adjacent dynamic workload processing nodes within the second cluster distribute and process the task corresponding to the task information. That is, the dynamic processing of the workload may be shared by any one of the nodes surrounding the data source, or may be shared by a cluster (the second cluster) including the nodes surrounding the data source. When the multiple nodes within the second cluster distribute and process the workload, the processing of the task may be distributed and allocated to the multiple nodes within the second cluster.
본 발명의 다른 일 실시예에 따른 동적 워크로드 처리 시스템은 제1 클러스터 내의 제어 계층(110)에 대응하는 제1 동적 워크로드 처리 노드; 및 제1 클러스터 내의 연산 계층(120)에 대응하는 제2 동적 워크로드 처리 노드를 포함한다.A dynamic workload processing system according to another embodiment of the present invention includes a first dynamic workload processing node corresponding to a control layer (110) in a first cluster; and a second dynamic workload processing node corresponding to a computation layer (120) in the first cluster.
이때 제1 동적 워크로드 처리 노드가 사용자 서비스 요청을 수신하고, 제2 동적 워크로드 처리 노드가 사용자 서비스 요청을 지원하기 위하여 필요한 태스크 정보를 요청하는 태스크 정보 요청을 제2 동적 워크로드 처리 노드로 전달하고, 제2 동적 워크로드 처리 노드가 태스크 정보 요청에 대응하는 사용자 서비스 요청을 분석하여 사용자 서비스 요청을 지원하기 위하여 필요한 태스크 정보를 획득하고, 제2 동적 워크로드 처리 노드가 태스크 정보에 대응하는 태스크를 처리하기 위한 데이터 소스의 로컬 정보를 획득하고, 제2 동적 워크로드 처리 노드가 로컬 정보에 기반하여 태스크 정보에 대응하는 태스크를 처리하기 위한 워크로드를 동적으로 처리한다.At this time, a first dynamic workload processing node receives a user service request, a second dynamic workload processing node transmits a task information request requesting task information necessary to support the user service request to the second dynamic workload processing node, the second dynamic workload processing node analyzes the user service request corresponding to the task information request to obtain task information necessary to support the user service request, the second dynamic workload processing node obtains local information of a data source for processing a task corresponding to the task information, and the second dynamic workload processing node dynamically processes a workload for processing the task corresponding to the task information based on the local information.
제2 동적 워크로드 처리 노드가 워크로드를 동적으로 처리함에 있어서, 로컬 정보에 기반하여 워크로드의 순서, 및 워크로드의 수행 주체 중 적어도 하나 이상의 스케줄링을 동적으로 재구성할 수 있다.When the second dynamic workload processing node dynamically processes the workload, the order of the workload and the scheduling of at least one of the workload execution entities can be dynamically reconfigured based on local information.
제2 동적 워크로드 처리 노드가 데이터 소스의 로컬 정보를 획득함에 있어서, 제1 클러스터 내의 데이터 계층(130)에 대응하는 제1 근접 동적 워크로드 처리 노드로부터 태스크 정보에 대응하는 태스크를 처리하기 위한 데이터 소스의 로컬 정보를 획득할 수 있다.When the second dynamic workload processing node obtains local information of a data source, it can obtain local information of a data source for processing a task corresponding to task information from a first adjacent dynamic workload processing node corresponding to a data layer (130) within the first cluster.
제2 동적 워크로드 처리 노드는, 데이터 소스의 로컬 정보에 기반하여 데이터 소스 주변에 위치하는 제2 근접 동적 워크로드 처리 노드의 정보를 획득할 수 있다.The second dynamic workload processing node can obtain information about second nearby dynamic workload processing nodes located around the data source based on local information of the data source.
제2 동적 워크로드 처리 노드는, 워크로드를 동적으로 처리함에 있어서, 데이터 소스의 로컬 정보 및 제2 근접 동적 워크로드 처리 노드의 정보에 기반하여 워크로드를 동적으로 처리할 수 있다.The second dynamic workload processing node can dynamically process the workload based on local information of the data source and information of the second nearby dynamic workload processing node when dynamically processing the workload.
제2 동적 워크로드 처리 노드는, 데이터 소스의 로컬 정보에 기반하여 데이터 소스 주변에 위치하는 제2 근접 동적 워크로드 처리 노드가 포함되는 제2 클러스터의 정보를 획득할 수 있다.The second dynamic workload processing node can obtain information about a second cluster that includes second proximate dynamic workload processing nodes located around the data source based on local information of the data source.
제2 동적 워크로드 처리 노드는, 워크로드를 동적으로 처리함에 있어서, 데이터 소스의 로컬 정보 및 제2 클러스터의 정보에 기반하여 워크로드를 동적으로 처리할 수 있다.The second dynamic workload processing node can dynamically process the workload based on local information of the data source and information of the second cluster when dynamically processing the workload.
연산 계층(120)에 대응하는 제2 동적 워크로드 처리 노드는, 제2 근접 동적 워크로드 처리 노드가 복수개인 경우에, 제2 클러스터 내의 복수개의 제2 근접 동적 워크로드 처리 노드들이 태스크 정보에 대응하는 태스크를 분산 처리하도록 워크로드를 동적으로 스케줄링할 수 있다.The second dynamic workload processing node corresponding to the operation layer (120) can dynamically schedule the workload so that, when there are multiple second adjacent dynamic workload processing nodes, multiple second adjacent dynamic workload processing nodes within the second cluster can distribute and process tasks corresponding to task information.
제2 동적 워크로드 처리 노드가 복수개인 경우에, 제1 동적 워크로드 처리 노드의 동작 실패 여부, 및 업데이트된 로컬 정보 중 적어도 하나 이상에 기반하여 복수개의 제2 동적 워크로드 처리 노드 중 하나가 제1 동적 워크로드 처리 노드를 대체하여 제어 계층(110)에 대응될 수 있다.In the case where there are multiple second dynamic workload processing nodes, one of the multiple second dynamic workload processing nodes can correspond to the control layer (110) by replacing the first dynamic workload processing node based on whether the first dynamic workload processing node has failed to operate and at least one of the updated local information.
도 3은 본 발명의 일 실시예에 따른 동적 워크로드 처리 장치 및 시스템에서 실행되는 처리 방법을 도시하는 개념도이다.FIG. 3 is a conceptual diagram illustrating a processing method executed in a dynamic workload processing device and system according to one embodiment of the present invention.
이하의 본 발명의 실시예에 따르면, 컨테이너 기반의 동적 워크로드 처리 시스템이 개시된다. 마이크로 서비스 기반의 컨테이너 아키텍처에 따르면 사용자가 기여하는 코드와 프레임워크 제공 구성 요소가 결합되어 사용자가 지정 가능한 워크플로우 정의 및 실행이 가능하다. 즉, 각 디바이스 또는 하위의 코드가 서로 다른 프로그래밍 언어 또는 기술로 구현되더라도 서로 독립적으로 분리되어 실행 및 결합되기 때문에 본 발명의 실시예에 따른 시스템을 활용하면 효율적으로 통합(integration) 관리될 수 있다.According to the following embodiments of the present invention, a container-based dynamic workload processing system is disclosed. According to the microservice-based container architecture, user-contributed codes and framework-provided components are combined to enable user-specifiable workflow definition and execution. That is, even if each device or subordinate code is implemented in different programming languages or technologies, it can be executed and combined independently, so that efficient integration management can be achieved by utilizing the system according to the embodiments of the present invention.
도 3을 참조하면 본 발명의 일 실시예에 따른 동적 워크로드 처리 시스템의 클러스터(100)는 제어 계층(110), 연산 계층(120), 및 데이터 계층(130)을 포함한다.Referring to FIG. 3, a cluster (100) of a dynamic workload processing system according to one embodiment of the present invention includes a control layer (110), a computation layer (120), and a data layer (130).
제어 계층(110)의 노드는 연산 계층(120)의 노드에 태스크 수행 신호를 전달할 수 있다(S310).A node in the control layer (110) can transmit a task execution signal to a node in the operation layer (120) (S310).
연산 계층(120)의 노드는 데이터 계층(130)의 노드에 데이터를 푸시할 수 있다(S320).A node in the operation layer (120) can push data to a node in the data layer (130) (S320).
연산 계층(120)의 노드는 데이터 계층(130)의 노드로부터 데이터를 풀링할 수 있다(S330).Nodes in the operation layer (120) can pool data from nodes in the data layer (130) (S330).
연산 계층(120)의 노드는 제여 계층(110)의 노드에 태스크 완료 유무를 알릴 수 있다(S340).A node in the operation layer (120) can notify a node in the control layer (110) of whether a task has been completed (S340).
클러스터(100) 내에서 처리된 데이터 서비스는 외부 트래픽 네트워크(340)를 경유하여 클라우드 서버(240) 또는 외부의 사용자에게 제공될 수 있다. 이때 로드 밸런서(350)가 부분적으로 외부 트래픽 네트워크(340)를 경유하는 트래픽을 스케줄링할 수 있다.Data services processed within the cluster (100) can be provided to a cloud server (240) or an external user via an external traffic network (340). At this time, a load balancer (350) can partially schedule traffic passing through the external traffic network (340).
도 4는 본 발명의 일 실시예에 따른 동적 워크로드 처리 장치 및 시스템의 일부인 제어 계층(110)을 도시하는 개념도이다.FIG. 4 is a conceptual diagram illustrating a control layer (110) that is part of a dynamic workload processing device and system according to one embodiment of the present invention.
제어 계층(110)은 데이터 정의와 관련된 워크플로우의 실행에 관련된 결정을 수행할 수 있다. 워크플로우는 태스크 처리를 위한 일련의 순서를 의미한다. 제어 계층(110)은 오케스트레이터(112) 모듈을 포함하고, 오케스트레이터(112) 모듈은 전략 컨테이너(114)와 API 서버(116)를 포함할 수 있다.The control layer (110) can perform decisions related to the execution of a workflow related to data definition. The workflow means a series of sequences for task processing. The control layer (110) includes an orchestrator (112) module, and the orchestrator (112) module can include a strategy container (114) and an API server (116).
오케스트레이터(112)는 연산 계층(120)에서 수행되는 태스크를 코디네이션할 수 있다. 제어 계층(110)에서 새로운 데이터를 처리할 수 있다는 알림을 사용자 또는 클라이언트로부터 받으면, 오케스트레이터(112)는 현재 새로 들어온 데이터를 처리하기 위해 어떤 유형의 태스크를 호출해야 하는 지에 대해 결정할 수 있다.The orchestrator (112) can coordinate tasks performed in the operation layer (120). When the control layer (110) receives a notification from a user or client that new data can be processed, the orchestrator (112) can determine what type of task should be called to process the newly arrived data.
오케스트레이터(112)가 어떤 유형의 태스크를 호출해야 하는 지를 결정하고, 후술할 연산 계층(120)의 스마트 태스크 처리기(122) 모듈에서 태스크 로직 컨테이너(126)를 통해 태스크 종류 및 순서를 판단할 수 있다. 예를 들어, 세 개의 순차적 단계로 구성된 워크플로우에서 두 번째 단계에서 출력된 데이터 처리의 결과를 세 번째 단계의 인스턴스로 전달하는 경우가 위의 실시예에 해당될 수 있다.The orchestrator (112) can determine what type of task to call, and the task type and order can be determined through the task logic container (126) in the smart task processor (122) module of the operation layer (120) described later. For example, in a workflow consisting of three sequential steps, the case where the result of data processing output from the second step is transferred to an instance of the third step may correspond to the above embodiment.
오케스트레이터(112)는 중앙집중식이고 단일 오케스트레이터 인스턴스가 쿠버네티스 클러스터 내에 배포될 수 있다. 해당 오케스트레이터 인스턴스는 클러스터(100) 내의 모든 노드를 관장하는 역할을 수행할 수 있다. 오케스트레이터(112)는 전략 컨테이너(114)를 통해 단일 복제본 전략(single-replica strategy)를 추구할 수 있다. 본 발명의 일 실시예에서는 오케스트레이터(112)는 상태를 메모리에 저장하는 상태 저장 서비스(stateful service)이고, 멀티 복제본 전략을 사용하면 복제본 간의 상태를 저장, 공유를 위해 외부 솔루션과의 동기화 문제가 발생하기 때문에 단일 복제본 전략을 적용할 수 있다. 오케스트레이터(112)는 쿠버네티스 서비스를 통해 배포될 수 있다.The orchestrator (112) is centralized and a single orchestrator instance can be deployed within a Kubernetes cluster. The orchestrator instance can perform a role of managing all nodes within the cluster (100). The orchestrator (112) can pursue a single-replica strategy through a strategy container (114). In one embodiment of the present invention, the orchestrator (112) is a stateful service that stores the state in memory, and since a synchronization problem with an external solution for storing and sharing the state between replicas occurs when a multi-replica strategy is used, a single-replica strategy can be applied. The orchestrator (112) can be deployed through a Kubernetes service.
시스템 전체에서 동일한 유형의 태스크 처리 인스턴스가 있을 수 있다. 오케스트레이터(112)의 전략 컨테이너(114)는 데이터 처리를 수행할 인스턴스 중 하나를 선택하고, 기존의 로드밸런싱 알고리즘(라운드로빈, 랜덤, 최소 연결 등)에 의존하는 대신 사용자 지정 라우팅 결정 알고리즘을 사용할 수 있다. 그리고 데이터 위치, 현재 워크로드, 다양한 리소스 가용성, 비용 등을 고려해서 라우팅 전략에 대하여 결정할 수 있다. 모든 워크로드 대상에 대한 정보를 동기적으로 처리하려면 상당한 성능 저하 및 비용 발생 문제가 생길 수 있기 때문에 라우팅 결정 등의 과정은 사전 계산되거나 비동기적으로 계산될 수 있다.There may be instances of the same type of task processing throughout the system. The strategy container (114) of the orchestrator (112) selects one of the instances to perform data processing, and may use a custom routing decision algorithm instead of relying on a conventional load balancing algorithm (round robin, random, least connection, etc.). And the routing strategy may be decided by considering the data location, current workload, availability of various resources, cost, etc. Since synchronous processing of information about all workload targets may result in significant performance degradation and cost incurrence, the process of routing decisions, etc. may be pre-calculated or asynchronously calculated.
API 서버(116)는 종래 기술의 쿠버네티스의 API 서버 기능 및 구현에 필요한 사항을 부분적으로 채용할 수 있다. API 서버(116)는 분산 호스팅된 노드와 컴포넌트로부터 오는 요청을 전부 수신하고 클러스터(110) 내 노드들 간의 통신 그리고 외부 컴포넌트와 서로 통신할 수 있도록 HTTP API를 제공할 수 있다.The API server (116) may partially adopt the API server functions and implementation requirements of the prior art Kubernetes. The API server (116) may receive all requests from distributed hosted nodes and components and provide an HTTP API to enable communication between nodes within the cluster (110) and with external components.
도 5는 본 발명의 일 실시예에 따른 동적 워크로드 처리 장치 및 시스템의 일부인 연산 계층(120)을 도시하는 개념도이다.FIG. 5 is a conceptual diagram illustrating a computational layer (120) that is part of a dynamic workload processing device and system according to one embodiment of the present invention.
연산 계층(120)은 복수의 스마트 태스크 처리기(122) 모듈을 포함할 수 있다. 복수의 스마트 태스크 처리기(122) 모듈 각각은 제어 계층(110)의 오케스트레이터(112)에서 태스크 수행에 필요한 순서와 정의 정보를 전달받고, 태스크를 구성하고 워크플로우를 수행할 수 있다. 연산 계층(120)에서 실행 모델 순서는 다음과 같은 단순화되어 구현될 수 있다.The operation layer (120) may include a plurality of smart task processor (122) modules. Each of the plurality of smart task processor (122) modules may receive the order and definition information required for performing a task from the orchestrator (112) of the control layer (110), and may configure a task and perform a workflow. The execution model order in the operation layer (120) may be implemented in a simplified manner as follows.
스마트 태스크 처리기(122) 모듈은 에이전트 컨테이너(124)와 태스크 로직 컨테이너(126)를 포함할 수 있다. 에이전트 컨테이너(124)는 연산을 수행할 수 있고, 태스크 로직 컨테이너(126)는 오케스트레이터(112)에서 제공하는 명령을 논리적으로 분석할 수 있다. 이 둘은 항상 사이드카 배치 패턴으로 형성될 수 있고, 서로 다른 컨테이너로 분리되어 있을 수 있다.The smart task processor (122) module may include an agent container (124) and a task logic container (126). The agent container (124) may perform operations, and the task logic container (126) may logically analyze commands provided by the orchestrator (112). These two may always be formed as a sidecar deployment pattern and may be separated into different containers.
데이터 단위의 입력이 스마트 태스크 처리기(122)로 입력될 수 있다.Input of data units can be input to a smart task processor (122).
태스크 로직 컨테이너(126)에 의하여 데이터를 논리적 처리할 수 있다. 논리적 처리란 데이터의 종류, 및/또는 양 등에 대한 정보를 분석하는 작업을 의미할 수 있다. 태스크 로직 컨테이너(126)는 오케스트레이터(112)에서 정의해 준 특정 태스크에 해당 데이터를 입력값으로 지정하고 태스크를 수행할 수 있다.Data can be logically processed by the task logic container (126). Logical processing may mean a task of analyzing information about the type and/or amount of data. The task logic container (126) can designate the corresponding data as an input value for a specific task defined by the orchestrator (112) and perform the task.
처리된 태스크에 대한 결과(출력)는 하나 또는 복수개일 수 있다. 태스크의 처리 결과에 대한 알림은 에이전트 컨테이너(124)를 통해 오케스트레이터(126)에게 전달될 수 있다.There may be one or more results (outputs) for the processed task. Notification of the result of processing the task may be delivered to the orchestrator (126) through the agent container (124).
에이전트 컨테이너(124)는 입력 데이터 검색, 처리 로직 호출, 출력 데이터 처리와 같은 단일 태스크의 컨텍스트에서 실행을 조정할 수 있다. 에이전트 컨테이너(124)는 다음과 같은 인터페이스를 제공할 수 있다.An agent container (124) can coordinate execution in the context of a single task, such as retrieving input data, calling processing logic, and processing output data. The agent container (124) can provide the following interfaces.
에이전트 컨테이너(124)는 데이터 단위를 처리하기 위해 오케스트레이터(112)의 요청(태스크 수행 신호)을 수신할 수 있다.The agent container (124) can receive a request (task execution signal) from the orchestrator (112) to process a data unit.
에이전트 컨테이너(124)는 오케스트레이터(112)에서 받은 지침에 따라 후술할 데이터 계층(130)의 데이터 제어 매니저(132)와 통신해서 입력 데이터를 검색할 수 있다.The agent container (124) can retrieve input data by communicating with the data control manager (132) of the data layer (130) described below according to instructions received from the orchestrator (112).
에이전트 컨테이너(124)는 입력 데이터 정보를 기반으로 연산 수행을 위한 태스크 로직 컨테이너(126)를 호출 및 수행할 수 있다.The agent container (124) can call and perform a task logic container (126) for performing operations based on input data information.
연산 계층(120)에서 연산 수행이 완료되면 출력 데이터는 데이터 계층(130)의 데이터 제어 매니저(132)에게 전달(푸시)되고(S320), 새 데이터를 처리할 수 있게 되었음이 오케스트레이터(112)에게 통지될 수 있다.When the operation is completed in the operation layer (120), the output data is transferred (pushed) to the data control manager (132) of the data layer (130) (S320), and the orchestrator (112) can be notified that new data can be processed.
본 발명의 실시예에서 포함하는 연산 계층(120)은 프로그래밍 언어, OS 종류와 상관없이 어떠한 로직의 컨테이너든지 수행하고 처리할 수 있는 기능을 지원할 수 있다. 본 발명의 실시예에서는 입력 데이터와 출력 데이터에 대한 정의를 별도로 필요로 하지 않는다.The operation layer (120) included in the embodiment of the present invention can support a function that can perform and process any logic container regardless of programming language or OS type. The embodiment of the present invention does not require separate definitions for input data and output data.
도 6은 본 발명의 일 실시예에 따른 동적 워크로드 처리 장치 및 시스템의 일부인 데이터 계층(130)을 도시하는 개념도이다.FIG. 6 is a conceptual diagram illustrating a data layer (130) that is part of a dynamic workload processing device and system according to one embodiment of the present invention.
데이터 계층(130)은 데이터 제어 매니저(132) 모듈과 에지 스토리지(138) 모듈을 포함할 수 있다. 데이터 계층(130)은 데이터 처리에 관련된 모든 구성 요소를 포함할 수 있다. 예를 들어 데이터의 저장 및 검색, 필요한 워크로드에 대한 정보를 계산하기 위해 호스트(노드) 간에 데이터를 이동하는 기능이 포함될 수 있다. 데이터 전송 관리 컨테이너(134)는 RDMA(Remote Direct Memory Access) 방식을 통해 구현되고 이로 인하여 서로 다른 노드들 간에 데이터를 공유할 수 있다. RDMA는 하나의 노드의 메모리에 저장된 데이터를 전송할 때 CPU와 OS 커널의 개입없이 직접적으로 전송할 수 있는 방식이다. 해당 방식을 이용하면 워크플로우 실행에 필요한 각 단계 간의 데이터를 전달할 수 있다. 에지 스토리지(138)와의 모든 상호작용은 데이터 제어 매니저(132)를 통해 이루어질 수 있다.The data layer (130) may include a data control manager (132) module and an edge storage (138) module. The data layer (130) may include all components related to data processing. For example, it may include functions for storing and retrieving data, and moving data between hosts (nodes) to compute information about the required workload. The data transfer management container (134) is implemented through the RDMA (Remote Direct Memory Access) method, thereby allowing data to be shared between different nodes. RDMA is a method that allows data stored in the memory of one node to be transferred directly without intervention of the CPU and OS kernel. Using this method, data can be transferred between each step required for workflow execution. All interactions with the edge storage (138) can be performed through the data control manager (132).
데이터 전송 관리 컨테이너(134)는 태스크 수행에 필요한 입력 데이터 또는 출력 데이터를 검색하고 타 계층으로 전달하는 역할을 담당할 수 있다.The data transfer management container (134) may be responsible for retrieving input data or output data required to perform a task and transferring it to another layer.
에지 스토리지(138)는 클러스터(100) 내 모든 태스크와 관련된 정보들을 저장하는 저장소이며 파일시스템 방식으로 구동될 수 있다. 태스크와 태스크 사이의 입력데이터, 출력데이터, 노드 정보, 로컬 정보 등이 저장될 수 있다.Edge storage (138) is a storage that stores information related to all tasks within the cluster (100) and can be operated in a file system manner. Input data, output data, node information, local information, etc. between tasks can be stored.
데이터 전송 관리 컨테이너(136)는 데이터 푸시와 풀링을 관리할 수 있다. 에지 스토리지(138)를 통해 검색된 데이터는 파일에 저장되고 파일의 데이터만 에지 스토리지(138)로 업로드될 수 있다. 데이터 제어 매니저(132)는 쿠버네티스의 데몬셋 개념을 사용하여 배포될 수 있다. 클러스터(100)에 있는 모든 노드들은 로컬 스토리지를 활용하여 워크플로우에서 처리 중인 데이터를 저장할 수 있다. 데이터 전송 관리 컨테이너(136)가 데이터를 푸시/풀링하는 과정에 관여할 수 있다. 데이터 로컬 정보 관리 컨테이너(136)는 데이터에 대한 로컬 정보를 캡처하여 저장할 수 있다.The data transfer management container (136) can manage data pushing and pulling. Data retrieved through the edge storage (138) can be stored in a file, and only the data of the file can be uploaded to the edge storage (138). The data control manager (132) can be deployed using the DaemonSet concept of Kubernetes. All nodes in the cluster (100) can utilize local storage to store data being processed in the workflow. The data transfer management container (136) can be involved in the process of pushing/pulling data. The data local information management container (136) can capture and store local information about the data.
본 발명의 일 실시예에 따른 데이터 로컬 정보 관리 컨테이너(134)는 데이터 소스의 지역/위치 정보를 이용함으로써 얻어지는 이점을 더욱 효과적으로 활용하기 위하여 하드 링크 방식을 사용할 수 있다. 일반적으로 하드 링크는 복사보다 더 빠른 작업이기 때문에 디렉토리 간 데이터 이동에 소요되는 시간을 더욱 단축할 수 있다. 볼륨은 기본 노드 파일 시스템의 디렉터리를 기반으로 하고 서로 다른 디렉터리가 포드(pod)에 서로 다른 볼륨으로 마운트되더라도 하드 링크의 해결은 노드 파일 시스템에 위임될 수 있다. 이를 통해 하드 링크는 서로 다른 포드에 장착된 볼륨을 교차할 수 있다. 이와는 대조적으로 심볼릭 링크는 특정 경로를 해결하려고 시도함으로써 모든 포드가 동일한 경로 아래에 동일한 볼륨을 탑재하지 않는 한 서로 다른 볼륨을 교차할 수 없다.The data local information management container (134) according to one embodiment of the present invention may use a hard link method in order to more effectively utilize the advantage obtained by utilizing the region/location information of the data source. In general, since a hard link is a faster operation than a copy, the time required for moving data between directories can be further shortened. The volume is based on a directory of the basic node file system, and the resolution of the hard link can be delegated to the node file system even if different directories are mounted as different volumes to pods. This allows the hard link to cross the volumes mounted to different pods. In contrast, a symbolic link cannot cross the different volumes unless all pods mount the same volume under the same path by attempting to resolve a specific path.
데이터 로컬 정보 관리 컨테이너(136)는 서로 다른 구성 요소의 데이터 정보를 기반으로 워크로드 스케줄링에 필요한 물리적 로컬정보를 제공할 수 있다. 로컬 정보는 데이터가 발생하는 에지 디바이스(250)의 지리적 위치, 에지 디바이스(250)의 하드웨어 정보, 에지 디바이스(250)와 인접하고 있는 다른 에지 디바이스 간의 위치 정보, 연결 정보 등을 포함할 수 있다. 데이터 로컬 정보 관리 컨테이너(136)는 다음과 특성을 가질 수 있다.The data local information management container (136) can provide physical local information required for workload scheduling based on data information of different components. The local information can include the geographical location of the edge device (250) where data is generated, hardware information of the edge device (250), location information between the edge device (250) and other edge devices adjacent to it, connection information, etc. The data local information management container (136) can have the following characteristics.
데이터 로컬 정보 관리 컨테이너(136)는 라우팅 정보 제공을 위해 연산 계층(120)과 데이터 계층(130) 양쪽에 로컬 정보를 제공할 수 있다.The data local information management container (136) can provide local information to both the operation layer (120) and the data layer (130) to provide routing information.
데이터 로컬 정보 관리 컨테이너(136)에서 데이터 소스와의 물리적 거리에 대한 정보가 계산될 수 있고, 계산된 정보는 클러스터(100) 내 모든 노드들에게 공유될 수 있다.Information about the physical distance from a data source can be calculated in the data local information management container (136), and the calculated information can be shared with all nodes within the cluster (100).
데이터 로컬 정보 관리 컨테이너(136)는 호스트 노드의 정보를 수집할 수 있을 만큼 세분화된 정보 필드에 기반하여 로컬 정보를 관리할 수 있다.The data local information management container (136) can manage local information based on information fields that are detailed enough to collect information of the host node.
도 7은 본 발명의 일 실시예에 따른 동적 워크로드 처리 장치 및 시스템에서 계층 간 통신 프로토콜을 도시하는 개념도이다.FIG. 7 is a conceptual diagram illustrating an inter-layer communication protocol in a dynamic workload processing device and system according to one embodiment of the present invention.
도 7을 참조하면, 사용자(클라이언트) (260)는 제어 계층(110)으로 서비스 요청을 전달할 수 있다(S410).Referring to FIG. 7, a user (client) (260) can transmit a service request to the control layer (110) (S410).
제어 계층(110)으로부터 연산 계층(120)으로 태스크 정보 요청이 전달될 수 있다(S420).A task information request can be transmitted from the control layer (110) to the operation layer (120) (S420).
연산 계층(120)에서 서비스 요청에 대응할 수 있는 태스크 정보가 계산되고, 태스크 정보가 연산 계층(120)으로부터 제어 계층(110)으로 회신될 수 있다(S430).Task information that can respond to a service request is calculated in the operation layer (120), and the task information can be returned from the operation layer (120) to the control layer (110) (S430).
제어 계층(110)으로부터 데이터 계층(130)으로 태스크 정보에 관련되는 데이터 요청이 전달될 수 있다(S440). 데이터 계층(130)에서는 태스크 수행에 필요한 데이터를 연산 계층(120)으로 회신할 수 있다(S450). 연산 계층(120)에서 태스크 수행에 필요한 데이터에 기반하여 데이터 서비스를 위한 연산이 수행될 수 있다. 연산 계층(120)의 연산 후 서비스 정보가 연산 계층(120)으로부터 제어 계층(110)으로 전달될 수 있다(S460).A data request related to task information can be transmitted from the control layer (110) to the data layer (130) (S440). The data layer (130) can return data required for task execution to the operation layer (120) (S450). In the operation layer (120), an operation for a data service can be performed based on the data required for task execution. After the operation of the operation layer (120), service information can be transmitted from the operation layer (120) to the control layer (110) (S460).
제어 계층(110)으로부터 사용자(클라이언트)(260)로 서비스 지원 결과가 전달될 수 있다(S470).The service support result can be transmitted from the control layer (110) to the user (client) (260) (S470).
제어 계층(110)은 연산 계층(120)과 데이터 계층(130)과 연결되며 연산 계층(120)에서 필요로 하는 데이터가 데이터 계층(130)으로부터 연산 계층(120)으로 전달될 수 있도록 워크 플로우를 제어할 수 있다.The control layer (110) is connected to the operation layer (120) and the data layer (130) and can control the workflow so that data required by the operation layer (120) can be transferred from the data layer (130) to the operation layer (120).
연산 계층(120)은 서비스를 수행하기 위하여 필요한 태스크 정보를 연산할 수 있다. 예를 들어 사용자(260)가 요구한 데이터 서비스를 수행하기 위하여 필요한 태스크 정보는 A, B, C로 구성되어 있음을 연산 계층(120)이 분석하여 인식할 수 있다.The operation layer (120) can calculate task information necessary to perform a service. For example, the operation layer (120) can analyze and recognize that the task information necessary to perform a data service requested by a user (260) is composed of A, B, and C.
연산 계층(120)은 서비스를 수행하는 데에 필요한 태스크 정보 A, B, C를 제어 계층(110)으로 회신할 수 있다(S430). 제어 계층(110)은 태스크 정보 A, B, C에 관련되는 데이터 소스의 정보 등을 확인하기 위하여 데이터 계층(130)의 노드에 데이터 소스의 정보를 요청할 수 있고, 태스크 정보 A, B, C를 수행하기 위하여 필요한 데이터를 데이터 계층(130)으로 요청할 수 있다(S440).The operation layer (120) can return task information A, B, C required to perform the service to the control layer (110) (S430). The control layer (110) can request information on data sources from a node of the data layer (130) to confirm information on data sources related to task information A, B, C, and can request data required to perform task information A, B, C to the data layer (130) (S440).
데이터 계층(130)은 태스크 A, B, C를 수행하기 위하여 필요한 데이터를 연산 계층(120)으로 회신할 수 있다(S450). 이때 데이터 계층(130)은 태스크 A, B, C를 수행하기 위하여 필요한 데이터 소스의 로컬 정보를 연산 계층(120)으로 회신할 수 있다.The data layer (130) can return data required to perform tasks A, B, and C to the operation layer (120) (S450). At this time, the data layer (130) can return local information of the data source required to perform tasks A, B, and C to the operation layer (120).
연산 계층(120)은 수신된 데이터 및 데이터 소스의 로컬 정보에 기반하여, 태스크 A, B, C의 수행에 필요한 워크로드를 동적으로 스케줄링할 수 있고, 동적으로 처리할 수도 있다.The operation layer (120) can dynamically schedule and dynamically process the workload required to perform tasks A, B, and C based on the received data and local information of the data source.
예를 들어 최초의 분석 시 태스크 A, B, C의 순서로 수행되는 것이 최적이라고 분석되었으나, 데이터 및 데이터 소스의 로컬 정보를 수신한 이후 태스크 A, C, B의 순서로 수행되는 것이 최적이라고 동적으로 스케줄링할 수 있다.For example, if the initial analysis determines that it is optimal to perform tasks in the order of A, B, and C, it can be dynamically scheduled to optimally perform tasks in the order of A, C, and B after receiving local information about the data and data source.
도 7에서는 연산 계층(120)과 데이터 계층(130)이 완전히 분리된 실시예가 도시되었으나, 본 발명의 다른 실시예에서는 연산 계층(120)과 데이터 계층(130)에 동일한 노드가 할당되어 계층의 기능을 수행할 수도 있다.In FIG. 7, an embodiment in which the operation layer (120) and the data layer (130) are completely separated is illustrated, but in another embodiment of the present invention, the same node may be assigned to the operation layer (120) and the data layer (130) to perform the functions of the layers.
본 발명의 실시예에서는 제어 계층(110)의 노드와 연산 계층(120)/데이터 계층(130)의 노드는 구분되며, 제어 계층(110)의 노드는 데이터 처리 또는 연산을 직접 수행하지 않을 수 있다.In an embodiment of the present invention, nodes of the control layer (110) and nodes of the operation layer (120)/data layer (130) are distinguished, and nodes of the control layer (110) may not directly perform data processing or operations.
본 발명의 일 실시예에서 데이터 처리 과정을 데이터 계층(130)이 아닌 연산 계층(120)에서 수행하도록 데이터 계층(130)과 연산 계층(120)을 분리하면 다음과 같은 장점을 얻을 수 있다.In one embodiment of the present invention, by separating the data layer (130) and the operation layer (120) so that the data processing is performed in the operation layer (120) rather than the data layer (130), the following advantages can be obtained.
본 발명의 일 실시예에 따르면, 마이크로서비스와 같은 모듈형 아키텍처 기반으로 데이터 서비스가 가능한 동적 워크로드 장치 및 시스템을 구현할 수 있다. 이러한 마이크로 서비스의 모듈형 아키텍쳐에 의하여 반복적인 태스크가 처리될 수 있도록 재사용성이 촉진될 수 있다. 예를 들어, 이미지 처리를 수행하는 컨테이너를 여러 데이터 소스의 이미지를 처리하는데 재사용할 수 있고, 동일한 데이터 결과값을 다른 컴퓨팅 단계에서 재사용할 수 있다.According to one embodiment of the present invention, a dynamic workload device and system capable of providing data services based on a modular architecture such as microservices can be implemented. The modular architecture of such microservices can promote reusability so that repetitive tasks can be processed. For example, a container performing image processing can be reused to process images from multiple data sources, and the same data result value can be reused in other computing stages.
또한 본 발명의 일 실시예에 따르면 각 데이터 소스 또는 에지 디바이스(250)를 구현하는 프로그래밍 언어가 달라도 서로 구성 요소가 통신하는데 문제가 없다.In addition, according to one embodiment of the present invention, even if the programming languages implementing each data source or edge device (250) are different, there is no problem in the components communicating with each other.
도 8은 본 발명의 일 실시예에 따른 동적 워크로드 처리 장치 및 시스템에서 실행되는 동적 워크로드 처리 방법을 도시하는 동작 흐름도이다.FIG. 8 is a flowchart illustrating a dynamic workload processing method executed in a dynamic workload processing device and system according to one embodiment of the present invention.
본 발명의 일 실시예에 따른 동적 워크로드 처리 방법은, 제1 클러스터 내의 제어 계층(110)에 대응하는 제1 동적 워크로드 처리 노드를 경유하여 수신되는 사용자 서비스 요청을, 제1 클러스터 내의 연산 계층(120)에 대응하는 제2 동적 워크로드 처리 노드가 분석하여(S510) 사용자 서비스 요청을 지원하기 위하여 필요한 태스크 정보를 획득하는 단계(S520); 제2 동적 워크로드 처리 노드가 태스크 정보에 대응하는 태스크를 처리하기 위한 데이터 소스의 로컬 정보를 획득하는 단계(S530); 및 제2 동적 워크로드 처리 노드가 로컬 정보에 기반하여 태스크 정보에 대응하는 태스크를 처리하기 위한 워크로드를 동적으로 처리하는 단계(S540)를 포함한다. 이때 제1 동적 워크로드 처리 노드는 도 2의 마스터 노드(220)일 수 있고, 제2 동적 워크로드 처리 노드는 도 2의 워커 노드(230)일 수 있다.A dynamic workload processing method according to one embodiment of the present invention includes a step (S510) in which a second dynamic workload processing node corresponding to a computation layer (120) in the first cluster analyzes a user service request received via a first dynamic workload processing node corresponding to a control layer (110) in the first cluster to obtain task information necessary to support the user service request (S520); a step (S530) in which the second dynamic workload processing node obtains local information of a data source for processing a task corresponding to the task information; and a step (S540) in which the second dynamic workload processing node dynamically processes a workload for processing a task corresponding to the task information based on the local information. At this time, the first dynamic workload processing node may be a master node (220) of FIG. 2, and the second dynamic workload processing node may be a worker node (230) of FIG. 2.
제2 동적 워크로드 처리 노드가 워크로드를 동적으로 처리하는 단계에서, 로컬 정보에 기반하여 워크로드의 순서, 및 워크로드의 수행 주체 중 적어도 하나 이상의 스케줄링이 동적으로 재구성될 수 있다.At the stage where the second dynamic workload processing node dynamically processes the workload, the order of the workload and the scheduling of at least one of the workload execution entities can be dynamically reconfigured based on local information.
본 발명의 일 실시예에 따른 동적 워크로드 처리 방법은, 제1 동적 워크로드 처리 노드가 사용자 서비스 요청을 수신하는 단계(S410); 제1 동적 워크로드 처리 노드가 사용자 서비스 요청을 지원하기 위하여 필요한 태스크 정보를 요청하는 태스크 정보 요청을 제2 동적 워크로드 처리 노드로 전달하는 단계(S420)를 더 포함할 수 있다.A dynamic workload processing method according to one embodiment of the present invention may further include a step (S410) in which a first dynamic workload processing node receives a user service request; and a step (S420) in which the first dynamic workload processing node transmits a task information request requesting task information necessary to support the user service request to a second dynamic workload processing node.
제2 동적 워크로드 처리 노드가 데이터 소스의 로컬 정보를 획득하는 단계(S530)에서, 제1 클러스터 내의 데이터 계층(130)에 대응하는 제1 근접 동적 워크로드 처리 노드로부터 태스크 정보에 대응하는 태스크를 처리하기 위한 데이터 소스의 로컬 정보가 획득될 수 있다.In the step (S530) where the second dynamic workload processing node acquires local information of the data source, local information of the data source for processing the task corresponding to the task information can be acquired from the first adjacent dynamic workload processing node corresponding to the data layer (130) within the first cluster.
본 발명의 일 실시예에 따른 동적 워크로드 처리 방법은, 제2 동적 워크로드 처리 노드가 데이터 소스의 로컬 정보에 기반하여 데이터 소스 주변에 위치하는 제2 근접 동적 워크로드 처리 노드의 정보를 획득하는 단계를 더 포함할 수 있다.A method for processing a dynamic workload according to one embodiment of the present invention may further include a step of the second dynamic workload processing node acquiring information about a second nearby dynamic workload processing node located around the data source based on local information of the data source.
제2 동적 워크로드 처리 노드가 워크로드를 동적으로 처리하는 단계(S540)에서, 데이터 소스의 로컬 정보 및 제2 근접 동적 워크로드 처리 노드의 정보에 기반하여 워크로드가 동적으로 처리될 수 있다.In the step (S540) where the second dynamic workload processing node dynamically processes the workload, the workload can be dynamically processed based on local information of the data source and information of the second nearby dynamic workload processing node.
본 발명의 일 실시예에 따른 동적 워크로드 처리 방법은, 제2 동적 워크로드 처리 노드가 데이터 소스의 로컬 정보에 기반하여 데이터 소스 주변에 위치하는 제2 근접 동적 워크로드 처리 노드가 포함되는 제2 클러스터의 정보를 획득하는 단계를 더 포함할 수 있다.A method for processing a dynamic workload according to one embodiment of the present invention may further include a step of a second dynamic workload processing node acquiring information of a second cluster including a second proximate dynamic workload processing node located around a data source based on local information of the data source.
제2 동적 워크로드 처리 노드가 워크로드를 동적으로 처리하는 단계(S540)에서, 데이터 소스의 로컬 정보 및 제2 클러스터의 정보에 기반하여 워크로드가 동적으로 처리될 수 있다.In the step (S540) where the second dynamic workload processing node dynamically processes the workload, the workload can be dynamically processed based on local information of the data source and information of the second cluster.
제2 근접 동적 워크로드 처리 노드가 복수개인 경우에, 제2 동적 워크로드 처리 노드가 워크로드를 동적으로 처리하는 단계(S540)에서, 제2 동적 워크로드 처리 노드는, 제2 클러스터 내의 복수개의 제2 근접 동적 워크로드 처리 노드들이 태스크 정보에 대응하는 태스크를 분산 처리하도록 워크로드를 동적으로 스케줄링할 수 있다.In the case where there are multiple second proximity dynamic workload processing nodes, in the step (S540) where the second dynamic workload processing nodes dynamically process the workload, the second dynamic workload processing nodes can dynamically schedule the workload so that multiple second proximity dynamic workload processing nodes within the second cluster distribute and process tasks corresponding to the task information.
본 발명의 일 실시예에 따른 동적 워크로드 처리 방법은, 제2 동적 워크로드 처리 노드가 복수개인 경우에, 제1 동적 워크로드 처리 노드의 동작 실패 여부, 및 업데이트된 로컬 정보 중 적어도 하나 이상에 기반하여 복수개의 제2 동적 워크로드 처리 노드 중 하나를 제1 동적 워크로드 처리 노드를 대체하여 제어 계층(110)에 대응시키는 단계를 더 포함할 수 있다.A method for processing a dynamic workload according to one embodiment of the present invention may further include, in a case where there are a plurality of second dynamic workload processing nodes, a step of causing one of the plurality of second dynamic workload processing nodes to respond to the control layer (110) by replacing the first dynamic workload processing node based on whether the first dynamic workload processing node has failed to operate and at least one of updated local information.
도 9는 본 발명의 일 실시예에 따른 동적 워크로드 처리 장치 및 시스템에서 실행되는 동적 워크로드 스케줄링의 시나리오를 도시하는 개념도이다.FIG. 9 is a conceptual diagram illustrating a scenario of dynamic workload scheduling executed in a dynamic workload processing device and system according to one embodiment of the present invention.
도 9를 참조하면 연산 계층(120)에서 스마트 태스크 처리기(122) 모듈은 동일한 연산 유형의 복수개의 인스턴스가 병렬로 실행되도록 구현될 수 있다.Referring to FIG. 9, the smart task processor (122) module in the operation layer (120) can be implemented so that multiple instances of the same operation type are executed in parallel.
도 9에는 동일한 연산 유형의 복수개의 인스턴스로서 이미지 처리용 인스턴스가 개시된다.In Fig. 9, an image processing instance is disclosed as multiple instances of the same operation type.
도 10은 본 발명의 일 실시예에 따른 동적 워크로드 처리 장치 및 시스템에서 실행되는 동적 워크로드 스케줄링의 시나리오를 도시하는 개념도이다.FIG. 10 is a conceptual diagram illustrating a scenario of dynamic workload scheduling executed in a dynamic workload processing device and system according to one embodiment of the present invention.
도 10을 참조하면 연산 계층(120)에서 스마트 태스크 처리기(122) 모듈은 동일한 연산 유형의 복수 개의 인스턴스가 여러 호스트(노드)에 분산될 수 있다.Referring to FIG. 10, in the operation layer (120), the smart task processor (122) module can have multiple instances of the same operation type distributed across multiple hosts (nodes).
데이터 서비스를 수행하기 위한 태스크 1, 2, 3이 호스트(노드) 1, 2, ??. n에 분산되어 처리되도록 할당될 수 있다.Tasks 1, 2, and 3 for performing data services can be distributed and assigned to hosts (nodes) 1, 2, ??. n for processing.
도 11은 도 1 내지 도 10의 과정의 적어도 일부를 수행할 수 있는 일반화된 동적 워크로드 처리 장치, 동적 워크로드 처리 시스템 또는 컴퓨팅 시스템의 예시를 도시하는 개념도이다.FIG. 11 is a conceptual diagram illustrating an example of a generalized dynamic workload processing device, dynamic workload processing system, or computing system capable of performing at least a portion of the processes of FIGS. 1 to 10.
본 발명의 일 실시예에 따른 동적 워크로드 처리 방법의 적어도 일부의 과정은 도 11의 컴퓨팅 시스템(1000)에 의하여 실행될 수 있다.At least a part of the process of a dynamic workload processing method according to one embodiment of the present invention can be executed by the computing system (1000) of FIG. 11.
도 11을 참조하면, 본 발명의 일 실시예에 따른 컴퓨팅 시스템(1000)은, 프로세서(1100), 메모리(1200), 통신 인터페이스(1300), 저장 장치(1400), 입력 인터페이스(1500), 출력 인터페이스(1600) 및 버스(bus)(1700)를 포함하여 구성될 수 있다.Referring to FIG. 11, a computing system (1000) according to one embodiment of the present invention may be configured to include a processor (1100), a memory (1200), a communication interface (1300), a storage device (1400), an input interface (1500), an output interface (1600), and a bus (1700).
본 발명의 일 실시예에 따른 컴퓨팅 시스템(1000)은, 적어도 하나의 프로세서(processor)(1100) 및 상기 적어도 하나의 프로세서(1100)가 적어도 하나의 단계를 수행하도록 지시하는 명령어들(instructions)을 저장하는 메모리(memory)(1200)를 포함할 수 있다. 본 발명의 일 실시예에 따른 방법의 적어도 일부의 단계는 상기 적어도 하나의 프로세서(1100)가 상기 메모리(1200)로부터 명령어들을 로드하여 실행함으로써 수행될 수 있다.A computing system (1000) according to one embodiment of the present invention may include at least one processor (1100) and a memory (1200) storing instructions that instruct the at least one processor (1100) to perform at least one step. At least some steps of a method according to one embodiment of the present invention may be performed by the at least one processor (1100) loading and executing instructions from the memory (1200).
프로세서(1100)는 중앙 처리 장치(central processing unit, CPU), 그래픽 처리 장치(graphics processing unit, GPU), 또는 본 발명의 실시예들에 따른 방법들이 수행되는 전용의 프로세서를 의미할 수 있다.The processor (1100) may mean a central processing unit (CPU), a graphics processing unit (GPU), or a dedicated processor on which methods according to embodiments of the present invention are performed.
메모리(1200) 및 저장 장치(1400) 각각은 휘발성 저장 매체 및 비휘발성 저장 매체 중에서 적어도 하나로 구성될 수 있다. 예를 들어, 메모리(1200)는 읽기 전용 메모리(read only memory, ROM) 및 랜덤 액세스 메모리(random access memory, RAM) 중에서 적어도 하나로 구성될 수 있다.Each of the memory (1200) and the storage device (1400) may be configured with at least one of a volatile storage medium and a nonvolatile storage medium. For example, the memory (1200) may be configured with at least one of a read only memory (ROM) and a random access memory (RAM).
또한, 컴퓨팅 시스템(1000)은, 무선 네트워크를 통해 통신을 수행하는 통신 인터페이스(1300)를 포함할 수 있다.Additionally, the computing system (1000) may include a communication interface (1300) that performs communication via a wireless network.
또한, 컴퓨팅 시스템(1000)은, 저장 장치(1400), 입력 인터페이스(1500), 출력 인터페이스(1600) 등을 더 포함할 수 있다.Additionally, the computing system (1000) may further include a storage device (1400), an input interface (1500), an output interface (1600), etc.
또한, 컴퓨팅 시스템(1000)에 포함된 각각의 구성 요소들은 버스(bus)(1700)에 의해 연결되어 서로 통신을 수행할 수 있다.Additionally, each component included in the computing system (1000) may be connected to each other by a bus (1700) and communicate with each other.
본 발명의 컴퓨팅 시스템(1000)의 예를 들면, 통신 가능한 데스크탑 컴퓨터(desktop computer), 랩탑 컴퓨터(laptop computer), 노트북(notebook), 스마트폰(smart phone), 태블릿 PC(tablet PC), 모바일폰(mobile phone), 스마트 워치(smart watch), 스마트 글래스(smart glass), e-book 리더기, PMP(portable multimedia player), 휴대용 게임기, 네비게이션(navigation) 장치, 디지털 카메라(digital camera), DMB(digital multimedia broadcasting) 재생기, 디지털 음성 녹음기(digital audio recorder), 디지털 음성 재생기(digital audio player), 디지털 동영상 녹화기(digital video recorder), 디지털 동영상 재생기(digital video player), PDA(Personal Digital Assistant) 등일 수 있다.Examples of the computing system (1000) of the present invention may include a desktop computer, a laptop computer, a notebook, a smart phone, a tablet PC, a mobile phone, a smart watch, a smart glass, an e-book reader, a portable multimedia player (PMP), a portable game console, a navigation device, a digital camera, a digital multimedia broadcasting (DMB) player, a digital audio recorder, a digital audio player, a digital video recorder, a digital video player, a PDA (Personal Digital Assistant), etc.
본 발명의 실시예에 따른 방법의 동작은 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 프로그램 또는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의해 읽힐 수 있는 정보가 저장되는 모든 종류의 기록장치를 포함한다. 또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어 분산 방식으로 컴퓨터로 읽을 수 있는 프로그램 또는 코드가 저장되고 실행될 수 있다.The operation of the method according to an embodiment of the present invention can be implemented as a computer-readable program or code on a computer-readable recording medium. The computer-readable recording medium includes all types of recording devices that store information that can be read by a computer system. In addition, the computer-readable recording medium can be distributed over network-connected computer systems so that the computer-readable program or code can be stored and executed in a distributed manner.
또한, 컴퓨터가 읽을 수 있는 기록매체는 롬(rom), 램(ram), 플래시 메모리(flash memory) 등과 같이 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치를 포함할 수 있다. 프로그램 명령은 컴파일러(compiler)에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터(interpreter) 등을 사용해서 컴퓨터에 의해 실행될 수 있는 고급 언어 코드를 포함할 수 있다.Additionally, the computer-readable recording medium may include hardware devices specifically configured to store and execute program instructions, such as ROM, RAM, flash memory, etc. The program instructions may include not only machine language codes produced by a compiler, but also high-level language codes that can be executed by the computer using an interpreter, etc.
본 발명의 일부 측면들은 장치의 문맥에서 설명되었으나, 그것은 상응하는 방법에 따른 설명 또한 나타낼 수 있고, 여기서 블록 또는 장치는 방법 단계 또는 방법 단계의 특징에 상응한다. 유사하게, 방법의 문맥에서 설명된 측면들은 또한 상응하는 블록 또는 아이템 또는 상응하는 장치의 특징으로 나타낼 수 있다. 방법 단계들의 몇몇 또는 전부는 예를 들어, 마이크로프로세서, 프로그램 가능한 컴퓨터 또는 전자 회로와 같은 하드웨어 장치에 의해(또는 이용하여) 수행될 수 있다. 몇몇의 실시 예에서, 가장 중요한 방법 단계들의 적어도 하나 이상은 이와 같은 장치에 의해 수행될 수 있다.While some aspects of the invention have been described in the context of an apparatus, they may also represent a description of a corresponding method, wherein a block or device corresponds to a method step or a feature of a method step. Similarly, aspects described in the context of a method may also be represented as a feature of a corresponding block or item or a corresponding device. Some or all of the method steps may be performed by (or using) a hardware device, such as, for example, a microprocessor, a programmable computer or an electronic circuit. In some embodiments, at least one or more of the most important method steps may be performed by such a device.
실시예들에서, 프로그램 가능한 로직 장치(예를 들어, 필드 프로그래머블 게이트 어레이)가 여기서 설명된 방법들의 기능의 일부 또는 전부를 수행하기 위해 사용될 수 있다. 실시예들에서, 필드 프로그래머블 게이트 어레이(field-programmable gate array)는 여기서 설명된 방법들 중 하나를 수행하기 위한 마이크로프로세서(microprocessor)와 함께 작동할 수 있다. 일반적으로, 방법들은 어떤 하드웨어 장치에 의해 수행되는 것이 바람직하다.In embodiments, a programmable logic device (e.g., a field-programmable gate array) may be used to perform some or all of the functions of the methods described herein. In embodiments, a field-programmable gate array may operate in conjunction with a microprocessor to perform one of the methods described herein. In general, the methods are preferably performed by some hardware device.
이상 본 발명의 바람직한 실시 예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.Although the present invention has been described above with reference to preferred embodiments thereof, it will be understood by those skilled in the art that various modifications and changes may be made to the present invention without departing from the spirit and scope of the present invention as set forth in the claims below.
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| KR1020220148945AKR102814160B1 (en) | 2022-11-09 | 2022-11-09 | Container-based dynamic workload processing system, apparatus and method considering data local information |
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| KR1020220148945AKR102814160B1 (en) | 2022-11-09 | 2022-11-09 | Container-based dynamic workload processing system, apparatus and method considering data local information |
| Publication Number | Publication Date |
|---|---|
| KR20240067674A KR20240067674A (en) | 2024-05-17 |
| KR102814160B1true KR102814160B1 (en) | 2025-05-28 |
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| KR1020220148945AActiveKR102814160B1 (en) | 2022-11-09 | 2022-11-09 | Container-based dynamic workload processing system, apparatus and method considering data local information |
| Country | Link |
|---|---|
| KR (1) | KR102814160B1 (en) |
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US8887056B2 (en)* | 2012-08-07 | 2014-11-11 | Advanced Micro Devices, Inc. | System and method for configuring cloud computing systems |
| US11184236B2 (en)* | 2019-04-30 | 2021-11-23 | Intel Corporation | Methods and apparatus to control processing of telemetry data at an edge platform |
| KR102432807B1 (en) | 2019-11-18 | 2022-08-16 | 한국전자통신연구원 | Apparatus and method for reconfiguring microservice architecture |
| KR102260549B1 (en)* | 2020-09-10 | 2021-06-04 | 한국전자기술연구원 | Load balancing method based on resource utilization and geographic location in a associative container environment |
| Title |
|---|
| 한국공개특허 제10-2021-0149576호(2021.12.09.) 1부.* |
| 한국등록특허 제10-1614052호(2016.04.20.) 1부.* |
| 한국등록특허 제10-2260549호(2021.06.04.) 1부.* |
| Publication number | Publication date |
|---|---|
| KR20240067674A (en) | 2024-05-17 |
| Publication | Publication Date | Title |
|---|---|---|
| US11159411B2 (en) | Distributed testing service | |
| US11025711B2 (en) | Data centric resource management for edge cloud systems | |
| US10733019B2 (en) | Apparatus and method for data processing | |
| EP3357006B1 (en) | Workflow service using state transfer | |
| US11991094B2 (en) | Metadata driven static determination of controller availability | |
| CN114625479B (en) | Cloud-edge collaborative application management method and corresponding device in edge computing | |
| CN113553178A (en) | Task processing method, device and electronic device | |
| KR20250032986A (en) | Cluster management method and apparatus, electronic device, and storage medium | |
| US12093749B2 (en) | Load balancing of on-premise infrastructure resource controllers | |
| US11082520B2 (en) | Process broker for executing web services in a system of engagement and system of record environments | |
| US11848983B2 (en) | Remotely discover and map a network resource model in a cloud environment | |
| CN114296953B (en) | Multi-cloud heterogeneous system and task processing method | |
| US20240291895A1 (en) | Distributed cloud system, and data processing method and storage medium of distributed cloud system | |
| CN117194003A (en) | Scheduling method, device, equipment, medium and program product for container deployment unit | |
| KR102814160B1 (en) | Container-based dynamic workload processing system, apparatus and method considering data local information | |
| US20230418681A1 (en) | Intelligent layer derived deployment of containers | |
| US12120205B2 (en) | Communication protocol for a distributed event streaming platform | |
| US20240069979A1 (en) | Container scheduling | |
| US11755297B2 (en) | Compiling monoglot function compositions into a single entity | |
| US20180341475A1 (en) | Just In Time Deployment with Package Managers | |
| CN114969199A (en) | Method, device and system for processing remote sensing data and storage medium | |
| US11797342B2 (en) | Method and supporting node for supporting process scheduling in a cloud system | |
| CN113296913A (en) | Data processing method, device and equipment based on single cluster and storage medium | |
| US12197461B2 (en) | Distributed function data transformation system | |
| US20250321783A1 (en) | Provisioning Tasks Across a Plurality of Clusters Based on Priority and Geographic Proximity |
| Date | Code | Title | Description |
|---|---|---|---|
| PA0109 | Patent application | Patent event code:PA01091R01D Comment text:Patent Application Patent event date:20221109 | |
| PA0201 | Request for examination | ||
| PG1501 | Laying open of application | ||
| E902 | Notification of reason for refusal | ||
| PE0902 | Notice of grounds for rejection | Comment text:Notification of reason for refusal Patent event date:20240722 Patent event code:PE09021S01D | |
| E701 | Decision to grant or registration of patent right | ||
| PE0701 | Decision of registration | Patent event code:PE07011S01D Comment text:Decision to Grant Registration Patent event date:20250331 | |
| PG1601 | Publication of registration |