Cloud-Barista 제3차 오픈 컨퍼런스 : CB-Bridge - Cloud-Barista 운용 관리(Cloud-Barista Ope...
Cloud-Barista 제7차 컨퍼런스 : 멀티클라우드 인프라 서비스 통합 관리 (CB-Tumblebug)
1. 멀티클라우드, 컴퓨팅 인프라에 제약없는 서비스 생태계
클라우드바리스타 커뮤니티 제7차 컨퍼런스
CLOUD
BARISTA
코르타도(Cortado) 한잔 어떠세요 ?
멀티클라우드 인프라 서비스 통합 관리
손 석 호
[CB-Tumblebug]
CB-Tumblebug 프레임워크 리더
3. CB-Tumblebug: 멀티클라우드 인프라 서비스 통합 관리 필요성
이종 멀티클라우드 연동
멀티클라우드 자원
통합 컴퓨팅 인프라
멀티클라우드 인프라 서비스 (MCIS)
멀티클라우드
애플리케이션
복잡한 멀티클라우드의 효과적인 활용을 위해, 자원을 유기적으로 통합 제공하는 멀티클라우드 인프라 서비스 통합 관리 필요
CB-Tumblebug
MCIS
컴퓨팅
자원
컴퓨팅
자원
컴퓨팅
자원
VM VM VM VM
VM VM VM VM
APP
APP
APP
APP
APP
APP
APP
APP
2
4. 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 (멀티클라우드 인프라 서비스): 다양한 클라우드 인프라 서비스를 조합 및 상호 연계하여, 통합 제어하기 위한 논리적 그룹 객체 3
5. CB-Tumblebug 활용 사례
<최적배치 기반의 멀티클라우드 기반 영상 회의 서비스>
영상회의 서버
영상회의 사용자
컴퓨팅 인프라
최적 컴퓨팅
인프라 생성
영상 회의
서버 원격 배치
고품질의 영상 회의 서비스를
전세계 어디든 온디멘드로 제공
<대규모 글로벌 스케일 멀티클라우드 인프라 서비스>
서비스 사용자
컴퓨팅 인프라
대규모 글로벌 인프라
통합 배치 (ex: 게임서버)
대규모 글로벌 인프라 통합 제어
(suspend/resume/reboot/terminate)
4
6. CB-Tumblebug 활용 사례 (글로벌 3D FPS 게임 서비스)
5
MCIS 기반 글로벌
3D FPS 게임 서비스
(Xonotic)
① 글로벌 23개 지역
에 걸친 멀티클라
우드 인프라
구성 및 생성
② 3D FPS 게임
서비스 자동 배포
③ 게임 접속 및
서비스 현황 확인
7. CB-Tumblebug 주요 기능 요약
• MCIS 최적 배치 스케줄링
• 클라우드 자원의 평가 및 정보 수집을 통해 최적 MCIS를 구성하는 기능
• MCIS 프로비저닝 및 특화
• 다양한 클라우드 자원을 활용하여 MCIS를 생성하고 *특화하는 기능
• MCIS 라이프사이클 제어 및 관리
• MCIS 라이프사이클 상태를 종합적으로 관리, 통합 제어하는 기능
• MCIS 정책 기반 자동 제어
• MCIS를 진단하고 결과에 따라 자동 제어하는 운용 자동화 기능
CB-Tumblebug
MCIS
6
CB-TB v0.6.16 API: 126개
VM
VM
VM
VM
VM
AWS
GCP
Azure
멀티 클라우드 인프라 서비스 (MCIS)
멀티클라우드 인프라를 ..
최적으로 [구성]→[생성]→[설정]→[관리]→[자동제어]
*MCIS 특화: MCIS에 다양한 설정 및 특성을 가미할 수 있는 구조적 특징 (Ex: VPN 설정, LB 설정 등)
8. MCIS 최적 배치 스케줄링
• * MCIS 최적 배치 방법 (Filtering &Prioritizing)
• 스펙 기반 선정
• 가격 기반 선정
• 위치 기반 선정
• 성능 기반 선정 (benchmark)
• CSP 기반 선정
• 네트워크 응답속도 기반 선정
• 복합 조건 기반 선정
• 다양한 정보를 수집하여 사용자 요구사항에 적합한 자원을 선정하여,
MCIS를 최적으로 구성(배치/스케줄링)하는 기능
VM 가격 비교 (AWS vs GCP)
VM 성능 비교 (AWS vs GCP)
클라우드 리전 위치 (약 150개 리젼)
7
Benchmark 예시
CPU 계산 성능 Memory RW 성능
Disk RW 성능 DB Transaction 성능
* MCIS 최적 배치: 최적으로 구성(배치/스케줄링)된 MCIS의 프로비저닝을 의미
Ref: aws-vs-gcp-vs-on-premises-cpu-performance-comparison (medium.com)
USD
($)
CPU
성능
상대
평가
(%)
[구성]→[생성]→[설정]→[관리]→[자동제어]
9. 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 구성 예시]
다양한 클라우드 자원
통합 제어 가능
8
*MCIS: 다양한 클라우드 인프라 서비스를 조합 및 상호 연계하여, 통합 제어하기 위한 논리적 객체
[구성]→[생성]→[설정]→[관리]→[자동제어]
10. MCIS 프로비저닝 및 특화 (2/2)
9
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 생성 단계 간소화 및 자동화 ♥
(기본) MCIS 프로비저닝 과정
MCIS 생성
Namespace 생성
vNet 생성
Subnet 생성
클라우드 드라이버 등록
클라우드 리전 등록
SG 생성
SSHKey 생성
클라우드 연결 설정 등록
클라우드 크리덴셜 등록
(동적) MCIS 프로비저닝 과정
MCIS 동적 생성
클라우드 드라이버 등록
클라우드 크리덴셜 등록
클라우드 리전 등록
클라우드 연결 설정
CB-TB 시스템 환경 설정
기본 Namespace 자동 생성
Image 등록
Spec 등록
공통 Image 설정
공통 Spec 설정
기본 vNet 동적 생성
기본 Subnet 동적 생성
기본 SG 동적 생성
기본 SSHKey 동적 생성
VMs 생성
VMs 생성
12개 API 호출
[시스템 환경 설정 스크립트]
./scripts/initMultiCloudEnv.sh
[구성]→[생성]→[설정]→[관리]→[자동제어]
11. 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 라이프사이클 상태 검증 및 보정
10
[구성]→[생성]→[설정]→[관리]→[자동제어]
12. 사용자 정책 기반 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)
• …
11
[구성]→[생성]→[설정]→[관리]→[자동제어]
13. (참고) 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
12
CB-Larva
환경 설정 조회 및 변경
시스템 관리 및
유틸리티
클라우드 커넥션 정보 등록 및 관리
메타데이터 관리 기능
자원 현황 리포트 기능
CSP 기존 자원 등록 기능
ⓐ
시스템 관리 및
유틸리티 사용
[구성]→[생성]→[설정]→[관리]→[자동제어]
14. CB-TB 코르타도 (v0.7.0) 주요 개선 포인트
13
1) MCIS 인프라 형상 개선 (+DataDisk, +Snapshot, +NLB)
2) MCIS 자동 제어 안정화 및 개선 (+MC-AutoScale)
15. *SubGroup SubGroup SubGroup
1) MCIS 인프라 형상 개선 (+DataDisk, +Snapshot, +NLB)
14
VM VM VM VM VM VM
Tumblebug MCIS
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
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)
GCP
AWS Azure
SecurityGroup SecurityGroup SecurityGroup
RootDisk RootDisk RootDisk RootDisk RootDisk RootDisk
*R-NLB R-NLB R-NLB
*SubGroup
동일 속성을 가진 VM 및 리소스의 그
룹 (기존 VMGroup)
*NLB
네트워크 로드벨런서(L4)
- G-NLB: Global (SW 기반)
- R-NLB: Regional (CSP 서비스)
*G-NLB
*DataDisk DataDisk DataDisk DataDisk DataDisk DataDisk
*DataDisk
CSP 제공 Volume을 생성 및 관리
하여, MCIS의 VM에 할당
VM
snapshot
image
스냅샷
재사용
16. 15
MCIS#1
rootDisk
dataDisk #1
dataDisk #2
VM
1-1) DataDisk (volume) 관리 기능
MCIS 생성시 기본 지정
• RootDiskType
• RootDiskSize
DataDisk 관리
(생성/수정/연동/삭제)
• DiskType
• DiskSize
15
dataDisk #1
dataDisk #2
dataDisk #3
dataDisk #N
MCIS#2
rootDisk
dataDisk #3
VM
Attach
(연동)
DataDisk 리소스
Detach
(분리)
17. 16
1-1) DataDisk (volume) 관리 기능
DataDisk 관리 API (+8개)
16
DataDisk 생성
DataDisk 삭제
DataDisk 크기 변경
DataDisk 조회
DataDisk 리스트 조회
VM 기준, DataDisk VM 연동/분리
VM 기준, 가용 DataDisk 리스트 조회
DataDisk 전체 삭제
18. 17
MCIS
rootDisk
dataDisk #1
dataDisk #2
신규 VM
(Custom Image 활용)
MCIS
rootDisk
dataDisk #1
dataDisk #2
신규 VM
(Custom Image 활용)
MCIS
rootDisk
신규 VM
(Custom Image 활용)
1-2) VM Snapshot 기능
MCIS
rootDisk
dataDisk #1
dataDisk #2
기존 VM
(Snapshot 대상)
Snapshot 과정
(CSP snapshot 기능 연동 -> CB-TB 관리 자원으로 등록)
Image snapshot
(+ rootDisk data)
Volume snapshot X
Volume snapshot Y
CSP 영역
Custom Image
(CB-TB obj)
dataDisk X
(CB-TB obj)
dataDisk Y
(CB-TB obj)
CB-TB 관리 자원
Snapshot 활용 과정
(Custom Image로 VM 생성)
dataDisk #1
dataDisk #2
VM 생성
선택적 장착
17
19. 1-3) [Global, Regional] NLB
18
MCIS
vm vm vm vm
subGroup (4)
Health
Checker
port:80
사용자
p:80 p:80 p:80
p:80
NLB#1 IP
vm vm vm
subGroup (3)
Health
Checker
port:80
p:80 p:80 p:80
NLB#2 IP
(AWS)
(GCP)
Regional NLB
- CSP의 NLB 서비스 연동 (*L4 NLB)
- CSP가 HW를 기반으로 직접 제공하는 서
비스이므로 고성능
- 이용료 과금
- MCIS 내부의 SubGroup 단위로 연동
- CSP에 종속된 NLB 서비스는
일반적으로 동일 CSP 및 리전(VPC) 내의
자원들만 연동 가능하므로, 편의성을 고려
R-NLB#1
R-NLB#2
Regional NLB (CSP의 NLB 서비스 연동)
* Layer 4 NLB
Layer 4 (TCP, UDP)에서 IP와 Port를 활용하여
네트워크 부하를 연결된 서버들로 분산하는 것을 의미
20. 1-3) [Global, Regional] NLB
19
Global NLB
- MCIS 내의 모든 VM을 Public IP를 기반으로 연동
- SW 기반 NLB를 배포하여 서비스 형태로 제공 (L4)
- Script 기반으로 HAProxy 제공
- Script 변경을 통해 사용자 선호 SW로 변경 가능
- PoC 단계 (Global DNS인 GSLB와 다름)
- 최적 배치 기능을 통해, 최적의 NLB Host 배포
MCIS
vm
Health
Checker
port:80
사용자
NLB IP
Global NLB (VM에 SW로 배포된 NLB 서비스)
G-NLB
vm vm vm
vm vm vm vm
vm vm vm vm
p:80 p:80
PoC G-NLB != GSLB MCIS
특징: 최적 배치 기능을 통한, 최적의 NLB Host 배포
전체 노드의 응답
속도 합이 최소가
되도록 최적 배치
G-NLB
21. 1-3) [Global, Regional] NLB: 최적 배치 (1/2)
20
모든 클라우드 리전에
Network Probe 배치
모든 리전간
Network
Latency 측정
AWS ap-southeast2
(시드니)
GCP
us-west2
(LA)
143 ms
143 ms
22. 1-3) [Global, Regional] NLB: 최적 배치 (2/2)
21
VM#1
(리전 a)
VM#2
(리전 s)
VM#3
(리전 d)
VM#4
(리전 f)
VM#5
(리전 g)
VM#6
(리전 h)
응답시간
총합
(ms)
평가 순
위
리전 z 20 34 234 345 123 45 801 4
리전 x 123 456 54 34 45 78 790 3
리전 c 34 56 23 34 56 67 270 1
리전 v 456 234 223 125 34 67 1139 6
리전 b 34 54 34 188 78 34 422 2
리전 n 213 56 36 567 23 89 984 5
NLB 최적 CSP 및 리전 선정
(NLB와 전체 VM 사이의 응답속도 합을 최소화하는 선정)
24. CB-TB 코르타도 (v0.7.0) 주요 개선 포인트
23
1) MCIS 인프라 형상 개선 (+DataDisk, +Snapshot, +NLB)
2) MCIS 자동 제어 안정화 및 개선 (+MC-AutoScale)
25. 2) MCIS 자동 제어 안정화 및 개선
CB-Spider
CB-Ladybug
CB-Dragonfly
CB-Larva
VM
VM VM
MCIS 자동 제어 정책
진단 조건 제어 액션
MCIS
사용자 정의
프로그램
사용자
정의
사용자
정의
액션
TB
액션01
TB
액션01
TB
액션01
다양한
수집 대상
다양한
액션
24
26. 2) MCIS 자동 제어 메커니즘 안정화: State-Machine
MCIS 자동 제어 State-Machine
Ready Checking Detected Operating
Timeout
Failed
Suspended
start
자동 제어
등록
자동 제어
중지
조건 만족 X
오류 응답
없음
자동 조건 만족 O 자동
타임아웃 횟수 초과
제어 완료
• State-Machine 메커니즘
• 자동 제어 컨트롤러는
정책 오브젝트 상태를
기준으로 동작
• 시스템 중단 및 재실행
시에도 정상 동작 가능
자동 제어 컨트롤러
- 주기적으로 정책 오브젝트 상태 확인
- 상태에 맞는 동작 수행
Stabilizing
제어 안정화 완료
25
27. 2) MCIS 자동 제어 메커니즘: MC-AutoScale
26
MC-AutoScale
- 자동제어 메커니즘을 기반으로 멀티클라우드
단위로 ScaleOut을 자동으로 수행하는 기능
- ScaleOut 멀티클라우드 최적 배치
- ScaleOut할 노드를 워크로드 상황
및 요구사항에 따라 최적 배치
- ScaleOut 확장 규모 자동 판단
- 워크로드를 분석하여, ScaleOut
추가 노드 수 자동 판단
- ScaleOut 기존 서비스 재구성
- PostAction을 활용하여,
기존 서비스 구성 재구성
VM
VM VM
VM
(auto)
MCIS 자동 제어 정책
진단 조건 제어 액션
MCIS
사용량
모니터링
MCIS
확장
1) 멀티클라우드
최적배치
VM
(auto)
2) 확장 규모
자동 판단
VM
(auto)
29. 멀티클라우드 서비스 공통 플랫폼
코르타도(Cortado) 한잔 어떠세요 ?
CLOUD
BARISTA
부 록
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
41. 감사합니다.
멀티클라우드, 컴퓨팅 인프라에 제약없는 서비스 생태계
Cloud-Barista Community the 7th Conference
클라우드바리스타들의 일곱번째 이야기
본 발표자료에는 네이버에서 제공한 나눔글꼴이 적용되어 있습니다.
손 석 호 / contact-to-cloud-barista@googlegroups.com
https://github.com/cloud-barista
https://cloud-barista.github.io