SlideShare a Scribd company logo
1 of 257
Download to read offline
공개소프트웨어
오픈스택 입문 & 파헤치기
Ocata / Pike
[공개소프트웨어 오픈스택 입문 & 파헤치기]
클라우드 컴퓨팅과 공개 소프트웨어
최영락, 오픈스택 한국 커뮤니티 3기 대표
Ocata / Pike
Agenda
• 클라우드 컴퓨팅 소개
• 클라우드 컴퓨팅 관련 용어
• 클라우드 컴퓨팅 분야 공개 소프트웨어
클라우드 컴퓨팅: 개념
대형 전력회사에서 전기를 받아쓰듯이 중앙집중화 된 대형 데이터센터에서 서비스를 받고, 소프트
웨어 프로그램들도 인터넷 망을 통해서 자유롭게 빌려 쓴다. IT 자원을 구매하거나 소유할 필요 없
이, 필요한 만큼 사용료를 주고 쓰는 개념이 바로 “클라우드컴퓨팅” 이다.
- 세계적 IT 미래학자 니컬러스 카
클라우드 컴퓨팅: 배경 및 필요성
클라우드 컴퓨팅: 경제성
• 실제 자원 활용률: 5%~20%
• 특정 시점에서만 활용률이 높음
- 스포츠 시즌: 영상 스트리밍
- 쇼핑 시즌: 초콜릿 쇼핑몰
(예: 발렌타인데이/빼빼로데이)
클라우드 컴퓨팅: 관련 용어
Cloud Council, “Cloud Computing Use Cases White Paper’
클라우드 컴퓨팅: 제공 유형에 따른 분류
Iaa
S
인프라 제공 서비스
프로세싱 파워, 서버, 네트워크, 가상화 및 OS와 같은 기본적인 컴퓨팅 자원을
제공하는 클라우드 서비스
Paa
S
플랫폼 제공 서비스
클라우드 컴퓨팅 환경을 통해 어플리케이션 개발 플랫폼을 제공하는 서비스.
단말을 위한 API를 제공하거나 다양한 이기종 간의 단말에서의 개발 환경을 제
공
Saa
S
소프트웨어 제공 서비스
별도의 전용 소프트웨어를 제공하여 소비자가 단지 어플리케이션만을 사용하
고 어플리케이션이 실행되는 운영체제, 하드웨어 또는 네트워크 인프라는 제
어하지 않는 클라우드 서비스
클라우드 컴퓨팅: 사용 유형에 따른 분류
Public
공용 클라우드
제3의 회사 (예: Amazon AWS, Microsoft Azure, Google Cloud, KT
uCloud, NAVER Cloud, TOAST)에서 제공하는 클라우드를 인터넷으로
접속해 사용
Private
사설 클라우드
인터넷을 통하지 않고 사내 등에 직접 하드웨어 구입 후 클라우드를 구축
. 네트워크 속도, 보안 및 법적인 문제에 따라 사용하는 경우가 많음
Hybrid
하이브리드 클라우드
공용 클라우드와 사설 클라우드의 적절한 조합
클라우드 컴퓨팅: 데이터센터
• 해외 & 국내 데이터센터
클라우드 컴퓨팅: 클라우드와 가상화
서버 가상화 vs. 네트워크 가
상화
• 서버 가상화는 매우 빠르게 성장하여 클라우드를 이루는 기반 기술이 되었습니다
✓ 하이퍼바이저: VMware ESXi, Citrix XenServer, Microsoft Hyper-V, …
✓ 하드웨어 지원: Intel VT/VT-x, AMD-v
• 네트워크 가상화를 통해 가상화된 서버 자원을 묶어 독립적인 네트워크로 사용합
니다
클라우드 컴퓨팅: 컨테이너 & 베어베탈
• 가상 머신은 하이퍼바이저 위에서 별도의 운영체제와 함께 동작합니다
• 컨테이너는 공통된 운영체제 (커널)를 기반으로 독립적으로 응용프로그램을 실행
합니다
• 베어베탈은 가상화 / 컨테이너 기반이 준비되어 있지 않은 물리 서버로, 베어메탈
에 가상화 / 컨테이너 서비스를 구축하여 클라우드 컴퓨팅 서비스를 만듭니다
클라우드 컴퓨팅: 프로그래머블 / 소프트웨어 정의 인프라
• 원하는 때 원하는 만큼 자원을 확장하거나 줄이는 과정을 수동이 아닌 프로그래밍
가능한 인프라 환경을 통해 자동으로 이루어집니다
• 인프라 전체를 소프트웨어 기반으로 제어하는 환경을 소프트웨어 정의 인프라 /
소프트웨어 정의 데이터센터 등 용어로 이야기하기도 합니다
CLOUD API
클라우드 컴퓨팅 관련 공개 소프트웨어
• 클라우드 컴퓨팅 구축
• 소프트웨어 기반 자동화
• 가상화 기술
• 가상 머신 운영체제 & 프로그램
• 모바일 클라우드 컴퓨팅
• 네트워크 관리
• …
클라우드 구축을 위한 공개 소프트웨어
OpenNebula
• 2008년 3월 기술 프리뷰 버전을 오픈소스로 릴리즈하면서 발전
• 현재는 OpenNebula Systems (이전 C12G Labs) 회사에서 운영 및 유지보수 중
• 2017년 7월 기준 버전 5.4.0으로, 3.8부터는 상업용 제품에 대해서만 유지보수 중
• 지원 하이퍼바이저: KVM, Xen, VMware ESXi, Hyper-V
• 라이선스: Apache License 2
Eucalyptus
• “Elastic Utility Computing Architecture for Linking Your Programs To Useful
Systems” 에 대한 약어
• 클라우드 컴퓨팅 시스템에 대한 활발한 연구와 커뮤니티를 조성하기 위해 미국
UC 산타바바라 대학에서 시작된 오픈소스 프로젝트
• 2014년 9월 휴렛펙커드 (HP)에서 인수
• 현재는 DXC Technology에서 유지보수
• 라이선스: BSD
CloudStack
• Cloud.com 사가 개발한 오픈소스 클라우드 환경 구축 소프트웨어
• GUI 기반 관리 콘솔, 멀티 하이퍼바이저, 소프트웨어 방화벽, 로드밸런서를 기본
제공
• 2011년 7월 Citrix Systems로 인수되었다가 2012년 4월 Apache 재단에 Donate
• 2017년 8월 기준 버전 번호: 4.10.0.0
• 라이선스: Apache License 2
OpenStack
• Python으로 구현된 클라우드 관리를 위한 오픈소스로, 활발한 커뮤니티 활동과
함께 발전 중
• 한국 커뮤니티: 오픈스택 활성화, 대시보드 & 문서 번역 활동 등
• 라이선스: Apache License 2
[공개소프트웨어 오픈스택 입문 & 파헤치기]
오픈스택 소개
최영락, 오픈스택 한국 커뮤니티 3기 대표
Ocata / Pike
Agenda
• OpenStack이란?
• OpenStack 역사 & 릴리즈
• OpenStack 구성 요소
• OpenStack과 하이브리드 클라우드
OpenStack (오픈스택)이란?
• 클라우드 환경에서 컴퓨팅 자원과 스토리지 인프라를 셋업하고 구동하기 위해
사용하는 오픈 소스 소프트웨어 프로젝트의 집합
OpenStack에 대한 다른 정의들
• OpenStack은 공용 (Public) 클라우드와 사설 (Private) 클라우드 구축을 가능하게
하는 오픈 소스 소프트웨어
• OpenStack은 서버, 스토리지, 네트워크들과 같은 자원들을 모두 모아, 이들을
제어하고 운영하기 위한 클라우드 Operating System
• OpenStack은 오픈 소스를 기반으로 클라우드를 구축하고 운용하고자 하는 오픈
소스 개발자, 회사, 사용자들이 주축이 되어 발전하는 커뮤니티
• IaaS 형태의 클라우드 컴퓨팅 오픈 소스 프로젝트로 컴퓨팅, 스토리지, 네트워킹
자원을 관리하는 여러 개의 하위 프로젝트들로 이루어짐
• …
• 빠른 글로벌 오픈 소스 커뮤니티 성장세
OpenStack의 성장
COMPANIES
TOTAL CONTRIBUTORS
AVERAGE MONTHLY
CONTRIBUTORS
CODE CONTRIBUTIONS
1,036 238 70,137
231
10,149
INDIVIDUAL MEMBERS
COUNTRIES
121
As of July 2013
[1] OpenStack Foundation, OpenStack 3rd Birthday Presentation, Jul 10 2013
[2] http://docs.openstack.org/ko_KR/upstream-training/workflow-metrics.html#2 (Oct 2015)
[3] OpenStack Foundation, OpenStack 6th Birthday Presentation, July 2016
(2015년 10월)
(2016년 7월)
• 코어 >= 5,000,000 개가 Production 환경에서 사용 중 (2017년 4월 통계)
• 전체 OpenStack 환경 중 2/3 (그 외: 개발용, QA용, PoC, …)
OpenStack: Production 환경
Source: User Survey, April 2017
OpenStack을 사용하는 곳
RETAIL/E-COMMERCE FINANCIAL TELECOM ACADEMIC/RESEARCH
ENERGY MANUFACTURING ENTERTAINMENT
+ 국내: KBS, 현대자동차, 카카오 등
OpenStack 역사
• OpenStack 핵심 컨트리뷰터
• 초기: Rackspace & NASA
• Rackspace: OpenStack의 Object Storage라고 하는 “Cloud Files”
부분 플랫폼을 개발하는 데 기여하기 시작
• NASA: 기존 "Nebula" 플랫폼을 발전시켜 컴퓨팅 자원 플랫폼을
개발하는 데 기여
• 2012년 5월: NASA와 OpenStack 관계 종료
• 2012년 9월: VMWare社가
OpenStack foundation에 가입
• 그리고, 많은 회원사 & 참여자
들이 참여하고 있음!
[1] http://www.wired.com/wiredenterprise/2012/04/openstack/
The library of the Rainbow Mansion
OpenStack 릴리즈
• 6개월 주기로 릴리즈 발표
• 릴리즈: 개발자 서밋 & 미팅에 맞추어 계획됨
• 2016년까지 OpenStack Summit에서 개발자 회의가
진행됨 (OpenStack Design Summit)
• 2017년부터 PTG (Project Team Gathering)이라는
이름으로 별도 개발자 행사 개최
• 기본적으로 업그레이드 버전업 미지원 (최근부터
지원하기 시작)
• 새로운 특징 및 핵심 기능들은 보통 1년을 주기로
많은 변화가 생김
릴리즈
이름
릴리즈
일자
포함된 컴포넌트
코드 이름
Austin 21 October 2010 Nova, Swift
Bexar 3 February 2011 Nova, Glance, Swift
Cactus 15 April 2011 Nova, Glance, Swift
Diablo
22 September
2011
Nova, Glance, Swift
Essex 5 April 2012 Nova, Glance, Swift, Horizon, Keystone
Folsom
27 September
2012
Nova, Glance, Swift, Horizon, Keystone,
Quantum, Cinder
Grizzly 4 April 2013
Nova, Glance, Swift, Horizon, Keystone,
Quantum, Cinder
Havana 17 October 2013
Nova, Glance, Swift, Horizon, Keystone,
Neutron, Cinder, Heat, Ceilometer
Icehouse 17 April 2014 + Trove
Juno 16 October 2014 + Sahara
Kilo 30 April 2015 + Ironic
Liberty 15 October 2015
+ Zaqar, Manila, Designate, Barbican,
Searchlight
Mitaka 7 April 2016 + Magnum
Newton 6 October 2016
+ >10 components
Ocata 22 February 2017
Pike 30 August 2018
Queens 28 February 2018
Rocky 2018년 8월 예정
OpenStack 릴리즈 이름
• 차후 Summit이 개최되는 장소와 관련된 지명 등을 중심으로 설문 후 법적 이슈가 없는
이름을 선택
• N: Austin 서밋이 개최된 근처에 Newton House가 있음
• O: Olimpic이 설문 1위였으나, Olympic과의 유사성 등으로 3위로 선정된 Barcelona 근처 해변
이름인 Ocata가 선정
OpenStack 구성 요소
Compute (컴퓨팅)
Storage (스토리지)
Network (네트워크)
Nova
Swift (Objects)
Glance (Images)
자원 종류
OpenStack
구성 요소 이름
(Quantum) Neutron
Cinder (Block)
Identity (인증) Keystone
OpenStack 구성 요소 ➔ (조금 더 쉽게 보면…)
• Nova
• Swift
• Glance
• Keystone
• Horizon
• Cinder
• Neutron
• Heat
• Ceilometer
• …
VM 인스턴스 관리
Object 스토리지
관리
VM 이미지 관리
통합 인증 관리
웹 관리 포털
Block
스토리지
관리
(가상) 네트워크 관리
템플릿
관리
Metering
관리
소프트웨어로 클라우드 인프라를 자동화하는 OpenStack
단일 플랫폼
가상 머신, 컨테이너,
베어 메탈
프로그래머블 인프라
Compute, 네트워킹,
스토리지를 관리하는
API 공통 집합
➔ “오픈” 소스, 디자인, 개발, 커뮤니티
개방형 인프라
새로운 기술: 커뮤니티 간 협력
Containers PaaS NFV Provisioning
테스트: 커뮤니케이션 & 피드백
OpenStack CI 테스트
OpenStack 서밋 & 포럼
PTG (Project Team Gathering)
OpenStack과 하이브리드 클라우드
https://www.slideshare.net/randybias/openstack-architected-like-aws-and-gcp
OpenStack과 하이브리드 클라우드
https://www.slideshare.net/daviddalisusanibarar/hybrid-cloud-aws-openstack-vmware
[공개소프트웨어 오픈스택 입문 & 파헤치기]
오픈스택을 설치하기 위한 시스템 준비
장태희, 오픈스택 한국 커뮤니티 3기 스터디 매니저
Ocata / Pike
Agenda
• 가상 서버 준비하기
• 우분투 서버 설치하기
• 네트워크 테스트 베드 준비하기
가상 서버 준비하기 – Hypervisor 설치 전 준비
➡CPU : 4 core 이상
➡Memory : 4GB 이상
➡Disk : 500GB
➡Memory : 8GB 이상 (single instance 이상의
경우 인스턴스 메모리 크기 x 인스턴스의 개수)
최소 사양 권장 사양
가상 서버 준비하기 – VirtualBox 설치
우분투 서버 설치하기 – 우분투 서버 다운로드
https://www.ubuntu.com/download/server
우분투 서버 설치하기 – VirtualBox에서 VM 생성
네트워크 테스트 베드 구성하기
인터넷
모뎀인터넷 공유기
(라우터)
무선 네트워크
유선 네트워크 출처 : 오픈스택을 다루는 기술 (장현정) - 길벗출판사
네트워크 구성도
인터넷
AP 192.168.0.1
Ubuntu 16.04 Server
HOST IP (enp0s3) 192.168.0.20
Nova
Nova-api
Nova-network
Nova-
compute
Cinder
KVM
Keystone
Glance
OpenStack
VM5
10.0.0.6
VM4
10.0.0.5
VM3
10.0.0.4
VM2
10.0.0.3
VM1
10.0.0.2
10.0.0.0/20 fixed IP 범위
로컬 네트워크 IP 영역
192.168.0.20
enp0s3
br100
VirtualBox를 이용한 오픈스택 설치
192.168.0.101
Fixed IP Range
10.0.0.0/20
Floating IP Range
192.168.0.128/28
출처 : 오픈스택을 다루는 기술 (장현정) - 길벗출판사
Installation Demo
[공개소프트웨어 오픈스택 입문 & 파헤치기]
DevStack으로 오픈스택 시작하기
장태희, 오픈스택 한국 커뮤니티 3기 스터디 매니저
Ocata / Pike
Agenda
• Devstack 소개
• Devstack 설치에 필요한 settings
• Devstack 설치해보기
DevStack이란?
- 복잡한 오픈스택 시스템을 자동으로 설치하여 어떻게 동작하는지 알기 위한 프로젝트
- 오픈스택을 처음 접하는 유저에게 추천
- 오픈스택의 프로젝트의 All-in-One 설치를 제공하며, 어떤 구성요소들이 있는지 확인할 수 있음
https://docs.openstack.org/devstack/latest/
DevStack설치를 위한 사전 준비
✓최신 버전의 Virtualbox (https://www.virtualbox.org/wiki/Downloads)
✓Intel : VT-d, VT-x / AMD : AMD-V를 지원하는 64비트 CPU
✓8GB 이상의 RAM
✓Ubuntu Server LTS 최신버전 VM에 설치 (https://www.ubuntu.com/download/server)
✓DevStack 프로젝트 repository (git://git.openstack.org/openstack-dev/devstack.git)
✓VM으로 DevStack Clone
✓local.conf 설정
DevStack 설치에 필요한 settings
✓cp devstack/samples ../
✓vim local.conf
[[local|localrc]]
ADMIN_PASSWORD=openstack
DATABASE_PASSWORD=$ADMIN_PASSWORD
RABBIT_PASSWORD=$ADMIN_PASSWORD
SERVICE_PASSWORD=$ADMIN_PASSWORD
https://docs.openstack.org/devstack/latest/configuration.html
DevStack 설치
✓stack 유저 추가
$ sudo useradd –U –G sudo –s /bin/bash –m stack
$ echo "stack ALL=(ALL) NOPASSWD: ALL" | sudo tee /etc/sudoers.d/stack
$ sudo passwd stack
$ sudo su – stack
✓DevStack 다운로드
$ git clone https://git.openstack.org/openstack-dev/devstack
$ cd devstack
DevStack 설치
✓sudo apt update && sudo apt dist-upgrade && sudo apt install git
✓local.conf 파일 생성하기
✓설치 시작
./stack.sh
Installation Demo
DevStack 설치 후 확인
DevStack 설치 후 주의사항
✓DevStack이 설치된 VM의 OS를 종료하지 말고 스냅샷을 만드십시오
✓DevStack을 VM 내에서 종료해야 할 경우 unstack.sh를 이용하십시오
✓github에서 DevStack을 Clone한 뒤 실행 전 branch를 버전에 맞게 checkout하여 주십시오
✓Virtualbox에서 32bit 옵션만 있는 경우 BIOS에서 Virtualization Technology 활성화와 Hyper-V가
꺼져 있는지 확인하여 주십시오
[공개소프트웨어 오픈스택 입문 & 파헤치기]
오픈스택 매뉴얼 설치: Newton 버전 (1)
신호철 & 최영락, 오픈스택 한국 커뮤니티 3기 운영진
Ocata / Pike
Agenda
• OpenStack Newton 버전 소개
• 한글 설치 가이드 소개
• 설치 개요
• 설치 과정 (1/2)
- 기본 환경 구성
- 인증 서비스 (Keystone) 구성
- 이미지 서비스 (Glance) 구성
- Compute 서비스 (Nova) 구성
OpenStack Newton 버전
• 2016년 10월 6일 출시
• OpenStack 14번째 릴리즈
• 2018년 기준, 실제
Production에서도 많이
사용하는 안정 버전
OpenStack 한글 설치 가이드 소개
• https://docs.openstack.org/ko_KR/ 에서 여러 릴리즈에 대한 설치 가이드 확인 가능
(또는 docs.openstack.org -> “More Releases & Languages” -> “한국어 (Korean)”
OpenStack Newton 설치 가이드
• 본 설치 과정은 Ubuntu 16.04에서 Newton 버전을 설치
: https://docs.openstack.org/newton/ko_KR/install-guide-ubuntu/
설치 개요
• 설치 과정 참고: http://bit.ly/openstack-newton-manual-steps
• 1편
- 기본 환경 구성 (VirtualBox 하드웨어 설정, hosts 설정, ping 테스트, chrony 설치)
- 인증 서비스 (Keystone), 이미지 서비스 (Glance), Compute 서비스 (Nova) 구성
• 2편
- 네트워킹 서비스 (Neutron), 대시보드 서비스 (Horizon),
블록 스토리지 서비스 (Cinder) 구성
기본 환경 구성 - VirtualBox 예시
• https://www.ubuntu.com/download 에서 Ubuntu Server 또는 Desktop iso 다운로드
• 가상 머신 2대 준비 & 설치
### Controller node
- network device 1: 호스트전용 네트워크 (enp0s3)
- network device 2: 브리지모드 (enp0s8)
- network device 3: NAT (enp0s9)
- disk : 20G ( OS용)
- HOST NAME : controller
### Compute node
- network device 1: 호스트전용 네트워크 (enp0s3)
- network device 2: 브리지모드 (enp0s8)
- network device 3: NAT (enp0s9)
- disk : 20G ( OS용 )
- disk 1 : 8G ( Block Storage service)
- disk 2 : 8G * 3ea ( Object Storage services )
- HOST NAME : compute
설치 Demo
• 참고 사항
- 설치 데모에서는 vi 편집기 사용을 가정하였습니다.
익숙하지 않은 경우, vi 대신 nano 편집기를 사용합니다.
: “vi /etc/network/interfaces” 대신 “nano /etc/network/interfaces” 사용
=> Ctrl+O: 파일 저장, Ctrl+X: 편집기 종료
- 언급하였던 http://bit.ly/openstack-newton-manual-steps 및
https://docs.openstack.org/newton/ko_KR/install-guide-ubuntu/ 문서를
참고하여 설치 과정을 자세히 확인할 수 있습니다.
- 다른 배포판 (CentOS, SUSE) 설치시, 배포판 특성에 따른 차이는 있으나,
전체적인 설치 과정은 동일합니다.
[공개소프트웨어 오픈스택 입문 & 파헤치기]
오픈스택 매뉴얼 설치: Newton 버전 (2)
신호철 & 최영락, 오픈스택 한국 커뮤니티 3기 운영진
Ocata / Pike
Agenda
• 설치 개요
• 설치 과정 (2/2)
- 네트워킹 서비스 (Neutron) 구성
- 대시보드 서비스 (Horizon) 구성
- 블록 스토리지 서비스 (Cinder) 구성
OpenStack Newton 설치 가이드
• 본 설치 과정은 Ubuntu 16.04에서 Newton 버전을 설치
: https://docs.openstack.org/newton/ko_KR/install-guide-ubuntu/
설치 개요
• 설치 과정 참고: http://bit.ly/openstack-newton-manual-steps
• 1편
- 기본 환경 구성 (VirtualBox 하드웨어 설정, hosts 설정, ping 테스트, chrony 설치)
- 인증 서비스 (Keystone), 이미지 서비스 (Glance), Compute 서비스 (Nova) 구성
• 2편
- 네트워킹 서비스 (Neutron), 대시보드 서비스 (Horizon),
블록 스토리지 서비스 (Cinder) 구성
설치 Demo
• 참고 사항
- 설치 데모에서는 vi 편집기 사용을 가정하였습니다.
익숙하지 않은 경우, vi 대신 nano 편집기를 사용합니다.
: “vi /etc/network/interfaces” 대신 “nano /etc/network/interfaces” 사용
=> Ctrl+O: 파일 저장, Ctrl+X: 편집기 종료
- 언급하였던 http://bit.ly/openstack-newton-manual-steps 및
https://docs.openstack.org/newton/ko_KR/install-guide-ubuntu/ 문서를
참고하여 설치 과정을 자세히 확인할 수 있습니다.
- 다른 배포판 (CentOS, SUSE) 설치시, 배포판 특성에 따른 차이는 있으나,
전체적인 설치 과정은 동일합니다.
[공개소프트웨어 오픈스택 입문 & 파헤치기]
오픈스택 사용하기 - Horizon 대시보드
신호철 & 최영락, 오픈스택 한국 커뮤니티 3기 운영진
Ocata / Pike
Agenda
• Horizon 대시보드란
• Horizon 대시보드 사용해보기
• 네트워크 생성
• 이미지 생성
• flavor 생성
• 인스턴스 생성
• 블록 스토리지 생성
• ssh 접속과 볼륨 연결 확인
Horizon 대시보드란
• 웹 대시보드를 통해 OpenStack 자원을 관리하는 프로젝트
• Python Django + Angular JS로 구현됨
Horizon 대시보드 변천사
(Essex)
Horizon 대시보드 변천사
(Havana)
Horizon 대시보드 변천사
(Queens)
Horizon 대시보드 사용해보기 – 주요 용어
• 사용자 (User)와 프로젝트 (Projects)
➢ 한 사용자는 여러 프로젝트에 속할 수 있습니다.
• 인스턴스 (Instance)
➢ OpenStack에서는 설치 환경 내에서 가상 머신이 실행 중인 대상을 이야기합니다.
• 인스턴스 유형 (Instance Type)
➢ OpenStack은 VirtualBox와 달리, 미리 인스턴스 유형을 지정하고 (CPU, 램, 디스크
용량 등), 해당 인스턴스 유형을 사용하도록 되어 있습니다.
• OpenStack에 있는 2가지 유형의 IP 주소
➢ Fixed IP: 인스턴스가 생성된 이후 종료될 때까지 변하지 않는 IP 주소 (관리용)
➢ Floating IP: 서비스를 위해 필요에 따라 인스턴스에 연결/해제하는 IP 주소 (서비스용)
Horizon 대시보드 사용해보기 – 네트워크 유형
• 프로바이더 네트워크
➢ 사용하는 환경 내에서
주어지는 라우터 등 네트워크
인프라를 사용하는 경우
➢ 다른 네트워크 장비와 같이
서비스를 구성하는 경우 보통
사용
• 셀프 서비스 네트워크
➢ OpenStack Neutron에서 가상
네트워크 라우터 등을 통해
네트워크를 연계하여 사용
Horizon 대시보드 사용해보기 – 살펴볼 과정
1. 외부 네트워크 생성: 물리 네트워크 인프라와 연계
2. 내부 네트워크 생성: 인스턴스가 사용할 가상 네트워크
3. 이미지 생성: 사용할 인스턴스 이미지 직접 등록
4. Flavor 생성: 인스턴스 유형을 미리 정하기
5. 인스턴스 생성: 1~4를 기반으로 인스턴스를 생성
6. 블록 스토리지 생성: 가상 디스크 추가 가능
7. ssh 접속과 볼륨 연결 확인: 인스턴스 접속
Internet
CPU 2개
램 4GB
네트워크
외부 네트워크 생성
provider 생성
1.관리자
2.네트워크
3.네트워크 생성
서브넷 생성
1.프로젝트
2.네트워크
3.서브넷 추가
네트워크
내부 네트워크 생성
demo 계정으로 접속
1.프로젝트
2.네트워크
3.네트워크 생성
4.라우터
5.라우터 생성
6.네트워크 토폴로지
이미지 올리기
순서
1. 관리자
2. 이미지
3. 이미지생성
4 이미지 이름
5. 이미지 설명
6. 이미지 소스 유형 파일 검색
7. 포맷
8. 이미지 생성
flavor
1. 관리자
2. Flavor
3. flavor 생성
인스턴스 생성
1. Compute
2. 인스턴스
3. 인스턴시작
4. 인스턴스 이름
5. 이미지 선택
6. flavoer 선택
7. 네트워크 선택
8. 보안그룹 선택
9. 키페어 생성
10. 인스턴스 시작
블록 스토리지 사용
1. Compute
2. 볼륨
3. 볼륨생성
4. 볼륨이름
5. 크기
6. 볼륨생성
ssh 접속과 볼륨 연결 확인
Cirros 접속 정보
USER ID : cirros
Password : cubswin:)
[공개소프트웨어 오픈스택 입문 & 파헤치기]
오픈스택 사용하기 - 명령어기반(CLI)
신호철 & 최영락, 오픈스택 한국 커뮤니티 3기 운영진
Ocata / Pike
Agenda
• OpenStack CLI 소개
• OpenStack CLI 활용하기
• 이미지 올리기
• 프로젝트 네트워크 생성
• 인스턴스 생성
• 블록 스토리지 사용
OpenStack CLI 소개
• CLI: Command-Line Interfaces
• OpenStack 각 구성 요소에 대한 API를 직접 호출하여 원하는 작업을 명령어로 수행
➢ 참고: OpenStack은 각 구성요소별로 API 제공
✓ Nova (Compute API): https://developer.openstack.org/api-ref/compute
✓ Neutron (Networking API): https://developer.openstack.org/api-ref/networking
✓ Keystone (Identity API): https://developer.openstack.org/api-ref/identity
✓ …
• 통합 CLI 툴 제작
➢ 이전에는 nova / neutron / keystone 등 따로 CLI 명령어를 사용해야 했음
➢ 현재 통합 클라이언트: openstackclient
(명령어: “openstack”)
OpenStack CLI 활용하기
• 참고 문서: 한글 OpenStack 설치 가이드
(URL: https://docs.openstack.org/ko_KR/install-guide )
• 데모는 Ocata 버전을 기준으로 하나, 차후 버전에서도 동일 방식으로 사용 가능
➢ 클라이언트 환경 스크립트
: https://docs.openstack.org/ocata/ko_KR/install-guide-ubuntu/keystone-openrc.html
(참고: DevStack 환경에서는 “source openrc [사용자명] [프로젝트명]”을 사용)
➢ 이미지 올리기
: https://docs.openstack.org/ocata/ko_KR/install-guide-ubuntu/glance-verify.html
➢ 인스턴스 생성 (네트워크, 볼륨 등 포함)
: https://docs.openstack.org/ocata/ko_KR/install-guide-ubuntu/launch-instance.html
이미지 올리기( glance service)
각종 OS 이미지 다운로드 URL : https://docs.openstack.org/image-guide/obtain-
images.html
이미지 업로드시 사용하는 CLI 명령어
openstack image create
옵션
--file cirros-0.3.5-x86_64-disk.img 파일 명을 지정
--disk-format qcow2 디스크 포맷 방식
--container-format bare 컨테이넛 포맷 방식
--public 모든 프로젝트가 공유가 할진거지 정의
디스크 포맷 방식에 종류 URL: https://docs.openstack.org/image-
guide/image-formats.html
4. 이미지 리스트 확인
프로젝트 네트워크 생성
1. 컨트롤러 노드에서 admin credential 을 소스로 하여 사용자 전용 CLI 명령에 대한 엑세스를 갖습니다.
2. 네트워크 생성
3. 네트워크 서브넷 생성
openstack subnet create --
network provider 
--allocation-pool
start=START_IP_ADDRESS,en
d=END_IP_ADDRESS 
--dns-nameserver
DNS_RESOLVER --gateway
PROVIDER_NETWORK_GATE
WAY 
--subnet-range
PROVIDER_NETWORK_CIDR
provider
프로젝트 네트워크 생성(self service)
1. 컨트롤러 노드에서 demo credential 을 소스로 하여 사용자 전용 CLI 명령에 대한 엑세스를 갖습니다.
2. 네트워크 생성
3. 네트워크에 서브넷 을 생성
openstack subnet create --network selfservice 
--dns-nameserver DNS_RESOLVER --gateway
SELFSERVICE_NETWORK_GATEWAY 
--subnet-range SELFSERVICE_NETWORK_CIDR
selfservice
프로젝트 네트워크 생성(self service)
라우터 생성
인스턴스 생성
가장 작은 디폴트 flavor는 인스턴스 당 512 MB 메모리를 소비합니
다.
4 GB보다 적은 메모리를 갖는 compute 노드 환경에서는, 인스턴스
당 64 MB만을 필요로 하는 m1.nano flavor로 생성할 것을 권장
테스트 목적으로 CirrOS 이미지를 해당 flavor로 사용합니다
flavor
인스턴스 생성
1. demo 프로젝트 credential을 소스로 사용
2. 키 패어를 생성하고 퍼블릭 키를 추가하세요:
ssh-keygen -q -N ""
openstack keypair create --public-key ~/.ssh/id_rsa.pub mykey
3. 키 페어 추가 확인
openstack keypair list
키페어
인스턴스 생성
시큐리티 그룹 규칙 icmp ssh 룰 허용
인스턴스 생성
1.프로바이더 인스턴스 2. 셀프 서비스 네트워크 인스턴스
블록 스토리지
1. 볼륨을 인턴스에 연결
2. 볼륨 목록
3. SSH 상용하여 인스턴스에 엑세스 하고 /dev/vdb 블록 스토리지 장치에 대한 볼륨 검증 fdisk 명령어 사용
openstack server add volume INSTANCE_NAME VOLUME_NAME
openstack volume list
+--------------------------------------------+--------------+--------+------+-----------------------------------------------+
| ID | Display Name | Status | Size | Attached to |
+--------------------------------------------+--------------+--------+------+-----------------------------------------------+
| a1e8be72-a395-4a6f-8e07-856a57c39524 | volume1 | in-use | 1 | Attached to provider-instance on /dev/vdb |
+--------------------------------------------+--------------+--------+------+-----------------------------------------------+
블록 스토리지
[공개소프트웨어 오픈스택 입문 & 파헤치기]
오픈스택 공개 소프트웨어
- 오픈스택 Swift 소개 & 설치 -
오픈스택 한국 커뮤니티 3기 운영진
Ocata / Pike
Agenda
• Object Storage 란?
• Openstack Swift 의 구조
• Devstack 으로 Openstack Swift 설치하기
What is Object Storage?
• Object : 그림, 영상, 문서와 같이 형태가 각기 다른 비정형 데이터
• Object Storage : 비정형 데이터를 저장/관리하기 위한 스토리지
< 특징 >
• 계층 구조를 가지지 않고, 평평한 구조를 갖는다
• Object 의 일부분만 수정할 수 없다
• HTTP 기반의 REST API를 이용하여 Object 를 다룬다
• Openstack 에서 제공하는 Object
Storage
• 독립적으로 구축이 가능하다
• 스토리지의 확장이 용이하다
• 기본 3개의 데이터 복제본을 가진다
• Eventually Consistency Storage 이다
Openstack Swift
Openstack Swift 의 개념 구성 요
소
• Account
swift 의 최상위 개념으로 swift 를 이용하기 위한 계정
Account 는 container를 정의하기 위한 namespace
• Container
Object 를 저장하는 공간.
Container 이름은 하나의 Account 내에서는 중복될 수
없다
• Object
문서, 이미지, 영상 과 같은 비정형 데이터
swift 에서는 단일 object 에 대해 최대 5GB까지 지원한
다.
(그 이상의 파일은 일정 단위로 쪼개어 업로드해야한다)
Account
Container Container
Container Container
Object
Openstack Swift의 구성 요소 (서
버)
• Proxy-Server
클라이언트의 요청을 받아, 인증/로깅/과금 등을 처리하고 요청을 적절한 서버로 전달해주는 서버
요청을 해석하여, account/container/object 로 요청을 전달한다
• Account-Server
account 정보를 저장하는 서버
• Container-Server
Container 정보를 저장하는 서버
• Object-Server
Object 를 실제 디스크에 저장하는 서버
Ring 이란 ?
• Openstack Swift 는 데이터를 분산하여 저장하는 분산 스토리지
• Account / Container / Object 가 어디에(어느 서버의 어느 디스크에) 저장되어야 할지 혹은 저장되어
있는지 기록하는 파일
• Proxy, Account, Container, Object 모든 서버가 동일한 내용의 Ring 을 가지고 있어야한다
Ring 의 구조
• device 목록 테이블
0 1 2 3
dict of device: 0
region: 1
ip: 10.1.1.4
port: 3345
device: /dev/sdb1
dict of device: 1
region: 2
ip: 10.1.1.5
port: 3345
device: /dev/sdb1
dict of device: 2
region: 1
ip: 10.1.1.6
port: 3345
device: /dev/sdb1
dict of device: 3
region: 2
ip: 10.1.1.4
port: 3345
device: /dev/sdb2
Ring 의 구조
• devices lookup table
0 1 2 3
0 1 3 3 19
1 14 1 1 34
2 18 39 10 64
Partition
Replicas
Index of
Device List
Ring 의 구조 - 위치 결정하기
• Openstack Swift는 각 요소의 이름의 md5 값을 구합니다.
• 예) account - md5(/AUTH_user1)
• 예) container - md5(/AUTH_user1/container1)
• md5 값을 Ring 을 생성할 때 지정한 partition 값으로 mod 연산을 합니다.
• 예) “2205229274494a49243f23f7e653088c” % 2048 = 140
• 140 이라는 값은 device lookup table 에서의 partition 열의 번호입니다.
• 해당 열의 replica 로 지정된 device 번호를 이용하여 데이터 위치를 결정합니다.
Proxy-Server
Openstack Swift 의 처리 흐름
Proxy-Server
Account-Server Container-Server Object-ServerAccount-ServerAccount-Server Container-ServerContainer-Server Object-ServerObject-Server
HTTP 기반 REST API 통신
Openstack Swift 설치하기
● Devstack 으로 설치하기
○ 스크립트 기반의 자동 설치
○ 쉽고 빠르게 구축 가능
○ Keystone 을 기본 인증체계로 사용
● SAIO (Swift All In One) 으로 설치하기
○ Openstack Swift 의 모든 요소를 수동으로 설치/설정
○ 구성 내용에 대해 상세하게 알 수 있음
○ tempauth 를 기본 인증체계로 사용
○ https://docs.openstack.org/swift/latest/development_saio.html
VirtualBox VM 설정
● CPU : 최소 2코어
● 메모리 : 4GB
● Disk : 30GB
● OS : Ubuntu 16.04 LTS Server
● Network
○ enp0s3 : NAT
○ enp0s8 : Host-only network
Devstack - local.conf
[[local|localrc]]
HOST_IP=192.168.56.101
ADMIN_PASSWORD=secret
DATABASE_PASSWORD=secret
SERVICE_PASSWORD=secret
SERVICE_TOKEN=91bb6245-11f7-411f-8f57-9ffec9019c8a
disable_all_services
enable_service key mysql s-proxy s-object s-container s-account
SWIFT_HASH=changeme
SWIFT_REPLICAS=3
# 환경변수를 설정합니다.
source /opt/stack/devstack/openrc admin admin
# container 생성
swift post <container_name>
# container 목록 보기
swift list
# 오브젝트 업로드
swift upload <contianer> <object>
Openstack Swift 사용해보기
[공개소프트웨어 오픈스택 입문 & 파헤치기]
오픈스택 공개 소프트웨어
- 오픈스택 Swift 개발 환경 구성 & 테스트
오픈스택 한국 커뮤니티 3기 운영진
Ocata / Pike
Agenda
• Openstack Swift 소스코드 구조
• PyCharm 을 이용한 개발환경 구성
• Openstack Swift 코드 디버깅 및 테스트
Openstack Swift의 구성 요소
• Proxy-Server
클라이언트의 요청을 받는 서버
• Account-Server
account 정보를 저장하는 서버
• Container-Server
Container 정보를 저장하는 서버
• Object-Server
Object 를 실제 디스크에 저장하는 서버
• Replicator
누락된 데이터를 복제하는 데몬
• Updator
Container/Object 리스트를 갱신하는 데몬
• Auditor
Account/Container/Object 를 Audit 하는 데몬
Openstack Swift 소스코드 다운로드
• Github : https://github.com/openstack/swift
• Main Repository : http://git.openstack.org/cgit/openstack/swift/
• $ git clone https://github.com/openstack/swift
• $ git checkout stable/ocata
Openstack Swift 소스코드 살펴보기
• Openstack Swift 는 Python 으로 개발됨
Openstack Swift 개발환경 구축
• 사용할 IDE : PyCharm Professional Edition
- 이유: line by line debugging, Remote Debugging 이 가능.
• Community Edition 을 사용할 경우
- ubuntu desktop 버전으로 devstack 설치
- VM안에 PyCharm Community Edition 을 설치하여 개발환경 구축
- 자세한 방법
- https://github.com/openstack-kr/openstack-study/blob/master/2017-first-swift/20170425/README.md
Pycharm Professional Edition 만의 기능
Remote Debugging with Remote Interpreter
현재 Swift 서버가 실행되는 구조
devstack vm
/usr/bin/python2.7
devstack vm안에서 직접 실행되어있다.
Remote debugging with Remote interpreter
devstack vm
/usr/bin/python2.7
Pycharm이 vm의 Python Interpreter 를 직접 실행하도록 설정
개발환경 구성하기 1 - 소스코드 다운로드 및 동기화
1. 로컬에 swift ocata 버전의 소스코드를 다운로드 받는다.
2. devstack 으로 설치한 swift 소스코드와 동기화 구성을 한다
개발환경 구성하기 2 - Remote Interpreter 설정
1. PyCharm 의 Remote Interpreter 를 설정한다
2. proxy-server 실행환경 설정
[공개소프트웨어 오픈스택 입문 & 파헤치기]
오픈스택 공개 소프트웨어
- 개발 에코시스템 소개 -
최영락, 오픈스택 한국 커뮤니티 3기 대표
Ocata / Pike
Agenda
• OpenStack에서 바라보는 개방성: Four Opens
• Python으로 구현된 OpenStack
• OpenStack 프로젝트 저장소 및 개발 관리
• PyPI: Python Package Index와 OpenStack
• requirements와 tox
• 실습: 저장소 clone, tox 실행 및 requirements 확인
• 더 알아야 할 에코시스템: 버그 & 패치 & 릴리즈 관리
OpenStack에서 바라보는 개방성: Four Opens
• Open Source
(개방형 오픈 소스)
• Open Design
(개방형 디자인)
• Open Development
(개방형 개발)
• Open Community
(개방형 커뮤니티)
Four Opens – 1. 개방형 오픈 소스
재사용 및 확장 가능한 진정한
의미에서의 오픈 소스
No “Enterprise Edition”
Four Opens – 2. 개방형 디자인
요구 사항 수집 및 로드맵 승인 등
모든 절차를 대중에게 공개
모든 설계 과정을 open
Four Opens – 3. 개방형 / 열려있는 개발
모든 소스 코드 공개를 개방된
코드 리뷰 과정을 거치며, 모든
과정은 투명하게 문서화됨
Four Opens – 4. 개방형 / 오픈 커뮤니티
커뮤니티를 통해 설계 과정을 결정
모든 프로젝트 미팅은 공개 IRC
채널을 통해 열리며 기록
Four Opens를 기반으로 하는 생태계
Python으로 구현된 OpenStack
• OpenStack 핵심 구성 요소, 대시보드, API,
SDK (Software Development Kit) 등이 모두
Python으로 구현되어 있음
- 참고: “Python 초심자의 OpenStack”
https://www.slideshare.net/openstack_kr/openstack-48778397
• 코딩 규칙, 패키지 관리, 문서화 등 또한 일반적인
Python 관리 방식을 따르고 있음
- 참고: “Rst와 함께 하는 Python 문서 작성...”
https://www.slideshare.net/ianychoi/pycon-kr-2017-rst-python-openstack
• PEP 8이라는 Python 스타일 가이드를 따르며, 추
가적으로 Hacking 이라는 스타일 확인 프로그램
제작
https://docs.openstack.org/hacking/
OpenStack 프로젝트 저장소 및 개발 관리
• 프로젝트 저장소: Git을 사용함
- git.openstack.org 를 메인으로 사용
- github.com/openstack 에 미러링
OpenStack 프로젝트 저장소 및 개발 관리
• 예: nova 저장소 (URL: http://git.openstack.org/cgit/openstack/nova)
- master 브랜치: 가장 최신 소스가 반영
- 안정 (stable) 브랜치: 최종 릴리즈 (예: Ocata, Pike)가 이루어졌을 때 만들어 관리
- 태그: 특정 커밋을 기준으로 하여 버전 번호를 붙임
PyPI – the Python Package Index
• Python 패키지들에 대한 버전, 의존성을 관리
• 홈페이지: https://pypi.python.org/pypi
PyPI – the Python Package Index와 OpenStack
• 모든 OpenStack 프로그램들은 PyPI 패키지로 업로드되어 있음 (총 >500개)
• 각 OpenStack 패키지는 보통 다른 PyPI 패키지를 의존성으로 포함
requirements
• 프로젝트 개발에 있어 의존성있는 라이브러리 버전을 규정함
- openstack/requirements 저장소에서 공통 requirements 관리
- test-requirements.txt 파일에 해당 저장소에 의존성있는 라이브러리 정의
tox
• OpenStack 프로젝트
저장소에서 tox 명령어
실행 가능
- 환경 설정: tox.ini에
정의
- 해당 저장소에서 실행
가능한 주요 테스트,
문서 생성 등 가능
실습: 저장소 clone, tox 실행 및 requirements 확인
더 알아야 할 에코시스템: 버그, 패치, 릴리즈 관리
• 버그 관리: Launchpad & Storyboard
• 패치: Gerrit & Zuul
• 릴리즈 관리
• master 버전, 안정 (stable) 버전, 릴리즈를 관리하기 위한 개발 프로세스
[공개소프트웨어 오픈스택 입문 & 파헤치기]
오픈스택 컨트리뷰터 도전 : 번역
장태희, 오픈스택 한국 커뮤니티 3기 스터디 매니저
Ocata / Pike
Agenda
• 오픈스택 컨트리뷰션 개요
• 오픈스택 컨트리뷰션을 위한 계정 설정
• 오픈스택 프로젝트 번역하기
어떻게 오픈스택 프로젝트에 기여할 수 있는가?
✓클라우드를 구축하는 분이시라면
✓멘토링과 멘티
✓개발자이신 경우
✓테스터이신 경우
✓시큐리티 분야에서 활동하시는 경우
✓문서 분야에서 활동하시는 경우
✓UX에 관심이 있으신 디자이너
✓번역에 관심이 있으신 경우
✓커뮤니티 빌더 이신 경우
Source : https://wiki.openstack.org/wiki/How_To_Contribute
어떻게 오픈스택 프로젝트에 기여할 수 있는가?
✓클라우드를 구축하는 분이시라면
✓멘토링과 멘티
✓개발자이신 경우
✓테스터이신 경우
✓시큐리티 분야에서 활동하시는 경우
✓문서 분야에서 활동하시는 경우
✓UX에 관심이 있으신 디자이너
✓번역에 관심이 있으신 경우
✓커뮤니티 빌더 이신 경우
Source : https://wiki.openstack.org/wiki/How_To_Contribute
OpenStack Upstream Training
OpenStack Upstream Training
✓OpenStack 개발자를 위해 OpenStack 프로젝트 technical tool 및
social interaction이 어떻게 이루어지는지 학습
✓실제 OpenStack 프로젝트 내에서 bug를 선택하여 OpenStack
upstream 소스 저장소에 반영하는 것을 목표로 함
✓보통 OpenStack Summit 행사 이전에 열리며, 한국에서도 별도로 실시
Source : https://docs.openstack.org/ko_KR/upstream-training/
오픈스택에 기여하기 – 클라우드 운영자
✓클라우드를 구축하는 분이신 경우
• 오픈스택 문서를 읽고 수정하고 싶으시다면 → git repository 이용
• 문서 내용의 문제점을 발견하셨다면 → bug report
• OpenStack-operators mailing list에 가입하여 질문 답변 해주기
• User survey를 통해 커뮤니티와 소프트웨어 발전 방향 참여
오픈스택에 기여하기 – 개발자
✓오픈스택 개발에 기여하고자 하시는 분
• Project Team Guide와 Infra Manual을 먼저 읽어주세요
• Gerrit review system 파악 필요
• Launchpad에 접속하여 Blueprint와 Bugs 관리 환경 살펴보기
• Contributor License Agreement 동의 필요
• Code review하기
• OpenStack developers mailing list 구독하기
• #openstack-dev IRC 채널 접속
오픈스택에 기여하기 – 문서 기여자
✓오픈스택 문서에 기여하고자 하시는 분
• Openstack-manuals 혹은 각 개별 프로젝트에 참여 가능
• launchpad bug를 통해 문서의 bug report 하기
• 각 프로젝트의 문서를 정독하면서 시작
오픈스택에 기여하기 – 번역자
✓오픈스택 문서를 번역하고자 하시는 분
• Internationalization team에 가입
• 약 22개국의 localization team에 참가(한국 포함)
• 한국어 번역을 위한 문서 :
https://wiki.openstack.org/wiki/I18nTeam/team/ko_KR
• Zanata 라는 번역 플랫폼을 이용하여 손쉽게 문장 및 단어를 번역
• 번역자와 리뷰어 두 부분이 존재
• 현재 사용하고 있는 오픈스택 모든 버전의 한글화가 contributor들의
번역으로 탄생
오픈스택에 기여하기 위한 계정 가입 및 설정
✓오픈스택 테스트를 위한 Linux VM 1개 준비
✓www.openstack.org → Foundation Member로 가입
✓www.launchpad.net → Ubuntu One 계정 가입
✓review.openstack.org → launchpad 계정으로 로그인 한 후 username 생성, ICLA 동의
✓SSH 공개키 생성 및 등록
✓Zanata ID 가입
✓Github ID : 없어도 되지만, contribution이 Github에 보이도록 하고 싶다면 Gerrit
✓ username 및 이메일을 동일하게 사용할 것
오픈스택에 기여하기 위한 계정 가입 및 설정
오픈스택에 기여하기 위한 계정 가입 및 설정
오픈스택 번역하기 - Zanata
오픈스택 번역하기 - Zanata
오픈스택 번역하기 - Zanata
오픈스택 번역하기 - Zanata
Leave a team 대신 Request to join team 이라고 표시
오픈스택 번역하기 - Zanata
오픈스택 번역하기 - Zanata
오픈스택 번역하기 - Zanata
오픈스택 번역하기 - Zanata
오픈스택 번역하기 - Zanata
오픈스택 번역하기 - Zanata
오픈스택 번역하기 - Zanata
✓번역 단어집 : https://wiki.openstack.org/wiki/단어집
✓번역을 수정 할 수 있는 사람 : reviewer / coordinator
✓Zanata에는 남은 비율에 비례하여 시간 표기
✓메뉴에서 Incomplete 체크 -> Fuzzy와 Rejected 체크 해제
✓화살표에서 파란색 bar는 일반 참여자가 수정할 수 없음
✓‘WORDS’ 뒤에 반드시 한글로 번역 할 때에는 띄어쓰기가 있어야 함.
• Eg) deployments (bug 1508571 <https://bugs.launchpad.net/horizon/+bug/1508571>__)
✓%s의 경우 반드시 번역시에도 넣어줘야 함.
[공개소프트웨어 오픈스택 입문 & 파헤치기]
오픈스택 컨트리뷰터 도전 : 개발
장태희, 오픈스택 한국 커뮤니티 3기 스터디 매니저
Ocata / Pike
Agenda
• 오픈스택 개발 컨트리뷰션 개요
• 오픈스택 개발 컨트리뷰션을 위한 계정 설정
• 오픈스택 개발 컨트리뷰션을 위한 개발 환경 준비
• 컨트리뷰션 사례 공유
어떻게 오픈스택 프로젝트에 기여할 수 있는가?
✓클라우드를 구축하는 분이시라면
✓멘토링과 멘티
✓개발자이신 경우
✓테스터이신 경우
✓시큐리티 분야에서 활동하시는 경우
✓문서 분야에서 활동하시는 경우
✓UX에 관심이 있으신 디자이너
✓번역에 관심이 있으신 경우
✓커뮤니티 빌더 이신 경우
Source : https://wiki.openstack.org/wiki/How_To_Contribute
어떻게 오픈스택 프로젝트에 기여할 수 있는가?
✓클라우드를 구축하는 분이시라면
✓멘토링과 멘티
✓개발자이신 경우
✓테스터이신 경우
✓시큐리티 분야에서 활동하시는 경우
✓문서 분야에서 활동하시는 경우
✓UX에 관심이 있으신 디자이너
✓번역에 관심이 있으신 경우
✓커뮤니티 빌더 이신 경우
Source : https://wiki.openstack.org/wiki/How_To_Contribute
오픈스택에 기여하기 – 개발자
✓오픈스택 개발에 기여하고자 하시는 분
• Project Team Guide와 Infra Manual을 먼저 읽어주세요
• Gerrit review system 파악 필요
• Launchpad에 접속하여 Blueprint와 Bugs 관리 환경 살펴보기
• Contributor License Agreement 동의 필요
• Code review하기
• OpenStack developers mailing list 구독하기
• #openstack-dev IRC 채널 접속
오픈스택에 기여하기 위한 계정 가입 및 설정
✓오픈스택 테스트를 위한 Linux VM 1개 준비
✓www.openstack.org → Foundation Member로 가입
✓www.launchpad.net → Ubuntu One 계정 가입
✓review.openstack.org → launchpad 계정으로 로그인 한 후 username 생성, ICLA 동의
✓SSH 공개키 생성 및 등록
✓Zanata ID 가입
✓Github ID : 없어도 되지만, contribution이 Github에 보이도록 하고 싶다면 Gerrit
✓ username 및 이메일을 동일하게 사용할 것
오픈스택에 기여하기 위한 계정 가입 및 설정
오픈스택에 기여하기 위한 계정 가입 및 설정
오픈스택에 기여하기 위한 계정 가입 및 설정
오픈스택에 기여하기 위한 계정 가입 및 설정
오픈스택에 기여하기 위한 계정 가입 및 설정
오픈스택에 기여하기 위한 계정 가입 및 설정
오픈스택에 기여하기 위한 계정 가입 및 설정
오픈스택에 기여하기 위한 계정 가입 및 설정
오픈스택에 기여하기 위한 계정 가입 및 설정
오픈스택에 기여하기 위한 git 명령어들
✓git log
✓git status
✓git remote –v : remote URL을 추가하여 clone 받는 곳과 push 하는 repository를 다르게 설정
✓git commit 규칙 : https://medium.com/@preslavrachev/what-s-with-the-50-72-rule-8a906f61f09c
git review와 gerrit 이용하기
✓git-review 설치(sudo apt install git-review)
✓git config --global user.name "Firstname Lastname"
✓git config --global user.email your_email@youremail.com
✓git clone ssh://<username>@review.openstack.org:29418/openstack-dev/sandbox
✓git review –s
✓Creating a git remote called "gerrit" that maps to:
ssh://<username>@review.openstack.org:29418/openstack-dev/sandbox.git
✓ 와 같이 콘솔창에 출력되면 성공적으로 git review가 세팅
git review와 gerrit 이용하기
✓Dummy file 추가하기
$ cat > ko24.txt
$ git add ko24.txt
$ git commit -m "Test commit"
$ git review
✓git review 후 gerrit URL 생성 확인
git review와 gerrit 이용하기
Demo
git review 주의사항
✓Permission Key Denied가 뜬 경우
• username을 입력하지 않았다.(git config --global gitreview.username <username>)
• Openstack Foundation Member가 아니다. (Community Member는 안됨.)
• Gerrit에서 ICLA Agree를 하지 않았다.
• Gerrit에서 Contact Information을 넣지 않았다.(review.openstack.org -> Contact
information last updated on 이 있어야 함.)
• ssh key(id_rsa 말고) 를 다른 key file을 사용하였다.
• git config에 gerrit.review가 중복된 경우.
git review 주의사항
✓branch를 따서 작업하던 도중 다른 사람의 commit이 올라오면 rebase를 통해서 master를 갱신해준
다음 push를 해주어야 함
✓commit 여러 개를 하고 싶으면 amend로 무조건 하거나 cherry pick으로 댕겨서 작업 후 올리기. 1
work에 1 commit 원칙
✓review에서 문제가 발생하여 patch set 2, 3을 해야하는 경우, 해당 커밋을 지우지 말고 그 상태에서
수정하여 push
기타
✓기술위원회 : http://governance.openstack.org/
✓IRC 미팅 일정: http://eavesdrop.openstack.org/
✓의사소통 문서: http://docs.openstack.org/ko_KR/upstream-training/howitsmade-
communication.html#1
✓버그 수정 및 기타 자세한 사항
• https://github.com/openstack-kr/openstack-study/tree/master/2016-fall-upstream
[공개소프트웨어 오픈스택 입문 & 파헤치기]
오픈스택과 REST API
최영락, 오픈스택 한국 커뮤니티 3기 대표
Ocata / Pike
Agenda
• 클라우드와 API
• 클라우드 API와 CLI
• OpenStack: App Hackathon 관련 내용 소개
• 클라우드 인프라를 API로 다루어 보자
• API를 제공하는 주체, 서버 파트
• API를 사용하는 주체: Curl, Postman, 모바일 앱 (with Fuse)
잠깐: API에 관해서
• API (Application Programming Interface)
• 프로그램과 프로그램이 서로 명령을 주고 받기 위해 미리 약속해둔 일종의 규칙
API로 클라우드 인프라를 관리하려면
• API 파악시 장점
• 어떤 구성 요소가 있는지 파악 가능
• 추상화되어 있는 기능에 대한 자세한 이해
• 시스템 구축 표준화 방안 마련
• OpenStack: CLI와 API의 차이점
• CLI에서 수행하는 모든 명령어를 API 호출로 사용 가능
• API를 활용하면 다양한 아이디어를 붙여 클라우드
소프트웨어를 만들 수 있음
• 다른 클라우드와 상호 연동 가능
• OpenStack 일부 구성 요소만을 사용하여 클라우드 서비스를
구축 가능
OpenStack App Hackathon
• 2016년 Taiwan을 시작으로 Mexico, 호주 등 다양한 국가에서 개최
• 40여 시간동안 클라우드 API를 활용한 OpenStack App을 개발
OpenStack App Hackathon 관련 문서
• OpenStack App 개발을 위한 다양한 문서
https://www.openstack.org/appdev/
OpenStack App Hackathon 관련 문서
• FirstApp 문서: OpenStack App 첫 개발을 위한 내용을 문서로 정리
https://developer.openstack.org/firstapp-libcloud/getting_started.html
클라우드 인프라를 API로 다루기 위해 필요한 것들
• 1. API를 제공하는 주체 (서버 파트)
• 2. API를 사용하는 주체 (모바일 앱 with Fuse, CLI, …)
http://linkeddataorchestration.com/2014/01/28/data-modeling-for-apis-part-2-rest-and-json/
클라우드 인프라를 API로 다루기 위해 필요한 것들
• 1. API를 제공하는 주체 (서버 파트)
• “API 액세스” 메뉴에서 API 목록 확인
클라우드 인프라를 API로 다루기 위해 필요한 것들
• 2. API를 사용하는 주체
• 먼저, curl로 간단히 테스트하기 전에.. 문서를 봅시다
https://developer.openstack.org/firstapp-libcloud/getting_started.html
클라우드 인프라를 API로 다루기 위해 필요한 것들
• 2. API를 사용하는 주체
• 그런데.. 음, 다르군요
• http://controller:5000/v2.0
• http://10.0.1.4:identity
https://developer.openstack.org/firstapp-libcloud/getting_started.html
클라우드 인프라를 API로 다루기 위해 필요한 것들
• 2. API를 사용하는 주체
• (일단 인증 기본이 되는 토큰을 가져와야 API 사용이 가능)
https://docs.openstack.org/keystone/latest/api_curl_examples.html#tokens
클라우드 인프라를 API로 다루기 위해 필요한 것들
• 2. API를 사용하는 주체
• OpenStack Keystone: API v2와 v3가 있음
https://developer.openstack.org/api-ref/identity/
클라우드 인프라를 API로 다루기 위해 필요한 것들
• 2. API를 사용하는 주체
• API URL을 알아냄 ➔ http://[server URL]/identity/v3/auth/tokens
https://goo.gl/b47XQf
클라우드 인프라를 API로 다루기 위해 필요한 것들
• 2. API를 사용하는 주체
• Postman: GUI 환경으로 API 테스트가 용이함
클라우드 인프라를 API로 다루기 위해 필요한 것들
• 2. API를 사용하는 주체
• 모바일 앱에서 테스트를 해 보려면? 일단 프로토타이핑이 필요한데..
https://github.com/stackerz/app
클라우드 인프라를 API로 다루기 위해 필요한 것들
• 2. API를 사용하는 주체
• Fuse로 만드는 방법: 마크업으로 프로토타이핑
<App>
<ClientPanel>
<Panel Dock="Top" Height="50" Background="#333" Padding="10">
<Text FontSize="20" Value="KCD 2018: OpenStack 앱 프로토타이핑"
Alignment="Center" Color="White" />
</Panel>
<StackPanel>
<Image File="Assets/OpenStack_UserGroup_Korea_round.png" Width="250"
Margin="50" />
<Rectangle Color="Gray" Margin="20" Height="40" CornerRadius="5">
<Text FontSize="16" Value="로그인" Color="White"
Alignment="Center"/>
</Rectangle>
</StackPanel>
</ClientPanel>
</App>
클라우드 인프라를 API로 다루기 위해 필요한 것들
• 2. API를 사용하는 주체
• Fuse로 만드는 방법: 자바스크립트로 REST API 통신
[공개소프트웨어 오픈스택 입문 & 파헤치기]
오픈스택과 공개 소프트웨어
비즈니스 에코시스템
최영락, 오픈스택 한국 커뮤니티 3기 대표
Ocata / Pike
Agenda
• 라이선스, 문서화 & 번역
• OpenStack 공식 프로젝트
• 릴리즈 주기 및 관리
• Gerrit & OpenStack CI
• OpenStack 거버넌스
• 오픈스택 Nova: Vendor와 함께 하는 생태계 살펴보기
(사례: Hyper-V 드라이버)
• 오픈스택 생태계
라이선스, 문서화 및 번역
• 비즈니스 에코시스템에서 꼭 필요한 기본적인 부분
• 라이선스: Apache License v2를 따름
• 문서화: docs.openstack.org 에서 문서 제공
• 번역: translate.openstack.org 를 통해 번역 참여 가능
OpenStack 공식 프로젝트
• 잘 알려진 주요 프로젝트
OpenStack 공식 프로젝트
• 모든 openstack 내 git 저장소에 있는 내용이 공식 프로젝트 대상이 아님
• 누구나 가이드에 따라 github.com/openstack 에 저장소 생성 가능
- https://docs.openstack.org/infra/manual/creators.html 참고
• OpenStack 공식 프로젝트: OpenStack 목표에 따라 릴리즈에 맞추어 다른 팀과 상호 협
력하여 지속적인 개발이 이루어지는 프로젝트 (“project:official” 이라는 태그를 붙임)
- 예: openstack/i18n은 공식 프로젝트이나, openstack/stackalytics는 아님
OpenStack 공식 프로젝트 https://www.openstack.org/openstack-map
릴리즈 주기
릴리즈 이름 릴리즈 일자 포함 구성요소
Austin 21 October 2010 Nova, Swift
Bexar 3 February 2011 Nova, Glance, Swift
Cactus 15 April 2011 Nova, Glance, Swift
Diablo 22 September 2011 Nova, Glance, Swift
Essex 5 April 2012 Nova, Glance, Swift, Horizon, Keystone
Folsom 27 September 2012 Nova, Glance, Swift, Horizon, Keystone, Quantum,
Cinder
Grizzly 4 April 2013
Havana 17 October 2013 + Heat, Ceilometer
Icehouse 17 April 2014 + Trove
Juno 16 October 2014 + Sahara
Kilo 30 April 2015 + Ironic
Liberty 15 October 2015
(총 63개 공식 프로젝트 및
관련 구성요소)
Mitaka 7 April 2016
Newton 6 October 2016
Ocata 22 February 2017
Pike 30 August 2017
Queens (2018년 2월 예정)
Rocky (2018년 8월 예정)
• 6개월 주기로 릴리즈 발표
- 처음에는 하위 업그레이드를
미지원하다가 약 2년 전 즈음부터
하위 업그레이드를 지원하기 시작
- 새로운 특징 및 핵심 기능들은
보통 1년을 주기로 많은 변화가
생김
• 현재 릴리즈 버전: Pike
(2018년 1월 기준)
Source: http://en.wikipedia.org/wiki/OpenStack
http://releases.openstack.org/
릴리즈 관리: 릴리즈를 이루는 것들
• OpenStack 릴리즈: 여러 프로젝트에 대해 조정이 이루어지는 과정 포함
• 릴리즈 절차: 릴리즈 관리 팀에 의해 관리가 이루어짐
• 일정 공통 주기 (약 6개월) 내에서 공식 프로젝트는 다음 모델을 따름
• 릴리즈 모델
- cycle-with-milestones: 메인 개발 마일스톤을 따르는 공통 주기
- cycle-with-intermediary: 중간 단계 릴리즈를 가진 공통 주기
- cycle-trailing: 공통 주기 끝 부분에서 릴리즈가 이루어짐
- independent: 공통 주기와 무관하게 별도 릴리즈 주기를 따름
릴리즈 관리: 저장소 & 태그
• 릴리즈에 대한 문서 & 정보 집합: https://releases.openstack.org/
- 릴리즈 대상에 해당하는 프로젝트 저장소 및 버전, 해당 커밋 해시를 모두 정리
- 릴리즈 진행 스케줄, 릴리즈 노트 확인 가능
릴리즈 모델 확인
Gerrit 및 OpenStack CI
• 개발자 커밋은 Gerrit ( https://review.openstack.org )을 통해 패치가 관리되어
최종 머지가 이루어졌을 때 반영이 됨
• 개발자가 올린 패치를 테스트하기 위해 OpenStack CI에서 tox 등에 의해 정의된
작업을 확인함
OpenStack 거버넌스
• OpenStack Foundation: OpenStack을 "개발, 지원, 보호, 홍보" 하기 위해 만들
어진 비영리 재단
- 개인 멤버: www.openstack.org 에 “Foundation Member”로 가입한 모두
- 기관 멤버: 플래티넘과 골드 스폰서
- 뿐만 아니라 여러 지원을 하는 회사 및 기관이 많습니다.
• 여러 계층으로 구성된 리더쉽
- 이사회 (Board of Directors)
- 기술 위원회 (Technical Committee)
: ATC (Active Project Contributor)와 ATC (Active Technical Contributor)
- 사용자 위원회 (User Committee)
: AUC (Active User Contributor)
OpenStack: Nova
•Nova
• 가상 머신 자원을 관리하는 OpenStack의 구성 요소 중 하나입니다.
Asynchronous eventually
consistent communication
REST-based API
Hypervisor agnostic:
support for Xen ,XenServer, Hyper-V,
KVM, UML and ESX is coming
Horizontally and
massively scalable
Hardware agnostic:
standard hardware, RAID not required
OpenStack Nova의 발전
• 최초 릴리즈인 Austin에는 Nova와 Swift (오브젝트 스토리지 관리)만 존재
• 오픈 소스 하이퍼바이저 위주로 지원 시작
• Xen+Libvirt
• KVM
• XenAPI (for XenServer)
• QEMU
• 참고: 네트워크 관리에 대해서는, 가상 인스턴스 관리와 동시에 관리되어야 한다고
생각하여 Nova-network 라는 하위 구성 요소를 두어 발전 ➔ 후에 Quantum /
Neutron으로 발전
OpenStack & (Vendor) 드라이버
• 다양한 상용 / 오픈 소스 하이퍼바이저, 스토리지, 네트워크 장비 등과 호환성이 높음
Src.: https://www.openstack.org/marketplace/drivers/
다양한 상용 하이퍼바이저 지원 시작
• 시작은 사실 XenServer부터..
• (Xen 기반 상용 하이퍼바이저이기에 상대적으로 쉬웠을 듯)
Nova 지원 하이퍼바이저
• http://docs.openstack.org/developer/nova/support-matrix.html
• (Note: 몇몇 정보는 업데이트되지 않았을 수 있습니다)
사실 Hyper-V도 초창기부터…
• Nova 소스 저장소: http://git.openstack.org/cgit/openstack/nova
그런데 어느 날 갑자기…
• ?!
(끝인 줄 알았으나) 2011년 10월, Boston에서…
• OpenStack with Hyper-V clouds!
http://www.slideshare.net/ppouliot/2011-essex-summit-openstackhyperv-clouds
(일부 인용)
http://www.slideshare.net/ppouliot/2011-essex-summit-openstackhyperv-clouds
(관련 commit 업로드 시작)
➡?!
2012년 10월, Folsom Summit에서 발표
https://www.youtube.com/watch?v=M1NqqTLST3s
OpenStack: not only Nova but also…
• 실제 고려시에는 네트워크, 스토리지 등 다방면 고려 필요
OpenStack 생태계: 업스트림과 다운스트림의 상호 교류
[공개소프트웨어 오픈스택 입문 & 파헤치기]
오픈스택 – Sandbox를 통한 오픈스택
컨트리뷰션 워크플로우 살펴보기
최영락, 오픈스택 한국 커뮤니티 3기 대표
Ocata / Pike
Agenda
• OpenStack에서의 컨트리뷰션 워크플로우
• OpenStack: Sandbox 컨트리뷰션 환경 (Launchpad, 저장소)
• Sandbox 컨트리뷰션 과정 살펴보기
• (데모)
일반적인 컨트리뷰션 워크플로우
• 작업을 고릅니다 (버그, 단순한 수정, 문서화, 구현)
• 로컬 저장소 내 새로운 브랜치를 만듭니다
• 코드 변경사항을 만듭니다
• 업데이트하고 테스트를 추가합니다 (단위, 기능 등)
• 테스트를 실행합니다 (단위, 기능 등)
참고: Github를 기반으로 하는 일반적인 워크플로우
OpenStack에서의 컨트리뷰션 워크플로우
http://docs.openstack.org/infra/manual/developers.html
OpenStack에서의 컨트리뷰션 워크플로우
Copyright by koain (김영우), OpenStack Korea Community – 업스트림 컨트리뷰션 스터디
커밋 & 패치 업스트림
• Jenkins 및 벤더 CI에서 패치를 리뷰할 것입니다
• 커뮤니티 구성원이 패치를 리뷰할 것입니다
• 코멘트에 응답합니다
• 변경사항을 만들고 새로운 패치셋을 푸시합니다
• 머지 conflict를 해결합니다
Sandbox Launchpad
• openstack-dev/sandbox 저장소와 관련이 있는 보고된 버그 및 이슈를 추석 및
관리
➢ https://launchpad.net/openstack-dev-sandbox
Sandbox 저장소 공간
• OpenStack Sandbox 저장소
• https://review.openstack.org
/#/admin/projects/openstack
-dev/sandbox
• Git 커밋, 패치, 리뷰 등 연습
공간 + 인프라 연동 테스트 +
컨트리뷰션을 위한 가이드 /
지원 등을 수행
OpenStack: Sandbox 저장소
• OpenStack 학습을 시작하기 위한 훌륭한 저장소입니다
• https://git.openstack.org/cgit/openstack-dev/sandbox
Gerrit을 활용한 워크플로우 확인
• Gerrit
➢ GitHub에서의 pull
request와 비슷
➢ 여러 사람에 의한
code review 가능
Gerrit 리뷰 과정 in OpenStack
• 점수 부여
➢ -2: 받아들일 수 없는 수정
➢ -1: 수정 필요한 사항
➢ 0 : 중립 또는 자세한 comment
작성시
➢ +1: 리뷰 결과 괜찮음
➢ +2: 해당 프로젝트의 핵심 개발자가
괜찮음을 표현
• 일반적인 코드 병합
➢ 2명의 핵심 개발자가 각각 +2를
주었을 때 병함됨
➢ Workflow를 +1로 주었을 때 최종
코드 병합 이루어짐
코드 병합 (Merged) in OpenStack
• 업로드한 코드는 patch set 단위로
관리됨
• 모든 업로드 코드는 Jenkins에
의해 업로드한 코드에 대해 자동
점검 수행
• 일반적으로 해당 프로젝트 내 +2를
2번 이상 받았을 때 Workflow
+1를 주면 해당 코드에 대한
병합이 이루어짐
Sandbox Launchpad 버그 목록
• https://bugs.launchpad.net/openstack-dev-sandbox
버그 리포트 – 제목: 요약하여 적기
• https://bugs.launchpad.net/openstack-dev-sandbox/+filebug
버그 리포트 – 세부 사항
• (실제 버그는 보다 자세한 버그 설명 필요)
버그 리포트 – 제출 성공
• (제출 완료)
버그 리포트 – 버그 할당
• 자신에게 할당 가능
• 관리자의 경우 관련
구성원에게 할당 가능
버그 리포트 – 버그 할당 완료
• 버그를 할당하는 이유: 해당 버그를 작업 중임을 다른 구성원에게 알림
커밋하기: 로컬 브랜치 생성
커밋하기: 파일 추가 및 커밋
Gerrit에 업로드
Gerrit 업로드 결과
• Gerrit 홈페이지에서 확인 가능 + 이메일로 다른 사람에게 리뷰 부탁 가능
(데모/실습)
• 준비 사항: Git + Git review가 동작하는 Linux/Mac OS 환경 필요
• 데모 / 실습 내용
➢ Ubuntu 16.04 LTS 환경
➢ git, git-review 설치 및 설정 구성
➢ Sandbox Launchpad에 테스트 버그 등록 및 자신 할당
➢ Sandbox 저장소에서 작업 후 커밋, 그리고 Gerrit에 보내기
감사합니다!
Thank you!
openstack.kr http://www.openstack.or.kr http://bit.ly/openstack-kr-videos

More Related Content

What's hot

오픈스택 기반 클라우드 서비스 구축 방안 및 사례
오픈스택 기반 클라우드 서비스 구축 방안 및 사례오픈스택 기반 클라우드 서비스 구축 방안 및 사례
오픈스택 기반 클라우드 서비스 구축 방안 및 사례SONG INSEOB
 
오픈스택: 구석구석 파헤쳐보기
오픈스택: 구석구석 파헤쳐보기오픈스택: 구석구석 파헤쳐보기
오픈스택: 구석구석 파헤쳐보기Jaehwa Park
 
[2018] 오픈스택 5년 운영의 경험
[2018] 오픈스택 5년 운영의 경험[2018] 오픈스택 5년 운영의 경험
[2018] 오픈스택 5년 운영의 경험NHN FORWARD
 
Red Hat OpenStack 17 저자직강+스터디그룹_5주차
Red Hat OpenStack 17 저자직강+스터디그룹_5주차Red Hat OpenStack 17 저자직강+스터디그룹_5주차
Red Hat OpenStack 17 저자직강+스터디그룹_5주차Nalee Jang
 
Introduce Google Kubernetes
Introduce Google KubernetesIntroduce Google Kubernetes
Introduce Google KubernetesYongbok Kim
 
오픈스택 커뮤니티 소개 및 기술 동향
오픈스택 커뮤니티 소개 및 기술 동향오픈스택 커뮤니티 소개 및 기술 동향
오픈스택 커뮤니티 소개 및 기술 동향Nalee Jang
 
[OpenStack Days Korea 2016] Track1 - Monasca를 이용한 Cloud 모니터링
[OpenStack Days Korea 2016] Track1 - Monasca를 이용한 Cloud 모니터링[OpenStack Days Korea 2016] Track1 - Monasca를 이용한 Cloud 모니터링
[OpenStack Days Korea 2016] Track1 - Monasca를 이용한 Cloud 모니터링OpenStack Korea Community
 
Red Hat OpenStack 17 저자직강+스터디그룹_4주차
Red Hat OpenStack 17 저자직강+스터디그룹_4주차Red Hat OpenStack 17 저자직강+스터디그룹_4주차
Red Hat OpenStack 17 저자직강+스터디그룹_4주차Nalee Jang
 
[OpenStack Days Korea 2016] Track2 - 아리스타 OpenStack 연동 및 CloudVision 솔루션 소개
[OpenStack Days Korea 2016] Track2 - 아리스타 OpenStack 연동 및 CloudVision 솔루션 소개[OpenStack Days Korea 2016] Track2 - 아리스타 OpenStack 연동 및 CloudVision 솔루션 소개
[OpenStack Days Korea 2016] Track2 - 아리스타 OpenStack 연동 및 CloudVision 솔루션 소개OpenStack Korea Community
 
[OpenInfra Days Korea 2018] (Track 4) - Grafana를 이용한 OpenStack 클라우드 성능 모니터링
[OpenInfra Days Korea 2018] (Track 4) - Grafana를 이용한 OpenStack 클라우드 성능 모니터링[OpenInfra Days Korea 2018] (Track 4) - Grafana를 이용한 OpenStack 클라우드 성능 모니터링
[OpenInfra Days Korea 2018] (Track 4) - Grafana를 이용한 OpenStack 클라우드 성능 모니터링OpenStack Korea Community
 
Red Hat OpenStack 17 저자직강+스터디그룹_3주차
Red Hat OpenStack 17 저자직강+스터디그룹_3주차Red Hat OpenStack 17 저자직강+스터디그룹_3주차
Red Hat OpenStack 17 저자직강+스터디그룹_3주차Nalee Jang
 
OpenShift 4, the smarter Kubernetes platform
OpenShift 4, the smarter Kubernetes platformOpenShift 4, the smarter Kubernetes platform
OpenShift 4, the smarter Kubernetes platformKangaroot
 
오픈스택 멀티노드 설치 후기
오픈스택 멀티노드 설치 후기오픈스택 멀티노드 설치 후기
오픈스택 멀티노드 설치 후기영우 김
 
Ansible presentation
Ansible presentationAnsible presentation
Ansible presentationJohn Lynch
 
High Availability for OpenStack
High Availability for OpenStackHigh Availability for OpenStack
High Availability for OpenStackKamesh Pemmaraju
 
Bare Metal Cluster with Kubernetes, Istio and Metallb | Nguyen Phuong An, Ngu...
Bare Metal Cluster with Kubernetes, Istio and Metallb | Nguyen Phuong An, Ngu...Bare Metal Cluster with Kubernetes, Istio and Metallb | Nguyen Phuong An, Ngu...
Bare Metal Cluster with Kubernetes, Istio and Metallb | Nguyen Phuong An, Ngu...Vietnam Open Infrastructure User Group
 
OpenShift 4 installation
OpenShift 4 installationOpenShift 4 installation
OpenShift 4 installationRobert Bohne
 
Docker Networking Deep Dive
Docker Networking Deep DiveDocker Networking Deep Dive
Docker Networking Deep DiveDocker, Inc.
 
Openshift Container Platform
Openshift Container PlatformOpenshift Container Platform
Openshift Container PlatformDLT Solutions
 

What's hot (20)

오픈스택 기반 클라우드 서비스 구축 방안 및 사례
오픈스택 기반 클라우드 서비스 구축 방안 및 사례오픈스택 기반 클라우드 서비스 구축 방안 및 사례
오픈스택 기반 클라우드 서비스 구축 방안 및 사례
 
오픈스택: 구석구석 파헤쳐보기
오픈스택: 구석구석 파헤쳐보기오픈스택: 구석구석 파헤쳐보기
오픈스택: 구석구석 파헤쳐보기
 
[2018] 오픈스택 5년 운영의 경험
[2018] 오픈스택 5년 운영의 경험[2018] 오픈스택 5년 운영의 경험
[2018] 오픈스택 5년 운영의 경험
 
Community Openstack 구축 사례
Community Openstack 구축 사례Community Openstack 구축 사례
Community Openstack 구축 사례
 
Red Hat OpenStack 17 저자직강+스터디그룹_5주차
Red Hat OpenStack 17 저자직강+스터디그룹_5주차Red Hat OpenStack 17 저자직강+스터디그룹_5주차
Red Hat OpenStack 17 저자직강+스터디그룹_5주차
 
Introduce Google Kubernetes
Introduce Google KubernetesIntroduce Google Kubernetes
Introduce Google Kubernetes
 
오픈스택 커뮤니티 소개 및 기술 동향
오픈스택 커뮤니티 소개 및 기술 동향오픈스택 커뮤니티 소개 및 기술 동향
오픈스택 커뮤니티 소개 및 기술 동향
 
[OpenStack Days Korea 2016] Track1 - Monasca를 이용한 Cloud 모니터링
[OpenStack Days Korea 2016] Track1 - Monasca를 이용한 Cloud 모니터링[OpenStack Days Korea 2016] Track1 - Monasca를 이용한 Cloud 모니터링
[OpenStack Days Korea 2016] Track1 - Monasca를 이용한 Cloud 모니터링
 
Red Hat OpenStack 17 저자직강+스터디그룹_4주차
Red Hat OpenStack 17 저자직강+스터디그룹_4주차Red Hat OpenStack 17 저자직강+스터디그룹_4주차
Red Hat OpenStack 17 저자직강+스터디그룹_4주차
 
[OpenStack Days Korea 2016] Track2 - 아리스타 OpenStack 연동 및 CloudVision 솔루션 소개
[OpenStack Days Korea 2016] Track2 - 아리스타 OpenStack 연동 및 CloudVision 솔루션 소개[OpenStack Days Korea 2016] Track2 - 아리스타 OpenStack 연동 및 CloudVision 솔루션 소개
[OpenStack Days Korea 2016] Track2 - 아리스타 OpenStack 연동 및 CloudVision 솔루션 소개
 
[OpenInfra Days Korea 2018] (Track 4) - Grafana를 이용한 OpenStack 클라우드 성능 모니터링
[OpenInfra Days Korea 2018] (Track 4) - Grafana를 이용한 OpenStack 클라우드 성능 모니터링[OpenInfra Days Korea 2018] (Track 4) - Grafana를 이용한 OpenStack 클라우드 성능 모니터링
[OpenInfra Days Korea 2018] (Track 4) - Grafana를 이용한 OpenStack 클라우드 성능 모니터링
 
Red Hat OpenStack 17 저자직강+스터디그룹_3주차
Red Hat OpenStack 17 저자직강+스터디그룹_3주차Red Hat OpenStack 17 저자직강+스터디그룹_3주차
Red Hat OpenStack 17 저자직강+스터디그룹_3주차
 
OpenShift 4, the smarter Kubernetes platform
OpenShift 4, the smarter Kubernetes platformOpenShift 4, the smarter Kubernetes platform
OpenShift 4, the smarter Kubernetes platform
 
오픈스택 멀티노드 설치 후기
오픈스택 멀티노드 설치 후기오픈스택 멀티노드 설치 후기
오픈스택 멀티노드 설치 후기
 
Ansible presentation
Ansible presentationAnsible presentation
Ansible presentation
 
High Availability for OpenStack
High Availability for OpenStackHigh Availability for OpenStack
High Availability for OpenStack
 
Bare Metal Cluster with Kubernetes, Istio and Metallb | Nguyen Phuong An, Ngu...
Bare Metal Cluster with Kubernetes, Istio and Metallb | Nguyen Phuong An, Ngu...Bare Metal Cluster with Kubernetes, Istio and Metallb | Nguyen Phuong An, Ngu...
Bare Metal Cluster with Kubernetes, Istio and Metallb | Nguyen Phuong An, Ngu...
 
OpenShift 4 installation
OpenShift 4 installationOpenShift 4 installation
OpenShift 4 installation
 
Docker Networking Deep Dive
Docker Networking Deep DiveDocker Networking Deep Dive
Docker Networking Deep Dive
 
Openshift Container Platform
Openshift Container PlatformOpenshift Container Platform
Openshift Container Platform
 

Similar to [OpenStack] 공개 소프트웨어 오픈스택 입문 & 파헤치기

KT 안재석 박사 - 오픈 소스 기반 클라우드 컴퓨팅 솔루션 open stack 이야기 (2011Y05M28D)
KT 안재석 박사 - 오픈 소스 기반 클라우드 컴퓨팅 솔루션 open stack 이야기 (2011Y05M28D)KT 안재석 박사 - 오픈 소스 기반 클라우드 컴퓨팅 솔루션 open stack 이야기 (2011Y05M28D)
KT 안재석 박사 - 오픈 소스 기반 클라우드 컴퓨팅 솔루션 open stack 이야기 (2011Y05M28D)Ubuntu Korea Community
 
[OpenStack Days Korea 2016] Track4 - 해외 사례로 보는 OpenStack Billing System
[OpenStack Days Korea 2016] Track4 - 해외 사례로 보는 OpenStack Billing System[OpenStack Days Korea 2016] Track4 - 해외 사례로 보는 OpenStack Billing System
[OpenStack Days Korea 2016] Track4 - 해외 사례로 보는 OpenStack Billing SystemOpenStack Korea Community
 
해외 사례로 보는 Billing for OpenStack Solution
해외 사례로 보는 Billing for OpenStack Solution해외 사례로 보는 Billing for OpenStack Solution
해외 사례로 보는 Billing for OpenStack SolutionNalee Jang
 
OpenSource! OpenStack!
OpenSource! OpenStack!OpenSource! OpenStack!
OpenSource! OpenStack!Nalee Jang
 
무엇이 무엇이 닮았을까?- OpenStack과 Azure
무엇이 무엇이 닮았을까?- OpenStack과 Azure무엇이 무엇이 닮았을까?- OpenStack과 Azure
무엇이 무엇이 닮았을까?- OpenStack과 AzureIan Choi
 
OpenStack을 중심으로 한 오픈 소스 & 상용 하이브리드 클라우드
OpenStack을 중심으로 한 오픈 소스 & 상용 하이브리드 클라우드OpenStack을 중심으로 한 오픈 소스 & 상용 하이브리드 클라우드
OpenStack을 중심으로 한 오픈 소스 & 상용 하이브리드 클라우드Ian Choi
 
Open stack summit_barcelona_보고서
Open stack summit_barcelona_보고서Open stack summit_barcelona_보고서
Open stack summit_barcelona_보고서Yongyoon Shin
 
Prometheus in openstack-helm
Prometheus in openstack-helmPrometheus in openstack-helm
Prometheus in openstack-helm성일 임
 
[오픈소스컨설팅]오픈스택에 대하여
[오픈소스컨설팅]오픈스택에 대하여[오픈소스컨설팅]오픈스택에 대하여
[오픈소스컨설팅]오픈스택에 대하여Ji-Woong Choi
 
[OpenInfra Days Korea 2018] (Track 1) 커뮤니티 오픈스택 패키징 도입 전략 및 구현사례 발표
[OpenInfra Days Korea 2018] (Track 1) 커뮤니티 오픈스택 패키징 도입 전략 및 구현사례 발표[OpenInfra Days Korea 2018] (Track 1) 커뮤니티 오픈스택 패키징 도입 전략 및 구현사례 발표
[OpenInfra Days Korea 2018] (Track 1) 커뮤니티 오픈스택 패키징 도입 전략 및 구현사례 발표OpenStack Korea Community
 
퍼블릭 & 프라이빗 클라우드 구축을 위한 오픈소스SW
퍼블릭 & 프라이빗 클라우드 구축을 위한 오픈소스SW퍼블릭 & 프라이빗 클라우드 구축을 위한 오픈소스SW
퍼블릭 & 프라이빗 클라우드 구축을 위한 오픈소스SWmosaicnet
 
Azure 클라우드에서 OpenShift 시작하기 - Azure 클라우드 환경에서 OpenShift 운영 방안
Azure 클라우드에서 OpenShift 시작하기 - Azure 클라우드 환경에서 OpenShift 운영 방안Azure 클라우드에서 OpenShift 시작하기 - Azure 클라우드 환경에서 OpenShift 운영 방안
Azure 클라우드에서 OpenShift 시작하기 - Azure 클라우드 환경에서 OpenShift 운영 방안rockplace
 
[OpenInfra Days Korea 2018] (Track 3) Software Defined Infrastructure 전략 및 사례
[OpenInfra Days Korea 2018] (Track 3) Software Defined Infrastructure 전략 및 사례[OpenInfra Days Korea 2018] (Track 3) Software Defined Infrastructure 전략 및 사례
[OpenInfra Days Korea 2018] (Track 3) Software Defined Infrastructure 전략 및 사례OpenStack Korea Community
 
SKT Openinfra days 2018 Presentation
SKT Openinfra days 2018 Presentation SKT Openinfra days 2018 Presentation
SKT Openinfra days 2018 Presentation Jaesuk Ahn
 
[OpenInfra Days Korea 2018] (Track 1) TACO (SKT All Container OpenStack): Clo...
[OpenInfra Days Korea 2018] (Track 1) TACO (SKT All Container OpenStack): Clo...[OpenInfra Days Korea 2018] (Track 1) TACO (SKT All Container OpenStack): Clo...
[OpenInfra Days Korea 2018] (Track 1) TACO (SKT All Container OpenStack): Clo...OpenStack Korea Community
 
[OpenInfra Days Korea 2018] K8s workshop: with containers & K8s on OpenStack ...
[OpenInfra Days Korea 2018] K8s workshop: with containers & K8s on OpenStack ...[OpenInfra Days Korea 2018] K8s workshop: with containers & K8s on OpenStack ...
[OpenInfra Days Korea 2018] K8s workshop: with containers & K8s on OpenStack ...OpenStack Korea Community
 
2.[d2 오픈세미나]네이버클라우드 시스템 아키텍처 및 활용 방안
2.[d2 오픈세미나]네이버클라우드 시스템 아키텍처 및 활용 방안2.[d2 오픈세미나]네이버클라우드 시스템 아키텍처 및 활용 방안
2.[d2 오픈세미나]네이버클라우드 시스템 아키텍처 및 활용 방안NAVER D2
 
Azure Red Hat OpenShift 를 통한 더 빠르고 쉬운 애플리케이션 구축
Azure Red Hat OpenShift 를 통한 더 빠르고 쉬운 애플리케이션 구축Azure Red Hat OpenShift 를 통한 더 빠르고 쉬운 애플리케이션 구축
Azure Red Hat OpenShift 를 통한 더 빠르고 쉬운 애플리케이션 구축rockplace
 
제2회 난공불락 오픈소스 인프라 세미나 Kubernetes
제2회 난공불락 오픈소스 인프라 세미나 Kubernetes제2회 난공불락 오픈소스 인프라 세미나 Kubernetes
제2회 난공불락 오픈소스 인프라 세미나 KubernetesTommy Lee
 
[오픈소스컨설팅]오픈소스 클라우드 개발플랫폼_및_Docker의_이해_v1
[오픈소스컨설팅]오픈소스 클라우드 개발플랫폼_및_Docker의_이해_v1[오픈소스컨설팅]오픈소스 클라우드 개발플랫폼_및_Docker의_이해_v1
[오픈소스컨설팅]오픈소스 클라우드 개발플랫폼_및_Docker의_이해_v1Ji-Woong Choi
 

Similar to [OpenStack] 공개 소프트웨어 오픈스택 입문 & 파헤치기 (20)

KT 안재석 박사 - 오픈 소스 기반 클라우드 컴퓨팅 솔루션 open stack 이야기 (2011Y05M28D)
KT 안재석 박사 - 오픈 소스 기반 클라우드 컴퓨팅 솔루션 open stack 이야기 (2011Y05M28D)KT 안재석 박사 - 오픈 소스 기반 클라우드 컴퓨팅 솔루션 open stack 이야기 (2011Y05M28D)
KT 안재석 박사 - 오픈 소스 기반 클라우드 컴퓨팅 솔루션 open stack 이야기 (2011Y05M28D)
 
[OpenStack Days Korea 2016] Track4 - 해외 사례로 보는 OpenStack Billing System
[OpenStack Days Korea 2016] Track4 - 해외 사례로 보는 OpenStack Billing System[OpenStack Days Korea 2016] Track4 - 해외 사례로 보는 OpenStack Billing System
[OpenStack Days Korea 2016] Track4 - 해외 사례로 보는 OpenStack Billing System
 
해외 사례로 보는 Billing for OpenStack Solution
해외 사례로 보는 Billing for OpenStack Solution해외 사례로 보는 Billing for OpenStack Solution
해외 사례로 보는 Billing for OpenStack Solution
 
OpenSource! OpenStack!
OpenSource! OpenStack!OpenSource! OpenStack!
OpenSource! OpenStack!
 
무엇이 무엇이 닮았을까?- OpenStack과 Azure
무엇이 무엇이 닮았을까?- OpenStack과 Azure무엇이 무엇이 닮았을까?- OpenStack과 Azure
무엇이 무엇이 닮았을까?- OpenStack과 Azure
 
OpenStack을 중심으로 한 오픈 소스 & 상용 하이브리드 클라우드
OpenStack을 중심으로 한 오픈 소스 & 상용 하이브리드 클라우드OpenStack을 중심으로 한 오픈 소스 & 상용 하이브리드 클라우드
OpenStack을 중심으로 한 오픈 소스 & 상용 하이브리드 클라우드
 
Open stack summit_barcelona_보고서
Open stack summit_barcelona_보고서Open stack summit_barcelona_보고서
Open stack summit_barcelona_보고서
 
Prometheus in openstack-helm
Prometheus in openstack-helmPrometheus in openstack-helm
Prometheus in openstack-helm
 
[오픈소스컨설팅]오픈스택에 대하여
[오픈소스컨설팅]오픈스택에 대하여[오픈소스컨설팅]오픈스택에 대하여
[오픈소스컨설팅]오픈스택에 대하여
 
[OpenInfra Days Korea 2018] (Track 1) 커뮤니티 오픈스택 패키징 도입 전략 및 구현사례 발표
[OpenInfra Days Korea 2018] (Track 1) 커뮤니티 오픈스택 패키징 도입 전략 및 구현사례 발표[OpenInfra Days Korea 2018] (Track 1) 커뮤니티 오픈스택 패키징 도입 전략 및 구현사례 발표
[OpenInfra Days Korea 2018] (Track 1) 커뮤니티 오픈스택 패키징 도입 전략 및 구현사례 발표
 
퍼블릭 & 프라이빗 클라우드 구축을 위한 오픈소스SW
퍼블릭 & 프라이빗 클라우드 구축을 위한 오픈소스SW퍼블릭 & 프라이빗 클라우드 구축을 위한 오픈소스SW
퍼블릭 & 프라이빗 클라우드 구축을 위한 오픈소스SW
 
Azure 클라우드에서 OpenShift 시작하기 - Azure 클라우드 환경에서 OpenShift 운영 방안
Azure 클라우드에서 OpenShift 시작하기 - Azure 클라우드 환경에서 OpenShift 운영 방안Azure 클라우드에서 OpenShift 시작하기 - Azure 클라우드 환경에서 OpenShift 운영 방안
Azure 클라우드에서 OpenShift 시작하기 - Azure 클라우드 환경에서 OpenShift 운영 방안
 
[OpenInfra Days Korea 2018] (Track 3) Software Defined Infrastructure 전략 및 사례
[OpenInfra Days Korea 2018] (Track 3) Software Defined Infrastructure 전략 및 사례[OpenInfra Days Korea 2018] (Track 3) Software Defined Infrastructure 전략 및 사례
[OpenInfra Days Korea 2018] (Track 3) Software Defined Infrastructure 전략 및 사례
 
SKT Openinfra days 2018 Presentation
SKT Openinfra days 2018 Presentation SKT Openinfra days 2018 Presentation
SKT Openinfra days 2018 Presentation
 
[OpenInfra Days Korea 2018] (Track 1) TACO (SKT All Container OpenStack): Clo...
[OpenInfra Days Korea 2018] (Track 1) TACO (SKT All Container OpenStack): Clo...[OpenInfra Days Korea 2018] (Track 1) TACO (SKT All Container OpenStack): Clo...
[OpenInfra Days Korea 2018] (Track 1) TACO (SKT All Container OpenStack): Clo...
 
[OpenInfra Days Korea 2018] K8s workshop: with containers & K8s on OpenStack ...
[OpenInfra Days Korea 2018] K8s workshop: with containers & K8s on OpenStack ...[OpenInfra Days Korea 2018] K8s workshop: with containers & K8s on OpenStack ...
[OpenInfra Days Korea 2018] K8s workshop: with containers & K8s on OpenStack ...
 
2.[d2 오픈세미나]네이버클라우드 시스템 아키텍처 및 활용 방안
2.[d2 오픈세미나]네이버클라우드 시스템 아키텍처 및 활용 방안2.[d2 오픈세미나]네이버클라우드 시스템 아키텍처 및 활용 방안
2.[d2 오픈세미나]네이버클라우드 시스템 아키텍처 및 활용 방안
 
Azure Red Hat OpenShift 를 통한 더 빠르고 쉬운 애플리케이션 구축
Azure Red Hat OpenShift 를 통한 더 빠르고 쉬운 애플리케이션 구축Azure Red Hat OpenShift 를 통한 더 빠르고 쉬운 애플리케이션 구축
Azure Red Hat OpenShift 를 통한 더 빠르고 쉬운 애플리케이션 구축
 
제2회 난공불락 오픈소스 인프라 세미나 Kubernetes
제2회 난공불락 오픈소스 인프라 세미나 Kubernetes제2회 난공불락 오픈소스 인프라 세미나 Kubernetes
제2회 난공불락 오픈소스 인프라 세미나 Kubernetes
 
[오픈소스컨설팅]오픈소스 클라우드 개발플랫폼_및_Docker의_이해_v1
[오픈소스컨설팅]오픈소스 클라우드 개발플랫폼_및_Docker의_이해_v1[오픈소스컨설팅]오픈소스 클라우드 개발플랫폼_및_Docker의_이해_v1
[오픈소스컨설팅]오픈소스 클라우드 개발플랫폼_및_Docker의_이해_v1
 

More from Ian Choi

Ship it! ⛴️ AKS에 스프링 앱 배포하기 at Microsoft x GitHub Roadshow 2023
Ship it! ⛴️ AKS에 스프링 앱 배포하기 at Microsoft x GitHub Roadshow 2023Ship it! ⛴️ AKS에 스프링 앱 배포하기 at Microsoft x GitHub Roadshow 2023
Ship it! ⛴️ AKS에 스프링 앱 배포하기 at Microsoft x GitHub Roadshow 2023Ian Choi
 
클라우드 컴퓨팅 기본 사항 (Fundamentals)
클라우드 컴퓨팅 기본 사항 (Fundamentals)클라우드 컴퓨팅 기본 사항 (Fundamentals)
클라우드 컴퓨팅 기본 사항 (Fundamentals)Ian Choi
 
디자인에 이어 코딩까지 AI가 프로그램 개발을 척척?: GitHub Copilot, 어디까지 알아보셨나요
디자인에 이어 코딩까지 AI가 프로그램 개발을 척척?: GitHub Copilot, 어디까지 알아보셨나요디자인에 이어 코딩까지 AI가 프로그램 개발을 척척?: GitHub Copilot, 어디까지 알아보셨나요
디자인에 이어 코딩까지 AI가 프로그램 개발을 척척?: GitHub Copilot, 어디까지 알아보셨나요Ian Choi
 
마이크로소프트 애저 및 클라우드 트렌드 소개 (부제: Beyond IaaS)
마이크로소프트 애저 및 클라우드 트렌드 소개 (부제: Beyond IaaS)마이크로소프트 애저 및 클라우드 트렌드 소개 (부제: Beyond IaaS)
마이크로소프트 애저 및 클라우드 트렌드 소개 (부제: Beyond IaaS)Ian Choi
 
Evolving Translation and Internationalization in OpenStack & Kubernetes commu...
Evolving Translation and Internationalization in OpenStack & Kubernetes commu...Evolving Translation and Internationalization in OpenStack & Kubernetes commu...
Evolving Translation and Internationalization in OpenStack & Kubernetes commu...Ian Choi
 
쿠버네티스 오픈 소스와 클라우드 매니지드 서비스 접점 소개
쿠버네티스 오픈 소스와 클라우드 매니지드 서비스 접점 소개쿠버네티스 오픈 소스와 클라우드 매니지드 서비스 접점 소개
쿠버네티스 오픈 소스와 클라우드 매니지드 서비스 접점 소개Ian Choi
 
오픈 소스 프로그래밍 - NoSQL with Python
오픈 소스 프로그래밍 - NoSQL with Python오픈 소스 프로그래밍 - NoSQL with Python
오픈 소스 프로그래밍 - NoSQL with PythonIan Choi
 
Azure 클라우드 학생 계정 & Ubuntu VM 셋업 (Mar 2022)
Azure 클라우드 학생 계정 & Ubuntu VM 셋업 (Mar 2022)Azure 클라우드 학생 계정 & Ubuntu VM 셋업 (Mar 2022)
Azure 클라우드 학생 계정 & Ubuntu VM 셋업 (Mar 2022)Ian Choi
 
OpenStack I18n Product Update at Shanghai: how OpenStack translation started ...
OpenStack I18n Product Update at Shanghai: how OpenStack translation started ...OpenStack I18n Product Update at Shanghai: how OpenStack translation started ...
OpenStack I18n Product Update at Shanghai: how OpenStack translation started ...Ian Choi
 
[OpenInfra Days Vietnam 2019] Innovation with open sources and app modernizat...
[OpenInfra Days Vietnam 2019] Innovation with open sources and app modernizat...[OpenInfra Days Vietnam 2019] Innovation with open sources and app modernizat...
[OpenInfra Days Vietnam 2019] Innovation with open sources and app modernizat...Ian Choi
 
Microsoft loves communities - Korea DevRel Team
Microsoft loves communities - Korea DevRel TeamMicrosoft loves communities - Korea DevRel Team
Microsoft loves communities - Korea DevRel TeamIan Choi
 
DevOps와 함께 살펴보는 (해커톤의 성패를 좌우하는) 협업/개발 툴
DevOps와 함께 살펴보는 (해커톤의 성패를 좌우하는) 협업/개발 툴DevOps와 함께 살펴보는 (해커톤의 성패를 좌우하는) 협업/개발 툴
DevOps와 함께 살펴보는 (해커톤의 성패를 좌우하는) 협업/개발 툴Ian Choi
 
국제화/번역과 함께 하는 오픈소스에 대한 경험 및 노하우
국제화/번역과 함께 하는 오픈소스에 대한 경험 및 노하우국제화/번역과 함께 하는 오픈소스에 대한 경험 및 노하우
국제화/번역과 함께 하는 오픈소스에 대한 경험 및 노하우Ian Choi
 
[201808] GitHub 사용하기 - GIt & 협업 활용
[201808] GitHub 사용하기 - GIt & 협업 활용[201808] GitHub 사용하기 - GIt & 협업 활용
[201808] GitHub 사용하기 - GIt & 협업 활용Ian Choi
 
[2018 KOSSLAB 컨트리뷰톤] 오픈스택 (OpenStack) 프로젝트 소개 + 업스트림 컨트리뷰션
[2018 KOSSLAB 컨트리뷰톤] 오픈스택 (OpenStack) 프로젝트 소개 + 업스트림 컨트리뷰션[2018 KOSSLAB 컨트리뷰톤] 오픈스택 (OpenStack) 프로젝트 소개 + 업스트림 컨트리뷰션
[2018 KOSSLAB 컨트리뷰톤] 오픈스택 (OpenStack) 프로젝트 소개 + 업스트림 컨트리뷰션Ian Choi
 
[2018 공개SW그랜드챌린지] 오픈 인프라와 오픈 커뮤니티에서의 협력
[2018 공개SW그랜드챌린지] 오픈 인프라와 오픈 커뮤니티에서의 협력[2018 공개SW그랜드챌린지] 오픈 인프라와 오픈 커뮤니티에서의 협력
[2018 공개SW그랜드챌린지] 오픈 인프라와 오픈 커뮤니티에서의 협력Ian Choi
 
OpenStack 2018 Vancouver Summit 후기
OpenStack 2018 Vancouver Summit 후기OpenStack 2018 Vancouver Summit 후기
OpenStack 2018 Vancouver Summit 후기Ian Choi
 
"docs.microsoft.com"에 기여하기
"docs.microsoft.com"에 기여하기"docs.microsoft.com"에 기여하기
"docs.microsoft.com"에 기여하기Ian Choi
 
[Pycon KR 2017] Rst와 함께하는 Python 문서 작성 & OpenStack 문서 활용 사례
[Pycon KR 2017] Rst와 함께하는 Python 문서 작성 & OpenStack 문서 활용 사례[Pycon KR 2017] Rst와 함께하는 Python 문서 작성 & OpenStack 문서 활용 사례
[Pycon KR 2017] Rst와 함께하는 Python 문서 작성 & OpenStack 문서 활용 사례Ian Choi
 
명령 프롬프트, Azure CLI 2.0은 과연 코딩일까?
명령 프롬프트, Azure CLI 2.0은 과연 코딩일까?명령 프롬프트, Azure CLI 2.0은 과연 코딩일까?
명령 프롬프트, Azure CLI 2.0은 과연 코딩일까?Ian Choi
 

More from Ian Choi (20)

Ship it! ⛴️ AKS에 스프링 앱 배포하기 at Microsoft x GitHub Roadshow 2023
Ship it! ⛴️ AKS에 스프링 앱 배포하기 at Microsoft x GitHub Roadshow 2023Ship it! ⛴️ AKS에 스프링 앱 배포하기 at Microsoft x GitHub Roadshow 2023
Ship it! ⛴️ AKS에 스프링 앱 배포하기 at Microsoft x GitHub Roadshow 2023
 
클라우드 컴퓨팅 기본 사항 (Fundamentals)
클라우드 컴퓨팅 기본 사항 (Fundamentals)클라우드 컴퓨팅 기본 사항 (Fundamentals)
클라우드 컴퓨팅 기본 사항 (Fundamentals)
 
디자인에 이어 코딩까지 AI가 프로그램 개발을 척척?: GitHub Copilot, 어디까지 알아보셨나요
디자인에 이어 코딩까지 AI가 프로그램 개발을 척척?: GitHub Copilot, 어디까지 알아보셨나요디자인에 이어 코딩까지 AI가 프로그램 개발을 척척?: GitHub Copilot, 어디까지 알아보셨나요
디자인에 이어 코딩까지 AI가 프로그램 개발을 척척?: GitHub Copilot, 어디까지 알아보셨나요
 
마이크로소프트 애저 및 클라우드 트렌드 소개 (부제: Beyond IaaS)
마이크로소프트 애저 및 클라우드 트렌드 소개 (부제: Beyond IaaS)마이크로소프트 애저 및 클라우드 트렌드 소개 (부제: Beyond IaaS)
마이크로소프트 애저 및 클라우드 트렌드 소개 (부제: Beyond IaaS)
 
Evolving Translation and Internationalization in OpenStack & Kubernetes commu...
Evolving Translation and Internationalization in OpenStack & Kubernetes commu...Evolving Translation and Internationalization in OpenStack & Kubernetes commu...
Evolving Translation and Internationalization in OpenStack & Kubernetes commu...
 
쿠버네티스 오픈 소스와 클라우드 매니지드 서비스 접점 소개
쿠버네티스 오픈 소스와 클라우드 매니지드 서비스 접점 소개쿠버네티스 오픈 소스와 클라우드 매니지드 서비스 접점 소개
쿠버네티스 오픈 소스와 클라우드 매니지드 서비스 접점 소개
 
오픈 소스 프로그래밍 - NoSQL with Python
오픈 소스 프로그래밍 - NoSQL with Python오픈 소스 프로그래밍 - NoSQL with Python
오픈 소스 프로그래밍 - NoSQL with Python
 
Azure 클라우드 학생 계정 & Ubuntu VM 셋업 (Mar 2022)
Azure 클라우드 학생 계정 & Ubuntu VM 셋업 (Mar 2022)Azure 클라우드 학생 계정 & Ubuntu VM 셋업 (Mar 2022)
Azure 클라우드 학생 계정 & Ubuntu VM 셋업 (Mar 2022)
 
OpenStack I18n Product Update at Shanghai: how OpenStack translation started ...
OpenStack I18n Product Update at Shanghai: how OpenStack translation started ...OpenStack I18n Product Update at Shanghai: how OpenStack translation started ...
OpenStack I18n Product Update at Shanghai: how OpenStack translation started ...
 
[OpenInfra Days Vietnam 2019] Innovation with open sources and app modernizat...
[OpenInfra Days Vietnam 2019] Innovation with open sources and app modernizat...[OpenInfra Days Vietnam 2019] Innovation with open sources and app modernizat...
[OpenInfra Days Vietnam 2019] Innovation with open sources and app modernizat...
 
Microsoft loves communities - Korea DevRel Team
Microsoft loves communities - Korea DevRel TeamMicrosoft loves communities - Korea DevRel Team
Microsoft loves communities - Korea DevRel Team
 
DevOps와 함께 살펴보는 (해커톤의 성패를 좌우하는) 협업/개발 툴
DevOps와 함께 살펴보는 (해커톤의 성패를 좌우하는) 협업/개발 툴DevOps와 함께 살펴보는 (해커톤의 성패를 좌우하는) 협업/개발 툴
DevOps와 함께 살펴보는 (해커톤의 성패를 좌우하는) 협업/개발 툴
 
국제화/번역과 함께 하는 오픈소스에 대한 경험 및 노하우
국제화/번역과 함께 하는 오픈소스에 대한 경험 및 노하우국제화/번역과 함께 하는 오픈소스에 대한 경험 및 노하우
국제화/번역과 함께 하는 오픈소스에 대한 경험 및 노하우
 
[201808] GitHub 사용하기 - GIt & 협업 활용
[201808] GitHub 사용하기 - GIt & 협업 활용[201808] GitHub 사용하기 - GIt & 협업 활용
[201808] GitHub 사용하기 - GIt & 협업 활용
 
[2018 KOSSLAB 컨트리뷰톤] 오픈스택 (OpenStack) 프로젝트 소개 + 업스트림 컨트리뷰션
[2018 KOSSLAB 컨트리뷰톤] 오픈스택 (OpenStack) 프로젝트 소개 + 업스트림 컨트리뷰션[2018 KOSSLAB 컨트리뷰톤] 오픈스택 (OpenStack) 프로젝트 소개 + 업스트림 컨트리뷰션
[2018 KOSSLAB 컨트리뷰톤] 오픈스택 (OpenStack) 프로젝트 소개 + 업스트림 컨트리뷰션
 
[2018 공개SW그랜드챌린지] 오픈 인프라와 오픈 커뮤니티에서의 협력
[2018 공개SW그랜드챌린지] 오픈 인프라와 오픈 커뮤니티에서의 협력[2018 공개SW그랜드챌린지] 오픈 인프라와 오픈 커뮤니티에서의 협력
[2018 공개SW그랜드챌린지] 오픈 인프라와 오픈 커뮤니티에서의 협력
 
OpenStack 2018 Vancouver Summit 후기
OpenStack 2018 Vancouver Summit 후기OpenStack 2018 Vancouver Summit 후기
OpenStack 2018 Vancouver Summit 후기
 
"docs.microsoft.com"에 기여하기
"docs.microsoft.com"에 기여하기"docs.microsoft.com"에 기여하기
"docs.microsoft.com"에 기여하기
 
[Pycon KR 2017] Rst와 함께하는 Python 문서 작성 & OpenStack 문서 활용 사례
[Pycon KR 2017] Rst와 함께하는 Python 문서 작성 & OpenStack 문서 활용 사례[Pycon KR 2017] Rst와 함께하는 Python 문서 작성 & OpenStack 문서 활용 사례
[Pycon KR 2017] Rst와 함께하는 Python 문서 작성 & OpenStack 문서 활용 사례
 
명령 프롬프트, Azure CLI 2.0은 과연 코딩일까?
명령 프롬프트, Azure CLI 2.0은 과연 코딩일까?명령 프롬프트, Azure CLI 2.0은 과연 코딩일까?
명령 프롬프트, Azure CLI 2.0은 과연 코딩일까?
 

[OpenStack] 공개 소프트웨어 오픈스택 입문 & 파헤치기

  • 2. [공개소프트웨어 오픈스택 입문 & 파헤치기] 클라우드 컴퓨팅과 공개 소프트웨어 최영락, 오픈스택 한국 커뮤니티 3기 대표 Ocata / Pike
  • 3. Agenda • 클라우드 컴퓨팅 소개 • 클라우드 컴퓨팅 관련 용어 • 클라우드 컴퓨팅 분야 공개 소프트웨어
  • 4. 클라우드 컴퓨팅: 개념 대형 전력회사에서 전기를 받아쓰듯이 중앙집중화 된 대형 데이터센터에서 서비스를 받고, 소프트 웨어 프로그램들도 인터넷 망을 통해서 자유롭게 빌려 쓴다. IT 자원을 구매하거나 소유할 필요 없 이, 필요한 만큼 사용료를 주고 쓰는 개념이 바로 “클라우드컴퓨팅” 이다. - 세계적 IT 미래학자 니컬러스 카
  • 6. 클라우드 컴퓨팅: 경제성 • 실제 자원 활용률: 5%~20% • 특정 시점에서만 활용률이 높음 - 스포츠 시즌: 영상 스트리밍 - 쇼핑 시즌: 초콜릿 쇼핑몰 (예: 발렌타인데이/빼빼로데이)
  • 7. 클라우드 컴퓨팅: 관련 용어 Cloud Council, “Cloud Computing Use Cases White Paper’
  • 8. 클라우드 컴퓨팅: 제공 유형에 따른 분류 Iaa S 인프라 제공 서비스 프로세싱 파워, 서버, 네트워크, 가상화 및 OS와 같은 기본적인 컴퓨팅 자원을 제공하는 클라우드 서비스 Paa S 플랫폼 제공 서비스 클라우드 컴퓨팅 환경을 통해 어플리케이션 개발 플랫폼을 제공하는 서비스. 단말을 위한 API를 제공하거나 다양한 이기종 간의 단말에서의 개발 환경을 제 공 Saa S 소프트웨어 제공 서비스 별도의 전용 소프트웨어를 제공하여 소비자가 단지 어플리케이션만을 사용하 고 어플리케이션이 실행되는 운영체제, 하드웨어 또는 네트워크 인프라는 제 어하지 않는 클라우드 서비스
  • 9. 클라우드 컴퓨팅: 사용 유형에 따른 분류 Public 공용 클라우드 제3의 회사 (예: Amazon AWS, Microsoft Azure, Google Cloud, KT uCloud, NAVER Cloud, TOAST)에서 제공하는 클라우드를 인터넷으로 접속해 사용 Private 사설 클라우드 인터넷을 통하지 않고 사내 등에 직접 하드웨어 구입 후 클라우드를 구축 . 네트워크 속도, 보안 및 법적인 문제에 따라 사용하는 경우가 많음 Hybrid 하이브리드 클라우드 공용 클라우드와 사설 클라우드의 적절한 조합
  • 10. 클라우드 컴퓨팅: 데이터센터 • 해외 & 국내 데이터센터
  • 11. 클라우드 컴퓨팅: 클라우드와 가상화 서버 가상화 vs. 네트워크 가 상화 • 서버 가상화는 매우 빠르게 성장하여 클라우드를 이루는 기반 기술이 되었습니다 ✓ 하이퍼바이저: VMware ESXi, Citrix XenServer, Microsoft Hyper-V, … ✓ 하드웨어 지원: Intel VT/VT-x, AMD-v • 네트워크 가상화를 통해 가상화된 서버 자원을 묶어 독립적인 네트워크로 사용합 니다
  • 12. 클라우드 컴퓨팅: 컨테이너 & 베어베탈 • 가상 머신은 하이퍼바이저 위에서 별도의 운영체제와 함께 동작합니다 • 컨테이너는 공통된 운영체제 (커널)를 기반으로 독립적으로 응용프로그램을 실행 합니다 • 베어베탈은 가상화 / 컨테이너 기반이 준비되어 있지 않은 물리 서버로, 베어메탈 에 가상화 / 컨테이너 서비스를 구축하여 클라우드 컴퓨팅 서비스를 만듭니다
  • 13. 클라우드 컴퓨팅: 프로그래머블 / 소프트웨어 정의 인프라 • 원하는 때 원하는 만큼 자원을 확장하거나 줄이는 과정을 수동이 아닌 프로그래밍 가능한 인프라 환경을 통해 자동으로 이루어집니다 • 인프라 전체를 소프트웨어 기반으로 제어하는 환경을 소프트웨어 정의 인프라 / 소프트웨어 정의 데이터센터 등 용어로 이야기하기도 합니다 CLOUD API
  • 14. 클라우드 컴퓨팅 관련 공개 소프트웨어 • 클라우드 컴퓨팅 구축 • 소프트웨어 기반 자동화 • 가상화 기술 • 가상 머신 운영체제 & 프로그램 • 모바일 클라우드 컴퓨팅 • 네트워크 관리 • …
  • 15. 클라우드 구축을 위한 공개 소프트웨어
  • 16. OpenNebula • 2008년 3월 기술 프리뷰 버전을 오픈소스로 릴리즈하면서 발전 • 현재는 OpenNebula Systems (이전 C12G Labs) 회사에서 운영 및 유지보수 중 • 2017년 7월 기준 버전 5.4.0으로, 3.8부터는 상업용 제품에 대해서만 유지보수 중 • 지원 하이퍼바이저: KVM, Xen, VMware ESXi, Hyper-V • 라이선스: Apache License 2
  • 17. Eucalyptus • “Elastic Utility Computing Architecture for Linking Your Programs To Useful Systems” 에 대한 약어 • 클라우드 컴퓨팅 시스템에 대한 활발한 연구와 커뮤니티를 조성하기 위해 미국 UC 산타바바라 대학에서 시작된 오픈소스 프로젝트 • 2014년 9월 휴렛펙커드 (HP)에서 인수 • 현재는 DXC Technology에서 유지보수 • 라이선스: BSD
  • 18. CloudStack • Cloud.com 사가 개발한 오픈소스 클라우드 환경 구축 소프트웨어 • GUI 기반 관리 콘솔, 멀티 하이퍼바이저, 소프트웨어 방화벽, 로드밸런서를 기본 제공 • 2011년 7월 Citrix Systems로 인수되었다가 2012년 4월 Apache 재단에 Donate • 2017년 8월 기준 버전 번호: 4.10.0.0 • 라이선스: Apache License 2
  • 19. OpenStack • Python으로 구현된 클라우드 관리를 위한 오픈소스로, 활발한 커뮤니티 활동과 함께 발전 중 • 한국 커뮤니티: 오픈스택 활성화, 대시보드 & 문서 번역 활동 등 • 라이선스: Apache License 2
  • 20. [공개소프트웨어 오픈스택 입문 & 파헤치기] 오픈스택 소개 최영락, 오픈스택 한국 커뮤니티 3기 대표 Ocata / Pike
  • 21. Agenda • OpenStack이란? • OpenStack 역사 & 릴리즈 • OpenStack 구성 요소 • OpenStack과 하이브리드 클라우드
  • 22. OpenStack (오픈스택)이란? • 클라우드 환경에서 컴퓨팅 자원과 스토리지 인프라를 셋업하고 구동하기 위해 사용하는 오픈 소스 소프트웨어 프로젝트의 집합
  • 23. OpenStack에 대한 다른 정의들 • OpenStack은 공용 (Public) 클라우드와 사설 (Private) 클라우드 구축을 가능하게 하는 오픈 소스 소프트웨어 • OpenStack은 서버, 스토리지, 네트워크들과 같은 자원들을 모두 모아, 이들을 제어하고 운영하기 위한 클라우드 Operating System • OpenStack은 오픈 소스를 기반으로 클라우드를 구축하고 운용하고자 하는 오픈 소스 개발자, 회사, 사용자들이 주축이 되어 발전하는 커뮤니티 • IaaS 형태의 클라우드 컴퓨팅 오픈 소스 프로젝트로 컴퓨팅, 스토리지, 네트워킹 자원을 관리하는 여러 개의 하위 프로젝트들로 이루어짐 • …
  • 24. • 빠른 글로벌 오픈 소스 커뮤니티 성장세 OpenStack의 성장 COMPANIES TOTAL CONTRIBUTORS AVERAGE MONTHLY CONTRIBUTORS CODE CONTRIBUTIONS 1,036 238 70,137 231 10,149 INDIVIDUAL MEMBERS COUNTRIES 121 As of July 2013 [1] OpenStack Foundation, OpenStack 3rd Birthday Presentation, Jul 10 2013 [2] http://docs.openstack.org/ko_KR/upstream-training/workflow-metrics.html#2 (Oct 2015) [3] OpenStack Foundation, OpenStack 6th Birthday Presentation, July 2016 (2015년 10월) (2016년 7월)
  • 25. • 코어 >= 5,000,000 개가 Production 환경에서 사용 중 (2017년 4월 통계) • 전체 OpenStack 환경 중 2/3 (그 외: 개발용, QA용, PoC, …) OpenStack: Production 환경 Source: User Survey, April 2017
  • 26. OpenStack을 사용하는 곳 RETAIL/E-COMMERCE FINANCIAL TELECOM ACADEMIC/RESEARCH ENERGY MANUFACTURING ENTERTAINMENT + 국내: KBS, 현대자동차, 카카오 등
  • 27. OpenStack 역사 • OpenStack 핵심 컨트리뷰터 • 초기: Rackspace & NASA • Rackspace: OpenStack의 Object Storage라고 하는 “Cloud Files” 부분 플랫폼을 개발하는 데 기여하기 시작 • NASA: 기존 "Nebula" 플랫폼을 발전시켜 컴퓨팅 자원 플랫폼을 개발하는 데 기여 • 2012년 5월: NASA와 OpenStack 관계 종료 • 2012년 9월: VMWare社가 OpenStack foundation에 가입 • 그리고, 많은 회원사 & 참여자 들이 참여하고 있음! [1] http://www.wired.com/wiredenterprise/2012/04/openstack/ The library of the Rainbow Mansion
  • 28. OpenStack 릴리즈 • 6개월 주기로 릴리즈 발표 • 릴리즈: 개발자 서밋 & 미팅에 맞추어 계획됨 • 2016년까지 OpenStack Summit에서 개발자 회의가 진행됨 (OpenStack Design Summit) • 2017년부터 PTG (Project Team Gathering)이라는 이름으로 별도 개발자 행사 개최 • 기본적으로 업그레이드 버전업 미지원 (최근부터 지원하기 시작) • 새로운 특징 및 핵심 기능들은 보통 1년을 주기로 많은 변화가 생김 릴리즈 이름 릴리즈 일자 포함된 컴포넌트 코드 이름 Austin 21 October 2010 Nova, Swift Bexar 3 February 2011 Nova, Glance, Swift Cactus 15 April 2011 Nova, Glance, Swift Diablo 22 September 2011 Nova, Glance, Swift Essex 5 April 2012 Nova, Glance, Swift, Horizon, Keystone Folsom 27 September 2012 Nova, Glance, Swift, Horizon, Keystone, Quantum, Cinder Grizzly 4 April 2013 Nova, Glance, Swift, Horizon, Keystone, Quantum, Cinder Havana 17 October 2013 Nova, Glance, Swift, Horizon, Keystone, Neutron, Cinder, Heat, Ceilometer Icehouse 17 April 2014 + Trove Juno 16 October 2014 + Sahara Kilo 30 April 2015 + Ironic Liberty 15 October 2015 + Zaqar, Manila, Designate, Barbican, Searchlight Mitaka 7 April 2016 + Magnum Newton 6 October 2016 + >10 components Ocata 22 February 2017 Pike 30 August 2018 Queens 28 February 2018 Rocky 2018년 8월 예정
  • 29. OpenStack 릴리즈 이름 • 차후 Summit이 개최되는 장소와 관련된 지명 등을 중심으로 설문 후 법적 이슈가 없는 이름을 선택 • N: Austin 서밋이 개최된 근처에 Newton House가 있음 • O: Olimpic이 설문 1위였으나, Olympic과의 유사성 등으로 3위로 선정된 Barcelona 근처 해변 이름인 Ocata가 선정
  • 30. OpenStack 구성 요소 Compute (컴퓨팅) Storage (스토리지) Network (네트워크) Nova Swift (Objects) Glance (Images) 자원 종류 OpenStack 구성 요소 이름 (Quantum) Neutron Cinder (Block) Identity (인증) Keystone
  • 31. OpenStack 구성 요소 ➔ (조금 더 쉽게 보면…) • Nova • Swift • Glance • Keystone • Horizon • Cinder • Neutron • Heat • Ceilometer • … VM 인스턴스 관리 Object 스토리지 관리 VM 이미지 관리 통합 인증 관리 웹 관리 포털 Block 스토리지 관리 (가상) 네트워크 관리 템플릿 관리 Metering 관리
  • 32. 소프트웨어로 클라우드 인프라를 자동화하는 OpenStack 단일 플랫폼 가상 머신, 컨테이너, 베어 메탈 프로그래머블 인프라 Compute, 네트워킹, 스토리지를 관리하는 API 공통 집합 ➔ “오픈” 소스, 디자인, 개발, 커뮤니티
  • 34. 새로운 기술: 커뮤니티 간 협력 Containers PaaS NFV Provisioning
  • 35. 테스트: 커뮤니케이션 & 피드백 OpenStack CI 테스트 OpenStack 서밋 & 포럼 PTG (Project Team Gathering)
  • 38. [공개소프트웨어 오픈스택 입문 & 파헤치기] 오픈스택을 설치하기 위한 시스템 준비 장태희, 오픈스택 한국 커뮤니티 3기 스터디 매니저 Ocata / Pike
  • 39. Agenda • 가상 서버 준비하기 • 우분투 서버 설치하기 • 네트워크 테스트 베드 준비하기
  • 40. 가상 서버 준비하기 – Hypervisor 설치 전 준비 ➡CPU : 4 core 이상 ➡Memory : 4GB 이상 ➡Disk : 500GB ➡Memory : 8GB 이상 (single instance 이상의 경우 인스턴스 메모리 크기 x 인스턴스의 개수) 최소 사양 권장 사양
  • 41. 가상 서버 준비하기 – VirtualBox 설치
  • 42. 우분투 서버 설치하기 – 우분투 서버 다운로드 https://www.ubuntu.com/download/server
  • 43. 우분투 서버 설치하기 – VirtualBox에서 VM 생성
  • 44. 네트워크 테스트 베드 구성하기 인터넷 모뎀인터넷 공유기 (라우터) 무선 네트워크 유선 네트워크 출처 : 오픈스택을 다루는 기술 (장현정) - 길벗출판사
  • 45. 네트워크 구성도 인터넷 AP 192.168.0.1 Ubuntu 16.04 Server HOST IP (enp0s3) 192.168.0.20 Nova Nova-api Nova-network Nova- compute Cinder KVM Keystone Glance OpenStack VM5 10.0.0.6 VM4 10.0.0.5 VM3 10.0.0.4 VM2 10.0.0.3 VM1 10.0.0.2 10.0.0.0/20 fixed IP 범위 로컬 네트워크 IP 영역 192.168.0.20 enp0s3 br100 VirtualBox를 이용한 오픈스택 설치 192.168.0.101 Fixed IP Range 10.0.0.0/20 Floating IP Range 192.168.0.128/28 출처 : 오픈스택을 다루는 기술 (장현정) - 길벗출판사
  • 47. [공개소프트웨어 오픈스택 입문 & 파헤치기] DevStack으로 오픈스택 시작하기 장태희, 오픈스택 한국 커뮤니티 3기 스터디 매니저 Ocata / Pike
  • 48. Agenda • Devstack 소개 • Devstack 설치에 필요한 settings • Devstack 설치해보기
  • 49. DevStack이란? - 복잡한 오픈스택 시스템을 자동으로 설치하여 어떻게 동작하는지 알기 위한 프로젝트 - 오픈스택을 처음 접하는 유저에게 추천 - 오픈스택의 프로젝트의 All-in-One 설치를 제공하며, 어떤 구성요소들이 있는지 확인할 수 있음 https://docs.openstack.org/devstack/latest/
  • 50. DevStack설치를 위한 사전 준비 ✓최신 버전의 Virtualbox (https://www.virtualbox.org/wiki/Downloads) ✓Intel : VT-d, VT-x / AMD : AMD-V를 지원하는 64비트 CPU ✓8GB 이상의 RAM ✓Ubuntu Server LTS 최신버전 VM에 설치 (https://www.ubuntu.com/download/server) ✓DevStack 프로젝트 repository (git://git.openstack.org/openstack-dev/devstack.git) ✓VM으로 DevStack Clone ✓local.conf 설정
  • 51. DevStack 설치에 필요한 settings ✓cp devstack/samples ../ ✓vim local.conf [[local|localrc]] ADMIN_PASSWORD=openstack DATABASE_PASSWORD=$ADMIN_PASSWORD RABBIT_PASSWORD=$ADMIN_PASSWORD SERVICE_PASSWORD=$ADMIN_PASSWORD https://docs.openstack.org/devstack/latest/configuration.html
  • 52. DevStack 설치 ✓stack 유저 추가 $ sudo useradd –U –G sudo –s /bin/bash –m stack $ echo "stack ALL=(ALL) NOPASSWD: ALL" | sudo tee /etc/sudoers.d/stack $ sudo passwd stack $ sudo su – stack ✓DevStack 다운로드 $ git clone https://git.openstack.org/openstack-dev/devstack $ cd devstack
  • 53. DevStack 설치 ✓sudo apt update && sudo apt dist-upgrade && sudo apt install git ✓local.conf 파일 생성하기 ✓설치 시작 ./stack.sh
  • 56. DevStack 설치 후 주의사항 ✓DevStack이 설치된 VM의 OS를 종료하지 말고 스냅샷을 만드십시오 ✓DevStack을 VM 내에서 종료해야 할 경우 unstack.sh를 이용하십시오 ✓github에서 DevStack을 Clone한 뒤 실행 전 branch를 버전에 맞게 checkout하여 주십시오 ✓Virtualbox에서 32bit 옵션만 있는 경우 BIOS에서 Virtualization Technology 활성화와 Hyper-V가 꺼져 있는지 확인하여 주십시오
  • 57. [공개소프트웨어 오픈스택 입문 & 파헤치기] 오픈스택 매뉴얼 설치: Newton 버전 (1) 신호철 & 최영락, 오픈스택 한국 커뮤니티 3기 운영진 Ocata / Pike
  • 58. Agenda • OpenStack Newton 버전 소개 • 한글 설치 가이드 소개 • 설치 개요 • 설치 과정 (1/2) - 기본 환경 구성 - 인증 서비스 (Keystone) 구성 - 이미지 서비스 (Glance) 구성 - Compute 서비스 (Nova) 구성
  • 59. OpenStack Newton 버전 • 2016년 10월 6일 출시 • OpenStack 14번째 릴리즈 • 2018년 기준, 실제 Production에서도 많이 사용하는 안정 버전
  • 60. OpenStack 한글 설치 가이드 소개 • https://docs.openstack.org/ko_KR/ 에서 여러 릴리즈에 대한 설치 가이드 확인 가능 (또는 docs.openstack.org -> “More Releases & Languages” -> “한국어 (Korean)”
  • 61. OpenStack Newton 설치 가이드 • 본 설치 과정은 Ubuntu 16.04에서 Newton 버전을 설치 : https://docs.openstack.org/newton/ko_KR/install-guide-ubuntu/
  • 62. 설치 개요 • 설치 과정 참고: http://bit.ly/openstack-newton-manual-steps • 1편 - 기본 환경 구성 (VirtualBox 하드웨어 설정, hosts 설정, ping 테스트, chrony 설치) - 인증 서비스 (Keystone), 이미지 서비스 (Glance), Compute 서비스 (Nova) 구성 • 2편 - 네트워킹 서비스 (Neutron), 대시보드 서비스 (Horizon), 블록 스토리지 서비스 (Cinder) 구성
  • 63. 기본 환경 구성 - VirtualBox 예시 • https://www.ubuntu.com/download 에서 Ubuntu Server 또는 Desktop iso 다운로드 • 가상 머신 2대 준비 & 설치 ### Controller node - network device 1: 호스트전용 네트워크 (enp0s3) - network device 2: 브리지모드 (enp0s8) - network device 3: NAT (enp0s9) - disk : 20G ( OS용) - HOST NAME : controller ### Compute node - network device 1: 호스트전용 네트워크 (enp0s3) - network device 2: 브리지모드 (enp0s8) - network device 3: NAT (enp0s9) - disk : 20G ( OS용 ) - disk 1 : 8G ( Block Storage service) - disk 2 : 8G * 3ea ( Object Storage services ) - HOST NAME : compute
  • 64. 설치 Demo • 참고 사항 - 설치 데모에서는 vi 편집기 사용을 가정하였습니다. 익숙하지 않은 경우, vi 대신 nano 편집기를 사용합니다. : “vi /etc/network/interfaces” 대신 “nano /etc/network/interfaces” 사용 => Ctrl+O: 파일 저장, Ctrl+X: 편집기 종료 - 언급하였던 http://bit.ly/openstack-newton-manual-steps 및 https://docs.openstack.org/newton/ko_KR/install-guide-ubuntu/ 문서를 참고하여 설치 과정을 자세히 확인할 수 있습니다. - 다른 배포판 (CentOS, SUSE) 설치시, 배포판 특성에 따른 차이는 있으나, 전체적인 설치 과정은 동일합니다.
  • 65. [공개소프트웨어 오픈스택 입문 & 파헤치기] 오픈스택 매뉴얼 설치: Newton 버전 (2) 신호철 & 최영락, 오픈스택 한국 커뮤니티 3기 운영진 Ocata / Pike
  • 66. Agenda • 설치 개요 • 설치 과정 (2/2) - 네트워킹 서비스 (Neutron) 구성 - 대시보드 서비스 (Horizon) 구성 - 블록 스토리지 서비스 (Cinder) 구성
  • 67. OpenStack Newton 설치 가이드 • 본 설치 과정은 Ubuntu 16.04에서 Newton 버전을 설치 : https://docs.openstack.org/newton/ko_KR/install-guide-ubuntu/
  • 68. 설치 개요 • 설치 과정 참고: http://bit.ly/openstack-newton-manual-steps • 1편 - 기본 환경 구성 (VirtualBox 하드웨어 설정, hosts 설정, ping 테스트, chrony 설치) - 인증 서비스 (Keystone), 이미지 서비스 (Glance), Compute 서비스 (Nova) 구성 • 2편 - 네트워킹 서비스 (Neutron), 대시보드 서비스 (Horizon), 블록 스토리지 서비스 (Cinder) 구성
  • 69. 설치 Demo • 참고 사항 - 설치 데모에서는 vi 편집기 사용을 가정하였습니다. 익숙하지 않은 경우, vi 대신 nano 편집기를 사용합니다. : “vi /etc/network/interfaces” 대신 “nano /etc/network/interfaces” 사용 => Ctrl+O: 파일 저장, Ctrl+X: 편집기 종료 - 언급하였던 http://bit.ly/openstack-newton-manual-steps 및 https://docs.openstack.org/newton/ko_KR/install-guide-ubuntu/ 문서를 참고하여 설치 과정을 자세히 확인할 수 있습니다. - 다른 배포판 (CentOS, SUSE) 설치시, 배포판 특성에 따른 차이는 있으나, 전체적인 설치 과정은 동일합니다.
  • 70. [공개소프트웨어 오픈스택 입문 & 파헤치기] 오픈스택 사용하기 - Horizon 대시보드 신호철 & 최영락, 오픈스택 한국 커뮤니티 3기 운영진 Ocata / Pike
  • 71. Agenda • Horizon 대시보드란 • Horizon 대시보드 사용해보기 • 네트워크 생성 • 이미지 생성 • flavor 생성 • 인스턴스 생성 • 블록 스토리지 생성 • ssh 접속과 볼륨 연결 확인
  • 72. Horizon 대시보드란 • 웹 대시보드를 통해 OpenStack 자원을 관리하는 프로젝트 • Python Django + Angular JS로 구현됨
  • 76. Horizon 대시보드 사용해보기 – 주요 용어 • 사용자 (User)와 프로젝트 (Projects) ➢ 한 사용자는 여러 프로젝트에 속할 수 있습니다. • 인스턴스 (Instance) ➢ OpenStack에서는 설치 환경 내에서 가상 머신이 실행 중인 대상을 이야기합니다. • 인스턴스 유형 (Instance Type) ➢ OpenStack은 VirtualBox와 달리, 미리 인스턴스 유형을 지정하고 (CPU, 램, 디스크 용량 등), 해당 인스턴스 유형을 사용하도록 되어 있습니다. • OpenStack에 있는 2가지 유형의 IP 주소 ➢ Fixed IP: 인스턴스가 생성된 이후 종료될 때까지 변하지 않는 IP 주소 (관리용) ➢ Floating IP: 서비스를 위해 필요에 따라 인스턴스에 연결/해제하는 IP 주소 (서비스용)
  • 77. Horizon 대시보드 사용해보기 – 네트워크 유형 • 프로바이더 네트워크 ➢ 사용하는 환경 내에서 주어지는 라우터 등 네트워크 인프라를 사용하는 경우 ➢ 다른 네트워크 장비와 같이 서비스를 구성하는 경우 보통 사용 • 셀프 서비스 네트워크 ➢ OpenStack Neutron에서 가상 네트워크 라우터 등을 통해 네트워크를 연계하여 사용
  • 78. Horizon 대시보드 사용해보기 – 살펴볼 과정 1. 외부 네트워크 생성: 물리 네트워크 인프라와 연계 2. 내부 네트워크 생성: 인스턴스가 사용할 가상 네트워크 3. 이미지 생성: 사용할 인스턴스 이미지 직접 등록 4. Flavor 생성: 인스턴스 유형을 미리 정하기 5. 인스턴스 생성: 1~4를 기반으로 인스턴스를 생성 6. 블록 스토리지 생성: 가상 디스크 추가 가능 7. ssh 접속과 볼륨 연결 확인: 인스턴스 접속 Internet CPU 2개 램 4GB
  • 79. 네트워크 외부 네트워크 생성 provider 생성 1.관리자 2.네트워크 3.네트워크 생성 서브넷 생성 1.프로젝트 2.네트워크 3.서브넷 추가
  • 80. 네트워크 내부 네트워크 생성 demo 계정으로 접속 1.프로젝트 2.네트워크 3.네트워크 생성 4.라우터 5.라우터 생성 6.네트워크 토폴로지
  • 81. 이미지 올리기 순서 1. 관리자 2. 이미지 3. 이미지생성 4 이미지 이름 5. 이미지 설명 6. 이미지 소스 유형 파일 검색 7. 포맷 8. 이미지 생성
  • 83. 인스턴스 생성 1. Compute 2. 인스턴스 3. 인스턴시작 4. 인스턴스 이름 5. 이미지 선택 6. flavoer 선택 7. 네트워크 선택 8. 보안그룹 선택 9. 키페어 생성 10. 인스턴스 시작
  • 84. 블록 스토리지 사용 1. Compute 2. 볼륨 3. 볼륨생성 4. 볼륨이름 5. 크기 6. 볼륨생성
  • 85. ssh 접속과 볼륨 연결 확인 Cirros 접속 정보 USER ID : cirros Password : cubswin:)
  • 86. [공개소프트웨어 오픈스택 입문 & 파헤치기] 오픈스택 사용하기 - 명령어기반(CLI) 신호철 & 최영락, 오픈스택 한국 커뮤니티 3기 운영진 Ocata / Pike
  • 87. Agenda • OpenStack CLI 소개 • OpenStack CLI 활용하기 • 이미지 올리기 • 프로젝트 네트워크 생성 • 인스턴스 생성 • 블록 스토리지 사용
  • 88. OpenStack CLI 소개 • CLI: Command-Line Interfaces • OpenStack 각 구성 요소에 대한 API를 직접 호출하여 원하는 작업을 명령어로 수행 ➢ 참고: OpenStack은 각 구성요소별로 API 제공 ✓ Nova (Compute API): https://developer.openstack.org/api-ref/compute ✓ Neutron (Networking API): https://developer.openstack.org/api-ref/networking ✓ Keystone (Identity API): https://developer.openstack.org/api-ref/identity ✓ … • 통합 CLI 툴 제작 ➢ 이전에는 nova / neutron / keystone 등 따로 CLI 명령어를 사용해야 했음 ➢ 현재 통합 클라이언트: openstackclient (명령어: “openstack”)
  • 89. OpenStack CLI 활용하기 • 참고 문서: 한글 OpenStack 설치 가이드 (URL: https://docs.openstack.org/ko_KR/install-guide ) • 데모는 Ocata 버전을 기준으로 하나, 차후 버전에서도 동일 방식으로 사용 가능 ➢ 클라이언트 환경 스크립트 : https://docs.openstack.org/ocata/ko_KR/install-guide-ubuntu/keystone-openrc.html (참고: DevStack 환경에서는 “source openrc [사용자명] [프로젝트명]”을 사용) ➢ 이미지 올리기 : https://docs.openstack.org/ocata/ko_KR/install-guide-ubuntu/glance-verify.html ➢ 인스턴스 생성 (네트워크, 볼륨 등 포함) : https://docs.openstack.org/ocata/ko_KR/install-guide-ubuntu/launch-instance.html
  • 90. 이미지 올리기( glance service) 각종 OS 이미지 다운로드 URL : https://docs.openstack.org/image-guide/obtain- images.html 이미지 업로드시 사용하는 CLI 명령어 openstack image create 옵션 --file cirros-0.3.5-x86_64-disk.img 파일 명을 지정 --disk-format qcow2 디스크 포맷 방식 --container-format bare 컨테이넛 포맷 방식 --public 모든 프로젝트가 공유가 할진거지 정의 디스크 포맷 방식에 종류 URL: https://docs.openstack.org/image- guide/image-formats.html 4. 이미지 리스트 확인
  • 91. 프로젝트 네트워크 생성 1. 컨트롤러 노드에서 admin credential 을 소스로 하여 사용자 전용 CLI 명령에 대한 엑세스를 갖습니다. 2. 네트워크 생성 3. 네트워크 서브넷 생성 openstack subnet create -- network provider --allocation-pool start=START_IP_ADDRESS,en d=END_IP_ADDRESS --dns-nameserver DNS_RESOLVER --gateway PROVIDER_NETWORK_GATE WAY --subnet-range PROVIDER_NETWORK_CIDR provider
  • 92. 프로젝트 네트워크 생성(self service) 1. 컨트롤러 노드에서 demo credential 을 소스로 하여 사용자 전용 CLI 명령에 대한 엑세스를 갖습니다. 2. 네트워크 생성 3. 네트워크에 서브넷 을 생성 openstack subnet create --network selfservice --dns-nameserver DNS_RESOLVER --gateway SELFSERVICE_NETWORK_GATEWAY --subnet-range SELFSERVICE_NETWORK_CIDR selfservice
  • 93. 프로젝트 네트워크 생성(self service) 라우터 생성
  • 94. 인스턴스 생성 가장 작은 디폴트 flavor는 인스턴스 당 512 MB 메모리를 소비합니 다. 4 GB보다 적은 메모리를 갖는 compute 노드 환경에서는, 인스턴스 당 64 MB만을 필요로 하는 m1.nano flavor로 생성할 것을 권장 테스트 목적으로 CirrOS 이미지를 해당 flavor로 사용합니다 flavor
  • 95. 인스턴스 생성 1. demo 프로젝트 credential을 소스로 사용 2. 키 패어를 생성하고 퍼블릭 키를 추가하세요: ssh-keygen -q -N "" openstack keypair create --public-key ~/.ssh/id_rsa.pub mykey 3. 키 페어 추가 확인 openstack keypair list 키페어
  • 96. 인스턴스 생성 시큐리티 그룹 규칙 icmp ssh 룰 허용
  • 97. 인스턴스 생성 1.프로바이더 인스턴스 2. 셀프 서비스 네트워크 인스턴스
  • 98. 블록 스토리지 1. 볼륨을 인턴스에 연결 2. 볼륨 목록 3. SSH 상용하여 인스턴스에 엑세스 하고 /dev/vdb 블록 스토리지 장치에 대한 볼륨 검증 fdisk 명령어 사용 openstack server add volume INSTANCE_NAME VOLUME_NAME openstack volume list +--------------------------------------------+--------------+--------+------+-----------------------------------------------+ | ID | Display Name | Status | Size | Attached to | +--------------------------------------------+--------------+--------+------+-----------------------------------------------+ | a1e8be72-a395-4a6f-8e07-856a57c39524 | volume1 | in-use | 1 | Attached to provider-instance on /dev/vdb | +--------------------------------------------+--------------+--------+------+-----------------------------------------------+
  • 100. [공개소프트웨어 오픈스택 입문 & 파헤치기] 오픈스택 공개 소프트웨어 - 오픈스택 Swift 소개 & 설치 - 오픈스택 한국 커뮤니티 3기 운영진 Ocata / Pike
  • 101. Agenda • Object Storage 란? • Openstack Swift 의 구조 • Devstack 으로 Openstack Swift 설치하기
  • 102. What is Object Storage? • Object : 그림, 영상, 문서와 같이 형태가 각기 다른 비정형 데이터 • Object Storage : 비정형 데이터를 저장/관리하기 위한 스토리지 < 특징 > • 계층 구조를 가지지 않고, 평평한 구조를 갖는다 • Object 의 일부분만 수정할 수 없다 • HTTP 기반의 REST API를 이용하여 Object 를 다룬다
  • 103. • Openstack 에서 제공하는 Object Storage • 독립적으로 구축이 가능하다 • 스토리지의 확장이 용이하다 • 기본 3개의 데이터 복제본을 가진다 • Eventually Consistency Storage 이다 Openstack Swift
  • 104. Openstack Swift 의 개념 구성 요 소 • Account swift 의 최상위 개념으로 swift 를 이용하기 위한 계정 Account 는 container를 정의하기 위한 namespace • Container Object 를 저장하는 공간. Container 이름은 하나의 Account 내에서는 중복될 수 없다 • Object 문서, 이미지, 영상 과 같은 비정형 데이터 swift 에서는 단일 object 에 대해 최대 5GB까지 지원한 다. (그 이상의 파일은 일정 단위로 쪼개어 업로드해야한다) Account Container Container Container Container Object
  • 105. Openstack Swift의 구성 요소 (서 버) • Proxy-Server 클라이언트의 요청을 받아, 인증/로깅/과금 등을 처리하고 요청을 적절한 서버로 전달해주는 서버 요청을 해석하여, account/container/object 로 요청을 전달한다 • Account-Server account 정보를 저장하는 서버 • Container-Server Container 정보를 저장하는 서버 • Object-Server Object 를 실제 디스크에 저장하는 서버
  • 106. Ring 이란 ? • Openstack Swift 는 데이터를 분산하여 저장하는 분산 스토리지 • Account / Container / Object 가 어디에(어느 서버의 어느 디스크에) 저장되어야 할지 혹은 저장되어 있는지 기록하는 파일 • Proxy, Account, Container, Object 모든 서버가 동일한 내용의 Ring 을 가지고 있어야한다
  • 107. Ring 의 구조 • device 목록 테이블 0 1 2 3 dict of device: 0 region: 1 ip: 10.1.1.4 port: 3345 device: /dev/sdb1 dict of device: 1 region: 2 ip: 10.1.1.5 port: 3345 device: /dev/sdb1 dict of device: 2 region: 1 ip: 10.1.1.6 port: 3345 device: /dev/sdb1 dict of device: 3 region: 2 ip: 10.1.1.4 port: 3345 device: /dev/sdb2
  • 108. Ring 의 구조 • devices lookup table 0 1 2 3 0 1 3 3 19 1 14 1 1 34 2 18 39 10 64 Partition Replicas Index of Device List
  • 109. Ring 의 구조 - 위치 결정하기 • Openstack Swift는 각 요소의 이름의 md5 값을 구합니다. • 예) account - md5(/AUTH_user1) • 예) container - md5(/AUTH_user1/container1) • md5 값을 Ring 을 생성할 때 지정한 partition 값으로 mod 연산을 합니다. • 예) “2205229274494a49243f23f7e653088c” % 2048 = 140 • 140 이라는 값은 device lookup table 에서의 partition 열의 번호입니다. • 해당 열의 replica 로 지정된 device 번호를 이용하여 데이터 위치를 결정합니다.
  • 110. Proxy-Server Openstack Swift 의 처리 흐름 Proxy-Server Account-Server Container-Server Object-ServerAccount-ServerAccount-Server Container-ServerContainer-Server Object-ServerObject-Server HTTP 기반 REST API 통신
  • 111. Openstack Swift 설치하기 ● Devstack 으로 설치하기 ○ 스크립트 기반의 자동 설치 ○ 쉽고 빠르게 구축 가능 ○ Keystone 을 기본 인증체계로 사용 ● SAIO (Swift All In One) 으로 설치하기 ○ Openstack Swift 의 모든 요소를 수동으로 설치/설정 ○ 구성 내용에 대해 상세하게 알 수 있음 ○ tempauth 를 기본 인증체계로 사용 ○ https://docs.openstack.org/swift/latest/development_saio.html
  • 112. VirtualBox VM 설정 ● CPU : 최소 2코어 ● 메모리 : 4GB ● Disk : 30GB ● OS : Ubuntu 16.04 LTS Server ● Network ○ enp0s3 : NAT ○ enp0s8 : Host-only network
  • 114. # 환경변수를 설정합니다. source /opt/stack/devstack/openrc admin admin # container 생성 swift post <container_name> # container 목록 보기 swift list # 오브젝트 업로드 swift upload <contianer> <object> Openstack Swift 사용해보기
  • 115. [공개소프트웨어 오픈스택 입문 & 파헤치기] 오픈스택 공개 소프트웨어 - 오픈스택 Swift 개발 환경 구성 & 테스트 오픈스택 한국 커뮤니티 3기 운영진 Ocata / Pike
  • 116. Agenda • Openstack Swift 소스코드 구조 • PyCharm 을 이용한 개발환경 구성 • Openstack Swift 코드 디버깅 및 테스트
  • 117. Openstack Swift의 구성 요소 • Proxy-Server 클라이언트의 요청을 받는 서버 • Account-Server account 정보를 저장하는 서버 • Container-Server Container 정보를 저장하는 서버 • Object-Server Object 를 실제 디스크에 저장하는 서버 • Replicator 누락된 데이터를 복제하는 데몬 • Updator Container/Object 리스트를 갱신하는 데몬 • Auditor Account/Container/Object 를 Audit 하는 데몬
  • 118. Openstack Swift 소스코드 다운로드 • Github : https://github.com/openstack/swift • Main Repository : http://git.openstack.org/cgit/openstack/swift/ • $ git clone https://github.com/openstack/swift • $ git checkout stable/ocata
  • 119. Openstack Swift 소스코드 살펴보기 • Openstack Swift 는 Python 으로 개발됨
  • 120. Openstack Swift 개발환경 구축 • 사용할 IDE : PyCharm Professional Edition - 이유: line by line debugging, Remote Debugging 이 가능. • Community Edition 을 사용할 경우 - ubuntu desktop 버전으로 devstack 설치 - VM안에 PyCharm Community Edition 을 설치하여 개발환경 구축 - 자세한 방법 - https://github.com/openstack-kr/openstack-study/blob/master/2017-first-swift/20170425/README.md
  • 121. Pycharm Professional Edition 만의 기능 Remote Debugging with Remote Interpreter
  • 122. 현재 Swift 서버가 실행되는 구조 devstack vm /usr/bin/python2.7 devstack vm안에서 직접 실행되어있다.
  • 123. Remote debugging with Remote interpreter devstack vm /usr/bin/python2.7 Pycharm이 vm의 Python Interpreter 를 직접 실행하도록 설정
  • 124. 개발환경 구성하기 1 - 소스코드 다운로드 및 동기화 1. 로컬에 swift ocata 버전의 소스코드를 다운로드 받는다. 2. devstack 으로 설치한 swift 소스코드와 동기화 구성을 한다
  • 125. 개발환경 구성하기 2 - Remote Interpreter 설정 1. PyCharm 의 Remote Interpreter 를 설정한다 2. proxy-server 실행환경 설정
  • 126. [공개소프트웨어 오픈스택 입문 & 파헤치기] 오픈스택 공개 소프트웨어 - 개발 에코시스템 소개 - 최영락, 오픈스택 한국 커뮤니티 3기 대표 Ocata / Pike
  • 127. Agenda • OpenStack에서 바라보는 개방성: Four Opens • Python으로 구현된 OpenStack • OpenStack 프로젝트 저장소 및 개발 관리 • PyPI: Python Package Index와 OpenStack • requirements와 tox • 실습: 저장소 clone, tox 실행 및 requirements 확인 • 더 알아야 할 에코시스템: 버그 & 패치 & 릴리즈 관리
  • 128. OpenStack에서 바라보는 개방성: Four Opens • Open Source (개방형 오픈 소스) • Open Design (개방형 디자인) • Open Development (개방형 개발) • Open Community (개방형 커뮤니티)
  • 129. Four Opens – 1. 개방형 오픈 소스 재사용 및 확장 가능한 진정한 의미에서의 오픈 소스 No “Enterprise Edition”
  • 130. Four Opens – 2. 개방형 디자인 요구 사항 수집 및 로드맵 승인 등 모든 절차를 대중에게 공개 모든 설계 과정을 open
  • 131. Four Opens – 3. 개방형 / 열려있는 개발 모든 소스 코드 공개를 개방된 코드 리뷰 과정을 거치며, 모든 과정은 투명하게 문서화됨
  • 132. Four Opens – 4. 개방형 / 오픈 커뮤니티 커뮤니티를 통해 설계 과정을 결정 모든 프로젝트 미팅은 공개 IRC 채널을 통해 열리며 기록
  • 133. Four Opens를 기반으로 하는 생태계
  • 134. Python으로 구현된 OpenStack • OpenStack 핵심 구성 요소, 대시보드, API, SDK (Software Development Kit) 등이 모두 Python으로 구현되어 있음 - 참고: “Python 초심자의 OpenStack” https://www.slideshare.net/openstack_kr/openstack-48778397 • 코딩 규칙, 패키지 관리, 문서화 등 또한 일반적인 Python 관리 방식을 따르고 있음 - 참고: “Rst와 함께 하는 Python 문서 작성...” https://www.slideshare.net/ianychoi/pycon-kr-2017-rst-python-openstack • PEP 8이라는 Python 스타일 가이드를 따르며, 추 가적으로 Hacking 이라는 스타일 확인 프로그램 제작 https://docs.openstack.org/hacking/
  • 135. OpenStack 프로젝트 저장소 및 개발 관리 • 프로젝트 저장소: Git을 사용함 - git.openstack.org 를 메인으로 사용 - github.com/openstack 에 미러링
  • 136. OpenStack 프로젝트 저장소 및 개발 관리 • 예: nova 저장소 (URL: http://git.openstack.org/cgit/openstack/nova) - master 브랜치: 가장 최신 소스가 반영 - 안정 (stable) 브랜치: 최종 릴리즈 (예: Ocata, Pike)가 이루어졌을 때 만들어 관리 - 태그: 특정 커밋을 기준으로 하여 버전 번호를 붙임
  • 137. PyPI – the Python Package Index • Python 패키지들에 대한 버전, 의존성을 관리 • 홈페이지: https://pypi.python.org/pypi
  • 138. PyPI – the Python Package Index와 OpenStack • 모든 OpenStack 프로그램들은 PyPI 패키지로 업로드되어 있음 (총 >500개) • 각 OpenStack 패키지는 보통 다른 PyPI 패키지를 의존성으로 포함
  • 139. requirements • 프로젝트 개발에 있어 의존성있는 라이브러리 버전을 규정함 - openstack/requirements 저장소에서 공통 requirements 관리 - test-requirements.txt 파일에 해당 저장소에 의존성있는 라이브러리 정의
  • 140. tox • OpenStack 프로젝트 저장소에서 tox 명령어 실행 가능 - 환경 설정: tox.ini에 정의 - 해당 저장소에서 실행 가능한 주요 테스트, 문서 생성 등 가능
  • 141. 실습: 저장소 clone, tox 실행 및 requirements 확인
  • 142. 더 알아야 할 에코시스템: 버그, 패치, 릴리즈 관리 • 버그 관리: Launchpad & Storyboard • 패치: Gerrit & Zuul • 릴리즈 관리 • master 버전, 안정 (stable) 버전, 릴리즈를 관리하기 위한 개발 프로세스
  • 143. [공개소프트웨어 오픈스택 입문 & 파헤치기] 오픈스택 컨트리뷰터 도전 : 번역 장태희, 오픈스택 한국 커뮤니티 3기 스터디 매니저 Ocata / Pike
  • 144. Agenda • 오픈스택 컨트리뷰션 개요 • 오픈스택 컨트리뷰션을 위한 계정 설정 • 오픈스택 프로젝트 번역하기
  • 145. 어떻게 오픈스택 프로젝트에 기여할 수 있는가? ✓클라우드를 구축하는 분이시라면 ✓멘토링과 멘티 ✓개발자이신 경우 ✓테스터이신 경우 ✓시큐리티 분야에서 활동하시는 경우 ✓문서 분야에서 활동하시는 경우 ✓UX에 관심이 있으신 디자이너 ✓번역에 관심이 있으신 경우 ✓커뮤니티 빌더 이신 경우 Source : https://wiki.openstack.org/wiki/How_To_Contribute
  • 146. 어떻게 오픈스택 프로젝트에 기여할 수 있는가? ✓클라우드를 구축하는 분이시라면 ✓멘토링과 멘티 ✓개발자이신 경우 ✓테스터이신 경우 ✓시큐리티 분야에서 활동하시는 경우 ✓문서 분야에서 활동하시는 경우 ✓UX에 관심이 있으신 디자이너 ✓번역에 관심이 있으신 경우 ✓커뮤니티 빌더 이신 경우 Source : https://wiki.openstack.org/wiki/How_To_Contribute
  • 148. OpenStack Upstream Training ✓OpenStack 개발자를 위해 OpenStack 프로젝트 technical tool 및 social interaction이 어떻게 이루어지는지 학습 ✓실제 OpenStack 프로젝트 내에서 bug를 선택하여 OpenStack upstream 소스 저장소에 반영하는 것을 목표로 함 ✓보통 OpenStack Summit 행사 이전에 열리며, 한국에서도 별도로 실시 Source : https://docs.openstack.org/ko_KR/upstream-training/
  • 149. 오픈스택에 기여하기 – 클라우드 운영자 ✓클라우드를 구축하는 분이신 경우 • 오픈스택 문서를 읽고 수정하고 싶으시다면 → git repository 이용 • 문서 내용의 문제점을 발견하셨다면 → bug report • OpenStack-operators mailing list에 가입하여 질문 답변 해주기 • User survey를 통해 커뮤니티와 소프트웨어 발전 방향 참여
  • 150. 오픈스택에 기여하기 – 개발자 ✓오픈스택 개발에 기여하고자 하시는 분 • Project Team Guide와 Infra Manual을 먼저 읽어주세요 • Gerrit review system 파악 필요 • Launchpad에 접속하여 Blueprint와 Bugs 관리 환경 살펴보기 • Contributor License Agreement 동의 필요 • Code review하기 • OpenStack developers mailing list 구독하기 • #openstack-dev IRC 채널 접속
  • 151. 오픈스택에 기여하기 – 문서 기여자 ✓오픈스택 문서에 기여하고자 하시는 분 • Openstack-manuals 혹은 각 개별 프로젝트에 참여 가능 • launchpad bug를 통해 문서의 bug report 하기 • 각 프로젝트의 문서를 정독하면서 시작
  • 152. 오픈스택에 기여하기 – 번역자 ✓오픈스택 문서를 번역하고자 하시는 분 • Internationalization team에 가입 • 약 22개국의 localization team에 참가(한국 포함) • 한국어 번역을 위한 문서 : https://wiki.openstack.org/wiki/I18nTeam/team/ko_KR • Zanata 라는 번역 플랫폼을 이용하여 손쉽게 문장 및 단어를 번역 • 번역자와 리뷰어 두 부분이 존재 • 현재 사용하고 있는 오픈스택 모든 버전의 한글화가 contributor들의 번역으로 탄생
  • 153. 오픈스택에 기여하기 위한 계정 가입 및 설정 ✓오픈스택 테스트를 위한 Linux VM 1개 준비 ✓www.openstack.org → Foundation Member로 가입 ✓www.launchpad.net → Ubuntu One 계정 가입 ✓review.openstack.org → launchpad 계정으로 로그인 한 후 username 생성, ICLA 동의 ✓SSH 공개키 생성 및 등록 ✓Zanata ID 가입 ✓Github ID : 없어도 되지만, contribution이 Github에 보이도록 하고 싶다면 Gerrit ✓ username 및 이메일을 동일하게 사용할 것
  • 154. 오픈스택에 기여하기 위한 계정 가입 및 설정
  • 155. 오픈스택에 기여하기 위한 계정 가입 및 설정
  • 159. 오픈스택 번역하기 - Zanata Leave a team 대신 Request to join team 이라고 표시
  • 166. 오픈스택 번역하기 - Zanata ✓번역 단어집 : https://wiki.openstack.org/wiki/단어집 ✓번역을 수정 할 수 있는 사람 : reviewer / coordinator ✓Zanata에는 남은 비율에 비례하여 시간 표기 ✓메뉴에서 Incomplete 체크 -> Fuzzy와 Rejected 체크 해제 ✓화살표에서 파란색 bar는 일반 참여자가 수정할 수 없음 ✓‘WORDS’ 뒤에 반드시 한글로 번역 할 때에는 띄어쓰기가 있어야 함. • Eg) deployments (bug 1508571 <https://bugs.launchpad.net/horizon/+bug/1508571>__) ✓%s의 경우 반드시 번역시에도 넣어줘야 함.
  • 167. [공개소프트웨어 오픈스택 입문 & 파헤치기] 오픈스택 컨트리뷰터 도전 : 개발 장태희, 오픈스택 한국 커뮤니티 3기 스터디 매니저 Ocata / Pike
  • 168. Agenda • 오픈스택 개발 컨트리뷰션 개요 • 오픈스택 개발 컨트리뷰션을 위한 계정 설정 • 오픈스택 개발 컨트리뷰션을 위한 개발 환경 준비 • 컨트리뷰션 사례 공유
  • 169. 어떻게 오픈스택 프로젝트에 기여할 수 있는가? ✓클라우드를 구축하는 분이시라면 ✓멘토링과 멘티 ✓개발자이신 경우 ✓테스터이신 경우 ✓시큐리티 분야에서 활동하시는 경우 ✓문서 분야에서 활동하시는 경우 ✓UX에 관심이 있으신 디자이너 ✓번역에 관심이 있으신 경우 ✓커뮤니티 빌더 이신 경우 Source : https://wiki.openstack.org/wiki/How_To_Contribute
  • 170. 어떻게 오픈스택 프로젝트에 기여할 수 있는가? ✓클라우드를 구축하는 분이시라면 ✓멘토링과 멘티 ✓개발자이신 경우 ✓테스터이신 경우 ✓시큐리티 분야에서 활동하시는 경우 ✓문서 분야에서 활동하시는 경우 ✓UX에 관심이 있으신 디자이너 ✓번역에 관심이 있으신 경우 ✓커뮤니티 빌더 이신 경우 Source : https://wiki.openstack.org/wiki/How_To_Contribute
  • 171. 오픈스택에 기여하기 – 개발자 ✓오픈스택 개발에 기여하고자 하시는 분 • Project Team Guide와 Infra Manual을 먼저 읽어주세요 • Gerrit review system 파악 필요 • Launchpad에 접속하여 Blueprint와 Bugs 관리 환경 살펴보기 • Contributor License Agreement 동의 필요 • Code review하기 • OpenStack developers mailing list 구독하기 • #openstack-dev IRC 채널 접속
  • 172. 오픈스택에 기여하기 위한 계정 가입 및 설정 ✓오픈스택 테스트를 위한 Linux VM 1개 준비 ✓www.openstack.org → Foundation Member로 가입 ✓www.launchpad.net → Ubuntu One 계정 가입 ✓review.openstack.org → launchpad 계정으로 로그인 한 후 username 생성, ICLA 동의 ✓SSH 공개키 생성 및 등록 ✓Zanata ID 가입 ✓Github ID : 없어도 되지만, contribution이 Github에 보이도록 하고 싶다면 Gerrit ✓ username 및 이메일을 동일하게 사용할 것
  • 173. 오픈스택에 기여하기 위한 계정 가입 및 설정
  • 174. 오픈스택에 기여하기 위한 계정 가입 및 설정
  • 175. 오픈스택에 기여하기 위한 계정 가입 및 설정
  • 176. 오픈스택에 기여하기 위한 계정 가입 및 설정
  • 177. 오픈스택에 기여하기 위한 계정 가입 및 설정
  • 178. 오픈스택에 기여하기 위한 계정 가입 및 설정
  • 179. 오픈스택에 기여하기 위한 계정 가입 및 설정
  • 180. 오픈스택에 기여하기 위한 계정 가입 및 설정
  • 181. 오픈스택에 기여하기 위한 계정 가입 및 설정
  • 182. 오픈스택에 기여하기 위한 git 명령어들 ✓git log ✓git status ✓git remote –v : remote URL을 추가하여 clone 받는 곳과 push 하는 repository를 다르게 설정 ✓git commit 규칙 : https://medium.com/@preslavrachev/what-s-with-the-50-72-rule-8a906f61f09c
  • 183. git review와 gerrit 이용하기 ✓git-review 설치(sudo apt install git-review) ✓git config --global user.name "Firstname Lastname" ✓git config --global user.email your_email@youremail.com ✓git clone ssh://<username>@review.openstack.org:29418/openstack-dev/sandbox ✓git review –s ✓Creating a git remote called "gerrit" that maps to: ssh://<username>@review.openstack.org:29418/openstack-dev/sandbox.git ✓ 와 같이 콘솔창에 출력되면 성공적으로 git review가 세팅
  • 184. git review와 gerrit 이용하기 ✓Dummy file 추가하기 $ cat > ko24.txt $ git add ko24.txt $ git commit -m "Test commit" $ git review ✓git review 후 gerrit URL 생성 확인
  • 185. git review와 gerrit 이용하기
  • 186. Demo
  • 187. git review 주의사항 ✓Permission Key Denied가 뜬 경우 • username을 입력하지 않았다.(git config --global gitreview.username <username>) • Openstack Foundation Member가 아니다. (Community Member는 안됨.) • Gerrit에서 ICLA Agree를 하지 않았다. • Gerrit에서 Contact Information을 넣지 않았다.(review.openstack.org -> Contact information last updated on 이 있어야 함.) • ssh key(id_rsa 말고) 를 다른 key file을 사용하였다. • git config에 gerrit.review가 중복된 경우.
  • 188. git review 주의사항 ✓branch를 따서 작업하던 도중 다른 사람의 commit이 올라오면 rebase를 통해서 master를 갱신해준 다음 push를 해주어야 함 ✓commit 여러 개를 하고 싶으면 amend로 무조건 하거나 cherry pick으로 댕겨서 작업 후 올리기. 1 work에 1 commit 원칙 ✓review에서 문제가 발생하여 patch set 2, 3을 해야하는 경우, 해당 커밋을 지우지 말고 그 상태에서 수정하여 push
  • 189. 기타 ✓기술위원회 : http://governance.openstack.org/ ✓IRC 미팅 일정: http://eavesdrop.openstack.org/ ✓의사소통 문서: http://docs.openstack.org/ko_KR/upstream-training/howitsmade- communication.html#1 ✓버그 수정 및 기타 자세한 사항 • https://github.com/openstack-kr/openstack-study/tree/master/2016-fall-upstream
  • 190. [공개소프트웨어 오픈스택 입문 & 파헤치기] 오픈스택과 REST API 최영락, 오픈스택 한국 커뮤니티 3기 대표 Ocata / Pike
  • 191. Agenda • 클라우드와 API • 클라우드 API와 CLI • OpenStack: App Hackathon 관련 내용 소개 • 클라우드 인프라를 API로 다루어 보자 • API를 제공하는 주체, 서버 파트 • API를 사용하는 주체: Curl, Postman, 모바일 앱 (with Fuse)
  • 192. 잠깐: API에 관해서 • API (Application Programming Interface) • 프로그램과 프로그램이 서로 명령을 주고 받기 위해 미리 약속해둔 일종의 규칙
  • 193. API로 클라우드 인프라를 관리하려면 • API 파악시 장점 • 어떤 구성 요소가 있는지 파악 가능 • 추상화되어 있는 기능에 대한 자세한 이해 • 시스템 구축 표준화 방안 마련 • OpenStack: CLI와 API의 차이점 • CLI에서 수행하는 모든 명령어를 API 호출로 사용 가능 • API를 활용하면 다양한 아이디어를 붙여 클라우드 소프트웨어를 만들 수 있음 • 다른 클라우드와 상호 연동 가능 • OpenStack 일부 구성 요소만을 사용하여 클라우드 서비스를 구축 가능
  • 194. OpenStack App Hackathon • 2016년 Taiwan을 시작으로 Mexico, 호주 등 다양한 국가에서 개최 • 40여 시간동안 클라우드 API를 활용한 OpenStack App을 개발
  • 195. OpenStack App Hackathon 관련 문서 • OpenStack App 개발을 위한 다양한 문서 https://www.openstack.org/appdev/
  • 196. OpenStack App Hackathon 관련 문서 • FirstApp 문서: OpenStack App 첫 개발을 위한 내용을 문서로 정리 https://developer.openstack.org/firstapp-libcloud/getting_started.html
  • 197. 클라우드 인프라를 API로 다루기 위해 필요한 것들 • 1. API를 제공하는 주체 (서버 파트) • 2. API를 사용하는 주체 (모바일 앱 with Fuse, CLI, …) http://linkeddataorchestration.com/2014/01/28/data-modeling-for-apis-part-2-rest-and-json/
  • 198. 클라우드 인프라를 API로 다루기 위해 필요한 것들 • 1. API를 제공하는 주체 (서버 파트) • “API 액세스” 메뉴에서 API 목록 확인
  • 199. 클라우드 인프라를 API로 다루기 위해 필요한 것들 • 2. API를 사용하는 주체 • 먼저, curl로 간단히 테스트하기 전에.. 문서를 봅시다 https://developer.openstack.org/firstapp-libcloud/getting_started.html
  • 200. 클라우드 인프라를 API로 다루기 위해 필요한 것들 • 2. API를 사용하는 주체 • 그런데.. 음, 다르군요 • http://controller:5000/v2.0 • http://10.0.1.4:identity https://developer.openstack.org/firstapp-libcloud/getting_started.html
  • 201. 클라우드 인프라를 API로 다루기 위해 필요한 것들 • 2. API를 사용하는 주체 • (일단 인증 기본이 되는 토큰을 가져와야 API 사용이 가능) https://docs.openstack.org/keystone/latest/api_curl_examples.html#tokens
  • 202. 클라우드 인프라를 API로 다루기 위해 필요한 것들 • 2. API를 사용하는 주체 • OpenStack Keystone: API v2와 v3가 있음 https://developer.openstack.org/api-ref/identity/
  • 203. 클라우드 인프라를 API로 다루기 위해 필요한 것들 • 2. API를 사용하는 주체 • API URL을 알아냄 ➔ http://[server URL]/identity/v3/auth/tokens https://goo.gl/b47XQf
  • 204. 클라우드 인프라를 API로 다루기 위해 필요한 것들 • 2. API를 사용하는 주체 • Postman: GUI 환경으로 API 테스트가 용이함
  • 205. 클라우드 인프라를 API로 다루기 위해 필요한 것들 • 2. API를 사용하는 주체 • 모바일 앱에서 테스트를 해 보려면? 일단 프로토타이핑이 필요한데.. https://github.com/stackerz/app
  • 206. 클라우드 인프라를 API로 다루기 위해 필요한 것들 • 2. API를 사용하는 주체 • Fuse로 만드는 방법: 마크업으로 프로토타이핑 <App> <ClientPanel> <Panel Dock="Top" Height="50" Background="#333" Padding="10"> <Text FontSize="20" Value="KCD 2018: OpenStack 앱 프로토타이핑" Alignment="Center" Color="White" /> </Panel> <StackPanel> <Image File="Assets/OpenStack_UserGroup_Korea_round.png" Width="250" Margin="50" /> <Rectangle Color="Gray" Margin="20" Height="40" CornerRadius="5"> <Text FontSize="16" Value="로그인" Color="White" Alignment="Center"/> </Rectangle> </StackPanel> </ClientPanel> </App>
  • 207. 클라우드 인프라를 API로 다루기 위해 필요한 것들 • 2. API를 사용하는 주체 • Fuse로 만드는 방법: 자바스크립트로 REST API 통신
  • 208. [공개소프트웨어 오픈스택 입문 & 파헤치기] 오픈스택과 공개 소프트웨어 비즈니스 에코시스템 최영락, 오픈스택 한국 커뮤니티 3기 대표 Ocata / Pike
  • 209. Agenda • 라이선스, 문서화 & 번역 • OpenStack 공식 프로젝트 • 릴리즈 주기 및 관리 • Gerrit & OpenStack CI • OpenStack 거버넌스 • 오픈스택 Nova: Vendor와 함께 하는 생태계 살펴보기 (사례: Hyper-V 드라이버) • 오픈스택 생태계
  • 210. 라이선스, 문서화 및 번역 • 비즈니스 에코시스템에서 꼭 필요한 기본적인 부분 • 라이선스: Apache License v2를 따름 • 문서화: docs.openstack.org 에서 문서 제공 • 번역: translate.openstack.org 를 통해 번역 참여 가능
  • 211. OpenStack 공식 프로젝트 • 잘 알려진 주요 프로젝트
  • 212. OpenStack 공식 프로젝트 • 모든 openstack 내 git 저장소에 있는 내용이 공식 프로젝트 대상이 아님 • 누구나 가이드에 따라 github.com/openstack 에 저장소 생성 가능 - https://docs.openstack.org/infra/manual/creators.html 참고 • OpenStack 공식 프로젝트: OpenStack 목표에 따라 릴리즈에 맞추어 다른 팀과 상호 협 력하여 지속적인 개발이 이루어지는 프로젝트 (“project:official” 이라는 태그를 붙임) - 예: openstack/i18n은 공식 프로젝트이나, openstack/stackalytics는 아님
  • 213. OpenStack 공식 프로젝트 https://www.openstack.org/openstack-map
  • 214. 릴리즈 주기 릴리즈 이름 릴리즈 일자 포함 구성요소 Austin 21 October 2010 Nova, Swift Bexar 3 February 2011 Nova, Glance, Swift Cactus 15 April 2011 Nova, Glance, Swift Diablo 22 September 2011 Nova, Glance, Swift Essex 5 April 2012 Nova, Glance, Swift, Horizon, Keystone Folsom 27 September 2012 Nova, Glance, Swift, Horizon, Keystone, Quantum, Cinder Grizzly 4 April 2013 Havana 17 October 2013 + Heat, Ceilometer Icehouse 17 April 2014 + Trove Juno 16 October 2014 + Sahara Kilo 30 April 2015 + Ironic Liberty 15 October 2015 (총 63개 공식 프로젝트 및 관련 구성요소) Mitaka 7 April 2016 Newton 6 October 2016 Ocata 22 February 2017 Pike 30 August 2017 Queens (2018년 2월 예정) Rocky (2018년 8월 예정) • 6개월 주기로 릴리즈 발표 - 처음에는 하위 업그레이드를 미지원하다가 약 2년 전 즈음부터 하위 업그레이드를 지원하기 시작 - 새로운 특징 및 핵심 기능들은 보통 1년을 주기로 많은 변화가 생김 • 현재 릴리즈 버전: Pike (2018년 1월 기준) Source: http://en.wikipedia.org/wiki/OpenStack http://releases.openstack.org/
  • 215. 릴리즈 관리: 릴리즈를 이루는 것들 • OpenStack 릴리즈: 여러 프로젝트에 대해 조정이 이루어지는 과정 포함 • 릴리즈 절차: 릴리즈 관리 팀에 의해 관리가 이루어짐 • 일정 공통 주기 (약 6개월) 내에서 공식 프로젝트는 다음 모델을 따름 • 릴리즈 모델 - cycle-with-milestones: 메인 개발 마일스톤을 따르는 공통 주기 - cycle-with-intermediary: 중간 단계 릴리즈를 가진 공통 주기 - cycle-trailing: 공통 주기 끝 부분에서 릴리즈가 이루어짐 - independent: 공통 주기와 무관하게 별도 릴리즈 주기를 따름
  • 216. 릴리즈 관리: 저장소 & 태그 • 릴리즈에 대한 문서 & 정보 집합: https://releases.openstack.org/ - 릴리즈 대상에 해당하는 프로젝트 저장소 및 버전, 해당 커밋 해시를 모두 정리 - 릴리즈 진행 스케줄, 릴리즈 노트 확인 가능
  • 218. Gerrit 및 OpenStack CI • 개발자 커밋은 Gerrit ( https://review.openstack.org )을 통해 패치가 관리되어 최종 머지가 이루어졌을 때 반영이 됨 • 개발자가 올린 패치를 테스트하기 위해 OpenStack CI에서 tox 등에 의해 정의된 작업을 확인함
  • 219. OpenStack 거버넌스 • OpenStack Foundation: OpenStack을 "개발, 지원, 보호, 홍보" 하기 위해 만들 어진 비영리 재단 - 개인 멤버: www.openstack.org 에 “Foundation Member”로 가입한 모두 - 기관 멤버: 플래티넘과 골드 스폰서 - 뿐만 아니라 여러 지원을 하는 회사 및 기관이 많습니다. • 여러 계층으로 구성된 리더쉽 - 이사회 (Board of Directors) - 기술 위원회 (Technical Committee) : ATC (Active Project Contributor)와 ATC (Active Technical Contributor) - 사용자 위원회 (User Committee) : AUC (Active User Contributor)
  • 220. OpenStack: Nova •Nova • 가상 머신 자원을 관리하는 OpenStack의 구성 요소 중 하나입니다. Asynchronous eventually consistent communication REST-based API Hypervisor agnostic: support for Xen ,XenServer, Hyper-V, KVM, UML and ESX is coming Horizontally and massively scalable Hardware agnostic: standard hardware, RAID not required
  • 221. OpenStack Nova의 발전 • 최초 릴리즈인 Austin에는 Nova와 Swift (오브젝트 스토리지 관리)만 존재 • 오픈 소스 하이퍼바이저 위주로 지원 시작 • Xen+Libvirt • KVM • XenAPI (for XenServer) • QEMU • 참고: 네트워크 관리에 대해서는, 가상 인스턴스 관리와 동시에 관리되어야 한다고 생각하여 Nova-network 라는 하위 구성 요소를 두어 발전 ➔ 후에 Quantum / Neutron으로 발전
  • 222. OpenStack & (Vendor) 드라이버 • 다양한 상용 / 오픈 소스 하이퍼바이저, 스토리지, 네트워크 장비 등과 호환성이 높음 Src.: https://www.openstack.org/marketplace/drivers/
  • 223. 다양한 상용 하이퍼바이저 지원 시작 • 시작은 사실 XenServer부터.. • (Xen 기반 상용 하이퍼바이저이기에 상대적으로 쉬웠을 듯)
  • 224. Nova 지원 하이퍼바이저 • http://docs.openstack.org/developer/nova/support-matrix.html • (Note: 몇몇 정보는 업데이트되지 않았을 수 있습니다)
  • 225. 사실 Hyper-V도 초창기부터… • Nova 소스 저장소: http://git.openstack.org/cgit/openstack/nova
  • 226. 그런데 어느 날 갑자기… • ?!
  • 227. (끝인 줄 알았으나) 2011년 10월, Boston에서… • OpenStack with Hyper-V clouds! http://www.slideshare.net/ppouliot/2011-essex-summit-openstackhyperv-clouds
  • 229. (관련 commit 업로드 시작) ➡?!
  • 230. 2012년 10월, Folsom Summit에서 발표 https://www.youtube.com/watch?v=M1NqqTLST3s
  • 231. OpenStack: not only Nova but also… • 실제 고려시에는 네트워크, 스토리지 등 다방면 고려 필요
  • 232. OpenStack 생태계: 업스트림과 다운스트림의 상호 교류
  • 233. [공개소프트웨어 오픈스택 입문 & 파헤치기] 오픈스택 – Sandbox를 통한 오픈스택 컨트리뷰션 워크플로우 살펴보기 최영락, 오픈스택 한국 커뮤니티 3기 대표 Ocata / Pike
  • 234. Agenda • OpenStack에서의 컨트리뷰션 워크플로우 • OpenStack: Sandbox 컨트리뷰션 환경 (Launchpad, 저장소) • Sandbox 컨트리뷰션 과정 살펴보기 • (데모)
  • 235. 일반적인 컨트리뷰션 워크플로우 • 작업을 고릅니다 (버그, 단순한 수정, 문서화, 구현) • 로컬 저장소 내 새로운 브랜치를 만듭니다 • 코드 변경사항을 만듭니다 • 업데이트하고 테스트를 추가합니다 (단위, 기능 등) • 테스트를 실행합니다 (단위, 기능 등)
  • 236. 참고: Github를 기반으로 하는 일반적인 워크플로우
  • 238. OpenStack에서의 컨트리뷰션 워크플로우 Copyright by koain (김영우), OpenStack Korea Community – 업스트림 컨트리뷰션 스터디
  • 239. 커밋 & 패치 업스트림 • Jenkins 및 벤더 CI에서 패치를 리뷰할 것입니다 • 커뮤니티 구성원이 패치를 리뷰할 것입니다 • 코멘트에 응답합니다 • 변경사항을 만들고 새로운 패치셋을 푸시합니다 • 머지 conflict를 해결합니다
  • 240. Sandbox Launchpad • openstack-dev/sandbox 저장소와 관련이 있는 보고된 버그 및 이슈를 추석 및 관리 ➢ https://launchpad.net/openstack-dev-sandbox
  • 241. Sandbox 저장소 공간 • OpenStack Sandbox 저장소 • https://review.openstack.org /#/admin/projects/openstack -dev/sandbox • Git 커밋, 패치, 리뷰 등 연습 공간 + 인프라 연동 테스트 + 컨트리뷰션을 위한 가이드 / 지원 등을 수행
  • 242. OpenStack: Sandbox 저장소 • OpenStack 학습을 시작하기 위한 훌륭한 저장소입니다 • https://git.openstack.org/cgit/openstack-dev/sandbox
  • 243. Gerrit을 활용한 워크플로우 확인 • Gerrit ➢ GitHub에서의 pull request와 비슷 ➢ 여러 사람에 의한 code review 가능
  • 244. Gerrit 리뷰 과정 in OpenStack • 점수 부여 ➢ -2: 받아들일 수 없는 수정 ➢ -1: 수정 필요한 사항 ➢ 0 : 중립 또는 자세한 comment 작성시 ➢ +1: 리뷰 결과 괜찮음 ➢ +2: 해당 프로젝트의 핵심 개발자가 괜찮음을 표현 • 일반적인 코드 병합 ➢ 2명의 핵심 개발자가 각각 +2를 주었을 때 병함됨 ➢ Workflow를 +1로 주었을 때 최종 코드 병합 이루어짐
  • 245. 코드 병합 (Merged) in OpenStack • 업로드한 코드는 patch set 단위로 관리됨 • 모든 업로드 코드는 Jenkins에 의해 업로드한 코드에 대해 자동 점검 수행 • 일반적으로 해당 프로젝트 내 +2를 2번 이상 받았을 때 Workflow +1를 주면 해당 코드에 대한 병합이 이루어짐
  • 246. Sandbox Launchpad 버그 목록 • https://bugs.launchpad.net/openstack-dev-sandbox
  • 247. 버그 리포트 – 제목: 요약하여 적기 • https://bugs.launchpad.net/openstack-dev-sandbox/+filebug
  • 248. 버그 리포트 – 세부 사항 • (실제 버그는 보다 자세한 버그 설명 필요)
  • 249. 버그 리포트 – 제출 성공 • (제출 완료)
  • 250. 버그 리포트 – 버그 할당 • 자신에게 할당 가능 • 관리자의 경우 관련 구성원에게 할당 가능
  • 251. 버그 리포트 – 버그 할당 완료 • 버그를 할당하는 이유: 해당 버그를 작업 중임을 다른 구성원에게 알림
  • 255. Gerrit 업로드 결과 • Gerrit 홈페이지에서 확인 가능 + 이메일로 다른 사람에게 리뷰 부탁 가능
  • 256. (데모/실습) • 준비 사항: Git + Git review가 동작하는 Linux/Mac OS 환경 필요 • 데모 / 실습 내용 ➢ Ubuntu 16.04 LTS 환경 ➢ git, git-review 설치 및 설정 구성 ➢ Sandbox Launchpad에 테스트 버그 등록 및 자신 할당 ➢ Sandbox 저장소에서 작업 후 커밋, 그리고 Gerrit에 보내기