[SOSCON 2016] 오픈스택을 살펴보는 오픈 소스 컨트리뷰션

35
Open Source, Design, Development & Community! 오픈스택을 통해 살펴보는 오픈 소스 컨트리뷰션 오픈스택 한국 커뮤니티 운영진 | 최영락 2016년 11월 18일 (금)

Transcript of [SOSCON 2016] 오픈스택을 살펴보는 오픈 소스 컨트리뷰션

Page 1: [SOSCON 2016] 오픈스택을 살펴보는 오픈 소스 컨트리뷰션

Open Source, Design, Development & Community!

오픈스택을 통해 살펴보는오픈 소스 컨트리뷰션

오픈스택 한국 커뮤니티 운영진 | 최영락

2016년 11월 18일 (금)

Page 2: [SOSCON 2016] 오픈스택을 살펴보는 오픈 소스 컨트리뷰션

Part 1: OpenStack에 대해 잠깐 살펴봅시다

Part 2: 커뮤니티와 함께 발전하는 오픈스택

Part 3: 오픈스택에서의 오픈 소스 컨트리뷰션

Part 4: 결론

03

14

25

33

목차 (Table of Contents)

Page 3: [SOSCON 2016] 오픈스택을 살펴보는 오픈 소스 컨트리뷰션

OpenStack에 대해 잠깐 살펴봅시다

Page 4: [SOSCON 2016] 오픈스택을 살펴보는 오픈 소스 컨트리뷰션

Cloud OS!

• 전통적으로, 운영체제는 하드웨어와 소프트웨어를 이어주었습니다.

• OpenStack은 클라우드 환경에서 인프라와 서비스를 이어주고 있습니다.

“OpenStack은 새로운 리눅스 (Linux)인가요?”

아니면, 수백만에 다양한 새로운 클라우드 비즈니스에서 주춧돌이 되는 오픈 소스'클라우드 운영체제' 인가요? 무엇이든간에, 열기가 매우 뜨겁습니다.

By Oliver Rist, InfoWorld [1]

OpenStack: Rackspace와 NASA에서 발명한 또 다른 클라우드로 들어오는오픈화된 대안

OpenStack®은 공용 및 사설 클라우드를 만들기 위한 오픈화되고확장성이 매우 뛰어난 운영체제 입니다.

Rackspace [2]

OpenStack!

가상머신(VM)

가상머신(VM)

가상머신(VM)

가상머신(VM)

가상머신(VM)

클라우드서비스

Page 5: [SOSCON 2016] 오픈스택을 살펴보는 오픈 소스 컨트리뷰션

OpenStack이란?

• 클라우드 환경에서 컴퓨팅 자원과 스토리지 인프라를 셋업하고 구동하기 위해 사용하는

오픈 소스 소프트웨어 프로젝트의 집합

Page 6: [SOSCON 2016] 오픈스택을 살펴보는 오픈 소스 컨트리뷰션

OpenStack 구성 요소

Compute (컴퓨팅)

Storage (스토리지)

Network (네트워크)

Nova

Swift (Objects)

Glance (Images)

자원종류OpenStack 구성요소이름

Quantum/Neutron

Cinder (Block)

Identity (인증) Keystone

Page 7: [SOSCON 2016] 오픈스택을 살펴보는 오픈 소스 컨트리뷰션

OpenStack에 대한 다른 정의

• OpenStack은 공용 (Public) 클라우드와 사설 (Private) 클라우드 구축을 가능하게 하는

오픈 소스 소프트웨어

• OpenStack은 서버, 스토리지, 네트워크들과 같은 자원들을 모두 모아, 이들을 제어하고

운영하기 위한 클라우드 Operating System

• OpenStack은 오픈 소스를 기반으로 클라우드를 구축하고 운용하고자 하는 오픈 소스 개발자,

회사, 사용자들이 주축이 되어 발전하는 커뮤니티

• IaaS 형태의 클라우드 컴퓨팅 오픈 소스 프로젝트로 컴퓨팅, 스토리지, 네트워킹 자원을 관리하는

여러 개의 하위 프로젝트들로 이루어짐

• …

Page 8: [SOSCON 2016] 오픈스택을 살펴보는 오픈 소스 컨트리뷰션

OpenStack의 발전

• 빠른 글로벌 오픈 소스 커뮤니티 성장세

COMPANIES

TOTAL CONTRIBUTORSAVERAGE MONTHLY CONTRIBUTORS

CODE CONTRIBUTIONS

1,036 238 70,137

231

10,149INDIVIDUAL 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월)

Page 9: [SOSCON 2016] 오픈스택을 살펴보는 오픈 소스 컨트리뷰션

OpenStack 역사 – (1)

• 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

Page 10: [SOSCON 2016] 오픈스택을 살펴보는 오픈 소스 컨트리뷰션

OpenStack 역사 – (2)

• 6개월 주기로 릴리즈 발표

• 릴리즈: 개발자 서밋 미팅에 맞추어

계획됨

• 기본적으로, 업그레이드 버전업

미지원 (최근부터 지원하기 시작)

• 새로운 특징 및 핵심 기능들은 보통

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 2012Nova, Glance, Swift, Horizon, Keystone, Quantum, Cinder

Grizzly 4 April 2013Nova, Glance, Swift, Horizon, Keystone, Quantum, Cinder

Havana 17 October 2013Nova, Glance, Swift, Horizon, Keystone, Neutron, Cinder, Heat, Ceilometer

Icehouse 17 April 2014 + Trove

Juno 16 October 2014 + Sahara

Kilo 30 Apr 2015 + Ironic

Liberty 15 Oct 2015 …

Mitaka 7 Apr 2016 …

Newton 6 Oct 2016 (현재 6 core + 13 optional 서비스)

Page 11: [SOSCON 2016] 오픈스택을 살펴보는 오픈 소스 컨트리뷰션

OpenStack 서밋 – (1)

• 6개월마다 서밋 개최: Main Conference + Design Summit

• 2017년부터 변경 사항

• PTG (Project Team Gathering): 개발 점검, 차기 버전 요구사항 정리

• 서밋: Main Conference + Forum

릴리즈 명 서밋 개최 지역

Austin Austin, Texas, US

Bexar San Antonio, Texas, US

Cactus

Diablo Santa Clara, CA, US

Essex Boston, MA, US

Folsom San Francisco, CA, US

Grizzly San Diego, CA, US

Havana Portland, Oregon, US

릴리즈 명 서밋 개최 지역

Icehouse Hong Kong

Juno Atlanta, Georgia, US

Kilo Paris, France

Liberty Vancouver, BC, Canada

Mitaka Tokyo, Japan

Newton Austin, Texas, US

Ocata Barcelona, Spain

Pike Boston, MA, US

QueensSydney, New South Wales, AU

릴리즈 (Summit 개최 전) Main Conference 개최논의 (Design Summit 개최)

Page 12: [SOSCON 2016] 오픈스택을 살펴보는 오픈 소스 컨트리뷰션

OpenStack 서밋 – (2)

• 릴리즈 명: 차후 Summit이 개최되는 장소와 관련된 지명 등을 중심으로 설문 후 법적 이슈가 없

는 이름을 선택

• N: Austin 서밋이 개최된 근처에 Newton House가 있음

• O: Olimpic이 설문 1위였으나, Olympic과의 유사성 등으로 3위로 선정된 Barcelona 근처 해변

이름인 Ocata가 선정

Page 13: [SOSCON 2016] 오픈스택을 살펴보는 오픈 소스 컨트리뷰션

OpenStack 도입 사례

• 해외 도입 사례가 주로 소개되며, 국내에도 점차 많은 업체에서 도입 중

• User Survey 발표 (2016년 4월)

• https://www.openstack.org/assets/survey/April-2016-User-Survey-Report.pdf

• http://www.ciokorea.com/news/29452

Page 14: [SOSCON 2016] 오픈스택을 살펴보는 오픈 소스 컨트리뷰션

커뮤니티와 함께 발전하는 오픈스택

Page 15: [SOSCON 2016] 오픈스택을 살펴보는 오픈 소스 컨트리뷰션

OpenStack에서 바라보는 Openness

• Open Source

• 재사용 및 확장 가능한 진정한 의미에서의 오픈 소스를 목표로 함

• No “Enterprise Edition”

• Open Design

• 요구 사항 수집 및 로드맵 승인 등 모든 절차를 대중에게 공개

• 개방형 디자인의 의미보다는 모든 설계 과정을 open하겠다는 의미에 가까움

• Open Development

• 모든 소스 코드 공개를 개방된 코드 리뷰 과정을 거치며, 모든 과정은 투명하게 문서화됨

• Open Community

• 커뮤니티를 통해 설계 과정을 결정

• 모든 프로젝트 미팅은 공개 IRC 채널을 통해 열리며 기록

[1] 서주영, 오픈 소스를 통해 개발 근육 강화하기, GDG DevFest Seoul 2016

(커뮤니티를 통해 함께)

Page 16: [SOSCON 2016] 오픈스택을 살펴보는 오픈 소스 컨트리뷰션

개방형 커뮤니티 특성

• 릴리즈 주기: 고정된 주기를 통한 개발 페이스 유지

• 관련 구성원: 회사/개인의 모든 관련 활동을 장려하며, Visualization

• 관리 방식 (Governance): ATC PTL TC

• OpenStack 공식 프로젝트와 Big Tent

• Design Summit에서의 개방성

• 공개 IRC 회의

• …

Page 17: [SOSCON 2016] 오픈스택을 살펴보는 오픈 소스 컨트리뷰션

OpenStack 릴리즈 주기

• 6개월 주기로 고정하여 개발 페이스를 유지하고자 함

• 계획토론 (Blueprint & Design Summit) 목표 대상 결정

마일스톤에 따른 구현 Freezing 릴리즈 대상 패키징

RC1 버전반복, 통합, 버그 수정 등에 의한 RC2, RC3

최종 릴리즈

• 하위 호환성(업그레이드)을 보장하지 않으며 시작하였음

점차 업그레이드를 지원하는 방향으로 개선되고 있음

Page 18: [SOSCON 2016] 오픈스택을 살펴보는 오픈 소스 컨트리뷰션

관련 구성원

• Contributor 참여 방식:

개인 (individual) or 회

사 (company

affiliation)

• 모든 유형의

contribution을

장려하며

Stackalytics로

visualization

(2016년 6월)

(2016년 11월)

Page 19: [SOSCON 2016] 오픈스택을 살펴보는 오픈 소스 컨트리뷰션

관리 방식

• 모든 OpenStack Foundation 구성원은 릴리즈 Naming 투표 가능

• Summit 발표 선호도 선택 가능한 과정을 통해 참여 유도

• ATC (Active Technical Contributor)

• 최근 1년 동안 2개 릴리즈에서 code를 게시/수정하였거나, 일정 단어 이상 번역 기여자에게 자격 부여

• APC (Active Project Contributor)

• ATC이면서 참여 프로젝트에 Active하게 활동하는 부분을 강조하기 위한 단어

• PTL (Project Team Leads)

• OpenStack 공식 프로젝트를 Lead하는 사람으로, 운영 관리, 목표 진행, 기술 토론 해결 등 수행하며,

프로젝트 구성원 (APC) 내에서 선출이 이루어짐

• TC (Technical Committee)

• 전반적인 OpenStack 프로젝트에 걸쳐 기술 리더쉽을 제공하며, 선거 권한은 ATC에게 주어짐

Page 20: [SOSCON 2016] 오픈스택을 살펴보는 오픈 소스 컨트리뷰션

OpenStack 공식 프로젝트와 Big Tent – (1)

• 기존 프로젝트 구분 방식

• 통합, 인큐베이팅, 외부, 실험적 프로젝트 등으로 구분

• 통합 프로젝트 부분에서 너무 커지는 부담감이 있었음

• 컨테이너 기술 등 다양한 분야를 포함 가능하도록 규모가 확장되지 않음

Page 21: [SOSCON 2016] 오픈스택을 살펴보는 오픈 소스 컨트리뷰션

OpenStack 공식 프로젝트와 Big Tent – (2)

• Big Tent: OpenStack의 openness 철학 및 상호운용성 등을 보장하는 범위

• Core services: OpenStack을 동작시키기 위해 필수적인 핵심 서비스

Page 22: [SOSCON 2016] 오픈스택을 살펴보는 오픈 소스 컨트리뷰션

디자인 서밋 & 개방성

• Design Summit이란?

• 개발자들이 마주보면서 다음 릴리즈 주기를 위한 계획을 확정짓는 장소

• Working Session (특정 주제 중심의 토론), Contributor meetup (정해진 의제 없이 진행),

Blueprint 및 Spec 논의, …

Page 23: [SOSCON 2016] 오픈스택을 살펴보는 오픈 소스 컨트리뷰션

공개 IRC 회의

• 모든 OpenStack 채널들은 eavesdrop.openstack.org에 기록됨

• 각 프로젝트 팀별로 미팅을 진행하며, 미팅 형식에 따른 회의록이 자동 생성

Page 24: [SOSCON 2016] 오픈스택을 살펴보는 오픈 소스 컨트리뷰션

기타

• TC (기술 위원회)에서 결정이 필요한 모든 투표 안건 및 과정이 공개되어 있음

Page 25: [SOSCON 2016] 오픈스택을 살펴보는 오픈 소스 컨트리뷰션

오픈스택에서의 오픈 소스 컨트리뷰션

Page 26: [SOSCON 2016] 오픈스택을 살펴보는 오픈 소스 컨트리뷰션

오픈스택에서의 오픈 소스 컨트리뷰션

• 컨트리뷰션 유형

• 버그 리포트, 버그 수정, 기능 추가, 번역, 홍보, 문서작성 등등

• 오픈스택에서 볼 수 있는 “오픈 소스” 컨트리뷰션 특징

• Gerrit을 활용한 peer 리뷰

• 인프라 관리자, 문서 기여자, 번역자 또한 동등한 컨트리뷰터!

• 다양한 “오픈 소스” 도구를 인프라로 활용

• 컨트리뷰터 + 사용자

• …

[1] 서주영, 오픈 소스를 통해 개발 근육 강화하기, GDG DevFest Seoul 2016

Page 27: [SOSCON 2016] 오픈스택을 살펴보는 오픈 소스 컨트리뷰션

Gerrit을 활용한 peer 리뷰 - (1)

• Gerrit

• GitHub에서의 pull request

와 유사함

• 여러 사람에 의한 code

review 가능

Page 28: [SOSCON 2016] 오픈스택을 살펴보는 오픈 소스 컨트리뷰션

Gerrit을 활용한 peer 리뷰 - (2)

• Gerrit 리뷰 점수 부여

• -2: 받아들일 수 없는 수정

• -1: 수정 필요한 사항

• 0 : 중립 또는 자세한

comment 작성시

• +1: 리뷰 결과 괜찮음

• +2: 해당 프로젝트의 핵심

개발자가 괜찮음을 표현

• 일반적인 코드 병합

• 2명의 핵심 개발자가 각각 +2를 주었을 때 병함됨

• Workflow를 +1로 주었을 때 최종 코드 병합 이루어짐

Page 29: [SOSCON 2016] 오픈스택을 살펴보는 오픈 소스 컨트리뷰션

Gerrit을 활용한 peer 리뷰 - (3)

• 코드 병합 (Merged 상태)

• 업로드한 코드는 patch set 단

위로 관리됨

• 모든 업로드 코드는 Jenkins에

의해 업로드한 코드에 대해 자

동 점검 수행

• 일반적으로 해당 프로젝트 내

+2를 2번 이상 받았을 때

Workflow +1를 주면 해당 코

드에 대한 병합이 이루어짐

Page 30: [SOSCON 2016] 오픈스택을 살펴보는 오픈 소스 컨트리뷰션

인프라 관리자, 문서 기여자, 번역자 또한 동등한 컨트리뷰터!

• OpenStack 공식 프로젝트 팀

• 각 Core + Optional 서비스 별로 공식 프로젝트 팀이 있음

• Cross-project 팀: 여러 프로젝트에 연관되며 동등한 팀 자격 부여

• OpenStack 문서팀 (Documentation)

• OpenStack 번역팀 (I18n – Internationalization)

• OpenStack 인프라팀 (Infrastructure)

• …

Page 31: [SOSCON 2016] 오픈스택을 살펴보는 오픈 소스 컨트리뷰션

다양한 “오픈 소스“ 도구를 인프라로 활용

• IRC

• 오픈 소스 프로토콜 사용을 추구하기에 Slack 등 사용을 가능한 줄임

• 모든 대화 기록 또한 오픈 소스 eavesdrop.openstack.org 오픈 소스로 구축

• Etherpad

• Google Docs도 좋지만 오픈 소스 도구 사용을 추구

• Zanata

• Red Hat에서 주로 컨트리뷰션하는 오픈 소스 번역 플랫폼

• 기존 Transifex 사용 중 통계 API 등 활용을 위해 (과감히) 오픈 소스 플랫폼으로 변경

• …

Page 32: [SOSCON 2016] 오픈스택을 살펴보는 오픈 소스 컨트리뷰션

컨트리뷰터 + 사용자

• 사례1: OpenStack + Hyper-V

• OpenStack으로 Hyper-V 하이퍼바이저를 관리하는 인

프라 설치 트러블슈팅

• 해당 구성 요소 핵심 컨트리뷰터가 메일링 리스트를 통

해 답변공개되어 저장됨

Page 33: [SOSCON 2016] 오픈스택을 살펴보는 오픈 소스 컨트리뷰션

결론

Page 34: [SOSCON 2016] 오픈스택을 살펴보는 오픈 소스 컨트리뷰션

OpenStack with Open Ecosystem

• OpenStack과 오픈 소스 컨트리뷰션

• 변화하는 IT (예: Docker 등 컨테이너) 및 문제 해결을 좋아하는 컨트리뷰터들이 주축이 되어 활동

• 기술 위원회의 모든 투표 과정을 공개할 만큼 Openness를 실천하고 있음

• 소스 코드 개발뿐만 아니라, 문서화, 번역 등도 컨트리뷰션에 간주

• 오픈 소스를 컨트리뷰션 하는 구성원으로서 오픈 소스 사용 또한 지향

• 컨트리뷰션 Ecosystem의 형성 & 성장

• 이러한 흐름 및 속도는 앞으로도 계속 지속될 것으로 보임

• 선순환 Ecosystem

• 컨트리뷰터: 기술력 향상, 큰 규모에서의 컨트리뷰션 과정 경험, 신기술 습득 (예: Kubernetes), …

• 회사: 오픈 소스 보완, 마케팅, …

Page 35: [SOSCON 2016] 오픈스택을 살펴보는 오픈 소스 컨트리뷰션

Copyright ⓒ 2016 SAMSUNG ELECTRONICS. ALL RIGHTS RESERVED

THANK YOU

감사합니다!(Questions?)