KR20230099983A - 서비스 배포 플랫폼 서버 및 이를 이용한 서비스 배포 방법 - Google Patents

서비스 배포 플랫폼 서버 및 이를 이용한 서비스 배포 방법 Download PDF

Info

Publication number
KR20230099983A
KR20230099983A KR1020210189462A KR20210189462A KR20230099983A KR 20230099983 A KR20230099983 A KR 20230099983A KR 1020210189462 A KR1020210189462 A KR 1020210189462A KR 20210189462 A KR20210189462 A KR 20210189462A KR 20230099983 A KR20230099983 A KR 20230099983A
Authority
KR
South Korea
Prior art keywords
edge
service
worker node
service application
platform server
Prior art date
Application number
KR1020210189462A
Other languages
English (en)
Inventor
문성훈
김무형
김희진
Original Assignee
주식회사 케이티
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 케이티 filed Critical 주식회사 케이티
Priority to KR1020210189462A priority Critical patent/KR20230099983A/ko
Publication of KR20230099983A publication Critical patent/KR20230099983A/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/34Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters 
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/06Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/51Discovery or management thereof, e.g. service location protocol [SLP] or web services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/55Push-based network services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources

Abstract

본 발명은 서비스 배포 플랫폼 서버 및 이를 이용한 서비스 배포 방법에 관한 것으로, 본 발명의 일 실시예에 의한 서비스 배포 플랫폼 서버는 서비스 어플리케이션을 등록하고, 사용자의 입력에 따라 상기 서비스 어플리케이션을 엣지 워커 노드로 배포하도록 요청하는 SDP 포탈(Service Delivery Platform portal); 상기 SDP 포탈과 연동하여, 상기 엣지 워커 노드로 상기 서비스 어플리케이션을 배포하는 API(Application Programming inferface) 기능을 수행하는 MEP 매니저(Mobile Edge platform manager); 상기 SDP 포탈에 등록된 각각의 서비스 어플리케이션들에 대응하는 컨테이너 이미지(container image) 및 매니페스트(manifest) 파일을 저장하는 중앙 레지스트리(central registry); 및 복수의 엣지 워커 노드 중 상기 서비스 어플리케이션을 배포할 타겟 엣지 워커 노드를 선택하여, 상기 MEP 매니저로 제공하는 스케줄러(scheduler)를 포함하는 할 수 있다.

Description

서비스 배포 플랫폼 서버 및 이를 이용한 서비스 배포 방법 {Service delivery platform server and service delivery method using the same}
본 발명은 분산된 엣지 컴퓨팅 환경에서 원격으로 서비스 어플리케이션 등을 배포하는 서비스 배포 플랫폼 서버 및 이를 이용한 서비스 배포 방법에 관한 것이다.
기존의 텔코(telco) 인프라는 중앙 국사에 네트워크 기능이 집증되어 있는 형태로 구축하였다. 이는 운용 및 관제 측면에서 유리한 점이 있었으나, 5G 통신망에서의 저지연, 대용량 트래픽 전송, 초연결성 제공 등의 특성을 지원하기에는 한계가 있는 구조에 해당한다.
반면에, CP(Control Plane)와 UP(User Plane)을 분리하는 구조가 가능해지면서 데이터 전송 측면에서 유리한 형태로 네트워크 기능을 자원 최적화하여 분산하는 형태의 구조가 개발되었으며, 5G SA(StandAlone) 네트워크 인프라의 경우 엣지로 전진 배치화하여 구축하는 방안이 제시되고 있다. 또한, 오늘날에는 기업 고객이나 정부 기관에 전용 모바일 네트워크 장비를 구축해 주는 구축형 사업이 진행되고 있으며, 5G 자가망 또는 5G 특화망으로 불리는 5G 비공인 대역(Non-public Network)을 활용한 비통신사들의 전용 무선 네트워크 인프라를 구축하는 산업계의 움직임도 나타나고 있다.
이러한 자가망 환경은 5G 네트워크 기능이 기업 또는 정부 기관의 온프레미스(On-premise)에 구축된 사설 클라우드(private cloud) 또는 MEC(Mobile Edge Computing) 인프라 상에 배포 및 설치되어 운용될 것인데, 이러한 구축 환경에서 엔지니어를 투입하여 설치하고, 지속적으로 관리, 유지 보수 등을 하기에는 많은 시간과 비용이 발생하는 등의 문제점이 존재한다.
대한민국 공개특허공보 제10-2021-0098724호
본 발명은, 개발자가 네트워크 기능 등 서비스 어플리케이션을 개발하여 테스트베드 환경에서 기능 및 성능 검증을 수행한 이후, 원격으로 다수 사이트, 다수 고객사에 분산되어 있는 상용 인프라 환경으로 용이하게 배포할 수 있는 서비스 배포 플랫폼 서버 및 이를 이용한 서비스 배포 방법을 제공하기 위한 것이다.
본 발명은, 엣지 인프라 환경에서 클라우드 기반(cloud native) 무선 네트워크 기능의 원격 배포 및 관리를 제공할 수 있는 서비스 배포 플랫폼 서버 및 이를 이용한 서비스 배포 방법을 제공하기 위한 것이다.
본 발명은, 컨테이너 이미지화되어 있는 네트워크 기능 등 서비스 어플리케이션에 대한 관리를 수행할 수 있는 레지스트리 운영 구조와, 전송시 전송 딜레이를 줄일 수 있는 스케줄링 알고리즘을 포함하는 서비스 배포 플랫폼 서버 및 이를 이용한 서비스 배포 방법을 제공하기 위한 것이다.
본 발명의 일 실시예에 의한 서비스 배포 플랫폼 서버는, 서비스 어플리케이션을 복수의 엣지 워커 노드(edge worker node)로 원격 배포하는 서비스 배포 플랫폼 서버에 관한 것으로, 서비스 어플리케이션을 등록하고, 사용자의 입력에 따라 상기 서비스 어플리케이션을 엣지 워커 노드로 배포하도록 요청하는 SDP 포탈(Service Delivery Platform portal); 상기 SDP 포탈과 연동하여, 상기 엣지 워커 노드로 상기 서비스 어플리케이션을 배포하는 API(Application Programming inferface) 기능을 수행하는 MEP 매니저(Mobile Edge platform manager); 상기 SDP 포탈에 등록된 각각의 서비스 어플리케이션에 대응하는 컨테이너 이미지(container image) 및 매니페스트(manifest) 파일을 저장하는 중앙 레지스트리(central registry); 및 상기 복수의 엣지 워커 노드 중 상기 서비스 어플리케이션을 배포할 타겟 엣지 워커 노드를 선택하여, 상기 MEP 매니저로 제공하는 스케줄러(scheduler)를 포함할 수 있다.
여기서 상기 SDP 포탈은, 등록된 서비스 어플리케이션들에 대한 조회, 수정 및 삭제 중 적어도 어느 하나를 수행하는 서비스 목록 관리 기능과, 상기 엣지 워커 노드에 기 설치된 서비스 어플리케이션들에 대한 업데이트, 롤백(roll back) 및 삭제 중 적어도 어느 하나를 수행하는 배포 관리 기능을 수행할 수 있다.
여기서 상기 스케줄러는, 상기 서비스 어플리케이션의 컨테이너 이미지 정보와 요구 자원량 정보를 이용하여, 상기 타겟 엣지 워커 노드를 선택할 수 있다.
여기서 상기 스케줄러는, 상기 배포하는 컨테이너 이미지에 포함되는 레이어(layer)와, 각각의 엣지 워커 노드에 기 저장된 컨테이너 이미지들의 레이어를 비교하여, 중복된 레이어가 가장 많이 저장된 엣지 워커 노드를 상기 타겟 엣지 워커 노드로 선택할 수 있다.
여기서 상기 스케줄러는, 상기 중복된 레이어의 개수가 동일한 엣지 워커 노드가 복수개 존재하는 경우, 상기 엣지 워커 노드들 중에서 유휴자원이 가장 많은 엣지 워커 노드를 상기 타겟 엣지 워커 노드로 선택할 수 있다.
여기서 상기 중앙 레지스트리는, 상기 개발자 서버의 개발 레지스트리로부터 푸시(push)된 상기 서비스 어플리케이션의 컨테이너 이미지 및 매니페스트 파일을 수신하여 저장할 수 있다.
여기서 상기 중앙 레지스트리는, 상기 중앙 레지스트리에 접근하는 액세스에 대하여, 상기 컨테이너 이미지에 대한 업로드 또는 다운로드 권한을 확인하는 인증부; 상기 컨테이너 이미지를 레이어(overlay file system) 구조로 저장하는 이미지 저장부; 및 상기 컨테이너 이미지에 대응하는 상기 매니페스트 파일을 저장하는 매니페스트 저장부를 포함할 수 있다.
여기서 상기 MEP 매니저는, 상기 타겟 엣지 워커 노드에 따라, 상기 매니페스트 파일의 노드 셀렉터(node selector) 또는 노드 어피니티(node affinity)의 키값을 수정하여, 상기 서비스 어플리케이션을 배포할 엣지 워커 노드를 특정할 수 있다.
여기서, 상기 MEP 매니저는 상기 서비스 어플리케이션의 컨테이너를 생성하도록 상기 타겟 엣지 워커 노드와 API 통신을 수행하고, 상기 중앙 레지스트리는 상기 타겟 엣지 워커 노드의 풀(pull) 요청에 대응하여 상기 컨테이너 이미지를 제공할 수 있다.
여기서, 본 발명의 일 실시예에 의한 서비스 배포 플래폼 서버는, 상기 엣지 워커 노드의 자원사용량 또는 상기 서비스 어플리케이션의 서비스 상태 정보를 취합하는 모니터링부를 더 포함할 수 있다.
여기서 상기 엣지 워커 노드는, 복수의 워커 노드(worker node)들을 포함하는 엣지 클러스터(edge cluster)를 포함하고, 상기 엣지 클러스터는 상기 MEP 매니저와 연동하여, 상기 서비스 어플리케이션을 상기 워커 노드에 배포하는 엣지 클러스터 마스터(edge cluster master); 상기 중앙 레지스트리와의 미러링(mirroring)을 통해 수신한 컨테이너 이미지 및 매니페스트 파일을 저장하는 엣지 레지스트리; 및 스케줄링 알고리즘에 따라, 상기 워커 노드 중 상기 서비스 어플리케이션을 배포할 타겟 워커 노드를 선택하여, 상기 엣지 클러스터 마스터로 제공하는 엣지 스케쥴러(edge scheduler)를 포함할 수 있다.
본 발명의 일 실시예에 의한 서비스 배포 방법은, 서비스 어플리케이션을 복수의 엣지 워커 노드(edge worker node)로 원격 배포하는 서비스 배포 플랫폼 서버의 서비스 배포 방법에 관한 것으로, 서비스 어플리케이션에 대응하는 컨테이너 이미지(container image) 및 매니페스트(manifest) 파일을 수신하여 저장하는 단계; 상기 서비스 어플리케이션을 엣지 워커 노드로 배포하도록 요청하는 사용자의 입력을 수신하는 단계; 상기 복수의 엣지 워커 노드 중 상기 서비스 어플리케이션을 배포할 타겟 엣지 워커 노드를 선택하는 단계; 및 상기 타겟 엣지 워커 노드로 상기 서비스 어플리케이션을 배포하는 API(Application Programming inferface) 기능을 수행하는 단계를 포함할 수 있다.
본 발명의 일 실시예에 의하면, 하드웨어와 결합되어 상기 서비스 배포 방법을 수행하기 위하여 매체에 저장된 컴퓨터 프로그램이 존재할 수 있다.
덧붙여 상기한 과제의 해결수단은, 본 발명의 특징을 모두 열거한 것이 아니다. 본 발명의 다양한 특징과 그에 따른 장점과 효과는 아래의 구체적인 실시형태를 참조하여 보다 상세하게 이해될 수 있을 것이다.
본 발명의 일 실시예에 의한 서비스 배포 플랫폼 서버 및 이를 이용한 서비스 배포 방법에 의하면, 개발자가 서비스 어플리케이션을 개발하여 테스트베드 환경에서 기능 및 성능 검증을 수행한 이후, 원격으로 다수 사이트, 다수 고객사에 분산되어 있는 상용 인프라 환경으로 용이하게 배포하는 것이 가능하다.
본 발명의 일 실시예에 의한 서비스 배포 플랫폼 서버 및 이를 이용한 서비스 배포 방법에 의하면, 서비스 어플리케이션을 API 통신을 이용하여 개발자 환경에서 상용 환경으로 용이하게 배포, 업데이트, 롤백을 수행하는 것이 가능하다.
본 발명의 일 실시예에 의한 서비스 배포 플랫폼 서버 및 이를 이용한 서비스 배포 방법에 의하면, 엣지 서비스의 저지연 특성을 손실하지 않도록, 서비스 어플리케이션에 대한 배포시 전송지연을 절감할 수 있는 스케줄링을 제공하는 것이 가능하다.
본 발명의 일 실시예에 의한 서비스 배포 플랫폼 서버 및 이를 이용한 서비스 배포 방법에 의하면, 워커 노드의 이미지 저장 공간을 최적화하고, 자원 사용량의 균형을 유지하는 스케줄링을 제공하는 것이 가능하다.
도1은 본 발명의 일 실시예에 의한 엣지 컴퓨팅 환경에서의 서비스 원격 배포 시스템을 나타내는 블록도이다.
도2는 본 발명의 일 실시예에 의한 SDP 포탈의 기능을 나타내는 개략도이다.
도3은 본 발명의 일 실시예에 의한 서비스 원격 배포 시스템 내 포함되는 레지스트리들의 계층 구조를 나타내는 개략도이다.
도4는 본 발명의 일 실시예에 의한 스케줄러의 스케줄링 알고리즘을 나타내는 유사 코드(pseudo code)이다.
도5는 본 발명의 일 실시예에 의한 서비스 배포 플랫폼 서버의 엣지 워커 노드에 대한 서비스 배포를 나타내는 개략도이다.
도6은 본 발명의 일 실시예에 의한 서비스 배포 플랫폼 서버의 엣지 클러스터에 대한 서비스 배포를 나타내는 개략도이다.
도7은 본 발명의 일 실시예에 의한 서비스 배포 플랫폼 서버의 서비스 배포를 나타내는 흐름도이다.
도8은 본 발명의 일 실시예에 의한 서비스 배포 방법을 나타내는 순서도이다.
이하, 첨부된 도면을 참조하여 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명을 용이하게 실시할 수 있도록 바람직한 실시예를 상세히 설명한다. 다만, 본 발명의 바람직한 실시예를 상세하게 설명함에 있어, 관련된 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략한다. 또한, 유사한 기능 및 작용을 하는 부분에 대해서는 도면 전체에 걸쳐 동일한 부호를 사용한다.
덧붙여, 명세서 전체에서, 어떤 부분이 다른 부분과 '연결'되어 있다고 할 때, 이는 '직접적으로 연결'되어 있는 경우뿐만 아니라, 그 중간에 다른 소자를 사이에 두고 '간접적으로 연결'되어 있는 경우도 포함한다. 또한, 어떤 구성요소를 '포함'한다는 것은, 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있다는 것을 의미한다. 또한, 명세서에 기재된 "~부", "모듈" 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어 또는 소프트웨어로 구현되거나 하드웨어와 소프트웨어의 결합으로 구현될 수 있다.
도1은 본 발명의 일 실시예에 의한 엣지 컴퓨팅 환경에서의 서비스 원격 배포 시스템을 나타내는 블록도이다.
도1을 참조하면, 본 발명의 일 실시예에 의한 서비스 원격 배포 시스템은 엣지 워커 노드(10), 엣지 클러스터(20), 서비스 배포 플랫폼 서버(100) 및 개발자 서버(200)를 포함할 수 있다.
이하 도1을 참조하여 본 발명의 일 실시예에 의한 서비스 원격 배포 시스템을 설명한다.
엣지 워커 노드(10)는 서비스 배포 플랫폼 서버(100)에서 배포하는 서비스 어플리케이션 등을 설치하여 운영하는 컴퓨팅 노드이다. 엣지 네트워크 서비스의 가입자 단말들은 무선망을 통하여 엣지 워커 노드(10)에 접속할 수 있으며, 엣지 워커 노드(10)에 설치된 서비스 어플리케이션 등의 네트워크 서비스를 제공받을 수 있다. 여기서, 엣지 워커 노드(10)들은 별도의 클러스터 구축 없이 엣지 워커 노드만 구축한 소형 고객사 내에 온프레미스 구축된 것일 수 있으며, 각각의 엣지 워커 노드(10)들은 서비스 배포 플랫폼 서버(100)에 직접 할당된 것일 수 있다. 실시예에 따라서는 하나의 고객사에 복수의 엣지 워커 노드들이 구축되는 것도 가능하다.
엣지 클러스터(20)는 복수의 워커 노드(25)를 포함하여 클러스터를 형성하는 것으로, 각각의 워커 노드(25)들은 서비스 어플리케이션 등을 설치하여 운영하는 컴퓨팅 노드에 해당한다. 즉, 엣지 클러스터(20)는 복수의 워커 노드(25)들을 포함하는 대형 고객사에 구축될 수 있으며, 복수의 워커 노드(25)들을 관리하는 엣지 클러스터 마스터(21) 등의 구성을 포함할 수 있다. 여기서, 각각의 워커 노드(25)들은 엣지 클러스터 마스터(21)에 할당되어 엣지 클러스터 마스터(21)로부터 서비스 어플리케이션 등을 배포받아 설치할 수 있다. 엣지 네트워크 서비스의 가입자 단말들은 무선망을 통하여 워커 노드(25)에 접속할 수 있으며, 워커 노드(25)에 설치된 서비스 어플리케이션 등의 네트워크 서비스를 제공받을 수 있다.
서비스 배포 플랫폼 서버(100)는 원격에 위치하는 각각의 엣지 워커 노드(10)나 엣지 클러스터(20)에게 서비스 어플리케이션 등을 배포할 수 있다. 여기서, 도1은 서비스 배포 플랫폼 서버(100)가 엣지 워커 노드(10)와 엣지 클러스터(20)들이 혼합되어 있는 경우를 가정하고 있으나, 이에 한정되는 것은 아니다.
사용자(1)는 서비스 배포 플랫폼 서버(100)에 접속하여, 배포하고자 하는 서비스 어플리케이션과 고객사를 특정하여 배포요청을 입력할 수 있으며, 서비스 배포 플랫폼 서버(100)는 사용자(1)의 배포요청에 따라 각각의 고객사에 해당하는 엣지 워커 노드(10) 또는 엣지 클러스터(20)로 서비스 어플리케이션을 배포할 수 있다. 여기서, 서비스 배포 플랫폼 서버(100)는 각각의 서비스 어플리케이션들을 컨테이너 이미지(container image)화하여 배포할 수 있으며, 서비스 배포시 발생할 수 있는 이미지 전송 지연 등을 최소화하는 스케줄링 알고리즘을 적용하여 배포할 수 있다.
개발자 서버(200)는 엣지 워커 노드(10) 또는 엣지 클러스터(20) 내 워커 노드(25) 등에 설치되는 서비스 어플리케이션을 개발할 수 있으며, 개발된 신규 서비스 어플리케이션을 서비스 배포 플랫폼 서버(100)로 제공할 수 있다. 여기서, 개발자 서버(200)에서 개발하는 서비스 어플리케이션은 5G 통신을 위한 가상화된 네트워크 기능(NFV: Network Function Virtualization) 등일 수 있다.
도1에서는 하나의 개발자 서버(200)가 도시되어 있으나, 실시예에 따라서는 복수의 개발자 서버(200)들이 서비스 배포 플랫폼 서버(100)와 연계되어 서비스 어플리케이션을 제공하는 것도 가능하다.
한편, 도1을 참조하면, 본 발명의 일 실시예에 의한 서비스 배포 플랫폼 서버(100)는, SDP 포탈(Service Delivery Platform Potal, 110), MEP 매니저(Mobile Edge Platform Manager, 120), 중앙 레지스트리(Central Registry, 130), 스케줄러(Scheduler, 140) 및 모니터링부(150)를 포함할 수 있다. 여기서, 서비스 배포 플랫폼 서버(100)는 하나의 물리적인 장치 내에 각각의 구성들이 모두 포함되도록 구현할 수도 있으나, 실시예에 따라서는 각각의 구성들을 분산시키는 것도 가능하다. 즉, 물리적으로는 떨어져있는 각각의 구성들을 네트워크로 연결하여 하나의 장치로 동작하도록 할 수 있다.
SDP 포탈(110)은 개발자 서버(200)로부터 수신한 서비스 어플리케이션을 등록할 수 있으며, 사용자(1)의 입력에 따라 서비스 어플리케이션을 고객사로 배포하도록 요청할 수 있다. 즉, SDP 포탈(110)은 사용자(1)로부터 고객사로의 서비스 어플리케이션 배포 명령을 입력받을 수 있으며, 그에 따라 엣지 워커 노드(10) 또는 엣지 클러스터(20)로 배포를 수행할 수 있다.
실시예에 따라서는, SDP 포탈(110)을 웹 포탈 형태로 구현할 수 있으며, 이 경우 SDP 포탈(110)은 웹 포탈 형태의 웹 서비스를 제공하기 위한 프론트엔드의 웹 서버와, 웹 서버에서 웹 서비스를 제공하기 위한 WAS(Web Application Server), DBMS(Database Management System) 등 백엔드 구성 등을 포함할 수 있다.
또한, SDP 포탈(110)은, 등록된 서비스 어플리케이션들에 대한 등 조회, 수정, 삭제 등을 수행하는 서비스 목록 관리 기능과, 엣지 워커 노드(10) 또는 엣지 클러스터(20) 내 워커 노드(25)들에 기 설치된 서비스 어플리케이션들에 대한 업데이트, 롤백(roll back), 삭제 등을 수행하는 배포 관리 기능을 제공할 수 있다.
구체적으로, 도2에 도시한 바와 같이, SDP 포탈(110)은 서비스 목록 관리 기능으로, "서비스 신규 등록", "서비스 목록 조회", "서비스 정보 수정", "서비스 이미지/manifest 삭제", "서비스 업그레이드 버전 등록" 등을 수행할 수 있다.
여기서, "서비스 신규 등록"은 각각의 엣지 워커 노드(10) 또는 워커 노드(25) 등에 설치가능한 네트워크 서비스 등 서비스 어플리케이션을 등록하는 기능에 해당한다. 이때, SDP 포탈(110)은 등록하고자 하는 서비스 어플리케이션의 명칭, 상세 설명, 카테고리, 버전, 개발사, 서비스 로고, 컨테이너 이미지(container image)와 매니페스트(manifest) 파일의 레지스트리 경로, 요구 자원량(예를들어, CPU, 메모리, 저장공간, GPU 할당 등) 등의 상세정보를 입력받아 신규 등록할 수 있다.
"서비스 목록 조회"는 등록된 서비스 어플리케이션들에 대한 목록을 생성하여 사용자(1)에게 제공하는 기능이고, "서비스 정보 수정"은 등록된 서비스 어플리케이션의 상세정보를 수정하는 기능이며, "서비스 이미지/manifest 삭제"는 등록된 서비스 어플리케이션에 대응하는 상세정보, 컨테이너 이미지, 매니페스트 파일 등을 일괄 삭제하는 기능에 해당한다. 또한, "서비스 업그레이드 버전 등록"은 등록된 서비스 어플리케이션 중에서 업그레이드 버전이 존재하는 경우에는, 업그레이드된 사항을 업데이트하여 등록하는 기능에 해당한다.
또한, SDP 포탈(110)은 배포 관리 기능으로, "서비스 배포(설치)", "서비스 업그레이드/롤백", "서비스 삭제" 등을 수행할 수 있다.
여기서, "서비스 배포(설치)"는 배포할 서비스 어플리케이션을 선택한 후, 해당 서비스 어플리케이션을 배포할 고객사에 대응하는 엣지 워커 노드(10) 또는 엣지 클러스터(20)를 선택하여 배포를 요청하는 기능이고, "서비스 업그레이드/롤백"은 기존에 설치된 서비스 어플리케이션의 새로운 업그레이드 버전이 등록되면, 해당하는 엣지 워커 노드(10) 또는 엣지 클러스터(20)를 선택하여 업그레이드하거나, 업그레이드한 서비스 어플리케이션의 버전에 장애 등이 발생하는 경우에는 과거 버전으로 롤백하도록 요청하는 기능에 해당한다. "서비스 삭제"는 엣지 워커 노드(10) 또는 엣지 클러스터(20)에 배포된 서비스 어플리케이션을 원격에서 삭제하는 기능에 해당한다.
MEP 매니저(120)는 SDP 포탈(110)과 연동하여, 고객사에 대응하는 엣지 워커 노드(10) 또는 엣지 클러스터(20)로 서비스 어플리케이션을 배포하는 API(Application Programming inferface) 기능을 수행할 수 있다. 실시예에 따라서는, 쿠버네티스(kubernetes)의 kube-API-server 기능과, 엣지 클러스터 마스터(21) 또는 엣지 워커 노드(10)와 REST API로 연동하는 API 서버 기능을 수행할 수 있다.
구체적으로, MEP 매니저(120)는 SDP 포탈(110)로부터 배포하고자 하는 서비스 어플리케이션과, 엣지 워커 노드(10) 또는 엣지 클러스터(20)에 대한 정보를 수신할 수 있으며, 배포 대상이 엣지 워커 노드(10)인 경우 MEP 매니저(120)는 스케줄러(140)에게 타겟 엣지 워커 노드(10)를 설정해줄 것을 요청할 수 있다. 즉, 배포 대상이 엣지 클러스터(20)인 경우에는 엣지 스케줄러(23)에서 타겟 워커 노드(25)를 설정하므로, 배포 대상이 엣지 워커 노드(10)인 경우에 한하여 스케줄러(140)에게 타겟 엣지 워커 노드(10)의 설정을 요청할 수 있다.
이후, 스케줄러(140)로부터 타겟 엣지 워커 노드(10)를 수신하면, MEP 매니저(120)는 타겟 엣지 워커 노드(10)로 서비스 어플리케이션을 배포하기 위한 동작을 수행할 수 있다.
구체적으로, MEP 매니저(120)는 수신한 타겟 엣지 워커 노드(10)로 서비스 어플리케이션을 배포하기 위하여, 매니페스트 파일의 노드 셀렉터(node selector) 또는 노드 어피니티(node affinity)의 키값을 타겟 엣지 워커 노드(10)에 대응하도록 수정할 수 있다. 이를 통하여, 서비스 어플리케이션이 배포되는 엣지 워커 노드를 특정할 수 있다.
또한, MEP 매니저(120)는 서비스 어플리케이션의 컨테이너를 생성하도록 타겟 엣지 워커 노드(10)와의 API 통신을 수행할 수 있다. 여기서, MEP 매니저(120)는 타겟 엣지 워커 노드(10) 내 큐블렛(kubelet)과 API 통신을 수행할 수 있으며, 이를 통하여 타겟 엣지 워커 노드(10) 내 컨테이너를 생성할 수 있다. 이때, 타겟 엣지 워커 노드(10) 내 큐블렛은 컨테이너 런타임(container runtime) 인터페이스를 통하여 컨테이너 이미지에 대한 풀(pull) 요청을 수행할 수 있으며, 중앙 레지스트리(130)는 풀 요청에 대응하여 타겟 엣지 워커 노드(10)에게 컨테이너 이미지를 제공할 수 있다.
중앙 레지스트리(130)는 SDP 포탈(10)에 등록된 각각의 서비스 어플리케이션들에 대응하는 컨테이너 이미지 및 매니페스트 파일을 저장할 수 있다. 컨테이너 이미지는 서비스 어플리케이션을 실행하기 위해 필요한 구성요소들이 포함된 정적 파일일 수 있으며, 서비스 배포 플랫폼 서버(100)는 각각의 서비스 어플리케이션들을 컨테이너 이미지 형태로 배포할 수 있다. 또한, 매니페스트 파일은 각각의 컨테이너 이미지에 대응하여 생성되는 것으로, 컨테이너 이미지에 대한 메타데이터 등을 포함할 수 있다. 즉, 매니페스트 파일을 이용하여, 컨테이너 이미지를 개발자의 목적에 맞게 배포하도록 제한할 수 있다. 실시예에 따라서는 매니페스트 파일 내에 쿠버네티스 배포 정의 파일들이 포함될 수 있다.
도3을 참조하면, 중앙 레지스트리(130)는 개발자 서버(200)로부터 신규 서비스 어플리케이션 등을 제공받을 수 있으며, 이때 중앙 레지스트리(130)는 개발자 서버(200)의 개발 레지스트리(210)로부터 푸시(push)된 신규 서비스의 컨테이너 이미지 및 매니페스트 파일을 수신하여 저장할 수 있다. 여기서, 중앙 레지스트리(130)는 인증부(131), 이미지 저장부(132) 및 매니페스트 저장부(133)를 포함할 수 있으며, 개발 레지스트리(210)와 엣지 레지스트리(22)도 각각 이미지 저장부(211, 22a) 및 매니페스트 저장부(212, 22b)를 포함할 수 있다.
인증부(131)는 중앙 레지스트리(130)에 접근하는 액세스에 대하여, 컨테이너 이미지에 대한 업로드 또는 다운로드 권한을 확인할 수 있다. 즉, 개발자 서버(200)가 신규 서비스의 컨테이너 이미지 및 매니페스트 파일을 푸시하는 경우, 해당 개발자 서버(200)에 업로드 권한이 있는지를 확인할 수 있으며, 엣지 레지스트리(22)나 엣지 워커 노드(10)에서의 풀 요청을 하는 경우 해당 엣지 클라우드(20)나 엣지 워커 노드(10)의 다운로드 권한을 확인하여, 접근을 허용할 수 있다.
이미지 저장부(132)는 컨테이너 이미지를 레이어(overlay file system) 구조로 저장할 수 있으며, 매니페스트 저장부(133)는 컨테이너 이미지에 대응하는 매니페스트 파일을 저장할 수 있다.
한편, 도3을 참조하면, 개발 레지스트리(210), 중앙 레지스트리(130) 및 엣지 레지스트리(22)는 계층적 구조를 형성함을 확인할 수 있다. 즉, 서비스 어플리케이션을 개발하는 개발사의 개발 레지스트리(210)와 서비스 배포 플랫폼 서버(10) 내 중앙 레지스트리(130), 최종적으로 독립적인 엣지 클러스터(20)를 운영하는 고객사에 존재하는 엣지 레지스트리(22)는 계층적 구조로 연결되어, 동기화될 수 있다.
구체적으로, 개발 레지스트리(210)는 중앙 레지스트리(130)로, 푸시 권한이 있는 계정을 통하여 컨테이너 이미지와 매니페스트 파일을 푸시할 수 있다. 이후, 중앙 레지스트리(130)는 푸시 받은 이미지와 매니페스트 파일을 미러링해줘야 하는 엣지 레지스트리(22)들을 구분하여 실시간으로 푸시할 수 있다. 즉, 각각의 엣지 클러스터(20)마다 제공해야하는 서비스 어플리케이션 등이 상이할 수 있으므로, 중앙 레지스트리(130)는 미러링해야하는 엣지 레지스트리(22)들을 구분하여 푸시할 수 있다.
이를 위하여, 중앙 레지스트리(130)는 각각의 개발사 계정별로 접근가능한 디렉토리 단위를 구분하고, 각 디렉토리 별로 푸시해줘야 하는 엣지 레지스트리(22) 그룹을 할당할 수 있다. 이후, 중앙 레지스트리(130)는 각각의 디렉토리 내에 새로운 파일들이 추가되거나 수정되는지 여부를 주기적으로 모니터링하여, 새로운 파일이 추가되는 등의 경우에는 대응하는 그룹에 포함되는 엣지 레지스트리(22)들에게 미러링하여 동기화할 수 있다.
스케줄러(140)는 스케줄링 알고리즘에 따라, 고객사에 대응하는 엣지 워커 노드(10) 중 서비스 어플리케이션을 배포할 타겟 엣지 워커 노드를 선택하여, MEP 매니저(120)로 제공할 수 있다. 여기서, 스케줄러(140)는 별도의 엣지 클러스터(20)를 구축하지 않은 엣지 워커 노드(10)들에 서비스 어플리케이션을 배포하는 경우에 적용될 수 있다.
스케줄러(140)는 MEP 매니저(120)로부터 서비스 어플리케이션의 컨테이너 이미지 정보와 요구 자원량 정보를 수신할 수 있으며, 이를 이용하여 타겟 엣지 워커 노드를 선택할 수 있다. 여기서, 컨테이너 이미지 정보에는 대응하는 서비스 어플리케이션의 명칭, 상세 설명, 카테고리, 버전, 개발사 등의 정보가 포함될 수 있으며, 요구 자원량 정보에는 해당 서비스 어플리케이션의 실행을 위해 필요한 CPU, 메모리, 저장공간, GPU 할당량 등의 정보 등이 포함될 수 있다.
스케줄러(140)는 컨테이너 이미지 배포를 위한 최적의 엣지 워커 노드(10)를 판별하는 스케줄링 알고리즘을 활용할 수 있다. 즉, 서비스 어플리케이션 배포시 발생할 수 있는 이미지 전송 지연을 최소화하는 스케줄링 알고리즘을 활용함으로써, 서비스 어플리케이션에 의한 장애 등의 발생한 경우 신속한 업그레이드를 통해 장애를 해소할 수 있다. 또한, 엣지 네트워크 서비스 가입자 단말들의 서비스 요청이 폭증하는 경우에도, 신속히 다른 노드에 서비스를 추가하여 확장성을 제공하는 것이 가능하다.
구체적으로, 스케줄러(140)는 배포하는 컨테이너 이미지에 포함되는 레이어(layer)와, 각각의 엣지 워커 노드(10)에 기 저장된 컨테이너 이미지들의 레이어를 비교하여, 중복된 레이어가 가장 많이 저장된 엣지 워커 노드를 타겟 엣지 워커 노드로 선택할 수 있다. 여기서, 스케줄러는 컨테이너 이미지에 대해 SHA256 등의 해시(Hash) 함수를 이용하여 해시값을 구할 수 있으며, 이를 각각의 엣지 워커 노드(10)에 기 저장된 컨테이너 이미지들의 해시값과 비교할 수 있다. 이를 통하여, 컨테이너 이미지와 엣지 워커 노드(10)에 기 저장된 컨테이너 이미지들의 레이어가 얼마나 중복되었는지를 저장용량을 기준으로 스코어링할 수 있다.
컨테이너 이미지는 중앙 레지스트리(130) 내에 저장될 때 레이어된 구조로 저장될 수 있으며, 각각의 레이어는 컨테이너 이미지를 빌드할 때 사용한 베이스 이미지, 컨테이너 이미지 내부에 설치한 패키지, 서비스 어플리케이션을 구동하기 위한 소스와 빌드 파일, 컨테이너가 생성될 때 실행되는 명령어 등의 구조로 나누어져 구성될 수 있다. 일반적으로 컨테이너 이미지들의 오버레이 구조는 동일하므로, 중복되는 레이어가 많을수록 전송해야하는 데이터량이 적게 된다. 따라서, 스케줄러(140)는 중복되는 레이어가 많은 엣지 워커 노드(10)를 타겟 엣지 워커 노드로 선택할 수 있다.
다만, 중복된 레이어의 개수가 최대인 엣지 워커 노드(10)가 복수개 존재하는 경우가 있을 수 있다. 즉, 중복된 레이어에 대한 스코어링 결과 동점을 이루는 경우, 스케줄러(140)는 유휴자원이 가장 많은 엣지 워커 노드(10)를 타겟 엣지 워커 노드로 선택할 수 있다. 즉, 스케줄러(140)는 중앙 레지스트리(130)에서 풀(pull) 해야하는 컨테이너 이미지의 레이어를 최소화하는 동시에, 설치 이후 서비스 어플리케이션을 실행할 때의 전체 자원 사용 효율성을 고려하여 타겟 엣지 워커 노드(10)를 선택할 수 있다.
모니터링부(150)는 엣지 워커 노드(10) 또는 엣지 클러스터(20)의 자원사용량 또는 서비스 어플리케이션의 서비스 상태 정보를 취합할 수 있다. 실시예에 따라서는, 모니터링부(150)가 엣지 모니터링부(24)로부터 각각의 워커 노드(25)들의 자원사용량 또는 서비스 어플리케이션의 서비스 상태 정보 등을 수집한 후, 수집한 정보들을 취합하여 제공하는 것도 가능하다.
사용자(1)는 모니터링부(150)를 통하여 각각의 엣지 워커 노드(10)와 엣지 클러스터(20)에 대한 모니터링을 수행할 수 있으며, 이를 바탕으로 서비스 어플리케이션을 배포할 엣지 워커 노드(10) 또는 엣지 클러스터(20)를 선택하거나, 설치된 서비스 어플리케이션 등에 대한 관리를 수행할 수 있다. 실시예에 따라서는, 모니터링부(150)가 수집한 자원사용량으로부터 각각의 엣지 워커 노드(10) 또는 워커 노드(25)들의 유휴자원량 등을 모니터링하는 것도 가능하다.
추가적으로, 엣지 클러스터(20)의 경우, 도1에 도시한 바와 같이, 엣지 클러스터 마스터(21), 엣지 레지스트리(22), 엣지 스케줄러(23), 엣지 모니터링부(24) 및 워커 노드(25)를 포함할 수 있다.
엣지 클러스터 마스터(21)는 개별적인 엣지 클러스터(20)를 구축한 대형 고객사의 컴퓨팅 자원을 관리하는 기능을 수행할 수 있으며, MEP 매니저(120)와의 API 연동을 통해 서비스 어플리케이션을 워커 노드(25)로 배포할 수 있다. 여기서, 엣지 클러스터 마스터(21)에는 복수의 워커 노드(25)들이 할당될 수 있으며, 엣지 클러스터 마스터(21)는 할당된 워커 노드(25)들에게 서비스 어플리케이션을 배포할 수 있다.
구체적으로, 엣지 클러스터 마스터(21)는 MEP 매니저(120)로부터 배포하고자 하는 서비스 어플리케이션에 대한 정보를 수신할 수 있으며, 엣지 클러스터 마스터(121)는 컨테이너 이미지 정보와 요구 자원량을 엣지 스케줄러(23)에게 전송하여 타겟 워커 노드를 설정해줄 것을 요청할 수 있다. 이후, 엣지 스케줄러(23)로부터 타겟 워커 노드를 수신하면, 엣지 클러스터 마스터(21)는 타겟 워커 노드로 서비스 어플리케이션을 배포하기 위한 동작을 수행할 수 있다.
엣지 레지스트리(22)는 중앙 레지스트리(130)와의 미러링을 수행할 수 있으며, 이를 통하여 중앙 레지스트리(130)로부터 컨테이너 이미지 및 매니페스트 파일을 전송받아 저장할 수 있다. 즉, 신규 서비스 어플리케이션 등이 등록되면, 중앙 레지스트리(130)는 엣지 레지스트리(22)로 컨테이너 이미지 및 매니페스트 파일을 푸시할 수 있으며, 이를 통하여 엣지 레지스트리(22)는 컨테이너 이미지 및 매니페스트 파일을 저장할 수 있다. 다만, 각각의 엣지 클러스터(20)들은 상이한 서비스 어플리케이션들이 필요로 할 수 있으므로, 중앙 레지스트리(130)는 각각의 엣지 클러스터(20)별로 상이한 서비스 어플리케이션들이 배포되도록 구현할 수 있다.
엣지 스케줄러(23)는 스케줄링 알고리즘에 따라, 워커 노드(25) 중 서비스 어플리케이션을 배포할 타겟 워커 노드를 선택할 수 있으며, 선택된 타겟 워커 노드를 엣지 클러스터 마스터(21)에게 제공할 수 있다. 도4는 엣지 스케줄러(23)에서의 스케줄링 알고리즘을 나타내는 유사 코드(pseudo code)이다. 도4를 참조하면, 2-3 열에서는 엣지 스케줄러(23)가 서비스 어플리케이션을 배포하도록 요청받은 전체 워커 노드(25)에 기 저장된 컨테이너 이미지들의 해시값을 연산할 수 있다. 이후, 4-6열에서는 요청받은 서비스 어플리케이션에 대응하는 컨테이너 이미지의 해시값과, 각각의 워커 노드(25)에 기 저장된 컨테이너 이미지들의 해시값을 비교하여 중복된 레이어가 얼마나 많은지 저장 용량을 기준으로 스코어링할 수 있다. 이후, 7-9열에서는 중복된 레이어가 가장 많은 워커 노드(25)를 타겟 워커 노드로 설정할 수 있다. 추가적으로, 중복된 레이어들의 스코어링 결과 동점인 경우, 최종적으로 가장 유휴자원이 큰 워커 노드(25)를 타겟 워커 노드로 선택하는 로직을 더 포함할 수 있다.
엣지 모니터링부(24)는 각각의 워커 노드(25)들의 자원사용량 또는 서비스 어플리케이션의 서비스 상태 정보 등을 수집하여 제공할 수 있다.
워커 노드(25)는 엣지 클러스터(20) 내 포함되어 서비스 어플리케이션 등을 설치하여 운영하는 컴퓨팅 노드에 해당한다. 각각의 워커 노드(25)는 엣지 클러스터 마스터(21)에 할당될 수 있으며, 엣지 클러스터 마스터(21)로부터 배포받은 서비스 어플리케이션을 설치하여 운영할 수 있다.
도5는 본 발명의 일 실시예에 의한 서비스 배포 플랫폼 서버의 엣지 워커 노드에 대한 서비스 배포를 나타내는 개략도이다. 여기서, 개발자(2)의 신규 서비스 어플리케이션은 개발 레지스트리(210)에서 중앙 레지스트리(130)로 푸시되어 저장되어 있을 수 있으며, SDP 포탈(110)에서는 서비스 신규 등록을 완료한 상태에 해당한다.
이 경우, 도5를 참조하면, 서비스 배포 플랫폼 서버(100)를 관리하는 사용자(1)는, SDP 포탈(110)을 이용하여 특정한 서비스 어플리케이션에 대한 배포 요청을 할 수 있다. 이때, 사용자(1)는 고객사명을 이용하여 서비스 어플리케이션의 배포대상을 특정할 수 있으며, SDP 포탈(110)은 배포요청 받은 서비스 어플리케이션에 대응하는 컨테이너 이미지 정보와, 고객사에 대응하는 엣지 워커 노드(10)의 정보를 MEP 매니저(120)로 제공할 수 있다. 또한, SDP 포탈(110)은 해당 서비스 어플리케이션에 대한 모니터링을 수행할 수 있도록, 선택된 서비스 어플리케이션과 배포된 고객사에 대한 정보 등을 내부에 구비된 데이터베이스(D)에 저장할 수 있다.
이후, MEP 매니저(120)는 스케줄러(140)에게 컨테이너 이미지 정보와 요구자원량을 전송하여 타겟 엣지 워커 노드를 선택할 것을 요청할 수 있다. 스케줄러(140)로부터 타겟 엣지 워커 노드를 수신하면, MEP 매니저(120)는 컨테이너 이미지에 대응하는 매니페스트 파일의 노드 셀렉터 또는 노드 어피니티의 키값을 수정하여, 타겟 엣지 워커 노드로의 배포를 시작할 수 있다. 구체적으로, MEP 매니저는 내부의 쿠버네티스 마스터가 타겟 엣지 워커 노드의 큐블렛에 컨테이너를 생성하도록 API 통신을 수행할 수 있다.
이후, 타겟 엣지 워커 노드의 큐블렛이 컨테이너 런타임 인터페이스를 통해 중앙 레지스트리(130)에게 컨테이너 이미지에 대한 풀(pull)을 요청할 수 있으며, 중앙 레지스트리(130)는 풀 요청에 대응하여 컨테이너 이미지를 제공할 수 있다.
타겟 엣지 워커 노드 내에 컨테이너가 생성된 이후에는, 가입자 단말(3)이 엣지 워커 노드(10)에 접속하여 서비스 어플리케이션 등 네트워크 서비스를 제공받을 수 있으며, 모니터링부(150)는 컨테이너에서 사용하는 자원량과 상태 정보 등을 수집할 수 있다. 사용자(1)는 SDP 포탈(110)을 통하여 각각의 엣지 워커 노드(10)에 설치된 서비스 어플리케이션들의 상태 및 자원 사용량 등을 모니터링할 수 있다.
도6은 본 발명의 일 실시예에 의한 서비스 배포 플랫폼 서버의 엣지 클러스터에 대한 서비스 배포를 나타내는 개략도이다. 여기서, 개발자(2)의 신규 서비스 어플리케이션은, 계층적 구조에 의하여 개발 레지스트리(210)에서 중앙 레지스트리(130) 및 엣지 레지스트리(22)로 각각 푸시되어 저장되어 있을 수 있으며, SDP 포탈(110)은 해당 서비스 어플리케이션을 서비스 신규 등록을 완료한 상태일 수 있다.
여기서, 사용자(1)는 SDP 포탈(110)을 통하여 특정 서비스 어플리케이션에 대한 배포를 요청할 수 있으며, 이때 고객사명 또는 고객사의 엣지 클러스터(20) 명칭을 이용하여 배포대상을 특정할 수 있다. 이 경우, SDP 포탈(110)은 서비스 어플리케이션에 대응하는 컨테이너 이미지 정보와, 고객사명 또는 엣지 클러스터 명칭에 대응하는 엣지 클러스터(20)의 정보를 MEP 매니저(120)로 제공할 수 있다. 또한, SDP 포탈(110)은 해당 서비스 어플리케이션에 대한 모니터링을 수행할 수 있도록, 선택된 서비스 어플리케이션과 배포된 고객사에 대한 정보 등을 내부에 구비된 데이터베이스에 저장할 수 있다.
이후, MEP 매니저(120)는 SDP 포탈(110)로부터 수신한 배포요청을 엣지 클러스터 마스터(21)로 전달할 수 있다. 엣지 클러스터 마스터(21)는 엣지 스케줄러(23)에게 컨테이너 이미지 정보와 요구자원량을 전송하여 타겟 워커 노드를 선택할 것을 요청할 수 있다. 엣지 스케줄러(23)로부터 타겟 워커 노드를 수신하면, 엣지 클러스터 마스터(21)는 컨테이너 이미지에 대응하는 매니페스트 파일의 노드 셀렉터 또는 노드 어피니티의 키값을 수정하여, 타겟 워커 노드로의 배포를 시작할 수 있다. 구체적으로, 엣지 클러스터 마스터(21)는 내부의 쿠버네티스 마스터가 타겟 워커 노드의 큐블렛에 컨테이너를 생성하도록 API 통신을 수행할 수 있다.
이후, 타겟 워커 노드의 큐블렛이 컨테이너 런타임 인터페이스를 통해 엣지 레지스트리(22)에게 컨테이너 이미지에 대한 풀(pull) 요청을 수행할 수 있으며, 엣지 레지스트리(22)는 풀 요청에 대응하여 컨테이너 이미지를 제공할 수 있다.
타겟 워커 노드 내에 컨테이너가 생성된 이후에는, 가입자 단말(3)이 워커 노드(25)에 접속하여 서비스 어플리케이션 등 네트워크 서비스를 제공받을 수 있으며, 모니터링부(150)는 컨테이너에서 사용하는 자원량과 상태 정보 등을 수집할 수 있다. 사용자(1)는 SDP 포탈(110)을 통하여 각각의 워커 노드(25)에 설치된 서비스 어플리케이션들의 상태 및 자원 사용량 등을 모니터링할 수 있다.
도7은 본 발명의 일 실시예에 의한 서비스 배포 플랫폼 서버의 서비스 배포를 나타내는 흐름도이다.
도7을 참조하면, SDP 포탈(110)은 사용자의 입력에 따라, MEP 매니저(120)에게 서비스 어플리케이션에 대한 배포를 요청할 수 있다(S1). 이 경우, MEP 매니저(120)는 스케줄러(140)에게 타겟 엣지 워커 노드의 설정을 요청할 수 있으며(S2), 스케줄러(140)는 모니터링부(150)로부터 각각의 엣지 워커 노드들에 대한 유휴자원상태를 수집할 수 있다(S3). 여기서 모니터링부(150)는 각각의 엣지 워커 노드(10)들의 자원사용량 등의 정보를 주기적으로 모니터링할 수 있다(S4). 이후, 스케줄러(140)는 중앙 레지스트리(130)에게 배포하고자 하는 컨테이너 이미지에 대한 해시값을 요청할 수 있으며(S5), 컨테이너 이미지의 해시값과 각각의 엣지 워커 노드(10)들에 기 저장된 컨테이너 이미지들의 해시값을 비교하여, 레이어들의 중복을 확인할 수 있다(S6). 여기서, 스케줄러(140)는 레이어들이 가장 많이 중복되는 엣지 워커 노드(10)를 타겟 엣지 워커 노드로 선택할 수 있다. 다만, 중복되는 레이어의 개수가 최다인 엣지 워커 노드들이 개수가 복수개인 경우에는, 추가로 각각의 엣지 워커 노드들의 유휴자원을 비교할 수 있으며, 유휴자원이 가장 많은 엣지 워커 노드를 타겟 엣지 워커 노드로 선택할 수 있다(S7). 이후, 스케줄러(140)는 타겟 엣지 워커 노드를 MEP 매니저(120)에게 제공할 수 있으며, MEP 매니저(120)는 매니페스트 파일 내 노드 셀렉터 또는 노드 어피니티의 키값을 수정하여, 타겟 엣지 워커 노드에 대응하는 레이블을 추가할 수 있다(S8). MEP 매니저(120)는 타겟 엣지 워커 노드로 컨테이너 생성을 요청하고, 컨테이너 이미지 및 매니페스트 파일을 전송하여, 타겟 엣지 워커 노드에 서비스 어플리케이션을 설치할 수 있다(S9). 이후, SDP 포탈(110)은 모니터링부(150)를 통하여 타겟 엣지 워커 노드에 설치된 서비스 어플리케이션의 상태나 사용량 등을 모니터링할 수 있으며(S10), 모니터링부(150)는 엣지 워커 노드(160)의 서비스 상태 및 사용량 등을 주기적으로 수집하여 제공할 수 있다.
도8은 본 발명의 일 실시예에 의한 서비스 배포 방법을 나타내는 순서도이다. 여기서, 각 단계들은 본 발명의 일 실시예에 의한 서비스 배포 플랫폼 서버에 의하여 수행될 수 있다.
서비스 배포 플랫폼 서버는, 서비스 어플리케이션에 대응하는 컨테이너 이미지 및 매니페스트 파일을 수신하여 저장할 수 있다(S110). 개발자 서버는 각각의 엣지 워커 노드 또는 엣지 클러스터에 설치되어 사용되는 서비스 어플리케이션을 개발할 수 있으며, 개발된 서비스 어플리케이션들을 서비스 배포 플랫폼 서버로 제공할 수 있다. 여기서, 개발자 서버의 개발 레지스트리와 서비스 배포 플랫폼 서버의 중앙 레지스트리는 계층적 구조를 형성할 수 있으며, 개발 레지스트리로부터 푸시된 서비스 어플리케이션의 컨테이너 이미지 및 매니페스트 파일을 중앙 레지스트리 내 저장하여 동기화할 수 있다.
이후, 서비스 배포 플랫폼 서버는, 서비스 어플리케이션을 엣지 워커 노드로 배포하도록 요청하는 사용자의 입력을 수신할 수 있다(S120). 서비스 배포 플랫폼 서버 내에는 개발자 서버로부터 수신한 서비스 어플리케이션들이 등록되어 있을 수 있으며, 사용자는 등록된 서비스 어플리케이션 중에서 특정한 서비스 어플리케이션을 고객사로 배포하도록 요청할 수 있다. 여기서, 서비스 배포 플랫폼 서버에는 고객사에 대응하는 엣지 워커 노드에 대한 정보가 저장되어 있을 수 있으며, 서비스 배포 플랫폼 서버는, 사용자의 입력에 따라 서비스 어플리케이션을 해당 고객사에 대응하는 엣지 워커 노드로 배포할 수 있다.
이후, 서비스 배포 플랫폼 서버는, 복수의 엣지 워커 노드 중 서비스 어플리케이션을 배포할 타겟 엣지 워커 노드를 선택할 수 있다(S130). 서비스 배포 플랫폼 서버는 컨테이너 이미지 배포를 위한 최적의 엣지 워커 노드를 판별하는 스케줄링 알고리즘을 활용할 수 있다. 컨테이너 이미지의 경우 수 기가 바이트의 크기를 가질 수 있으므로, 서비스 어플리케이션 배포시 이미지 전송 지연 등이 발생할 수 있다. 따라서, 이러한 전송 지연 등을 최소화할 수 있는 스케줄링 알고리즘을 활용할 수 있다. 이 경우, 서비스 어플리케이션 내 오류 등으로 인한 의한 장애 발생시 신속한 업그레이드를 통해 장애를 해소하도록 하거나, 엣지 네트워크 서비스 가입자 단말들의 서비스 요청이 폭증하는 경우, 신속히 다른 노드에 서비스를 추가하여 확장성을 제공하는 것이 가능하다. 다만, 구체적인 스케줄링 알고리즘에 대하여는 앞서 설명하였으므로, 여기서는 구체적인 설명을 생략한다.
서비스 배포 플랫폼 서버는, 타겟 엣지 워커 노드로 서비스 어플리케이션을 배포하는 API 기능을 수행할 수 있다(S140). 구체적으로, 서비스 배포 플래폼 서버는 수신한 타겟 엣지 워커 노드로 서비스 어플리케이션을 배포하기 위하여, 매니페스트 파일의 노드 셀렉터 또는 노드 어피니티의 키값을 타겟 엣지 워커 노드에 대응하도록 수정할 수 있다. 이후, 서비스 배포 플랫폼 서버는 서비스 어플리케이션의 컨테이너를 생성하도록 타겟 엣지 워커 노드와의 API 통신을 수행할 수 있다. 여기서, 서비스 배포 플랫폼 서버는 타겟 엣지 워커 노드 내 큐블렛과 API 통신을 수행할 수 있으며, 이를 통하여 타겟 엣지 워커 노드 내 컨테이너를 생성할 수 있다. 이때, 타겟 엣지 워커 노드 내 큐블렛은 컨테이너 런타임 인터페이스를 통하여 컨테이너 이미지에 대한 풀(pull) 요청을 수행할 수 있으며, 서비스 배포 플랫폼 서버는 풀 요청에 대응하여 컨테이너 이미지를 제공할 수 있다.
추가적으로, 타겟 엣지 워커 노드 내에 컨테이너가 생성된 이후에는, 컨테이너에서 사용하는 자원량과 상태 정보 등을 서비스 배포 플랫폼 서버가 수집할 수 있으며, 사용자는 서비스 배포 플랫폼 서버를 통하여 각각의 엣지 워커 노드에 설치된 서비스 어플리케이션들의 상태 및 자원 사용량 등을 모니터링할 수 있다.
전술한 본 발명은, 프로그램이 기록된 매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 매체는, 컴퓨터로 실행 가능한 프로그램을 계속 저장하거나, 실행 또는 다운로드를 위해 임시 저장하는 것일 수도 있다. 또한, 매체는 단일 또는 수개 하드웨어가 결합된 형태의 다양한 기록수단 또는 저장수단일 수 있는데, 어떤 컴퓨터 시스템에 직접 접속되는 매체에 한정되지 않고, 네트워크 상에 분산 존재하는 것일 수도 있다. 매체의 예시로는, 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM 및 DVD와 같은 광기록 매체, 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical medium), 및 ROM, RAM, 플래시 메모리 등을 포함하여 프로그램 명령어가 저장되도록 구성된 것이 있을 수 있다. 또한, 다른 매체의 예시로, 애플리케이션을 유통하는 앱 스토어나 기타 다양한 소프트웨어를 공급 내지 유통하는 사이트, 서버 등에서 관리하는 기록매체 내지 저장매체도 들 수 있다. 따라서, 상기의 상세한 설명은 모든 면에서 제한적으로 해석되어서는 아니되고 예시적인 것으로 고려되어야 한다. 본 발명의 범위는 첨부된 청구항의 합리적 해석에 의해 결정되어야 하고, 본 발명의 등가적 범위 내에서의 모든 변경은 본 발명의 범위에 포함된다.
본 발명은 전술한 실시예 및 첨부된 도면에 의해 한정되는 것이 아니다. 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 있어, 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 본 발명에 따른 구성요소를 치환, 변형 및 변경할 수 있다는 것이 명백할 것이다.
1: 사용자 2: 개발자
3: 가입자 단말 10: 엣지 워커 노드
20: 엣지 클러스터 21: 엣지 클러스터 마스터
22: 엣지 레지스트리 23: 엣지 스케줄러
24: 엣지 모니터링부 25: 워커 노드
100: 서비스 배포 플랫폼 서버 110: SDP 포탈
120: MEP 매니저 130: 중앙 레지스트리
131: 인증부 22a, 132, 211: 이미지 저장부
22b, 133, 212: 매니페스트저장부 140: 스케줄러
150: 모니터링부 200: 개발자 서버
210: 개발 레지스트리

Claims (13)

  1. 서비스 어플리케이션을 복수의 엣지 워커 노드(edge worker node)로 원격 배포하는 서비스 배포 플랫폼 서버에 있어서,
    서비스 어플리케이션을 등록하고, 사용자의 입력에 따라 상기 서비스 어플리케이션을 엣지 워커 노드로 배포하도록 요청하는 SDP 포탈(Service Delivery Platform portal);
    상기 SDP 포탈과 연동하여, 상기 엣지 워커 노드로 상기 서비스 어플리케이션을 배포하는 API(Application Programming inferface) 기능을 수행하는 MEP 매니저(Mobile Edge platform manager);
    상기 SDP 포탈에 등록된 각각의 서비스 어플리케이션에 대응하는 컨테이너 이미지(container image) 및 매니페스트(manifest) 파일을 저장하는 중앙 레지스트리(central registry); 및
    상기 복수의 엣지 워커 노드 중 상기 서비스 어플리케이션을 배포할 타겟 엣지 워커 노드를 선택하여, 상기 MEP 매니저로 제공하는 스케줄러(scheduler)를 포함하는 서비스 배포 플랫폼 서버.
  2. 제1항에 있어서, 상기 SDP 포탈은
    등록된 서비스 어플리케이션들에 대한 조회, 수정 및 삭제 중 적어도 어느 하나를 수행하는 서비스 목록 관리 기능과, 상기 엣지 워커 노드에 기 설치된 서비스 어플리케이션들에 대한 업데이트, 롤백(roll back) 및 삭제 중 적어도 어느 하나를 수행하는 배포 관리 기능을 수행하는 것을 특징으로 하는 서비스 배포 플랫폼 서버.
  3. 제1항에 있어서, 상기 스케줄러는
    상기 서비스 어플리케이션의 컨테이너 이미지 정보와 요구 자원량 정보를 이용하여, 상기 타겟 엣지 워커 노드를 선택하는 것을 특징으로 하는 서비스 배포 플랫폼 서버.
  4. 제3항에 있어서, 상기 스케줄러는
    상기 배포하는 컨테이너 이미지에 포함되는 레이어(layer)와, 각각의 엣지 워커 노드에 기 저장된 컨테이너 이미지들의 레이어를 비교하여, 중복된 레이어가 가장 많이 저장된 엣지 워커 노드를 상기 타겟 엣지 워커 노드로 선택하는 것을 특징으로 하는 서비스 배포 플랫폼 서버.
  5. 제4항에 있어서, 상기 스케줄러는
    상기 중복된 레이어의 개수가 동일한 엣지 워커 노드가 복수개 존재하는 경우, 상기 엣지 워커 노드들 중에서 유휴자원이 가장 많은 엣지 워커 노드를 상기 타겟 엣지 워커 노드로 선택하는 것을 특징으로 하는 서비스 배포 플랫폼 서버.
  6. 제1항에 있어서, 상기 중앙 레지스트리는
    상기 개발자 서버의 개발 레지스트리로부터 푸시(push)된 상기 서비스 어플리케이션의 컨테이너 이미지 및 매니페스트 파일을 수신하여 저장하는 것을 특징으로 하는 서비스 배포 플랫폼 서버.
  7. 제1항에 있어서, 상기 중앙 레지스트리는
    상기 중앙 레지스트리에 접근하는 액세스에 대하여, 상기 컨테이너 이미지에 대한 업로드 또는 다운로드 권한을 확인하는 인증부;
    상기 컨테이너 이미지를 레이어(overlay file system) 구조로 저장하는 이미지 저장부; 및
    상기 컨테이너 이미지에 대응하는 상기 매니페스트 파일을 저장하는 매니페스트 저장부를 포함하는 것을 특징으로 하는 서비스 배포 플랫폼 서버.
  8. 제1항에 있어서, 상기 MEP 매니저는
    상기 타겟 엣지 워커 노드에 따라, 상기 매니페스트 파일의 노드 셀렉터(node selector) 또는 노드 어피니티(node affinity)의 키값을 수정하여, 상기 서비스 어플리케이션을 배포할 엣지 워커 노드를 특정하는 것을 특징으로 하는 서비스 배포 플랫폼 서버.
  9. 제1항에 있어서,
    상기 MEP 매니저는 상기 서비스 어플리케이션의 컨테이너를 생성하도록 상기 타겟 엣지 워커 노드와 API 통신을 수행하고,
    상기 중앙 레지스트리는 상기 타겟 엣지 워커 노드의 풀(pull) 요청에 대응하여 상기 컨테이너 이미지를 제공하는 것을 특징으로 하는 서비스 배포 플랫폼 서버.
  10. 제1항에 있어서,
    상기 엣지 워커 노드의 자원사용량 또는 상기 서비스 어플리케이션의 서비스 상태 정보를 취합하는 모니터링부를 더 포함하는 것을 특징으로 하는 서비스 배포 플랫폼 서버.
  11. 제1항에 있어서, 상기 엣지 워커 노드는
    복수의 워커 노드(worker node)들을 포함하는 엣지 클러스터(edge cluster)를 포함하고,
    상기 엣지 클러스터는
    상기 MEP 매니저와 연동하여, 상기 서비스 어플리케이션을 상기 워커 노드에 배포하는 엣지 클러스터 마스터(edge cluster master);
    상기 중앙 레지스트리와의 미러링(mirroring)을 통해 수신한 컨테이너 이미지 및 매니페스트 파일을 저장하는 엣지 레지스트리; 및
    스케줄링 알고리즘에 따라, 상기 워커 노드 중 상기 서비스 어플리케이션을 배포할 타겟 워커 노드를 선택하여, 상기 엣지 클러스터 마스터로 제공하는 엣지 스케쥴러(edge scheduler)를 포함하는 것을 특징으로 하는 서비스 배포 플랫폼 서버.
  12. 서비스 어플리케이션을 복수의 엣지 워커 노드(edge worker node)로 원격 배포하는 서비스 배포 플랫폼 서버의 서비스 배포 방법에 있어서,
    서비스 어플리케이션에 대응하는 컨테이너 이미지(container image) 및 매니페스트(manifest) 파일을 수신하여 저장하는 단계;
    상기 서비스 어플리케이션을 엣지 워커 노드로 배포하도록 요청하는 사용자의 입력을 수신하는 단계;
    상기 복수의 엣지 워커 노드 중 상기 서비스 어플리케이션을 배포할 타겟 엣지 워커 노드를 선택하는 단계; 및
    상기 타겟 엣지 워커 노드로 상기 서비스 어플리케이션을 배포하는 API(Application Programming inferface) 기능을 수행하는 단계를 포함하는 서비스 배포 방법.
  13. 하드웨어와 결합되어, 제12항에 따른 서비스 배포 방법을 수행하기 위하여 매체에 저장된 컴퓨터 프로그램.
KR1020210189462A 2021-12-28 2021-12-28 서비스 배포 플랫폼 서버 및 이를 이용한 서비스 배포 방법 KR20230099983A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020210189462A KR20230099983A (ko) 2021-12-28 2021-12-28 서비스 배포 플랫폼 서버 및 이를 이용한 서비스 배포 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210189462A KR20230099983A (ko) 2021-12-28 2021-12-28 서비스 배포 플랫폼 서버 및 이를 이용한 서비스 배포 방법

Publications (1)

Publication Number Publication Date
KR20230099983A true KR20230099983A (ko) 2023-07-05

Family

ID=87159162

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210189462A KR20230099983A (ko) 2021-12-28 2021-12-28 서비스 배포 플랫폼 서버 및 이를 이용한 서비스 배포 방법

Country Status (1)

Country Link
KR (1) KR20230099983A (ko)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210098724A (ko) 2020-02-03 2021-08-11 삼성전자주식회사 엣지 컴퓨팅 서비스 제공을 위한 방법 및 장치

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210098724A (ko) 2020-02-03 2021-08-11 삼성전자주식회사 엣지 컴퓨팅 서비스 제공을 위한 방법 및 장치

Similar Documents

Publication Publication Date Title
CN106991035B (zh) 一种基于微服务架构的主机监控系统
CN109542611B (zh) 数据库即服务系统、数据库调度方法、设备及存储介质
US11700296B2 (en) Client-directed placement of remotely-configured service instances
US9413604B2 (en) Instance host configuration
US8832130B2 (en) System and method for implementing on demand cloud database
WO2020062131A1 (zh) 一种基于区块链技术的容器云管理系统
US8104038B1 (en) Matching descriptions of resources with workload requirements
US8434077B2 (en) Upgrading virtual resources
JP5328177B2 (ja) 情報処理装置、情報処理装置のデータ処理方法、記憶媒体及びプログラム
US8832113B2 (en) Data management apparatus and system
US10922303B1 (en) Early detection of corrupt data partition exports
CA2898478C (en) Instance host configuration
CN109120678A (zh) 用于分布式存储系统的服务托管的方法和装置
US8966025B2 (en) Instance configuration on remote platforms
US7440971B2 (en) Context based access of files by file system to a client based on detection of related files opened by the client
CN106789249B (zh) 热更新方法、客户端及服务器
CN111124475A (zh) 存储管理的方法、电子设备和计算机可读存储介质
US10922290B2 (en) Method and apparatus for organizing database system in a cloud environment
KR20230099983A (ko) 서비스 배포 플랫폼 서버 및 이를 이용한 서비스 배포 방법
CN112559138B (zh) 一种资源调度系统及方法
US11290318B2 (en) Disaster recovery of cloud resources
KR20190015817A (ko) 미들웨어를 이용한 모니터링 방법, 장치 및 시스템
CN111459532A (zh) 基于自主研发环境的云平台优化方法
KR20150137766A (ko) 가상머신 스택 생성 시스템 및 방법
WO2022001203A1 (zh) 镜像分发方法、电子设备及存储介质