KR20220103490A - 전력 시스템을 위한 마이크로 서비스 개발 플랫폼 및 마이크로 서비스 배포 실행 방법 - Google Patents

전력 시스템을 위한 마이크로 서비스 개발 플랫폼 및 마이크로 서비스 배포 실행 방법 Download PDF

Info

Publication number
KR20220103490A
KR20220103490A KR1020210006142A KR20210006142A KR20220103490A KR 20220103490 A KR20220103490 A KR 20220103490A KR 1020210006142 A KR1020210006142 A KR 1020210006142A KR 20210006142 A KR20210006142 A KR 20210006142A KR 20220103490 A KR20220103490 A KR 20220103490A
Authority
KR
South Korea
Prior art keywords
microservices
microservice
container
source code
api
Prior art date
Application number
KR1020210006142A
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 KR1020210006142A priority Critical patent/KR20220103490A/ko
Publication of KR20220103490A publication Critical patent/KR20220103490A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • G06F8/63Image based installation; Cloning; Build to order
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/72Code refactoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/505Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/547Remote procedure calls [RPC]; Web services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
    • G06Q50/06Energy or water supply
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45562Creating, deleting, cloning virtual machine instances
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/4557Distribution of virtual machine instances; Migration and load balancing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45579I/O management, e.g. providing access to device drivers or storage
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45591Monitoring or debugging support

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Business, Economics & Management (AREA)
  • Health & Medical Sciences (AREA)
  • Economics (AREA)
  • Water Supply & Treatment (AREA)
  • Public Health (AREA)
  • General Health & Medical Sciences (AREA)
  • Human Resources & Organizations (AREA)
  • Marketing (AREA)
  • Primary Health Care (AREA)
  • Strategic Management (AREA)
  • Tourism & Hospitality (AREA)
  • General Business, Economics & Management (AREA)
  • Electrotherapy Devices (AREA)
  • Amplifiers (AREA)
  • Medicines That Contain Protein Lipid Enzymes And Other Medicines (AREA)

Abstract

본 발명의 마이크로 서비스 개발 플랫폼은, 전력 분야의 마이크로 서비스 어플리케이션의 개발 지원 및 Back-end 서비스를 위한 UI를 제공하는 마이크로 서비스 개발 프레임워크; 전력 마이크로 서비스 어플리케이션의 소스 코드 관리 및 컨테이너 환경의 배포 자동화를 지원하는 파이프라인; 전력 마이크로 서비스의 안정적인 운영을 위하여 다수의 마스터 노드 및 워커 노드 가상 서버를 생성하여 클러스터를 구성하며 마이크로 서비스 어플리케이션을 컨테이너로 실행하는 마이크로 서비스 컨테이너 실행환경; 및 전력 마이크로 서비스와 Back-end 서비스의 운영을 위한 오브젝트 스토리지와 블록 스토리지를 제공하는 스토리지를 포함할 수 있다.

Description

전력 시스템을 위한 마이크로 서비스 개발 플랫폼 및 마이크로 서비스 배포 실행 방법{MICROSERVICE DEVELOPMENT PLATFORM AND DEPLOYMENT-EXECUTION METHOD FOR POWER SYSTEM}
본 발명은 전력 분야에서 전력 시스템 분야에서 마이크로 서비스 방식의 소프트웨어로 개발하는 방법으로서, 개발 편의성 및 관련 시스템 운영 효율을 높일 수 있는 마이크로 서비스 개발 플랫폼 및 마이크로 서비스 배포 실행 방법에 관한 것이다.
다양한 분야에서 기업의 IT 환경이 On-Premise에서 클라우드 기반으로 변화하면서 확장성 및 효율성을 높이고 있다.
반면, 현재 대부분의 전력 어플리케이션을 독립적인 서버환경(Baremetal) 또는 클라우드 가상화 환경인 가상머신(Virtual Machine)를 기반으로 Monolith한 형태로 개발하고 있다.
Monolith한 어플리케이션은 유지보수의 어려움, 배포의 복잡성, 운영환경 확장의 어려움, 높은 결합도에 따른 개발기간 증가, 클라우드 인프라에서 동작하지 않는 등 문제점을 가지고 있어 빠르게 변화하는 에너지 신사업 분야에 신속하고 유연하게 대응할 수 없는 문제점이 있다.
한편, 전력/에너지 분야는 사용하는 정보/데이터가 비교적 적은 편이나, 전체 계통의 통일적인 운영을 위해, 사용하는 정보/데이터에 대한 사후 지원으로서 수정 등은 일괄적으로 수행되어야 할 필요가 있다. 또한, 사용하는 정보/데이터가 비교적 적은 편이어도, 불필요하게 빈번한 데이터 수집 등으로 통신 채널을 보유하는 어플리케이션이 존재하는 경우, 전력 계통 관리 시스템 및 다른 어플리케이션들에 대해서도 운영 효율성을 떨어뜨리게 된다. 또한, 전력/에너지 분야는 사용하는 정보/데이터는 대부분 전력 시스템에서 도출된 것이며, 어플리케애션 개발자나 이용자가 생성한 것은 거의 없다.
그러나, 전력/에너지 분야에서 제3자인 개발자의 어플리케이션 개발을 지원하고, 후속 조치를 지원할 수 있는 개발 플랫폼이 제시되지 않아, 일반적인 어플리케이션 개발 툴을 이용할 수 밖에 없어, 개발 효율을 떨어뜨리고, 전력 시스템 운용은 난립한 어플리케이션으로 인하여 어려워지는 문제점도 존재한다.
대한민국 공개공보 10-2017-0133055호
본 발명은 전력 분야에서 응용 프로그램을 개발하는데 있어 개발자의 개발 편의성을 높이고, 전력 관리 시스템에서 응용 프로그램에 대한 지원 효율을 높일 수 있는 서버리스 개발 지원 플랫폼 및 방법을 제공하고자 한다.
본 발명의 일 측면에 따른 마이크로 서비스 개발 플랫폼은, 전력 분야의 마이크로 서비스 어플리케이션의 개발 지원 및 Back-end 서비스를 위한 UI를 제공하는 마이크로 서비스 개발 프레임워크; 전력 마이크로 서비스 어플리케이션의 소스 코드 관리 및 컨테이너 환경의 배포 자동화를 지원하는 파이프라인; 전력 마이크로 서비스의 안정적인 운영을 위하여 다수의 마스터 노드 및 워커 노드 가상 서버를 생성하여 클러스터를 구성하며 마이크로 서비스 어플리케이션을 컨테이너로 실행하는 마이크로 서비스 컨테이너 실행환경; 및 전력 마이크로 서비스와 Back-end 서비스의 운영을 위한 오브젝트 스토리지와 블록 스토리지를 제공하는 스토리지를 포함할 수 있다.
여기서, 상기 마이크로 서비스 컨테이너 실행환경은, 상기 파이프라인에서 생성한 컨테이너용 이미지를 가상 머신으로 배포하는 API 서버; 및 상기 마이크로 서비스 어플리케이션에서의 API 호출을 처리하는 API 게이트웨이를 포함할 수 있다.
여기서, 상기 API 서버 및 상기 API 클라이언트는, 전력 분야의 발전, 송변전, 배전 및 수요에 대한 기능을 API로 규정하며, 상기 마이크로 서비스 개발 프레임워크는, 마이크로 서비스의 Restful API 명세를 자동화할 수 있는 명세 언어와, 개발된 API를 Document화하고, 테스트할 수 있는 기본적인 코드를 제공할 수 있다.
여기서, 전력 마이크로 서비스 운영에 필요한 데이터베이스, 개발도구 및 미들웨어를 컨테이너 환경으로 생성하여 제공하는 Back-end 서비스를 더 포함할 수 있다.
여기서, 상기 마이크로 서비스 개발 프레임워크는, Stateless한 마이크로 서비스의 동적 스케쥴링 동작을 지원할 수 있도록 설정을 외부화하는 기능; 배포된 마이크로서비스를 동적으로 발견하여 레지스트리 목록에 등록하며 로드밸런싱 서비스를 제공하는 기능; 마이크로 서비스를 부하관리 및 모니터링하는 기능; 마이크로 서비스에서 발생하는 로그를 수집하여 저장하고 탐색하는 기능; 및 마이크로 서비스간의 트래픽을 추적하는 기능 중 적어도 하나 이상을 개발자에게 지원하기 위한 UI를 제공할 수 있다.
여기서, 상기 파이프라인은, 소스코드 저장소를 이용하여 소스코드를 통합하고 마이크로 서비스 빌드를 위하여 패키지와 라이브러리의 의존도를 체크하고 빌드하는 기능; 및 컨테이너 기본 이미지에 실행파일을 삽입하여 이미지를 생성한 후 이미지 저장소에 저장하며, 생성된 이미지를 컨테이너 실행환경의 API 서버를 통하여 컨테이너로 생성하는 기능 중 적어도 하나 이상을 수행할 수 있다.
여기서, 상기 마이크로 서비스 컨테이너 실행환경은, 사용자가 직접 가상서버 사양을 입력하여 클러스터를 자동 생성하는 기능; 생성된 클러스터에서 마이크로 서비스를 실행하고, 서비스 로드밸런싱과 API 게이트웨이를 제공하는 기능; 및 사용자 포털을 통하여 클러스터를 생성하고 수정, 삭제하며, 모니터링하는 기능 중 적어도 하나 이상을 수행할 수 있다.
여기서, 상기 스토리지는, 오브젝트 스토리지 사용자 포털을 통하여 API키를 발급하고, 버킷을 생성하며, 파일을 업로드하고 다운로드하는 기능; API 게이트웨이를 통하여 데이터 파일을 스토리지 노드의 디스크에 저장하고 삭제하는 스케쥴링 기능; Stateful한 서비스의 영구적인 데이터 저장을 위하여 블록 스토리지를 구성하는 기능; 및 각 마이크로 서비스별로 블록 스토리지 컨트롤러를 자동 구성하고, 논리볼륨을 Replica로 복제하여 HA를 구성하는 기능 중 적어도 하나 이상을 수행할 수 있다.
여기서, 상기 Back-end 서비스는, 상기 전력 마이크로 서비스 개발에 필요한 Stateful한 방식의 데이터베이스인 관계형 데이터베이스, In-Memory 데이터베이스, 그래프 데이터베이스, 시계열 데이터베이스, 도큐먼트 데이터베이스, 분산데이터베이스, 분산 파일 시스템, 메시지 큐, 컨텍스트 브로커 중 적어도 하나 이상을 컨테이너 환경으로 자동 생성하여 제공할 수 있다.
여기서, 상기 Back-end 서비스는, 개발도구인 소스코드 저장소, 빌드 도구, 테스트 도구, 이미지 저장소, API 게이트웨이, 프로젝트 관리도구, 분석도구, GIS 시각화 도구, 로드 수집기, 로그 검색기, 매트릭스 모니터링, 모니터링 시각화 서비스 중 적어도 하나 이상을 컨테이너 환경으로 자동 생성하여 제공하거나, WEB 미들웨어, WAS 미들웨어, L4 로드밸런서, L7 로드밸런서 중 적어도 하나 이상을 컨테이너로 자동 생성하여 제공할 수 있다.
본 발명의 다른 측면에 따른 마이크로 서비스 배포 실행 방법은, 소스 코드를 접수하는 단계; 패키지/라이브러리에 대한 의존도를 체크하고, 필요한 패키지/라이브러리를 다운로드하는 단계; 소스 코드를 검사하는 단계; 소스 코드를 빌드하여 실행파일을 생성하는 단계; 상기 실행파일을 컨테이너용 이미지로 생성하는 단계; 상기 컨테이너용 이미지를 이미지 저장소에 등록하는 단계; 컨테이너용 이미지의 설정 정보를 입력하고, API 서버와 배포 스케쥴러를 통해 마이크로 서비스 컨테이너에 로딩하는 단계; 및 API 게이트웨이 또는 웹 어플리케이션에 의해 마이크로 서비스 컨테이너에 로딩된 이미지를 실행하는 단계를 포함할 수 있다.
여기서, 상기 소스 코드를 접수하는 단계는, 로컬 소스 코드 저장소에 작성된 소스 코드를 커밋하는 단계; 및 원격 소스 코드 통합 저장소에 상기 소스 코드를 푸쉬하는 단계를 포함할 수 있다.
상술한 구성의 본 발명의 사상에 따른 마이크로 서비스 개발 플랫폼을 실시하면, 전력 분야에서 응용 프로그램을 개발하는데 있어 개발자의 개발 편의성을 높이고, 전력 관리 시스템에서 응용 프로그램에 대한 지원 효율을 높일 수 있는 이점이 있다.
본 발명의 사상에 따른 마이크로 서비스 개발 플랫폼은, 마이크로 서비스 아키텍처 기반으로 개발된 전력 어플리케이션의 가독성을 향상시키고, 유지보수를 용이하게 하며, 각 마이크로 서비스 당 독립적으로 간편하게 배포가 가능하여 다운타임 없이 각 서비스를 배포할 수 있도록 하는 이점이 있다.
본 발명의 사상에 따른 마이크로 서비스 개발 플랫폼은, 각 마이크로 서비스별로 상이한 언어로 개발이 가능하고, 특정 서비스에 병목이 발생하는 경우 전체 어플리케이션의 확장이 아닌 병목이 발생한 서비스 단위로 확장이 가능하여 운영비용을 최소화할 수 있는 이점이 있다.
본 발명의 사상에 따른 마이크로 서비스 개발 플랫폼은, 마이크로 서비스 방식으로 개발된 어플리케이션은 지속적으로 통합되고, 배포될 수 있어서 새로운 고객 및 시장 요구에 보다 쉽게 대응할 수 있는 민첩성을 제공하는 이점이 있다. 즉, 기존의 Monolithic 어플리케이션에 비하여 보다 신속한 피드백 주기를 보장하며, 빈번한 배포와 빠른 배포시간이 가능하므로, 마이크로 서비스 방식으로 어플리케이션을 개발하면 개발과 배포에 소요되는 시간을 단축할 수 있어 신속하게 신규 에너지 사업에 대응할 수 있다.
본 발명의 사상에 따른 마이크로 서비스 개발 플랫폼은, 마이크로 서비스는 하나의 큰 코드 기반이 아니기 때문에 기능에 대한 유지관리나 추가가 용이한 이점이 있다. 즉, 기존 기술 또는 최적의 언어 사용이 가능하며, 보다 쉬운 디버깅 환경을 제공한다. SW개발 팀간 독립적인 작업이 가능하고, 단일 팀에서 서비스에 대한 정의에서부터 개발, 배치, 운영 및 폐기까지 관리할 수 있어 서비스의 품질을 향상시킬 수 있다.
도 1은 기존 기술의 Monolithic Application과 본 발명이 제안하는 Micro Service Application 아키텍처를 비교한 개념도.
도 2는 본 발명의 사상에 따른 마이크로 서비스 개발 플랫폼의 전체 구성을 도시한 블록도.
도 3은 설정 외부화 구성을 나타낸 개념도.
도 4는 서비스 디스커버리 구성을 나타낸 개념도.
도 5는 로그 수집 및 검색기의 구성을 나타낸 개념도.
도 6은 파이프라인을 통한 마이크로 서비스 배포 프로세스를 도시한 흐름도.
도 7은 도 2의 마이크로 서비스 컨테이너 실행환경의 세부 구성의 일 례를 도시한 블록도.
도 8은 도 2의 클러스터의 구성의 일 예를 도시한 개념도.
도 9는 다중 클러스터의 구성을 도시한 개념도.
도 10은 오브젝트 스토리지의 구성을 도시한 개념도.
도 11은 블록 스토리지의 구성을 도시한 개념도.
도 12는 도 2의 Back-end 서비스의 구성의 일 예를 도시한 개념도.
본 발명을 설명함에 있어서 제 1, 제 2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 구성요소들은 용어들에 의해 한정되지 않을 수 있다. 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제 1 구성요소는 제 2 구성요소로 명명될 수 있고, 유사하게 제 2 구성요소도 제 1 구성요소로 명명될 수 있다.
어떤 구성요소가 다른 구성요소에 연결되어 있다거나 접속되어 있다고 언급되는 경우는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해될 수 있다.
본 명세서에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함할 수 있다.
본 명세서에서, 포함하다 또는 구비하다 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것으로서, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해될 수 있다.
또한, 도면에서의 요소들의 형상 및 크기 등은 보다 명확한 설명을 위해 과장될 수 있다.
도 1은 기존 기술의 Monolithic Application과 본 발명이 제안하는 Micro Service Application 아키텍처를 비교한 것이다.
본 발명에서 제안하는 마이크로 서비스 아키텍처 기반의 전력 소프트웨어 개발 플랫폼은 상술한 Monolith한 개발방식의 단점을 해결하기 위한 것으로서, 마이크로 서비스 방식의 어플리케이션은 우선 N개의 코드로 서비스를 수직으로 세분화하여 개발하고 배포함으로써 가독성이 향상되어 유지보수가 용이해지며, 마이크로서비스 당 독립적인 간편한 배포가 가능하여 다운타임을 최소화 할 수 있다.
또한, 각 마이크로 서비스의 변경이 발생하는 경우에 독립적으로 즉시 배포할 수 있고, 개발기간을 단축할 수 있어 신규 어플리케이션을 신속하게 개발하여 신사업에 민첩하게 대응할 수 있다.
기존의 Monolithic Appication과 Micro Service Applicatin의 차이점들을 항목별로 정리하면, 하기 표 1과 같다.
Figure pat00001
도 2는 본 발명의 사상에 따른 마이크로 서비스 개발 플랫폼의 전체 구성을 도시한 블록도이다.
도시한 마이크로 서비스 개발 플랫폼은, 발전, 송변전, 배전 및 수요 등 전력분야의 마이크로 서비스 어플리케이션의 개발 지원 및 Back-end 서비스를 위한 UI를 제공하는 마이크로 서비스 개발 프레임워크(100); 전력 마이크로 서비스 어플리케이션의 소스 코드 관리 및 컨테이너 환경의 배포 자동화를 지원하는 파이프라인(110); 전력 마이크로 서비스의 안정적인 운영을 위하여 다수의 마스터 노드 및 워커 노드 가상 서버를 생성하여 클러스터를 구성하며 마이크로 서비스 어플리케이션을 컨테이너로 실행하는 마이크로 서비스 컨테이너 실행환경(200); 및 Stateful 방식(로컬 볼륨 존재)과 Stateless 방식(로컬 볼륨 없음)의 전력 마이크로 서비스와 Back-end 서비스의 운영을 위한 오브젝트 스토리지와 블록 스토리지를 제공하는 스토리지(300)를 포함한다.
또한, 전력 마이크로 서비스 운영에 필요한 데이터베이스, 개발도구 및 미들웨어를 컨테이너 환경으로 자동으로 생성하여 제공하는 Back-end 서비스(400)를 더 포함한다.
전력 업체나 마이크로 서비스 개발 플랫폼 관리 업체는 전력 분야의 발전, 송변전, 배전 및 수요에 대한 기능을 API로 규정할 수 있다.
도시한 마이크로 서비스 프레임워크(100)는, 마이크로 서비스의 Restful API 명세를 자동화할 수 있는 명세 언어와, 개발된 API를 자동으로 Document화하고, 테스트할 수 있는 기본적인 코드를 제공한다. 즉, 마이크로 서비스 개발 플랫폼을 이용하여 전력 마이크로 서비스를 개발할 수 있는 UI(User Interface) 환경을 제공한다. 이를 위해, 상기 스토리지(300), Back-end 서비스(400)와 함께 서비스 디스커버리, 설정의 외부화, 분산추적, 모니터링 등의 기능을 개발자에게 제공할 수 있다.
도시한 파이프라인(110)은 SW 개발자가 개발한 소스 코드를 관리하고, 컨테이너 실행환경으로 자동으로 배포하는 것으로, 소스코드 저장소, 패키지 및 라이브러리 저장소, 빌드도구, 이미지 저장소로 구성될 수 있다.
도시한 마이크로 서비스 컨테이너 실행환경(200)은 마이크로 서비스 방식으로 개발된 어플리케이션 이미지를 컨테이너로 실행하여 클러스터 내부에서 동적으로 스케쥴링하며, 컨테이너 실행을 위한 블록 스토리지와 오브젝트 스토리지를 연계해주고, 데이터베이스 및 API 게이트웨이 등 Back-end 서비스를 연계하는 기능을 제공할 수 있다.
상기 마이크로 서비스 컨테이너 실행환경(200)은, API Server, 컨테이너 배포 스케쥴러, 노드관리, 클러스터 관리, 마이크로 서비스 컨테이너, Back-end 서비스, API 게이트웨이, 웹어플리케이션 컨테이너, 로드밸런서로 구성될 수 있다.
도시한 스토리지(300)는 컨테이너의 운영체제 영역과 데이터 영역을 저장하는 저장소로서, 오브젝트 스토리지와 블록 스토리지를 제공한다. 각 스토리지는 컨테이너 기반의 클러스터로 관리되며, 컨테이너 실행환경과 브로커를 통하여 연결할 수 있다.
도시한 Back-end 서비스(400)는 어플리케이션의 개발과 실행에 필요한 WEB 미들웨어, WAS 미들웨어, 데이터베이스관리시스템, 메시지 큐, In-Memory 데이터베이스 등 으로 구성되며, 각 어플리케이션마다 컨테이너를 기반으로 생성하여 활용할 수 있다.
상기 마이크로 서비스 프레임워크(100)에 대하여 살펴보겠다.
전력 분야의 마이크로 서비스 어플리케이션을 개발하기 위한 프레임워크로서 설정 외부화, 서비스 디스커버리, 부하관리 및 모니터링, 로그수집 및 검색, 분산 추적 기능을 제공한다.
도 3은 설정 외부화 구성을 나타낸 개념도이다.
설정 외부화란 마이크로 서비스의 외부 속성을 중앙에서 관리하는 방식으로 도 3과 같이 설정 파일을 API를 통하여 관리하는 것이다. 설정 정보는 보안을 위하여 암호화 저장되며, 속성 값의 암호화와 암호 해독을 위하여 대칭 또는 비대칭키를 지원하며,Annotation 기능을 이용하여 쉽게 삽입할 수 있도록 한다.
상기 설정 외부화를 통해, 개발자가 개발한 어플리케이션이 배포된 후, 제3자가 이를 이용할 때, 해당 어플리케이션의 실행에 필요한 스토리지 영역에 접근하고, 해당 어플리케이션에 필요한 사전 설정값들을 반영할 수 있다.
도 4는 서비스 디스커버리 구성을 나타낸 개념도이다.
서비스 디스커버리란 도 4와 같이 새로운 서비스가 새롭게 투입되면 그것을
감지하여 마이크로 서비스 레지스트리 목록에 자동으로 추가하고, 서비스가 종료되면 자동으로 목록에서 삭제하는 기능이다. 이러한 서비스 디스커버리를 통하여 서비스 로드밸런싱을 제공할 수 있다.
부하관리 및 모니터링이란 시스템 자원을 소모하는 특정 메소드 지연에 의한 전체 시스템 장애가 발생하지 않도록 하기 위하여 Circuit Breaker를 적용하는 방식이다. 메소드 호출을 Intercept하여 대신 실행하며, 실행된 결과의 성공과 실패 여부를 기록한다. 실행 결과 통계에 따라 Circuit Open여부를 판단하고, 메소드 호출을 Intercenpt하여 대신 실행하여 에러시 호출을 제한시킬 수 있다.
도 5는 로그 수집 및 검색기의 구성을 나타낸 개념도이다.
로그수집 및 검색은 마이크로 서비스에서 발생하는 다양한 로그를 외부 환경에 저장하고 검색할 수 있는 환경을 제공한다. 시스템 로그, 웹서버 로그, 에러 로그, 어플리케이션 로그, 발생할 수 있는 모든 종류의 log를 받고 처리하고 출력할 수 있는 유연하고 풍부한 기능과 전송 파이프라인을 가진 데이터 수집 소스이다.
분산, 확장성, 고가용성, 멀티 태넌시, 전문 검색, 문서 중심의 기능으로 강력하고 화려한 그래픽을 통행 데이터 작업을 할 수 있는 데이터 시각화 플랫폼 저장소로 활용된다.
도 5에서는 로그 수집 및 검색기의 구성 요소로서, 마이크로 서비스 어플리케이션의 로깅 동작을 제어/모니터링하는 로깅 API(52), 상기 로깅 동작들을 구분하여 하기 로그 저장소(56)에 저장하는 로그 적재기(54), 상기 로깅 동작에 따른 로그가 저장된 로그 저장소(56), 및 상기 로그 저장소(56)에 저장된 로그를 조회하는 로그 조회 대시보드 UI를 제공하는 로그 조회 UI(58)를 나타내고 있다.
도시한 구성요소들 중, 로깅 API(52) 및 로그 적재기(54)는, 마이크로 서비스 컨테이너 실행환경(200)에 구비되고, 로그 저장소(56)는 스토리지(300)에 구비되고, 로그 조회 UI(58)는 마이크로 서비스 개발 프레임워크(100)에 구비될 수 있다.
분산추적이란 트랜잭션이 여러 컴포넌트의 종합을 통해서 발생하기 때문에 추적 모니터링을 위해서 별도의 분산로그 추적 기능을 제공하는 것이다. 분산 트랜잭션 중에서 HTTP, gRPC를 지원하며, 스토리지(300)는 In-memory, RDB를 제공하고, 시각화 솔루션을 이용하여 로그를 시각화할 수 있다.
도 6은 파이프라인을 통한 마이크로 서비스 배포 프로세스를 도시한 흐름도이다.
도시한 흐름도에 따른 마이크로 서비스 배포 실행 방법은, 소스 코드를 접수하는 단계; 패키지/라이브러리에 대한 의존도를 체크하고, 필요한 패키지/라이브러리를 다운로드하는 단계(S120); 소스 코드를 다운로드한 패키지/라이브러리와 함께 검사하는 단계(S130); 소스 코드를 다운로드한 패키지/라이브러리와 함께 빌드하여 실행파일을 생성하는 단계(S140); 상기 실행파일을 컨테이너용 이미지로 생성하는 단계(S150); 상기 컨테이너용 이미지를 이미지 저장소에 등록하는 단계(S160); 컨테이너용 이미지의 설정 정보를 입력하고, API 서버와 배포 스케쥴러를 통해 마이크로 서비스 컨테이너에 로딩하는 단계(S180); API 게이트웨이 또는 웹 어플리케이션에 의해 마이크로 서비스 컨테이너에 로딩된 이미지를 실행하는 단계(S190를 포함할 수 있다.
도시한 바와 같이, 상기 소스 코드를 접수하는 단계는, 로컬 소스 코드 저장소에 작성된 소스 코드를 커밋하는 단계(S110); 및 원격 소스 코드 통합 저장소에 상기 소스 코드를 푸쉬하는 단계(S115)를 포함할 수 있다.
이는 개발자가 작성한 소스 코드를 마이크로 서비스 개발 프레임워크(100) 내에 구비된 로컬 소스 코드 저장소에 임시 저장하였다가, 파이프라인(110)에 구비된 원격 소스 코드 통합 저장소로 저장하는 방식을 반영한 것이다.
본 발명에서 제공하는 파이프라인을 이용하면, 전력 마이크로 서비스 개발을 위한 소스코드는 개발자의 로컬 PC에 Commit후에 원격 소스코드 저장소로 Push되어 분할된 Branch로 통합된다. 통합된 소스코드는 테스트도구와 빌드도구로 연계가 되며, 빌드 도구에서는 소스코드에서 사용하는 Dependancy를 참고하여 패키지 및 라이브러리 서버의 패키지를 참고하여 소스코드를 빌드하여 실행파일을 제작한다. 다음으로 컨테이너 실행을 위한 Base 이미지에 실행파일을 복사하여 마이크로 서비스 이미지를 제작하며, 제작된 이미지를 태깅한 후에 이미지 저장소에 Push한다. 이미지 저장소에 Push된 마이크로 서비스 이미지는 컨테이너 실행환경의 배포 스케쥴러를 통하여 클러스터의 컨테이너로 실행되고, 네트워크에 연결되어 내부에서 접속이 가능한 상태가 된다.
도 7은 상기 마이크로 서비스 컨테이너 실행환경(200)의 세부 구성의 일 례를 도시한 블록도이다.
전력 마이크로 서비스 어플리케이션을 컨테이너로 실행하기 위하여, 개발자측 각 프로젝트별로 클러스터를 가상서버를 기반으로 자동 생성한다. 개발자인 사용자는 클러스터 구성을 위한 마스터 노드와 워커 노드의 개수와 서버 사양을 입력함으로써 다수의 가상서버를 생성하며, 생성된 가상서버에 컨테이너 실행환경을 구성할 수 있다. 사용자가 개발하여 배포한 웹 어플리케이션과 마이크로 서비스 어플리케이션은 도시한 바와 같이 각각 컨테이너 그룹(260, 250)에 배포가 되며, 각 서비스에 필요한 백엔드 서비스는 백엔드 서비스 그룹(280)에 배포될 수 있다.
웹 어플리케이션은 서비스 로드밸런서(270)를 통하여 사용자에게 서비스를 제공할 수 있고, 마이크로 서비스 어플리케이션(220)은 서비스별 프락시(251 ~ 50N)를 통하여 트래픽 관리가 제공되고, API 게이트웨이(240)를 통하여 다른 어플리케이션에서 API를 호출하여 서비스를 이용할 수도 있다.
상기 마이크로 서비스 컨테이너 실행환경(200)의 세부 구성 요소들 중 본 발명의 사상을 전력 분야에 적용하기 위해, 상기 파이프라인에서 생성한 컨테이너용 이미지를 가상 머신으로 배포하는 API 서버; 및 상기 마이크로 서비스 어플리케이션에서의 API 호출을 처리하는 API 게이트웨이를 구비한다.
상기 API 서버 및 상기 API 클라이언트는, 전력 분야의 발전, 송변전, 배전 및 수요에 대한 기능을 API로 규정하고 있으며, 상기 API 서버 및 상기 API 클라이언트는, 마이크로 서비스 개발 플랫폼 제공 업체 또는 전력 업체에 관리 권한이 부여되어 있다. 이에 따라, 상기 API를 조정/관리하는 방식으로 마이크로 서비스 개발 플랫폼 제공 업체 또는 전력 업체가, 전력 환경이나 전체 시스템의 변경시에도 전체 전력 관련 정보 및 서비스의 일관성/안전성을 유지하면서 용이하게 이를 반영할 수 있다. 이에 따라, 개발 편의성과 함께 전력 분야 관련 시스템을 운영하는 효율을 높일 수 있다.
도 8은 클러스터의 구성의 일 례를 도시한 개념도이다.
각 프로젝트별로 마이크로 서비스 실행환경을 도 8와 같이 클러스터 형태로 자동으로 구성할 수 있다. 클러스터의 생성은 가상머신 API Server(84)를 통하여 이루어져, 가상머신 배포 스케쥴러(86)에 의해 가상머신 배포를 스케쥴링 할 수 있으며, 다수의 마스터 노드와 워커노드를 가상서버로 자동 생성할 수 있다.
각 마스터 노드는 API Server, 컨테이너 스케쥴러, 데이터베이스로 구성된다. 워커노드는 API 게이트웨이, 서비스 로드밸런서, 컨테이너 컨트롤러로 구성되며, 사용자가 배포한 웹어플리케이션, 마이크로 서비스, 백엔드 서비스가 배포되며, 각 마이크로 서비스는 서비스 프락시를 통하여 트래픽을 관리할 수 있다.
도 9는 다중 클러스터의 구성을 도시한 개념도이다.
클러스터 관리를 위한 UI가 구성되며, 주요 기능으로는 클러스터 생성, 수정, 삭제와 모니터링을 제공한다. 가상머신 API Server(84)를 통하여 클러스터 생성이 요청되면 가상머신 배포 스케쥴러(86)를 통하여 도 9와 같이 마스터 노드를 생성하고, 환경을 설정하며, 다음으로 워커노드를 생성하고 워커노드의 환경설정을 수행한다.
도 10은 오브젝트 스토리지의 구성을 도시한 개념도이다.
스토리지(300)는 블록 스토리지와 오브젝트 스토리지로 구분한다. 블록 스토리지는 Stateful 방식의 컨테이너에 영구 볼륨(Persistent Volume)을 제공하기 위한 스토리지 서비스이다. 영구적으로 디스크 공간이 할당되며, 컨트롤러 컨테이너와 논리 볼륨이 Replica와 같이 HA로 구성되어 안정적으로 데이터를 저장 및 관리할 수 있다.
오브젝트 스토리지는 파일 단위로 데이터를 쓰고 읽을 수 있는 스토리지 서비스로 Stateless한 컨테이너의 데이터를 외부에 영구적으로 저장하고 관리할 때 이용하는 서비스이다. 오브젝트 스토리지의 데이터는 컨테이너에서 Remote API를 통하여 접근할 수 있다.
오브젝트 스토리지 서비스 사용자는 도 10과 같이 오브젝트 스토리지 사용자 포털(30)을 통하여 오브젝트 스토리지 서비스의 URL을 확인하고, AI키를 발급받으며, 데이터 파일 저장을 위한 버킷을 생성, 수정, 삭제한다. 오브젝트 스토리지에 저장된 데이터 파일을 Stateless 마이크로 서비스(533)에서 활용하기 위하여 서비스 URL과 API키를 입력하며, 마이크로 서비스는 오브젝트 스토리지 API게이트웨이(522)를 통하여 실제 API(524)에 접근하고, API(524)를 통하여 클러스터(550)상 다수의 스토리지 노드에 분산되어 있는 데이터 파일에 접근할 수 있다.
도 11은 블록 스토리지의 구성을 도시한 개념도이다.
Stateful한 마이크로 서비스 배포시 영구적인 데이터 저장을 위한 스토리지가 필요한 경우에는 도 11과 같이 블록 스토리지를 제공한다. 블록 스토리지는 각 마이크로 서비스별로 컨테이너(501 ~ 50N) 기반의 컨트롤러(561 ~ 56N)를 제공한다. 컨트롤러(561 ~ 56N)는 2개 이상의 HA 구성된 논리 볼륨을 참조하여 논리 볼륨은 마이크로 서비스 ??러스터(550)를 구성하는 가상서버의 물리적인 디스크의 영역에 실제 저장되어 영구적으로 관리된다.
도 12는 Back-end 서비스의 구성을 도시한 개념도이다.
Back-end 서비스(400)는, 전력 마이크로 서비스 어플리케이션 개발에 공통으로 필요한 데이터베이스, WEB 미들웨어, WAS미들웨어, 메시지큐, No-SQL 등 Back-end 서비스를 도시한 바와 같이 자동으로 생성할 수 있는 기능을 제공한다.
서비스 관리자는 서비스 카탈로그 UI(422)를 통해 서비스 카탈로그의 이미지를 등록, 수정 및 삭제할 수 있고, 서비스 사용자는 서비스 카탈로그를 검색 후에 사용하고자 하는 서비스에 대한 설정정보를 입력하면, 서비스 생성기(424)에 의해 서비스를 자동 생성할 수 있다.
Back-end 서비스(280)로 제공될 수 있는 구체적인 항목들을 하기 표 2에 나타낸 바와 같다.
Figure pat00002
상기 표 3과 같이 생성된 Back-end 서비스는 Stateful 기반의 컨테이너로 실행되며, 그 컨테이너의 데이터를 외부 영구볼륨도 같이 생성되어 안정적인 어플리케이션 실행환경을 제공한다.
본 발명의 사상에 따른 마이크로 서비스 개발 플랫폼에 의해 개발되어, 마이크로 서비스 컨테이너(150)로 실행되는 전력 마이크로 서비스에 대하여 살펴보겠다.
발전, 송변전, 배전 및 수요 등 전력분야에서 AI와 관련하여 제공하는 마이크로 서비스로 적용될 수 있는 항목들을 하기 표 3과 같다.
Figure pat00003
배전 사업을 위한 마이크로 서비스로 적용될 수 있는 항목들을 하기 표 4와 같다.
Figure pat00004
송변전 사업을 위한 마이크로 서비스로 적용될 수 있는 항목들을 하기 표 5와 같다.
Figure pat00005
이상의 설명은 본 발명의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 다양한 수정 및 변형이 가능할 것이다. 따라서, 본 발명에 개시된 실시예들은 본 발명의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예에 의하여 본 발명의 기술 사상의 범위가 한정되는 것은 아니다. 본 발명의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 발명의 권리범위에 포함되는 것으로 해석되어야 할 것이다.
100 : 마이크로 서비스 개발 프레임워크
110 : 파이프라인
200 : 마이크로 서비스 컨테이너 실행환경
300 : 스토리지
400 : Back-end 서비스

Claims (12)

  1. 전력 분야의 마이크로 서비스 어플리케이션의 개발 지원 및 Back-end 서비스를 위한 UI를 제공하는 마이크로 서비스 개발 프레임워크;
    전력 마이크로 서비스 어플리케이션의 소스 코드 관리 및 컨테이너 환경의 배포 자동화를 지원하는 파이프라인;
    전력 마이크로 서비스의 안정적인 운영을 위하여 다수의 마스터 노드 및 워커 노드 가상 서버를 생성하여 클러스터를 구성하며 마이크로 서비스 어플리케이션을 컨테이너로 실행하는 마이크로 서비스 컨테이너 실행환경; 및
    전력 마이크로 서비스와 Back-end 서비스의 운영을 위한 오브젝트 스토리지와 블록 스토리지를 제공하는 스토리지
    를 포함하는 마이크로 서비스 개발 플랫폼.
  2. 제1항에 있어서,
    상기 마이크로 서비스 컨테이너 실행환경은,
    상기 파이프라인에서 생성한 컨테이너용 이미지를 가상 머신으로 배포하는 API 서버; 및
    상기 마이크로 서비스 어플리케이션에서의 API 호출을 처리하는 API 게이트웨이
    를 포함하는 마이크로 서비스 개발 플랫폼.
  3. 제2항에 있어서,
    상기 API 서버 및 상기 API 클라이언트는,
    전력 분야의 발전, 송변전, 배전 및 수요에 대한 기능을 API로 규정하며,
    상기 마이크로 서비스 개발 프레임워크는, 마이크로 서비스의 Restful API 명세를 자동화할 수 있는 명세 언어와, 개발된 API를 Document화하고, 테스트할 수 있는 기본적인 코드를 제공하는 마이크로 서비스 개발 플랫폼.
  4. 제1항에 있어서,
    전력 마이크로 서비스 운영에 필요한 데이터베이스, 개발도구 및 미들웨어를 컨테이너 환경으로 생성하여 제공하는 Back-end 서비스
    를 더 포함하는 마이크로 서비스 개발 플랫폼.
  5. 제1항에 있어서,
    상기 마이크로 서비스 개발 프레임워크는,
    Stateless한 마이크로 서비스의 동적 스케쥴링 동작을 지원할 수 있도록 설정을 외부화하는 기능;
    배포된 마이크로서비스를 동적으로 발견하여 레지스트리 목록에 등록하며 로드밸런싱 서비스를 제공하는 기능;
    마이크로 서비스를 부하관리 및 모니터링하는 기능;
    마이크로 서비스에서 발생하는 로그를 수집하여 저장하고 탐색하는 기능; 및 마이크로 서비스간의 트래픽을 추적하는 기능 중 적어도 하나 이상을 개발자에게 지원하기 위한 UI를 제공하는 마이크로 서비스 개발 플랫폼.
  6. 제1항에 있어서,
    상기 파이프라인은,
    소스코드 저장소를 이용하여 소스코드를 통합하고 마이크로 서비스 빌드를 위하여 패키지와 라이브러리의 의존도를 체크하고 빌드하는 기능; 및
    컨테이너 기본 이미지에 실행파일을 삽입하여 이미지를 생성한 후 이미지 저장소에 저장하며, 생성된 이미지를 컨테이너 실행환경의 API 서버를 통하여 컨테이너로 생성하는 기능 중 적어도 하나 이상을 수행하는 마이크로 서비스 개발 플랫폼.
  7. 제1항에 있어서,
    상기 마이크로 서비스 컨테이너 실행환경은,
    사용자가 직접 가상서버 사양을 입력하여 클러스터를 자동 생성하는 기능;
    생성된 클러스터에서 마이크로 서비스를 실행하고, 서비스 로드밸런싱과 API 게이트웨이를 제공하는 기능; 및
    사용자 포털을 통하여 클러스터를 생성하고 수정, 삭제하며, 모니터링하는 기능 중 적어도 하나 이상을 수행하는 마이크로 서비스 개발 플랫폼.
  8. 제1항에 있어서,
    상기 스토리지는,
    오브젝트 스토리지 사용자 포털을 통하여 API키를 발급하고, 버킷을 생성하며, 파일을 업로드하고 다운로드하는 기능;
    API 게이트웨이를 통하여 데이터 파일을 스토리지 노드의 디스크에 저장하고 삭제하는 스케쥴링 기능;
    Stateful한 서비스의 영구적인 데이터 저장을 위하여 블록 스토리지를 구성하는 기능; 및
    각 마이크로 서비스별로 블록 스토리지 컨트롤러를 자동 구성하고, 논리볼륨을 Replica로 복제하여 HA를 구성하는 기능 중 적어도 하나 이상을 수행하는 마이크로 서비스 개발 플랫폼.
  9. 제4항에 있어서,
    상기 Back-end 서비스는,
    상기 전력 마이크로 서비스 개발에 필요한 Stateful한 방식의 데이터베이스인 관계형 데이터베이스, In-Memory 데이터베이스, 그래프 데이터베이스, 시계열 데이터베이스, 도큐먼트 데이터베이스, 분산데이터베이스, 분산 파일 시스템, 메시지 큐, 컨텍스트 브로커 중 적어도 하나 이상을 컨테이너 환경으로 자동 생성하여 제공하는 마이크로 서비스 개발 플랫폼.
  10. 제4항에 있어서,
    상기 Back-end 서비스는,
    개발도구인 소스코드 저장소, 빌드 도구, 테스트 도구, 이미지 저장소, API 게이트웨이, 프로젝트 관리도구, 분석도구, GIS 시각화 도구, 로드 수집기, 로그 검색기, 매트릭스 모니터링, 모니터링 시각화 서비스 중 적어도 하나 이상을 컨테이너 환경으로 자동 생성하여 제공하거나,
    WEB 미들웨어, WAS 미들웨어, L4 로드밸런서, L7 로드밸런서 중 적어도 하나 이상을 컨테이너로 자동 생성하여 제공하는 마이크로 서비스 개발 플랫폼.
  11. 소스 코드를 접수하는 단계;
    패키지/라이브러리에 대한 의존도를 체크하고, 필요한 패키지/라이브러리를 다운로드하는 단계;
    소스 코드를 검사하는 단계;
    소스 코드를 빌드하여 실행파일을 생성하는 단계;
    상기 실행파일을 컨테이너용 이미지로 생성하는 단계;
    상기 컨테이너용 이미지를 이미지 저장소에 등록하는 단계;
    컨테이너용 이미지의 설정 정보를 입력하고, API 서버와 배포 스케쥴러를 통해 마이크로 서비스 컨테이너에 로딩하는 단계; 및
    API 게이트웨이 또는 웹 어플리케이션에 의해 마이크로 서비스 컨테이너에 로딩된 이미지를 실행하는 단계
    를 포함하는 마이크로 서비스 배포 실행 방법.
  12. 제11항에 있어서,
    상기 소스 코드를 접수하는 단계는,
    로컬 소스 코드 저장소에 작성된 소스 코드를 커밋하는 단계; 및
    원격 소스 코드 통합 저장소에 상기 소스 코드를 푸쉬하는 단계
    를 포함하는 마이크로 서비스 배포 실행 방법.

KR1020210006142A 2021-01-15 2021-01-15 전력 시스템을 위한 마이크로 서비스 개발 플랫폼 및 마이크로 서비스 배포 실행 방법 KR20220103490A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020210006142A KR20220103490A (ko) 2021-01-15 2021-01-15 전력 시스템을 위한 마이크로 서비스 개발 플랫폼 및 마이크로 서비스 배포 실행 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210006142A KR20220103490A (ko) 2021-01-15 2021-01-15 전력 시스템을 위한 마이크로 서비스 개발 플랫폼 및 마이크로 서비스 배포 실행 방법

Publications (1)

Publication Number Publication Date
KR20220103490A true KR20220103490A (ko) 2022-07-22

Family

ID=82605829

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210006142A KR20220103490A (ko) 2021-01-15 2021-01-15 전력 시스템을 위한 마이크로 서비스 개발 플랫폼 및 마이크로 서비스 배포 실행 방법

Country Status (1)

Country Link
KR (1) KR20220103490A (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117075867A (zh) * 2023-08-17 2023-11-17 唐山启奥科技股份有限公司 一种计算机基础技术开发框架系统
WO2024072874A1 (en) * 2022-09-29 2024-04-04 Nec Laboratories America, Inc. Dynamic resource management for stream analytics
WO2024067155A1 (zh) * 2022-09-30 2024-04-04 中电信数智科技有限公司 通过编排方式解决微服务外部依赖复杂性的系统及方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170133055A (ko) 2016-05-25 2017-12-05 주식회사 엘시스 에너지 관리 시스템을 위한 매체에 저장된 에너지 관리 컴퓨터 프로그램

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170133055A (ko) 2016-05-25 2017-12-05 주식회사 엘시스 에너지 관리 시스템을 위한 매체에 저장된 에너지 관리 컴퓨터 프로그램

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024072874A1 (en) * 2022-09-29 2024-04-04 Nec Laboratories America, Inc. Dynamic resource management for stream analytics
WO2024067155A1 (zh) * 2022-09-30 2024-04-04 中电信数智科技有限公司 通过编排方式解决微服务外部依赖复杂性的系统及方法
CN117075867A (zh) * 2023-08-17 2023-11-17 唐山启奥科技股份有限公司 一种计算机基础技术开发框架系统

Similar Documents

Publication Publication Date Title
CA3092364C (en) Live migration of clusters in containerized environments
KR20220103490A (ko) 전력 시스템을 위한 마이크로 서비스 개발 플랫폼 및 마이크로 서비스 배포 실행 방법
Allen et al. The grid application toolkit: toward generic and easy application programming interfaces for the grid
Talia et al. How distributed data mining tasks can thrive as knowledge services
KR20170051471A (ko) 하나 이상의 클라우드 시스템 상에 애플리케이션들을 이식 가능하게 배치하기 위한 방법들 및 시스템들
CN113434158B (zh) 一种大数据组件的自定义管理方法、装置、设备及介质
US20230259358A1 (en) Documentation enforcement during compilation
Mohamed et al. MidCloud: an agent‐based middleware for effective utilization of replicated Cloud services
Blamey et al. Apache Spark Streaming, Kafka and HarmonicIO: a performance benchmark and architecture comparison for enterprise and scientific computing
Prodan et al. ZENTURIO: a grid middleware-based tool for experiment management of parallel and distributed applications
Ceccarelli et al. A service discovery approach for testing dynamic SOAs
Hahn et al. TraDE-a transparent data exchange middleware for service choreographies
US10534640B2 (en) System and method for providing a native job control language execution engine in a rehosting platform
Chaturvedi et al. Cost-effective sharing of streaming dataflows for IoT applications
Padulano et al. Leveraging an open source serverless framework for high energy physics computing
Bhat et al. Evaluating serverless architecture for big data enterprise applications
CN113760292A (zh) 开发应用程序的方法、装置、电子设备和存储介质
Choudhary et al. Case Study: use of AWS lambda for building a serverless chat application
Shih MASS HDFS: multi-agent spatial simulation hadoop distributed file system
Guo et al. Better realization of mobile cloud computing using mobile network computers
US20230246916A1 (en) Service map conversion with preserved historical information
Singh et al. Comparitive Study of Hadoop over Containers and Hadoop Over Virtual Machine
Shahid Refactoring Monolithic Application into Cloud-Native Architecture
Mehtonen Research on building containerized web backend applications from a point of view of a sample application for a medium sized business
Gianola Exploring the OCSF Framework in AWS: Design, Implementation and Performance Analysis of a Security Lake Platform