37
2016610, 2016년도 IT 21 글로벌 컨퍼런스 최영락 선임연구원, 휴레이포지티브 & 오픈스택 한국 커뮤니티 운영진

OpenStack과 업스트림 컨트리뷰션 (2016 IT 21 글로벌 컨퍼런스)

Embed Size (px)

Citation preview

Page 1: OpenStack과 업스트림 컨트리뷰션 (2016 IT 21 글로벌 컨퍼런스)

2016년 6월 10일, 2016년도 IT 21 글로벌 컨퍼런스

최영락 선임연구원, 휴레이포지티브 & 오픈스택 한국 커뮤니티 운영진

Page 2: OpenStack과 업스트림 컨트리뷰션 (2016 IT 21 글로벌 컨퍼런스)

2

목차• Part 1: OpenStack 개요 및 발전 역사

• Part 2: 커뮤니티 면에서의 OpenStack

• Part 3: 업스트림 컨트리뷰션 개발 과정

• Part 4: 결론

Page 3: OpenStack과 업스트림 컨트리뷰션 (2016 IT 21 글로벌 컨퍼런스)

OpenStack 개요 및 발전 역사

Page 4: OpenStack과 업스트림 컨트리뷰션 (2016 IT 21 글로벌 컨퍼런스)

4

Cloud OS!

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

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

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

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

뜨겁습니다.

By Oliver Rist, InfoWorld [1]

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

OpenStack®은 공용 및 사설 클라우드를 만들기 위한 오픈화되고확장성이 매우

뛰어난 운영체제 입니다.Rackspace [2]

OpenStack!

가상머신(VM)

가상머신(VM)

가상머신(VM)

가상머신(VM)

가상머신(VM)

클라우드 서비스

Page 5: OpenStack과 업스트림 컨트리뷰션 (2016 IT 21 글로벌 컨퍼런스)

5

OpenStack이란?

• 클라우드 환경에서 컴퓨팅 자원과 스토리지 인프라를 셋업하고 구동하기위해 사용하는 오픈 소스 소프트웨어 프로젝트의 집합

Page 6: OpenStack과 업스트림 컨트리뷰션 (2016 IT 21 글로벌 컨퍼런스)

6

OpenStack 구성 요소

Compute (컴퓨팅)

Storage (스토리지)

Network (네트워크)

Nova

Swift (Objects)

Glance (Images)

자원종류OpenStack 구성요소이름

Quantum/Neutron

Cinder (Block)

Identity (인증) Keystone

Page 7: OpenStack과 업스트림 컨트리뷰션 (2016 IT 21 글로벌 컨퍼런스)

7

OpenStack에 대한 다른 정의들• OpenStack은 공용 (Public) 클라우드와 사설 (Private) 클라우드 구축을가능하게 하는 오픈 소스 소프트웨어

• OpenStack은 서버, 스토리지, 네트워크들과 같은 자원들을 모두 모아, 이들을 제어하고 운영하기 위한 클라우드 Operating System

• OpenStack은 오픈 소스를 기반으로 클라우드를 구축하고 운용하고자 하는오픈 소스 개발자, 회사, 사용자들이 주축이 되어 발전하는 커뮤니티

• IaaS 형태의 클라우드 컴퓨팅 오픈 소스 프로젝트로 컴퓨팅, 스토리지, 네트워킹 자원을 관리하는 여러 개의 하위 프로젝트들로 이루어짐

• …

Page 8: OpenStack과 업스트림 컨트리뷰션 (2016 IT 21 글로벌 컨퍼런스)

8

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

COMPANIES

TOTAL CONTRIBUTOR

S

AVERAGE MONTHLY

CONTRIBUTORSCODE 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

Page 9: OpenStack과 업스트림 컨트리뷰션 (2016 IT 21 글로벌 컨퍼런스)

9

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: OpenStack과 업스트림 컨트리뷰션 (2016 IT 21 글로벌 컨퍼런스)

10

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 …

Src.: http://en.wikipedia.org/wiki/OpenStack

Page 11: OpenStack과 업스트림 컨트리뷰션 (2016 IT 21 글로벌 컨퍼런스)

11

OpenStack 서밋 – (1)

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

릴리즈 명 서밋 개최 지역

Austin Austin, Texas, US

BexarSan 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

LibertyVancouver, BC, Canada

Mitaka Tokyo, Japan

Newton Austin, Texas, US

Ocata Barcelona, Spain

P… Boston, MA, US출시 (Summit 개최 전) Main Conference 개최

논의 (Design Summit 개최)

Page 12: OpenStack과 업스트림 컨트리뷰션 (2016 IT 21 글로벌 컨퍼런스)

12

OpenStack 서밋 – (2)

• 릴리즈 명: 차후 Summit이 개최되는 장소와 관련된 지명 등을 중심으로설문 후 법적 이슈가 없는 이름을 선택• N: Austin 서밋이 개최된 근처에 Newton House가 있음• O: Olimpic이 설문 1위였으나, Olympic과의 유사성 등으로 3위로 선정된 Barcelona 근처 해변 이름인 Ocata가 선정

Page 13: OpenStack과 업스트림 컨트리뷰션 (2016 IT 21 글로벌 컨퍼런스)

13

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: OpenStack과 업스트림 컨트리뷰션 (2016 IT 21 글로벌 컨퍼런스)

커뮤니티 면에서의 OpenStack

Page 15: OpenStack과 업스트림 컨트리뷰션 (2016 IT 21 글로벌 컨퍼런스)

15

OpenStack에서 바라보는 Openness

• Open Source• 재사용 및 확장 가능한 진정한 의미에서의 오픈 소스를 목표로 함• No “Enterprise Edition”

• Open Design• 요구 사항 수집 및 로드맵 승인 등 모든 절차를 대중에게 공개• 개방형 디자인의 의미보다는 모든 설계 과정을 open하겠다는 의미에 가까움

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

• Open Community• 커뮤니티를 통해 설계 과정을 결정• 모든 프로젝트 미팅은 공개 IRC 채널을 통해 열리며 기록

Page 16: OpenStack과 업스트림 컨트리뷰션 (2016 IT 21 글로벌 컨퍼런스)

16

개방형 커뮤니티의 특성• 릴리즈 주기: 고정된 주기를 통한 개발 페이스 유지

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

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

• OpenStack 공식 프로젝트와 Big Tent

• Design Summit에서의 개방성

• 공개 IRC 회의

• …

Page 17: OpenStack과 업스트림 컨트리뷰션 (2016 IT 21 글로벌 컨퍼런스)

17

• 6개월 주기로 고정하여 개발 페이스를 유지하고자 함• 계획 토론 (Blueprint & Design Summit) 목표 대상 결정 마일스톤에 따른 구현 Freezing 릴리즈 대상 패키징 RC1 버전 반복, 통합, 버그 수정 등에 의한 RC2, RC3 최종 릴리즈

• 하위 호환성(업그레이드)을 보장하지 않으며 시작하였음 점차 업그레이드를 지원하는 방향으로 개선되고 있음

OpenStack 릴리즈 주기

Page 18: OpenStack과 업스트림 컨트리뷰션 (2016 IT 21 글로벌 컨퍼런스)

18

• Contributor 참여 방식: 개인 (individual) or 회사 (company affiliation)

• 모든 유형의contribution을장려하며Stackalytics로visualization

관련 구성원

Page 19: OpenStack과 업스트림 컨트리뷰션 (2016 IT 21 글로벌 컨퍼런스)

19

관리 방식 (Governance)

• 모든 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: OpenStack과 업스트림 컨트리뷰션 (2016 IT 21 글로벌 컨퍼런스)

20

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

• 기존 프로젝트 구분 방식• 통합, 인큐베이팅, 외부, 실험적 프로젝트 등으로 구분• 통합 프로젝트 부분에서 너무 커지는 부담감이 있었음• 컨테이너 기술 등 다양한 분야를 포함 가능하도록 규모가 확장되지 않음

Page 21: OpenStack과 업스트림 컨트리뷰션 (2016 IT 21 글로벌 컨퍼런스)

21

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

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

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

Page 22: OpenStack과 업스트림 컨트리뷰션 (2016 IT 21 글로벌 컨퍼런스)

22

Design Summit에서의 개방성• Design Summit이란?• 개발자들이 마주보면서 다음 릴리즈 주기를 위한 계획을 확정짓는 장소• Working Session (특정 주제 중심의 토론), Contributor meetup (정해진 의제 없이진행), Blueprint 및 Spec 논의, …

Page 23: OpenStack과 업스트림 컨트리뷰션 (2016 IT 21 글로벌 컨퍼런스)

23

• PTG (Project Team Gathering)• 기존 Summit에서 개발자뿐만 아니라 Summit 참여자 등 많은 스케줄에의한 토론의 어려움이있었음

• 개발 RC1 버전 완료시점에 개발자들이 모여피드백 및 토론을 위해 PTG개최 예정

• 보다 많은 컨트리뷰터 및커뮤니티 구성원 참여를위한 변화의 움직임

참고: Design Summit 변화

Page 24: OpenStack과 업스트림 컨트리뷰션 (2016 IT 21 글로벌 컨퍼런스)

24

공개 IRC 회의• 모든 OpenStack 채널들은 eavesdrop.openstack.org에 기록됨

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

Page 25: OpenStack과 업스트림 컨트리뷰션 (2016 IT 21 글로벌 컨퍼런스)

25

기타• TC에서 결정이 필요한 모든 투표 안건 및 과정이 공개되어 있음

Page 26: OpenStack과 업스트림 컨트리뷰션 (2016 IT 21 글로벌 컨퍼런스)

업스트림 컨트리뷰션 개발 과정

Page 27: OpenStack과 업스트림 컨트리뷰션 (2016 IT 21 글로벌 컨퍼런스)

27

업스트림 컨트리뷰션이란?

• 실제 (OpenStack) 메인 개발이 진행되고 있는 코드에 기여하는 과정

• 개방된 분위기에서, 체계화된 과정을 통해 OpenStack에서는 업스트림컨트리뷰션을 장려하고 있음

• 업스트림 컨트리뷰션을 위해 필요한 사항• OpenStack 프로젝트 컨트리뷰션을 위해 사용하는 도구들• 각 프로젝트에 코드 기여시 원활한 커뮤니케이션 (social interaction)

• 버그 등록 및 버그 상태 업데이트• 코드 리뷰가 이루어지는 단계 및 과정

• …

• 소스 코드 뿐만 아니라 번역, 문서 수정 등도 업스트림 컨트리뷰션에 포함됨

Page 28: OpenStack과 업스트림 컨트리뷰션 (2016 IT 21 글로벌 컨퍼런스)

28

Gerrit

• GitHub에서의 pull request와비슷

• 여러사람에의한 code review 가능

Page 29: OpenStack과 업스트림 컨트리뷰션 (2016 IT 21 글로벌 컨퍼런스)

29

Gerrit 리뷰 과정• 점수부여• -2: 받아들일수없는수정• -1: 수정필요한사항• 0 : 중립또는자세한

comment 작성시• +1: 리뷰결과괜찮음• +2: 해당프로젝트의핵심개발자가괜찮음을표현

• 일반적인코드병합• 2명의핵심개발자가각각

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

Page 30: OpenStack과 업스트림 컨트리뷰션 (2016 IT 21 글로벌 컨퍼런스)

30

코드 병합 (Merged)

• 업로드한코드는 patch set 단위로관리됨

• 모든업로드코드는Jenkins에의해업로드한코드에대해자동점검수행

• 일반적으로해당프로젝트내+2를 2번이상받았을때Workflow +1를주면해당코드에대한병합이이루어짐

Page 31: OpenStack과 업스트림 컨트리뷰션 (2016 IT 21 글로벌 컨퍼런스)

31

Sandbox 저장소 공간• OpenStack Sandbox 저장소• https://review.openstack.org/#/admin/

projects/openstack-dev/sandbox• Git커밋, 패치, 리뷰등연습공간

Page 32: OpenStack과 업스트림 컨트리뷰션 (2016 IT 21 글로벌 컨퍼런스)

32

번역 업스트림 컨트리뷰션• 오픈소스번역플랫폼인 Zanata를사용하여번역에컨트리뷰션

Page 33: OpenStack과 업스트림 컨트리뷰션 (2016 IT 21 글로벌 컨퍼런스)

33

버그 관리: Launchpad

• 버그등록및상태관리

• Gerrit와연동되어버그가해결되었는지추적이용이함

Page 34: OpenStack과 업스트림 컨트리뷰션 (2016 IT 21 글로벌 컨퍼런스)

34

Blueprint 및 Spec 작성• 버그가아닌특정기능단위로개발할때는해당기능에대한자세한설명이필요

• Spec별로관리되어, 대상릴리즈에포함할것인지여부를결정함

Page 35: OpenStack과 업스트림 컨트리뷰션 (2016 IT 21 글로벌 컨퍼런스)

결론

Page 36: OpenStack과 업스트림 컨트리뷰션 (2016 IT 21 글로벌 컨퍼런스)

36

OpenStack with Open Ecosystem

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

• 기술위원회의모든투표과정을공개할만큼 Openness를실천하고있음• 소스코드개발뿐만아니라, 문서화, 번역등도컨트리뷰션에간주함

• 컨트리뷰션 Ecosystem의형성& 성장• 이러한흐름및속도는앞으로도계속지속될것으로보임

Page 37: OpenStack과 업스트림 컨트리뷰션 (2016 IT 21 글로벌 컨퍼런스)

Finished!