오픈스택을통해살펴보는 오픈소스컨트리뷰션 Open Source, Design, Development & Community! 오픈스택한국커뮤니티운영진 최영락 2016 년 11 월 18 일 ( 금 )
목차 (Table of Contents) Part 1: OpenStack 에대해잠깐살펴봅시다 03 Part 2: 커뮤니티와함께발전하는오픈스택 14 Part 3: 오픈스택에서의오픈소스컨트리뷰션 25 Part 4: 결론 33
OpenStack 에대해잠깐살펴봅시다
Cloud OS! 전통적으로, 운영체제는하드웨어와소프트웨어를이어주었습니다. OpenStack 은클라우드환경에서인프라와서비스를이어주고있습니다. OpenStack 은새로운리눅스 (Linux) 인가요? 아니면, 수백만에다양한새로운클라우드비즈니스에서주춧돌이되는오픈소스 ' 클라우드운영체제 ' 인가요? 무엇이든간에, 열기가매우뜨겁습니다. 가상머신 (VM) 가상머신 (VM) 클라우드서비스 가상머신 (VM) 가상머신 (VM) 가상머신 (VM) By Oliver Rist, InfoWorld [1] OpenStack! OpenStack: Rackspace 와 NASA 에서발명한또다른클라우드로들어오는오픈화된대안 OpenStack 은공용및사설클라우드를만들기위한오픈화되고확장성이매우뛰어난운영체제입니다. Rackspace [2]
OpenStack 이란? 클라우드환경에서컴퓨팅자원과스토리지인프라를셋업하고구동하기위해사용하는 오픈소스소프트웨어프로젝트의집합
OpenStack 구성요소 자원종류 Compute ( 컴퓨팅 ) OpenStack 구성요소이름 Nova Swift (Objects) Storage ( 스토리지 ) Cinder (Block) Glance (Images) Identity ( 인증 ) Keystone Network ( 네트워크 ) Quantum/Neutron
OpenStack에대한다른정의 OpenStack은공용 (Public) 클라우드와사설 (Private) 클라우드구축을가능하게하는오픈소스소프트웨어 OpenStack은서버, 스토리지, 네트워크들과같은자원들을모두모아, 이들을제어하고운영하기위한클라우드 Operating System OpenStack은오픈소스를기반으로클라우드를구축하고운용하고자하는오픈소스개발자, 회사, 사용자들이주축이되어발전하는커뮤니티 IaaS 형태의클라우드컴퓨팅오픈소스프로젝트로컴퓨팅, 스토리지, 네트워킹자원을관리하는여러개의하위프로젝트들로이루어짐
OpenStack 의발전 빠른글로벌오픈소스커뮤니티성장세 COMPANIES COUNTRIES (2015 년 10 월 ) 231 INDIVIDUAL MEMBERS 10,149 121 (2016 년 7 월 ) TOTAL CONTRIBUTORS AVERAGE MONTHLY CONTRIBUTORS CODE CONTRIBUTIONS 1,036 238 70,137 As of July 2013 [1] OpenStack Foundation, OpenStack 3 rd Birthday Presentation, Jul 10 2013 [2] http://docs.openstack.org/ko_kr/upstream-training/workflow-metrics.html#2 (Oct 2015) [3] OpenStack Foundation, OpenStack 6 th Birthday Presentation, July 2016
OpenStack 역사 (1) OpenStack 핵심컨트리뷰터 초기 : Rackspace & NASA Rackspace: OpenStack의 Object Storage라고하는 Cloud Files 부분플랫폼을개발하는데기여하기시작 NASA: 기존 "Nebula" 플랫폼을발전시켜컴퓨팅자원플랫폼을개발하는데기여 2012년 5월 : NASA와 OpenStack 관계종료 2012년 9월 : VMWare 社가 OpenStack foundation에가입 그리고, 많은회원사 & 참여자들이참여하고있음! The library of the Rainbow Mansion [1] http://www.wired.com/wiredenterprise/2012/04/openstack/
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 2012 Grizzly 4 April 2013 Havana 17 October 2013 Nova, Glance, Swift, Horizon, Keystone, Quantum, Cinder Nova, Glance, Swift, Horizon, Keystone, Quantum, Cinder Nova, 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 서비스 )
OpenStack 서밋 (1) 6개월마다서밋개최 : Main Conference + Design Summit 2017년부터변경사항 PTG (Project Team Gathering): 개발점검, 차기버전요구사항정리 서밋 : Main Conference + Forum 릴리즈명 서밋개최지역 릴리즈명 서밋개최지역 Austin Austin, Texas, US Icehouse Hong Kong Bexar San Antonio, Texas, US Juno Atlanta, Georgia, US Cactus Kilo Paris, France Diablo Essex Folsom Santa Clara, CA, US Boston, MA, US San Francisco, CA, US Liberty Mitaka Newton Ocata Vancouver, BC, Canada Tokyo, Japan Austin, Texas, US Barcelona, Spain Grizzly Havana San Diego, CA, US Portland, Oregon, US Pike Boston, MA, US Sydney, New South Wales, Queens AU 릴리즈 (Summit 개최전 ) 논의 (Design Summit 개최 ) Main Conference 개최
OpenStack 서밋 (2) 릴리즈명 : 차후 Summit이개최되는장소와관련된지명등을중심으로설문후법적이슈가없는이름을선택 N: Austin 서밋이개최된근처에 Newton House가있음 O: Olimpic이설문 1위였으나, Olympic과의유사성등으로 3위로선정된 Barcelona 근처해변이름인 Ocata가선정
OpenStack 도입사례 해외도입사례가주로소개되며, 국내에도점차많은업체에서도입중 User Survey 발표 (2016 년 4 월 ) https://www.openstack.org/assets/survey/april-2016-user-survey-report.pdf http://www.ciokorea.com/news/29452
커뮤니티와함께발전하는오픈스택
OpenStack에서바라보는 Openness Open Source 재사용및확장가능한진정한의미에서의오픈소스를목표로함 No Enterprise Edition Open Design 요구사항수집및로드맵승인등모든절차를대중에게공개 개방형디자인의의미보다는모든설계과정을 open하겠다는의미에가까움 Open Development 모든소스코드공개를개방된코드리뷰과정을거치며, 모든과정은투명하게문서화됨 Open Community 커뮤니티를통해설계과정을결정 모든프로젝트미팅은공개 IRC 채널을통해열리며기록 ( 커뮤니티를통해함께 ) [1] 서주영, 오픈소스를통해개발근육강화하기, GDG DevFest Seoul 2016
개방형커뮤니티특성 릴리즈주기 : 고정된주기를통한개발페이스유지 관련구성원 : 회사 / 개인의모든관련활동을장려하며, Visualization 관리방식 (Governance): ATC PTL TC OpenStack 공식프로젝트와 Big Tent Design Summit에서의개방성 공개 IRC 회의
OpenStack 릴리즈주기 6개월주기로고정하여개발페이스를유지하고자함 계획 토론 (Blueprint & Design Summit) 목표대상결정 마일스톤에따른구현 Freezing 릴리즈대상패키징 RC1 버전 반복, 통합, 버그수정등에의한 RC2, RC3 최종릴리즈 하위호환성 ( 업그레이드 ) 을보장하지않으며시작하였음 점차업그레이드를지원하는방향으로개선되고있음
관련구성원 Contributor 참여방식 : 개인 (individual) or 회 사 (company affiliation) (2016 년 6 월 ) 모든유형의 contribution을장려하며 Stackalytics로 visualization (2016 년 11 월 )
관리방식 모든 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 에게주어짐
OpenStack 공식프로젝트와 Big Tent (1) 기존프로젝트구분방식 통합, 인큐베이팅, 외부, 실험적프로젝트등으로구분 통합프로젝트부분에서너무커지는부담감이있었음 컨테이너기술등다양한분야를포함가능하도록규모가확장되지않음
OpenStack 공식프로젝트와 Big Tent (2) Big Tent: OpenStack 의 openness 철학및상호운용성등을보장하는범위 Core services: OpenStack 을동작시키기위해필수적인핵심서비스
디자인서밋 & 개방성 Design Summit이란? 개발자들이마주보면서다음릴리즈주기를위한계획을확정짓는장소 Working Session ( 특정주제중심의토론 ), Contributor meetup ( 정해진의제없이진행 ), Blueprint 및 Spec 논의,
공개 IRC 회의 모든 OpenStack 채널들은 eavesdrop.openstack.org 에기록됨 각프로젝트팀별로미팅을진행하며, 미팅형식에따른회의록이자동생성
기타 TC ( 기술위원회 ) 에서결정이필요한모든투표안건및과정이공개되어있음
오픈스택에서의오픈소스컨트리뷰션
오픈스택에서의오픈소스컨트리뷰션 컨트리뷰션유형 버그리포트, 버그수정, 기능추가, 번역, 홍보, 문서작성등등 오픈스택에서볼수있는 오픈소스 컨트리뷰션특징 Gerrit을활용한 peer 리뷰 인프라관리자, 문서기여자, 번역자또한동등한컨트리뷰터! 다양한 오픈소스 도구를인프라로활용 컨트리뷰터 + 사용자 [1] 서주영, 오픈소스를통해개발근육강화하기, GDG DevFest Seoul 2016
Gerrit을활용한 peer 리뷰 - (1) Gerrit GitHub에서의 pull request 와유사함 여러사람에의한 code review 가능
Gerrit을활용한 peer 리뷰 - (2) Gerrit 리뷰점수부여 -2: 받아들일수없는수정 -1: 수정필요한사항 0 : 중립또는자세한 comment 작성시 +1: 리뷰결과괜찮음 +2: 해당프로젝트의핵심개발자가괜찮음을표현 일반적인코드병합 2명의핵심개발자가각각 +2를주었을때병함됨 Workflow를 +1로주었을때최종코드병합이루어짐
Gerrit을활용한 peer 리뷰 - (3) 코드병합 (Merged 상태 ) 업로드한코드는 patch set 단위로관리됨 모든업로드코드는 Jenkins에의해업로드한코드에대해자동점검수행 일반적으로해당프로젝트내 +2를 2번이상받았을때 Workflow +1를주면해당코드에대한병합이이루어짐
인프라관리자, 문서기여자, 번역자또한동등한컨트리뷰터! OpenStack 공식프로젝트팀 각 Core + Optional 서비스별로공식프로젝트팀이있음 Cross-project 팀 : 여러프로젝트에연관되며동등한팀자격부여 OpenStack 문서팀 (Documentation) OpenStack 번역팀 (I18n Internationalization) OpenStack 인프라팀 (Infrastructure)
다양한 오픈소스 도구를인프라로활용 IRC 오픈소스프로토콜사용을추구하기에 Slack 등사용을가능한줄임 모든대화기록또한오픈소스 eavesdrop.openstack.org 오픈소스로구축 Etherpad Google Docs 도좋지만오픈소스도구사용을추구 Zanata Red Hat에서주로컨트리뷰션하는오픈소스번역플랫폼 기존 Transifex 사용중통계 API 등활용을위해 ( 과감히 ) 오픈소스플랫폼으로변경
컨트리뷰터 + 사용자 사례1: OpenStack + Hyper-V OpenStack으로 Hyper-V 하이퍼바이저를관리하는인프라설치트러블슈팅 해당구성요소핵심컨트리뷰터가메일링리스트를통해답변 공개되어저장됨
결론
OpenStack with Open Ecosystem OpenStack과오픈소스컨트리뷰션 변화하는 IT ( 예 : Docker 등컨테이너 ) 및문제해결을좋아하는컨트리뷰터들이주축이되어활동 기술위원회의모든투표과정을공개할만큼 Openness를실천하고있음 소스코드개발뿐만아니라, 문서화, 번역등도컨트리뷰션에간주 오픈소스를컨트리뷰션하는구성원으로서오픈소스사용또한지향 컨트리뷰션 Ecosystem 의형성 & 성장 이러한흐름및속도는앞으로도계속지속될것으로보임 선순환 Ecosystem 컨트리뷰터 : 기술력향상, 큰규모에서의컨트리뷰션과정경험, 신기술습득 ( 예 : Kubernetes), 회사 : 오픈소스보완, 마케팅,
THANK YOU 감사합니다! (Questions?) Copyright c 2016 SAMSUNG ELECTRONICS. ALL RIGHTS RESERVED