최근 금융권이나 공공기관에서는 차세대 프로젝트에 PaaS 기반 시스템을 구축하고 그 위에 마이크로서비스아키텍처(MSA)를 구현하기 위해 많은 투자를 하고 있는데요, 많은 기업들이 오픈소스 기반의 인프라를 고려할 때 기술지원이나 버전 업그레이드 등에 대한 애로사항을 겪게 됩니다. 이런 문제에 대한 해결 방안 중 하나가 바로 커뮤니티 기반의 오픈소스 재단을 활용하는 것인데요!
본 자료에서 커뮤니티 오픈소스 기반 인프라 구축의 장점과 실제 사례에 대해 확인해 보실 수 있습니다.
8. 백업 / 복구 시스템
Velero backup controller
`
DevOps시스템
모니터링 시스템
애플리케이션 카탈로그 시스템
관리포탈
Sidecar
Proxy
Sidecar
Proxy
Sidecar
Proxy
서비스 매시
소스
다운로드
소스
빌드
이미지
빌드
이미지
Push
Yaml
Push
배포
쿠버네티스
보안/인증 시스템
9. Logging Backup CI / CD
Monitoring
Customer
Service
Service
Mesh
Cluster
10. 대시보드/포탈 Rancher 멀티클러스터 관리를 지원하며, 포탈 화면 제공
모니터링 Prometheus / Grafana
많은 사용자 보유하여 많은 서비스에 모니터링 메트릭을 지원하며, 다양한 대시보드 예제가 있으며 사용자가 원하는 포
맷으로 변경 가능
Storage NFS or Vendor driver NFS를 기본적으로 지원하며 범용적이어서 기본 장착이 용이
소스 버전 관리
Bitbucket 아틀라시안 제품 많은 사용자 보유
Gittea 가볍고 필요한 git 서버 기능은 모두 지원
빌드 라이브러리 관리 Nexus 성능 및 가용성이 높으며 많은 사용자 보유
웹 서버 Nginx 대용량 트래픽 처리에 용이
Code Inspection Sonarqube 다양한 프로그래밍 언어의 정적 코드 검사 및 DevOps 연동 지원
도커 레지스트리 harbor 제품은 조금 무겁지만 플러그인으로 UI 및 helm chart 지원 이미지 보안 검사 기능을 지원
배포 툴 ArgoCD 클라우드 베이스의 배포 지원 및 다양한 배포방식(Rollout, Blue/Green, Canary) 및 플러그인 지원
빌드 파이프라인
Tekton Kubernetes 자원을 기반으로 구축되어 자원 확장 및 구성/관리가 용이
Jenkins 범용적으로 많이 사용하는 제품으로 많은 플러그인과 파이프라인 예제가 있음
백업 Velero object storage 기반 백업. 별다른 대안이 없음
Service Mesh Linkerd istio와 같은 기능은 대부분 지원하면서 사이드카로 동작하는 proxy가 가벼워 시스템 부하가 적음
Logging ELK or EFK 범용적으로 많이 사용되고 dashboard template이 많음
오케스트레이션 Kubernetes 버전별 K8S에서 기본 제공
패키지 매니저 Helm Kubernetes 패키지 관리
서비스 카탈로그 Kubeapps 패키지 명세서를 이용해서 손쉽게 애플리케이션을 배포하고 관리
12. 12
구성 환경
Kubernetes Container Zone
Openstack Controller
Keystone
Horizon
Orchestration DB
Baremetal ironic node
Controll Application
Monitoring
Grafana Prometheus
Neutron
OpenSwitch L3 Agent
DHCP Agent
Nova Cinder Ironic
Glance Manila Octavia
OpenStack Deploy
Nexus Ansible
Storage Zone
OpenStack Compute zone
Compute Node
L3 Agent
Name
Spaces
Route
FIP
Open vSwitch
master Worker Worker
container
con #1
Apps
container
con #1
Apps
Bridges
Int
Tunnel
vlan
external
LB
Node
LB
Node
WEB Tenant/Zone
LB
Node
LB
Node
Tanant
VM #1
Tanant VM
#1
VM #
1
Apps
Kernel
WAS Tenant / Zone
LB
Node
LB
Node
Tanant
VM #1
Tanant VM
#1
VM #
1
Apps
Kernel
Ironic node
Server #3
Server #2
Server #1
Compute node (vm)
1
2
3
4
6
5
13.
14.
15. 프라이빗 오픈스택 / 쿠버네티스 사례 - 기상청
기상청 전체 시스템
클라우드 전환
Large Scaled Service
AWS와 유사한 다양한
클러스터 방식의 클라우드 구성
“다양한 사용자 용도와 환
경으로 구성된 멀티 클러
스터 구성”
OpenStack위의 VM 생성
• 중요 업무
• 기존 업무
• 내부망
오픈스택
Compute Node
VM Pool
•••
OpenStack 인프라에
Kubernetes 생성
• 개발 인프라
• 노후 인프라
활용
BareMetal 인프라에
Kubernetes 구성
• 고객 서비스
• 가용성
• Large Scale
Traffic
BareMetal 인프라에
GPU Farm 구성
• ML 업무
• AI 개발
오픈스택
Compute Node
VM Pool
Kubernetes
Compute Node
(BareMetal)
Kubernetes
오픈스택(Ironic)
Compute Node
(BareMetal)
VM Pool
Kubernetes
GPU
*다양한 용도의 클러스터를 AWS 모델이라 칭함
프로젝트 기간 : 2019.10 ~ 2019.12 / 2020.8~2020.12 / 2021~
16. 오픈스택
Compute Node
VM Pool
•••
오픈스택
Compute Node
VM Pool
Kubernetes
오픈스택(Ironic)
Compute Node
(BareMetal)
VM Pool
Kubernetes
GPU
Compute Node
(BareMetal)
Kubernetes
홈페이지
홈페이지
홈페이지
지진앱
지진앱
지진앱
푸쉬앱
푸쉬앱
푸쉬앱
컨트롤러
컨트롤러
컴퓨팅
컴퓨팅
오픈스택
Compute Node
VM Pool
•••
컨트롤러
컨트롤러
컴퓨팅
컴퓨팅
웹 API
웹 API
K-DASH
K-DASH
K-DASH
K-DASH K-DASH
NFV Controller SDN Controller NFV Computing
Ceph
Controller
NFS
Gateway
Ceph Cluster
Compute Node
Control Node
하드웨어 인프라
오픈스택 Heat(Orchestration)
Horizon
Dashboard
Keystone
인증
Neutron
네트워크
Cinder
Block스토리지
Nova
컴퓨팅
Glance
이미지
Swift
Object스토리지
Ceilometer
미터링
Manila
공유파일시스템
Ironic
베어메탈 프로비저닝
•••
17. 오픈스택
Compute Node
VM Pool
•••
오픈스택
Compute Node
VM Pool
Kubernetes
오픈스택(Ironic)
Compute Node
(BareMetal)
VM Pool
Kubernetes
GPU
Compute Node
(BareMetal)
Kubernetes
홈페이지
홈페이지
홈페이지
지진앱
지진앱
지진앱
푸쉬앱
푸쉬앱
푸쉬앱
컨트롤러
컨트롤러
컴퓨팅
컴퓨팅
오픈스택
Compute Node
VM Pool
•••
컨트롤러
컨트롤러
컴퓨팅
컴퓨팅
웹 API
웹 API
K-DASH
K-DASH
K-DASH
K-DASH K-DASH
NFV Controller SDN Controller NFV Computing
Ceph
Controller
NFS
Gateway
Ceph Cluster
Compute Node (BareMetal)
하드웨어 인프라
Cluster
Logging Backup CI / CD
Monitoring Customer Service
Service
Mash
Kubernetes (Playce Kube)
18. 오픈스택
Compute Node
VM Pool
•••
오픈스택
Compute Node
VM Pool
Kubernetes
오픈스택(Ironic)
Compute Node
(BareMetal)
VM Pool
Kubernetes
GPU
Compute Node
(BareMetal)
Kubernetes
홈페이지
홈페이지
홈페이지
지진앱
지진앱
지진앱
푸쉬앱
푸쉬앱
푸쉬앱
컨트롤러
컨트롤러
컴퓨팅
컴퓨팅
오픈스택
Compute Node
VM Pool
•••
컨트롤러
컨트롤러
컴퓨팅
컴퓨팅
웹 API
웹 API
K-DASH
K-DASH
K-DASH
K-DASH K-DASH
NFV Controller SDN Controller NFV Computing
Ceph
Controller
NFS
Gateway
Ceph Cluster
하드웨어 인프라
Cluster
Kubernetes (Playce Kube)
VM Pools
•••
Compute Node
오픈스택 Heat(Orchestration)
19. 오픈스택
Compute Node
VM Pool
•••
오픈스택
Compute Node
VM Pool
Kubernetes
오픈스택(Ironic)
Compute Node
(BareMetal)
VM Pool
Kubernetes
GPU
Compute Node
(BareMetal)
Kubernetes
홈페이지
홈페이지
홈페이지
지진앱
지진앱
지진앱
푸쉬앱
푸쉬앱
푸쉬앱
컨트롤러
컨트롤러
컴퓨팅
컴퓨팅
오픈스택
Compute Node
VM Pool
•••
컨트롤러
컨트롤러
컴퓨팅
컴퓨팅
웹 API
웹 API
K-DASH
K-DASH
K-DASH
K-DASH K-DASH
NFV Controller SDN Controller NFV Computing
Ceph
Controller
NFS
Gateway
Ceph Cluster
하드웨어 인프라
Kubernetes (Playce Kube)
VM Pools
•••
오픈스택
Compute Node BareMetal
•••
Master
Master
Master
GPU Workers
GPU Workers
GPU Workers
21. 멀티 클러스터를 관리를 위한 통합 사례
커뮤니티 오픈소스로 제1금융권 구축
통합관리 클러스터 구성
//
//
별도의 통합관리 클러스터
구성
통합관리 클러스터에서
멀티클러스터 관리
멀티 클러스터간 서비스
모니터링
프로젝트 기간 : 2019.10 ~ 2019.12 / 2020.8~2020.12 / 2021~
PaaS만 필요한 부분 / IaaS만 필요한 부분 / IaaS와 PaaS가 필요한 부분 / 개발자를 위한 PaaS 영역
통합관리 K8S
CI/CD PROD DEV
통합관리 K8S
CI/CD PROD DEV
K8S 설치모듈 실행으로
클러스터 생성
배포
서버
CI/CD
PROD
DEV
22. S사 AI 가상상담
AI/ML 기반으로 작동하는 서비스를 대상으로 효율적인 스케쥴링
프로젝트 기간 : 2021.6~ 2021.8
PaaS 구축 AI 가상상담 플랫폼 운영환경 구축
Master Node
Worker Node
GPU * 4
Master Node
Worker Node
GPU * 4
Master Node
Worker Node
GPU * 4
Worker Node
GPU * 4
Worker Node
GPU * 4
Switch
LoadBalancer
GPU/Mem 관련 매트릭
• GPU Utilization
• Power Draw
• Fan Speed
• Temp
• GPU Clock Speed
• Mem Clock Speed
• Memory Alloc
POD의 KUDA 지원 Notebook 사용
GUP 지원 Docker Runtime 구성
NVIDIA GPUs Driver 구성
23. 인도네시아 국세 시스템 클라우드 아키텍처 구성
운영, 개발, DR 환경별로
최적화된 클러스터 Zone 구성
“다양한 사용자 용도와 환
경으로 구성된 운영 클러
스터 구성”
OpenStack / K8s Zone 구성
• OpenStack: 배치, DB
• K8S: 업무 서비스
DR구성은
운영의 Down-Size로 구성
OpenStack 인프라에
VM Zone, K8S Zone 구성
• 효율적 자원 분배
Zone별 원격 백업 정책
• 300km 이상의 센터간 백업
가능한 클러스터 구성
프로젝트 기간 : 2021.1~ 2021.4 / 2021.8~현재
IaaS/PaaS 구축 운영환경/DR 컨설팅 및 구축 진행중
오픈스택
Compute Node BareMetal
Kubernetes
Containers
VM Pool
오픈스택
Compute Node BareMetal
Kubernetes
Containers
VM Pool
오픈스택
BareMetal BareMetal
Kubernetes
Containers
VM Pool
운영 클러스터
Kubernetes
오픈스택
DR 클러스터
Kubernetes
오픈스택
Infra Code
Backup
VM Image
Snapshot
24.
25.
26.
27. 소스 다운로드 빌드 검증 이미지 생성
Deployment Template을 활용해 신속한 DevOps구성 및 자동화
GitOps 구현으로 인프라 및 Application 설정을 upload/배포를 동시에 가능하도록 구현
설계 포인트
28. DMZ (망분리) Internal 서비스(망분리)
Build
Pod
WEB
WEB
WEB
Build
Pod
WEB
WEB
WAS
WEB
WEB
WEB
WEB
WEB
WAS
WEB
WEB
WEB
WEB
WEB
WAS
CI/CD Cluster
Source Repo
Deploy
Img/Lib Repo
Maven Repo
Container Repo
개발 클러스터
검증 클러스터
운영 클러스터
DR 클러스터
Build
Server
Build
Server
Build
Pod
WEB
WEB
WEB
WEB
WEB
WAS
29. 개발자 환경 (PC)
CI/CD Cluster
Source Repo
Deploy
Img/Lib Repo
Library Repo
Container Repo
개발/ 검증 Cluster
운영/ DR Cluster
GIT IntelliJ / EClipse JDK
Chrome
Service Service Service Service
Service Service Service Service
31. • Pipeline Script
• Yaml, Json 지원
• 파이프라인 생성을 위한
다양한 템플릿 제공
- Git
- Build (java, Vuejs, Nodejs)
- Tagging
- Deployment
- etc.
• 파이프라인 관리
• 기존 파이프라인 Re-use
• 템플릿 활용으로 빠른
Pipeline 생성
• 배포 이미지 관리
• 이미지 생명주기 관리
• 이미지 분석 및 보안 취약
점 검증
• Application 배포 지원
• Git-Ops와 연동하여 IaC
지원
• 다양한 배포 방식 지원
- Rollout
- Canary
- Blue-Green