Cloud-Barista 제3차 오픈 컨퍼런스 : CB-Larva - Cloud-Barista 인큐베이터(Cloud-Barista Incu...
Cloud-Barista 제6차 오픈 컨퍼런스 : 멀티클라우드 인프라 서비스 통합 관리 (CB-Tumblebug)
1. “오픈소스”로 만들어가는 “멀티클라우드” 생태계
클라우드바리스타 커뮤니티 제6차 컨퍼런스
CLOUD
BARISTA
카페라떼(Cafe Latte) 한잔 어떠세요 ?
멀티클라우드 인프라 서비스 통합 관리
손 석 호
[세션] CB-Tumblebug
CB-Tumblebug 프레임워크 리더
2. 이번 세션은 …
1
멀티클라우드 서비스 개방형 인터페이스
멀티클라우드 인프라 연동
프레임워크
멀티클라우드 애플리케이션 실행환경
통합 관리 프레임워크
멀티클라우드 인프라 서비스
통합 관리 프레임워크
멀티클라우드
통합
모니터링
프레임워크
멀티클라우드 서비스 공통 플랫폼
응용/도메인/기관 특화 SW
CLOUD
BARISTA
CB-Tumblebug
4. CB-Tumblebug: 멀티클라우드 인프라 서비스 통합 관리 필요성
이종 멀티클라우드 연동
멀티클라우드 자원
통합 컴퓨팅 인프라
멀티클라우드 인프라 서비스 (MCIS)
멀티클라우드
애플리케이션
복잡한 멀티클라우드의 효과적인 활용을 위해, 자원을 유기적으로 통합 제공하는 멀티클라우드 인프라 서비스 통합 관리 필요
CB-Tumblebug
MCIS
컴퓨팅
자원
컴퓨팅
자원
컴퓨팅
자원
VM VM VM VM
VM VM VM VM
APP
APP
APP
APP
APP
APP
APP
APP
3
5. 이슈1) 멀티클라우드, 성능 및 특성 다양
CSP의 클라우드 서비스 제공 리전(데이터센터) 현황
VM 가격 비교 (AWS vs GCP)
Ref: aws-vs-gcp-vs-on-premises-cpu-performance-comparison (medium.com)
VM 성능 비교 (AWS vs GCP)
멀티 클라우드에서는 자원들의 성능 및 특성이 매우 다양하므로, 최적의 멀티 클라우드 인프라 서비스 제공 필요
클라우드 서비스 성능.. 알고 보면 많이 달라요
USD
($)
CPU
성능
상대
평가
(%)
클라우드는 전세계에 퍼져 있습니다. 조금 더 가까이 다가가려면..
4
6. 이슈2) 멀티클라우드, 관리 대상이 많고 복잡
V
M
V
M
V
M
V
M
V
M
V
M
V
M
V
M
V
M
V
M
V
M
V
M
V
M
V
M
V
M
멀티 클라우드 애플리케이션
멀티 클라우드 환경에서는 단일 클라우드에 비해, 관리의 대상이 많고 복잡 => 인프라 통합 관리/자동 제어 기술 필요
수많은 VM을 각 클라우드 별로 개별 관리
(복잡성 증가)
- 수많은 VM 상태 한번에 확인 필요
- 수많은 VM 통합/자동 제어 필요
5
AWS
Azure
GCP
Alibaba
IBM
Tencent
7. CB-Tumblebug: 멀티클라우드 인프라 서비스 통합 관리
기술
정의
사용자 요구사항에 따라 최적의 멀티 클라우드 인프라 서비스를 조합하여 프로비저닝하고,
통합 제어 및 관리를 통해 사용자의 컴퓨팅 인프라 운용을 지원하는 기술
MCIS 상태
제어 및 관리
OpenStack GCE
VM
VM
AWS
EC2
VM
최적 배치 스케줄링
OpenStack
GCP
AWS
EC2
MS
Azure Best-2
BEST-1
요구사항
(사양, 가격, 위치, 성능)
MCIS
생성
MCIS 제어 및 관리
(시작/중지/종료 + 자동제어)
MCIS
VM
VM
VM
MCIS
MCIS
제공
VM
VM
생성
성능벤치마킹기반최적
멀티클라우드인프라
최적 클라우드 인프라
제공을 통한 효율성 증대
멀티클라우드인프라
통합운용자동화
통합 제어, 정책 적용 등
관리 편의성 극대화
CB-Tumblebug 특징
[1] 인프라 배치 계획 단계 [2] 인프라 프로비저닝 단계 [3] 인프라 관리 및 자동화 단계
*MCIS (멀티클라우드 인프라 서비스): 다양한 클라우드 인프라 서비스를 조합 및 상호 연계하여, 통합 제어하기 위한 논리적 그룹 객체 6
8. CB-Tumblebug 활용 사례
<최적배치 기반의 멀티클라우드 기반 영상 회의 서비스>
영상회의 서버
영상회의 사용자
컴퓨팅 인프라
최적 컴퓨팅
인프라 생성
영상 회의
서버 원격 배치
고품질의 영상 회의 서비스를
전세계 어디든 온디멘드로 제공
<대규모 글로벌 스케일 멀티클라우드 인프라 서비스>
서비스 사용자
컴퓨팅 인프라
대규모 글로벌 인프라
통합 배치 (ex: 게임서버)
대규모 글로벌 인프라 통합 제어
(suspend/resume/reboot/terminate)
7
9. CB-Tumblebug 주요 기능 요약
• MCIS 프로비저닝 및 특화 구성
• 다양한 클라우드 자원을 활용하여 MCIS를 생성하고 *특화하는 기능
• MCIS 최적 배치 스케줄링
• 클라우드 자원의 평가 및 정보 수집을 통해 최적 MCIS를 구성하는 기능
• MCIS 라이프사이클 제어 및 관리
• MCIS 라이프사이클 상태를 종합적으로 관리, 통합 제어하는 기능
• MCIS 정책 기반 자동 제어
• MCIS를 진단하고 결과에 따라 자동 제어하는 운용 자동화 기능
CB-Tumblebug
MCIS
8
CB-TB v0.5.8 API: 103개
VM
VM
VM
VM
VM
AWS
GCP
Azure
멀티 클라우드 인프라 서비스 (MCIS)
멀티클라우드 인프라를 ..
최적으로 [구성하고] [생성하고] [설정하고] [관리하고] [자동제어하고]
*MCIS 특화: MCIS에 다양한 설정 및 특성을 가미할 수 있는 구조적 특징 (Ex: VPN 설정, LB 설정 등)
10. MCIS 프로비저닝 및 특화 구성 (1/2)
VM
VM VM
멀티클라우드 자원
생성 및 준비 단계
SG
NET
KEY
SPEC
IMG SG
NET
KEY
SPEC
IMG
SG
NET
KEY
SPEC
IMG
VM
VM
VM
개별 VM
생성 단계
MCIS
생성 단계
MCIS 프로비저닝 과정
클라우드
클라우드 클라우드
VM
VM
VM
VM
VM VM
VM MCIS 확장
MCIS 축소
[MCIS 구성 변경 예시]
• 이종 클라우드의 컴퓨팅 자원을 통합 생성 및 상호 연계하여 *MCIS로
구성하고 설정을 통해 특화하는 기능
VM
VM VM
VM
VM
aws gcp
azure
[MCIS 특화 구성 예시]
Load-Balancing
특화 기능
VPN
…
VM
VM VM
VM
VM
aws gcp
azure
[MCIS 구성 예시]
다양한 클라우드 자원
통합 제어 가능
9
*MCIS: 다양한 클라우드 인프라 서비스를 조합 및 상호 연계하여, 통합 제어하기 위한 논리적 객체
11. MCIS 프로비저닝 및 특화 구성 (2/2)
10
(기본) MCIS 프로비저닝 과정
MCIS 생성
Namespace 생성
vNet 생성
Subnet 생성
클라우드 드라이버 등록
클라우드 리전 등록
SG 생성
SSHKey 생성
클라우드 연결 설정 등록
클라우드 크리덴셜 등록
(동적) MCIS 프로비저닝 과정
MCIS 동적 생성
클라우드 드라이버 등록
클라우드 크리덴셜 등록
클라우드 리전 등록
클라우드 연결 설정
CB-TB 시스템 환경 설정
기본 Namespace 자동 생성
Image 등록
Spec 등록
공통 Image 설정
공통 Spec 설정
기본 vNet 동적 생성
기본 Subnet 동적 생성
기본 SG 동적 생성
기본 SSHKey 동적 생성
VMs 생성
VMs 생성
12개
API
호출
1개
API
호출
[공통 이미지] https://github.com/cloud-barista/cb-
tumblebug/blob/main/assets/cloudimage.csv
[공통 스펙] https://github.com/cloud-barista/cb-
tumblebug/blob/main/assets/cloudspec.csv
MCIR 생성 단계 간소화 및 자동화 ♥
[시스템 환경 설정 스크립트]
./scripts/initMultiCloudEnv.sh
12. MCIS 최적 배치 스케줄링
• * MCIS 최적 배치 방법
• VM 스팩 기반 선정
• VM 가격 기반 선정
• VM 위치 기반 선정
• VM 성능 기반 선정 (benchmark)
• VM간 응답속도 기반 선정
• VM 복합 조건 기반 선정
• 다양한 정보를 수집하여 사용자 요구사항에 적합한 자원을 선정하여,
MCIS를 최적으로 구성(배치/스케줄링)하는 기능
VM 가격 비교 (AWS vs GCP)
VM 성능 비교 (AWS vs GCP)
클라우드 리전 위치 (약 150개 리젼)
11
Benchmark 예시
CPU 계산 성능 Memory RW 성능
Disk RW 성능 DB Transaction 성능
* MCIS 최적 배치: 최적으로 구성(배치/스케줄링)된 MCIS의 프로비저닝을 의미
Ref: aws-vs-gcp-vs-on-premises-cpu-performance-comparison (medium.com)
USD
($)
CPU
성능
상대
평가
(%)
13. MCIS 라이프사이클 제어 및 관리
Running
Terminated
Suspended
Reboot
Suspend
Create
Resume
Terminate
Failed
Error
Creating
Terminating
Suspending
Resuming
Rebooting
MCIS 라이프사이클 상태도
R R R R R R R S S S
Partial-Running-(7/10)
R R R F R R R R R R
Failed-(1/10)
• MCIS의 라이프사이클 통합 제어하고 상태를 쉽게 파악할 수 있는 기능
• MCIS의 세부 요소들의 대표적인 상태를 한눈에 표시 (ex: Partial State)
MCIS 라이프사이클 제어 = VM 통합 제어
VM
VM VM
MCIS
MCIS 재시작
Reboot R
R R
MCIS 라이프사이클 상태 검증 및 보정
12
14. 사용자 정책 기반 MCIS 자동 제어
VM
VM VM
VM
(auto)
MCIS 자동 제어 정책
진단 조건 제어 액션
MCIS
사용량
모니터링
MCIS
확장
• 사용자 정책을 기반으로 MCIS의 상태를 진단하고, 결과에 따라 MCIS를 자동 제어하는 기능
• 대규모 자원의 수동 처리 한계 극복
• MCIS 진단 조건
• MCIS 자원 사용량 진단
• MCIS 라이프사이클 진단
• MCIS 성능 진단
• …
• MCIS 제어 액션
• MCIS 규모 제어 (Scale In/Out)
• MCIS 라이프사이클 제어 (Suspend/Resume)
• MCIS 자원 교체 (Replace)
• …
13
15. (참고) CB-Tumblebug 시스템 구조
운용
정보
통합
저장소
자동 제어
정책 관리
자동 제어
NS
생성
삭제
수정
VM 이미지 관리
가상 네트워크 관리
VM 키페어 관리
보안 그룹 관리
VM 사양 관리
동적
리소스
생성 제어
리소스
템플릿
관리
MCIS
정보 구성
개별 VM
생성 제어
MCIS 동작 검증
MCIS 통합 네트워크 구성
MCIS 요구 사항검증
최적 MCIS 구성 관리
위치 기반 배치
동적 성능 기반 배치
사양 기반 배치
통합 조건 기반 배치 라이프사이클수집
사용량 정보 수집
MCIS
라이프사이클 통합 제어
개별 VM
라이프사이클 제어
MCIS 라이프사이클
통합 정보 생성
개별 VM 라이프사이클
상태 정보 수집
개별 VM 라이프사이클
상태 검증
평가 정보 저장/조회
종합 평가 정보 전달
생성
결과
및
접속
정보
전달
평가 결과 통합 관리
평가 VM 실행 관리
MCIS 프로비저닝
요청/조회 (요구사항 전달)
MCIR
생성/조회
MCIS 라이프사이클
제어 요청/조회
MCIS 품질 자동
제어 요청/조회
네임스페이스
생성/조회
종합 평가 정보 조회
메타데이터 기반 정보 수집
동적 성능 기반 정보 수집
MCIS
배치 평가
정책 관리
MCIS
생성
요청
결과
전달
라이프
사이클
상태
조회
라이프
사이클
관리
요청
제어
요청
자동 제어 정책 및 결과
저장/조회
MCIS
정보
저장/조회
리소스
정보전달
리소스 조회 /
동적 리소스 생성
MCIS 배치 평가 정보 저장소
제어 조건 판단
동적
성능
평가
요청
평가
정보
전달
MCIS 라이프사이클 상태 정보
저장/조회
MCIR
정보
저장/조회
자동 제어
로그 관리
이벤트 저장
네임스페이스 정보 저장/조회
제어
요청
②
①
③ ④ ⑤
상태 수집 요청
네임스페이스
검증 요청
결과 전달
REST Client Lib. CLI
API 호출
결과 제공
API 호출
결과 제공
REST API 런타임 서버 gRPC API 런타임 서버
gRPC Client Lib.
MCIR 관리 네임스페이스
관리
MCIS 프로비저닝 관리
MCIS
라이프사이클 통합 관리
MCIS
자동 제어
사용자 인터페이스 (API, CLI)
MCIS 배치 최적화 MCIS 생성 관리
MCIS 배치 평가 정보 관리 MCIS 동적 성능 벤치마킹
MCIS 라이프사이클
정보 통합 관리
MCIS 라이프사이클
통합 제어
상태 정보 수집
최적 배치 알고리즘
MCIS 성능 평가 관리
성능 정보 수집 CB-Dragonfly
CB-Spider
주요 개발 진행 포인트
(help wanted!)
평가 정보 DB
14
CB-Larva
환경 설정 조회 및 변경
시스템 관리 및
유틸리티
클라우드 커넥션 정보 등록 및 관리
메타데이터 관리 기능
자원 현황 리포트 기능
CSP 기존 자원 등록 기능
ⓐ
시스템 관리 및
유틸리티 사용
16. CB-TB 카페라떼 (v0.6.0) 주요 개선 포인트
15
[서비스 형상 개선] MCIS 형상 개선 (rootDisk, NLB 연동 대비)
[시스템 활용성 향상] CSP 기존 자원 등록 기능
[시스템 안정성 향상] 대규모 MCIS 프로비저닝 시험
17. [시스템 활용성 향상] CSP 기존 자원 등록 기능 개요 및 필요성 (1/2)
16
AWS
GCP
Azure
Alibaba
IBM
Tencent
AWS
GCP
Azure
Alibaba
IBM
Tencent
AWS
GCP
Azure
Alibaba
IBM
Tencent
AWS
GCP
Azure
Alibaba
IBM
Tencent 클라우드별
기존 사용 자원
Cloud-Barista
통합 자원 관리
VM VM VM
VM VM VM
VM VM
VM
VM
VM
VM VM
멀티클라우드 인프라 서비스
VM VM VM
VM VM VM
VM VM
VM
VM
VM
VM VM
멀티클라우드 인프라 서비스
VM
VM VM
멀티클라우드 인프라 서비스
[CSP 기존 자원 등록 기능] CSP 콘솔 등을 통해 생성 및 관리 중인 자원을, Cloud-Barista를 통해 관리할 수 있도록 처리하는 기능
18. [시스템 활용성 향상] CSP 기존 자원 등록 기능 개요 및 필요성 (2/2)
17
AWS
GCP
Azure
Alibaba
IBM
Tencent
AWS
GCP
Azure
Alibaba
IBM
Tencent
AWS
GCP
Azure
Alibaba
IBM
Tencent
AWS
GCP
Azure
Alibaba
IBM
Tencent
CB 개발자들
(CSP 계정 공유 개발 환경)
연구 개발을 위한
다양한 실험/시험
(반복)
NET
SG KEY
NET
SG KEY NET
SG KEY
NET
SG KEY
NET
SG KEY
NET
SG KEY
NET
SG KEY
NET
SG
NET
KEY
NET
SG
NET
KEY
NET
SG
NET
KEY
NET
SG
NET
KEY
NET
SG
NET
KEY
NET
SG
NET
KEY
NET
SG
NET
KEY
NET
SG
NET
KEY
NET
SG
NET
KEY
NET
SG
NET
KEY
NET
SG
NET
KEY
NET
SG
NET
KEY
NET
SG
NET
KEY
NET
SG
NET
KEY
VM
VM
VM
VM
VM
VM
VM
VM
VM
VM
VM
VM
VM
VM
VM
VM
VM
VM
VM
VM
VM
VM
VM
VM
VM VM
VM
VM
VM
VM
사용자를 파악할 수 없는, 오류로 남겨진, 관리가 유실된
➔ 한눈에 파악 및 정리 필요
19. [시스템 활용성 향상] CSP 기존 자원 등록 기능 동작 형태
18
AWS
GCP
Azure
Alibaba
IBM
Tencent
AWS
GCP
Azure
Alibaba
IBM
Tencent
AWS
GCP
Azure
Alibaba
IBM
Tencent
AWS
GCP
Azure
Alibaba
IBM
Tencent
NET
SG KEY
NET
SG KEY NET
SG
NET
SG KEY
SG
SG
NET
SG KEY
NET
SG
NET
KEY
NET
NET
SG
KEY
NET
SG
KEY
NET
SG
KEY
NET
SG
NET
KEY
NET
SG
NET
KEY
NET
NET
SG
NET
SG
KEY
NET
SG
NET
KEY
VM
VM
VM
VM
VM
VM
VM
VM
VM
VM
VM
VM
VM
VM
VM
VM
VM
VM
VM
특정 클라우드
개별 자원 등록 기능
(vNet, subnet, SG, Key, VM)
모든 클라우드
전체 자원 현황 조회 기능
(CSP 자원, CB-TB 자원 비교)
특정 클라우드
전체 자원 등록 기능
(vNet→subnet → SG → Key → VM)
모든 클라우드
전체 자원 등록 기능
(등록된 모든 클라우드 리전에 대해)
VM
VM VM
CB-TB
리소스 오브젝트
SG
NET
KEY
SPEC
IMG SG
NET
KEY
SPEC
IMG
SG
NET
KEY
SPEC
IMG
CB-TB
MCIS 오브젝트
20. [시스템 활용성 향상] CSP 기존 자원 등록 기능: 현황 조회 및 등록 예시
19
GET /inspectResourcesOverview POST /registerCspResourcesAll
21. [시스템 활용성 향상] CSP 기존 자원 등록 기능 시연 (동영상)
20
[CSP 기존 자원 등록 결과]
• elapsedTime" 442,
• availableConnection" 134,
• registerationOverview"
• "vNet": 917
• "securityGroup": 1689
• "sshKey": 1016
• "vm": 42
• "failed": 130
22. [서비스 형상 개선] 현재 MCIS 형상
21
VM VM VM VM VM VM
CB-TB MCIS
Network address space
(Public IP: x.x.x.x | Private IP: 192.168.0.0/16 | Overlay net IP: 10.10.0.1)
User
Public IP
CSP Private Subnet (VPC)
192.168.1.0/24
CSP Private Subnet (VPC)
192.168.2.0/24
CSP Private Subnet (VPC)
192.168.3.0/24
Private Subnet (192.168.0.0/16)
CSP1-R2
CSP1-R1 CSP2-R1
SecurityGroup SecurityGroup SecurityGroup SecurityGroup
Default
RootDisk
Default
RootDisk
Default
RootDisk
Default
RootDisk
Default
RootDisk
Default
RootDisk
23. *VM Group VM Group VM Group
[서비스 형상 개선] MCIS 형상 개선: 진행 중 (rootDisk, NLB 연동)
22
VM VM VM VM VM VM
CB-TB MCIS
Network address space
(Public IP: x.x.x.x | Private IP: 192.168.0.0/16 | Overlay net IP: 10.10.0.1)
User
Public IP, NLB IP:Port
CSP Private Subnet (VPC)
192.168.1.0/24
CSP Private Subnet (VPC)
192.168.2.0/24
CSP Private Subnet (VPC)
192.168.3.0/24
Private Subnet (192.168.0.0/16)
CSP1-R2
CSP1-R1 CSP2-R1
SecurityGroup SecurityGroup SecurityGroup
Selected
RootDisk
Selected
RootDisk
Selected
RootDisk
Selected
RootDisk
Selected
RootDisk
Selected
RootDisk
*NLB NLB NLB
*VM Group: 동일한 클라우드
및 리전에 동일한 VPC에 바운
드되는 동일 속성을 가진 VM들
의 그룹 (VM 레플리카 그룹)
*NLB: CSP의 서비스로 제공
되는 네트워크 로드벨런서(L4)
24. [시스템 안정성 향상] 대규모 MCIS 프로비저닝 시험
23
[시험 방법]
• 6종 CSP (130개 리젼)
• MCIS 300개 (300 VM)
• 생성 / 삭제 / 상태 조회
[가장 먼저 직면한 문제] Too many open files …
삐......
대규모 시험 도구를 통한 프로비저닝 시험 (Quick 영상)
1024 제한
25. [시스템 안정성 향상] 대규모 MCIS 프로비저닝 시험을 통한 개선
24
CB-Tumblebug USER (Client)
응답 거부
(API rate limit)
CB-Spider
응답 지연
…
…
응답 오류 확률 상승
응답 지연
응답 오류 확률 상승
응답 지연
시스템 오류 확률 상승 시스템 오류 확률 상승
?????
나비효과
나비효과 →
300 MCIS 상태 조회
(1초당 1회 반복)
…
26. [시스템 안정성 향상] 대규모 MCIS 프로비저닝 시험을 통한 개선
25
CB-Tumblebug USER (Client)
CB-Spider
…
…
…
Timeout Rate
limiting
Retry
Random sleep
for parallel exec
TBD: Client-
side cache
TBD: Server-
side cache
삐......
나비 효과 감소
27. [보너스] 글로벌 스케일 MCIS 프로비저닝 시연 (신규 유스케이스)
26
MCIS 기반 온디멘드 영상회의
MCIS 기반 MMORPG (메타버스?)
MCIS 기반 Ansible 확장 (설정)
[신규 유스케이스] MCIS 기반 글로벌 FPS 3D 슈팅게임 (*Xonotic)
* https://xonotic.org/
28. CB-Tumblebug 개발 로드맵
자동 제어 진단 조건 / 액션 다양화 및 고도화
시스템 테스트 및 대규모 프로비저닝 안정화
프레임워크간 연동 및 신규 클라우드 지원
MCIS 특화 기능 발굴 및 고도화
MCIS 서비스 형상 개선 (+RootDisk, +NLB, +Volume, …)
MCIS 프로비저닝 및
특화 구성
MCIS 최적 구성 및
배치 스케줄링
MCIS 자동 제어
예측 기반 자동 제어 알고리즘 연구
CB-Tumblebug
시스템 전반
시스템 활용성 향상 서비스 형상 개선
Remark: 카페라떼 릴리스
최적 배치 프레임워크 구현 및 구동 방식 개선
최적 배치를 위한 동적 성능 요소 발굴 및 데이터 수집
27
기존 CSP 자원 등록 기능 구현 및 고도화
시스템 안정성 향상
2019년 2020년 2021년 2022년
아메리카노
(19/11)
카푸치노
(20/6)
에스프레소
(20/11)
카페모카
(21/6)
아포가또
(21/11)
카페라떼
(22/6)
코르타도
(22/11)
핸드드립
(23/6)
We are here!
Cloud-Barista 2nd Generation
?
29. 멀티클라우드 서비스 공통 플랫폼
CLOUD
BARISTA
카페라떼(Cafe Latte) 한잔 어떠세요 ?
부 록
28
30. [참고] CB-Tumblebug 참여 방법 (환영합니다..^^)
CB-Tumblebug GitHub
https://github.com/cloud-barista/cb-tumblebug 29
31. [참고] CB-Tumblebug 사용 방법
30
모든 정보는 여기에:
https://github.com/cloud-barista/cb-tumblebug
REST API Swagger dashboard
지도 기반 GUI 클라이언트
CB-Tumblebug 서버
RE
ST
API
Web 기반 GUI 클라이언트
CB-Tumblebug 시스템은 REST API 서버 형태로 구동 (언어 및 플랫폼 독립적인 클라이언트 사용 가능)
• CB-TB 서버 실행
• CB-TB 제어
• REST API (MapUI, Dashboard,..)
• 스크립트
• CB-TB 로 생성한 MCIS 맛보기
• MCIS VM에 SSH 접속
• MCIS에 영상회의 서버 자동 배포
• MCIS에 클러스터 모니터링 도구 배포
• MCIS에 Ansible 환경 자동 구성
• MCIS에 Nginx 자동 배포
• MCIS 토이 게임 서버 배치
32. [참고] CB-TB 서버 실행
31
(1) CB-Tumblebug 빌드 환경 구성
• 필요 패키지 또는 도구 설치 (git, make, go, … )
• CB-Tumblebug 소스 다운로드
• git clone https://github.com/cloud-barista/cb-tumblebug.git
$HOME/go/src/github.com/cloud-barista/cb-tumblebug
• CB-Tumblebug 실행에 필요한 환경변수 설정
• source ./conf/setup.env
• (2) CB-Tumblebug 빌드
• 빌드 명령 실행
• make
• (3) CB-Tumblebug 실행
• CB-Spider 실행 (다른 탭에서)
• 실행 명령 실행
• make run
33. [참고] CB-TB 제어하기 (REST API)
• Swagger API 지원
• Swagger 기반 자동 API 문서 생성
• CB-Tumblebug 서버의 Swagger UI 웹 제공
CB-Tumblebug API (Swagger UI)
Swagger UI에서 직접 API 호출 프로그램 주석으로 API 문서 자동 생성
32
34. [참고] CB-TB 제어하기 (스크립트)
모든 자원
종료 및 삭제
MCIR 생성을 위한
모든 단계 수행
클라우드 연동 환경 설정
MCIR 생성
MCIS 생성
MCIS 접속키 파일 생성
MCIS 영상회의 서버 배포
MCIS 확장
MCIS 상태 조회
MCIS 자동 제어 정책 등록
Namespace 생성
[사용 및 개발 편의를 위한 다양한 테스트 스크립트]
conf.env
credentials.conf
위치: cb-tumblebug/src/testclient/
- 클라우드 리젼, 이미지 ID 등
- CSP 사용자 인증 크레덴셜
testSet.env
- 테스트 대상 클라우드 리전 지정
33
35. [참고] 다양한 클라우드로 구성된 MCIS 시험 지원 (스크립트)
• CB-Tumblebug 테스트를 위한 다양한 클라우드 리전의
정보를 수집 (conf.env 및 testSet.env)
# AWS (Total: 21 Regions)
# GCP (Total: 25 Regions)
# Alibaba (Total: 23 Regions)
# Azure (Total: 40 Regions)
# Cloudit (Total: 1 Regions)
# OpenStack (Total: 1 Regions)
# Mock (Total: 1 Regions)
# Cloud-Twin (Total: 1 Regions)
…
• 테스트 대상 클라우드 리전(testSet.env) 설정을 통해,
다양한 클라우드의 VM으로 조합된 MCIS를 쉽게 생성
및 시험 가능
testSet.env
34
36. [참고] 다양한 클라우드로 구성된 MCIS 시험 지원 (스크립트)
35
AWS 리전*2, GCP 리전*2, Alibaba리전*2
VM 복제본을 각 10개씩 배치 요청 (단일 커멘드)
배치 결과
37. [참고] CB-TB 클러스터 모니터링 도구 (유스케이스 발굴 및 배포 자동화)
• CB-Tumblebug의 MCIS에 클러스터 모니터링 도구(WeaveScope) 자동 배치
• WeaveScope는 컨테이너 클러스터를 모니터링 및 가시화하는 도구
• CB-Tumblebug의 MCIS에서 WeaveScope 클러스터가 바로 동작하도록 배포 자동화 스크립트 개발
• MCIS의 형상을 확인하는 데 도움
Weavescope 동작 형상
CB-Tumblebug
MCIS
VM VM VM
WeaveScope
자동 설정 및 배포
스크립트
CB-Tumblebug 서버
WeaveScope 자동 설정 및 배포 구조
MCIS
생성
WS 배포
(MCIS 원격 커맨드 기능)
WS 설정
정보 조회
36
38. [참고] CB-TB 영상 회의 서비스 자동 배포 (유스케이스 발굴 및 배포 자동화)
• CB-Tumblebug 영상 회의 서비스 자동 배포
• Jitsi는 영상 회의 서버를 제공하는 오픈소스 SW
• CB-Tumblebug를 통해 MCIS에 Jitsi가 쉽게 배치 될 수 있도록 자동화 스크립트 개발 (단 3개의 명령어로 배포 완료)
• 영상회의는 사용자에게 빠른 응답속도를 제공해야 하므로, 서버의 위치가 중요
• CB-Tumblebug를 통해서 글로벌 스케일 환경에 최적의 클라우드를 선정하여 영상회의 서비스를 위한 인프라를 제공 가능
Jitsi 영상회의 접속 화면
최적 MCIS에 영상회의 서버 자동 배포 구조
CB-Tumblebug MCIS
VM
Jitsi 자동 배포
스크립트
CB-Tumblebug 서버
DNS record
업데이트 스크립트
Jitsi
AWS Route53
제네바.cb.org
Aws cli
VM
Jitsi
VM
Jitsi
서울.cb.org
워싱턴.cb.org
워싱턴
서울
제네바
MCIS 최적 배치 (위치기반)
Jitsi
배포
1) createAll-mcis-mcir-ns-cloud.sh
2) update-dns-for-mcis-ip.sh
3) deploy-jitsi-to-mcis.sh
37
39. [참고] CB-TB의 Ansible 사용자 지원 (유스케이스 발굴 및 배포 자동화)
• CB-Tumblebug의 Ansible 사용자 지원
• Ansible은 Infrastructure as Code를 지향하는 오픈소스 기반의 자동화 관리 도구
• 구축/관리 하려는 인프라에 SSH로 원격 명령을 전달하는 방식으로 동작
• CB-Tumblebug의 MCIS에서 Ansible을 바로 사용할 수 있도록 Ansible 설정 자동화 스크립트 개발
Ansible 동작 형태
[Source] https://www.ibm.com/cloud/blog/end-to-end-application-provisioning-with-ansible-and-terraform
CB-Tumblebug
MCIS
VM VM VM
Ansible 자동
설정 스크립트
Ansible
CB-Tumblebug 서버
Ansible
host file
Ansible
playbook
CB-Tumblebug 의 MCIS에 Ansible 구동 자동 설정
MCIS
생성
SSH
Ansible host
파일 생성
38
40. [참고] CB-Tumblebug 소스코드 구조
39
• 소스코드
• 저장소: https://github.com/cloud-
barista/cb-tumblebug
• 개발 언어: Golang v1.16
• Visualizing a codebase
• https://octo-repo-
visualization.vercel.app/?repo=cloud-
barista%2Fcb-tumblebug
• goDoc
• https://pkg.go.dev/github.com/cloud-
barista/cb-tumblebug@main
41. 감사합니다.
“오픈소스”로 만들어가는 “멀티클라우드” 생태계
Cloud-Barista Community the 6th Conference
클라우드 바리스타들의 여섯번째 이야기
본 발표자료에는 네이버에서 제공한 나눔글꼴이 적용되어 있습니다.
(손 석 호 / contact-to-cloud-barista@googlegroups.com)
https://github.com/cloud-barista
https://cloud-barista.github.io