한국전력 HUB-PoP 플랫폼개발 현황과 성과
2019. 09. 26
- Open Cloud PaaS-TA Summit 2019 -
디지털솔루션연구소 선임 신지강
플랫폼의 필요성
• 4차 산업 혁명에 따라 데이터를 통한 가치 창출 시도가 확대됨에 따라, 전력 분야에서도데이터를 통한 새로운 Insight 발견과 새로운 비즈니스 모델 발굴을 지향
• 이를 효과적으로 지원하기 위한 공용 플랫폼의 필요성 증대
To-Be
S/W 개발생산성
데이터활용성
데이터 및개발환경표준화
프로젝트별 플랫폼 환경 개별 구축
기간 증가 비용 증가
공용 플랫폼 기반의 SW개발 및 데이터 분석
S/W재활용성
① SW 요소기술의 개별적 개발로 공동활용 곤란
As-Is
② 시스템별IT인프라도입으로인프라유지비증가
③ 전력 데이터의 공동활용 부재 및 Island화
① SW 요소기술의 플랫폼 내재화로 SW 재활용성 향상
② Cloud 플랫폼 구축으로 IT 인프라 공유 및 비용절감
③ 데이터 표준화를 통한 연결성 / 활용성 / 융복합 향상
최종 목표
• (최종 성과물) 클라우드 기반의 전력 어플리케이션 개발/운영 및 데이터 분석을 위한 환경을
제공하는 전력 소프트웨어 공용 플랫폼(HUB-PoP)
전력산업 현장에서생성되는 다양한 정보
INPUT
전력설비
IoT센서
외부플랫폼
레거시시스템
미디어
HUB-PoP에서 개발되는다양한 전력 APP
발전
송전
변전
배전
에너지신산업
Dat
a A
dap
ter
& Pla
tform
Gat
eway
API G
atew
ay
OUTPUT데이터 수집 데이터 저장 분석 및 예측 시각화
Cloud (Virtual Machine, Container)
실시간 수집
배치 수집
지리정보 수집
Data Lake
Data Mart
DBaaS
통계분석
머신러닝
자연어처리
WEB UI
WEB GIS
WEB HMI
Portal 개발자 Portal 운영자Portal App Store
DevOps 개발 테스트 배포
플랫폼 Positioning
• System Platform과 Industrial Platform의 장점을 융합하여
KEPCO 전력 SW 공통플랫폼에 최적화 된 서비스 제공 및 비즈니스 확산 기반 제공
Business Model
Domain Knowledge &
Domain Specific Service
Infra
System S/W
Generic Service
Infra
System S/W
Generic Service
System S/W
Generic Service
DB DB DBWAS
Domain Knowledge &
Domain Specific Service
서비스 제공
서비스 제공
서비스 제공
WASWAS
HUB-PoPHUB-PoP
HUB-PoP 플랫폼 주요 서비스
• 전력 어플리케이션의 개발 및 데이터 분석에 공통으로 활용할 수 있는 클라우드 자원,
SW 개발환경, 데이터 수집/저장/분석/시각화 등 기능을 통합 플랫폼 기반으로 제공
데이터 저장 데이터 분석 시각화
•Data Lake전력 데이터 통합 저장소
및 데이터 제공
•Data Mart특정 도메인 분야의 분석을
위한 재구조화된 데이터 집합
•DBaaSTenant별 격리된 DB 제공
(RDB, Timeseries, Hadoop 등)
•데이터 분석 통합환경데이터 선택, 모델 설계, 학습 및 추론 환경 제공
•분석 실행 프레임워크개발된 분석 모델을 API로
연동할 수 있는 실행환경 제공
•분석 모델 형상관리분석모델 및 활용 데이터의형상관리 및 공유환경 제공
•WEB UI 템플릿표준 WEB UI 및
인포그래픽스 템플릿 제공
•GIS 플랫폼 서비스전력분야 지리정보 통합 DB, 공통활용 컨텐츠 및 서비스 활용 가능
•웹 HMI 서비스전력설비 및 IoT 수집 데이터를코딩 없이 빠르게 시각화 표현
SW 개발환경•SW 개발 파이프라인소스코드 저장소, 빌드 및 배포
자동화 환경 제공
•API 게이트웨이전력분야 API 서비스
공유 및 개발자 협업 지원
•SW 개발 프레임워크개발에 즉시 사용 가능한 Best
Practice를 집약한 아키텍처 제공
• IaaS서버, 네트워크 및 스토리지자원 가상화 제공 서비스
•PaaSWEB, WAS, DB 등 개발환경
가상화 제공 서비스
•SaaS어플리케이션SW 가상화
운영 서비스
데이터 수집
•플랫폼 어댑터OPC-UA, IEC61850 등
전력설비 프로토콜 호환
•플랫폼 게이트웨이전력설비의 데이터를클라우드 서버로 전달
•데이터 브로커데이터 발행 및 구독중개 서비스 제공
Cloud
6
클라우드 플랫폼
• IaaS
• PaaS
• 전력 SW 마켓플레이스
Openstack
KVM
Ubuntu(Linux)
Kubernetes
Istio
Knative
Functions(Application)Applications
(Monolithic)
Spring CloudApplications(Monolithic)
Cloud Foundry(PaaSTA)
Micro Services(Application)
Docker
클라우드 플랫폼 – 오픈소스를 활용한 클라우드 구축
• IaaS : Host OS로 Ubuntu, VM 관리는 Openstack 오픈소스 활용• PaaS : PaaS-TA(미래부), Spring Cloud(Netflix OSS) 오픈소스 활용• CaaS 및 FaaS : Google에서 최근에 공개한 Kubernetes, Istio 및 Knative 오픈소스 활용
IaaS PaaS CaaS FaaS
서버/ 스토리지/ 네트워크구축시간단축(3개월→ 2분30초),통합적인프라자원관리및효율화
클라우드 플랫폼 – IaaS(Infrastructure as a Service) -
9Web/WAS/DBMS 구축 시간 단축(3주→5분), 개발환경 표준화와 신속한 개발 환경 제공
클라우드 플랫폼 – PaaS(Platform as a Service) -
• 클라우드에 설치된 SW를 다른 직원(연구원)이 활용할 수 있도록 제공
- 모든 SW 설치 및 설정이 완료된 상태의 가상 서버를 바로 사용
• 외부 사용자에게 사업화할 수 있도록 “상품"으로 제공
- (AS-IS) 연구원들이 개별적으로 SW산출물 관리 및 사업화 업무 수행
- (TO-BE) 마켓 플레이스를 통해서 산출물 관리 및 사업화 추진
클라우드 플랫폼 – 전력 SW 마켓플레이스
11
클라우드 플랫폼 – 전력 SW 마켓플레이스
12
SW 개발환경
• 개발 프레임워크
• 개발 파이프라인
• 시각화
• SW개발에 필요한 프레임워크, 파이프라인, API 게이트웨이 등 SW개발환경을 통합 제공
• 개발환경 표준화, 개발공정 자동화 및 MSA(Micro Service Architecture) 기반의 API 관리 기능을
통하여 SW개발 생산성과 재활용성을 향상
개발환경관리
파이프라인생성
소스코드 저장소 이슈 관리 빌드/배포 관리
App 개발자
개발 WebApp
SkeletonWebApp
UI템플릿
OS(Windows)
Spring 웹 프레임워크
Eclipse 개발환경
Meta Plugin
품질검사
개발
API G/W
API API API API
SW 개발환경
• SW개발 프레임워크는 업무 기능 등 최소한의 개발을 위해 공통 기능 및 개발환경 제공• 전력SW 개발의 표준화를 통해 공통 아키텍처기반의 Best Practice를 제공
형상관리메타관리 파이프라인
실행환경
입출력
처리
비즈니스
처리
데이터
처리
온라인
Image Recogniti
on
인터페이스
처리공통 처리
배치
실행
배치
제어
Utility성
기능
배치
Async IO
병렬처리
장애
관리
On-Demand
호출
SW 개발 프레임워크
개발환경
IO관리DBIO
관리
설계
관리
개발 IDE
테스트
관리
통합
관리
품질
관리
운영환경
온라인 운영 배치 운영
실행환경 운영관리
시각화
UI 템플릿
서비스
시각화 도구
웹HMI
서비스
인포
그래픽스
서비스
GIS
플랫폼
서비스
연계 시스템 및 플랫폼
제공 서비스
개발환경 구축 시간(2개월 → 10분) 및 개발 단축, 표준화 확대로 SW개발 생산성 향상
BatchWebApp
ManagerWebApp
SkeletonWebApp
• Maven Archetype기반 개발환경• Spring schema기반 환경설정• UI Template
• DB Connection Pool• DB기반 Message Source 및 관리• DB기반 Error Logging 및 관리
• Batch Application 표준개발환경• Batch Manager 및 Scheduler
SW개발 프레임워크 아키텍처 표준 개발환경
SW 개발환경 – 개발 프레임워크 -
• SW 개발 및 운영을 위한 DevOps 환경을 제공하고 빌드/배포 기능 제공• CI/CD(Continuous Integration / Continuous Delivery) 솔루션 → 지속적인 통합, 배포
• App에 대한 새로운 코드 변경 사항이 정기적으로 빌드 및 테스드되어 공유 리포지토리에 병합되므로
여러 명의 개발자가 동시에 App 개발과 관련된 코드 작업을 할 경우 서로 충돌할 수 있는 문제를 해결
App 개발 서비스 제공
코드& 커밋Code & Commit
빌드& 설정Build & Config
스캔 & 테스트Scan & Test
공개Release
배포Deploy
지속적인 통합/배포
구분코드&커밋
Code & Commit빌드&설정
Build & Config스캔&테스트Scan & Test
공개Release
배포Deploy
내용개발자가
소스 저장소에소스 커밋
소스 커밋 발생 시 소스저장소의
소스를 Maven설정에 따라 빌드
PMD, CheckStyle을 통한 정적 분석 수행 Junit
도구를 이용한단위 테스트 수행
Maven 패키지 기능을활용하여 빌드된 소스를release 버전으로 패키
징
패키징 된 release 버전을 개발환경,
운영환경으로 배포
Tool
SW 개발환경 – 개발 파이프라인 -
웹 UI 템플릿
• 웹App 개발시 즉시 활용할 수 있는 다수의 웹 UI 컴포넌트와 라이브러리, UI/UX 표준 정의서, UI 템플릿 소스코드 등을 제공
인포그래픽스
• 데이터 분석결과를 시각적 표현을 통하여 쉽고 빠르게 전달, 정보의 습득 시간을 절감, 기억의 지속시간을 연장
웹 HMI
• 웹 기반으로 전력설비 및 IoT에서 수집되는 실시간데이터를 S/W 코딩 없이 빠르게 시각화
GIS 플랫폼
• 전력지리정보 통합 DB 와 GIS 서비스를 API로 제공• 개별적인 GIS 환경 구축 없이 지리정보 시각화 서
비스를 개발할 수 있도록 지원
SW 개발환경 – 시각화
17
데이터 분석
• 데이터 제공
• 알고리즘 공유
• 분석 도구
데이터 분석 - 개요
• 전력 데이터를 활용한 분석을 보다 쉽게 수행할 수 있도록 데이터, 분석 도구 및
알고리즘 공유 환경을 제공하는 서비스
데이터
알고리즘
분석 도구
• KEPCO 운영시스템 데이터(12종, 16억건 이상) 검색/조회
• 분석 과정에서 생성된 데이터 및 전처리 노하우 공유
• 데이터 분석 노하우를 공유하는 알고리즘 공유 환경 제공
• 프로젝트 사용자간 데이터 분석 협업 환경 제공
• 클라우드 기반 온/오프라인 분석 환경 제공
• 오픈소스 기반의 분석도구 제공 (R, Python, KINME)
7/26
데이터 분석 – 서비스 구성
쉬운데이터취득을위한데이터제공
활용도높은분석모델및알고리즘공유
기본AI분석용알고리즘및 공개된최신AI분석사례/모델제공
다량의데이터를다양한조건과변수등으로검색데이터메타정보제공(분류, 데이터명, 컬럼수, 예시샘플등)
최신인공지능패키지및분석도구제공
분석 저장소 서비스 분석 환경 및 실행 서비스
KEPCO 빅데이터 플랫폼 데이터 제공사용자 분석 데이터 공유
온라인 분석 도구 : R, Jupyter, Zeppelin오프라인 분석 도구 : KNIME윈도우 VM : SPSS, Tableau, KNIME, Python 설치
오픈소스기반데이터분석도구및튜토리얼제공KEPCO 빅데이터플랫폼분석도구제공(윈도우VM)
전력 데이터 분석 사례 공유기계학습 예제 제공
분석코드를바로활용할수있도록API로변환
분석코드, 딥러닝모델을API로변환/등록하기위한기능제공
분석 언어 : Python분석 모델 : Keras, Tensorflow
1
2
3
4
9/26
데이터 분석 – 데이터 제공
• 시스템 명 / 분류 / 데이터 명에 따라 필요한 데이터 검색 기능 제공
• 데이터 미리보기 / 기초 통계 / 조건문 필터 기능 제공
12/26
21
데이터 분석 – 알고리즘 공유
• 개발된 AI 분석 결과물을 다른 연구원들과 공유하는 기능 제공
- 알고리즘 소스 코드 / 샘플 코드 / 알고리즘에 대한 설명 제공
• 다른 연구원이 개발한 알고리즘을 활용하여 신속하게 AI 분석 알고리즘 개발
13/26
데이터 분석 – 분석 도구
• 온라인 분석도구 3종, 설치형 분석도구 1종 제공
- 온라인 분석 도구 : R Studio, Jupyter (Python), Zeppeline
- 설치형 분석 도구 : KNIME
• 원활한 분석 수행을 위한 R, Python 분석 패키지 저장소 구축 (51만개, 1.5TB)
15/26