Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

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

1,128 views

Published on

2016년 11월 18일 (금), SOSCON 2016에서 발표한 자료입니다.
오픈스택에서 오픈 소스 컨트리뷰션이 이루어지는 다양한 활동을 오픈 소스 생태계 관점에서 설명하였습니다.

Published in: Software
  • Be the first to comment

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

  1. 1. Open Source, Design, Development & Community! 오픈스택을 통해 살펴보는 오픈 소스 컨트리뷰션 오픈스택 한국 커뮤니티 운영진 | 최영락 2016년 11월 18일 (금)
  2. 2. Part 1: OpenStack에 대해 잠깐 살펴봅시다 Part 2: 커뮤니티와 함께 발전하는 오픈스택 Part 3: 오픈스택에서의 오픈 소스 컨트리뷰션 Part 4: 결론 03 14 25 33 목차 (Table of Contents)
  3. 3. OpenStack에 대해 잠깐 살펴봅시다
  4. 4. Cloud OS! • 전통적으로, 운영체제는 하드웨어와 소프트웨어를 이어주었습니다. • OpenStack은 클라우드 환경에서 인프라와 서비스를 이어주고 있습니다. “OpenStack은 새로운 리눅스 (Linux)인가요?” 아니면, 수백만에 다양한 새로운 클라우드 비즈니스에서 주춧돌이 되는 오픈 소스 '클라우드 운영체제' 인가요? 무엇이든간에, 열기가 매우 뜨겁습니다. By Oliver Rist, InfoWorld [1] OpenStack: Rackspace와 NASA에서 발명한 또 다른 클라우드로 들어오는 오픈화된 대안 OpenStack®은 공용 및 사설 클라우드를 만들기 위한 오픈화되고 확장성이 매우 뛰어난 운영체제 입니다. Rackspace [2] OpenStack! 가상 머신 (VM) 가상 머신 (VM) 가상 머신 (VM) 가상 머신 (VM) 가상 머신 (VM) 클라우드 서비스 …
  5. 5. OpenStack이란? • 클라우드 환경에서 컴퓨팅 자원과 스토리지 인프라를 셋업하고 구동하기 위해 사용하는 오픈 소스 소프트웨어 프로젝트의 집합
  6. 6. OpenStack 구성 요소 Compute (컴퓨팅) Storage (스토리지) Network (네트워크) Nova Swift (Objects) Glance (Images) 자원 종류 OpenStack 구성 요소 이름 Quantum/Neutron Cinder (Block) Identity (인증) Keystone
  7. 7. OpenStack에 대한 다른 정의 • OpenStack은 공용 (Public) 클라우드와 사설 (Private) 클라우드 구축을 가능하게 하는 오픈 소스 소프트웨어 • OpenStack은 서버, 스토리지, 네트워크들과 같은 자원들을 모두 모아, 이들을 제어하고 운영하기 위한 클라우드 Operating System • OpenStack은 오픈 소스를 기반으로 클라우드를 구축하고 운용하고자 하는 오픈 소스 개발자, 회사, 사용자들이 주축이 되어 발전하는 커뮤니티 • IaaS 형태의 클라우드 컴퓨팅 오픈 소스 프로젝트로 컴퓨팅, 스토리지, 네트워킹 자원을 관리하는 여러 개의 하위 프로젝트들로 이루어짐 • …
  8. 8. 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월)
  9. 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
  10. 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 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 Apr 2015 + Ironic Liberty 15 Oct 2015 … Mitaka 7 Apr 2016 … Newton 6 Oct 2016 (현재 6 core + 13 optional 서비스)
  11. 11. 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 Queens Sydney, New South Wales, AU 릴리즈 (Summit 개최 전) Main Conference 개최논의 (Design Summit 개최)
  12. 12. OpenStack 서밋 – (2) • 릴리즈 명: 차후 Summit이 개최되는 장소와 관련된 지명 등을 중심으로 설문 후 법적 이슈가 없 는 이름을 선택 • N: Austin 서밋이 개최된 근처에 Newton House가 있음 • O: Olimpic이 설문 1위였으나, Olympic과의 유사성 등으로 3위로 선정된 Barcelona 근처 해변 이름인 Ocata가 선정
  13. 13. OpenStack 도입 사례 • 해외 도입 사례가 주로 소개되며, 국내에도 점차 많은 업체에서 도입 중 • User Survey 발표 (2016년 4월) • https://www.openstack.org/assets/survey/April-2016-User-Survey-Report.pdf • http://www.ciokorea.com/news/29452
  14. 14. 커뮤니티와 함께 발전하는 오픈스택
  15. 15. OpenStack에서 바라보는 Openness • Open Source • 재사용 및 확장 가능한 진정한 의미에서의 오픈 소스를 목표로 함 • No “Enterprise Edition” • Open Design • 요구 사항 수집 및 로드맵 승인 등 모든 절차를 대중에게 공개 • 개방형 디자인의 의미보다는 모든 설계 과정을 open하겠다는 의미에 가까움 • Open Development • 모든 소스 코드 공개를 개방된 코드 리뷰 과정을 거치며, 모든 과정은 투명하게 문서화됨 • Open Community • 커뮤니티를 통해 설계 과정을 결정 • 모든 프로젝트 미팅은 공개 IRC 채널을 통해 열리며 기록 [1] 서주영, 오픈 소스를 통해 개발 근육 강화하기, GDG DevFest Seoul 2016 (커뮤니티를 통해 함께)
  16. 16. 개방형 커뮤니티 특성 • 릴리즈 주기: 고정된 주기를 통한 개발 페이스 유지 • 관련 구성원: 회사/개인의 모든 관련 활동을 장려하며, Visualization • 관리 방식 (Governance): ATC  PTL  TC • OpenStack 공식 프로젝트와 Big Tent • Design Summit에서의 개방성 • 공개 IRC 회의 • …
  17. 17. OpenStack 릴리즈 주기 • 6개월 주기로 고정하여 개발 페이스를 유지하고자 함 • 계획  토론 (Blueprint & Design Summit)  목표 대상 결정  마일스톤에 따른 구현  Freezing  릴리즈 대상 패키징  RC1 버전  반복, 통합, 버그 수정 등에 의한 RC2, RC3  최종 릴리즈 • 하위 호환성(업그레이드)을 보장하지 않으며 시작하였음  점차 업그레이드를 지원하는 방향으로 개선되고 있음
  18. 18. 관련 구성원 • Contributor 참여 방식: 개인 (individual) or 회 사 (company affiliation) • 모든 유형의 contribution을 장려하며 Stackalytics로 visualization (2016년 6월) (2016년 11월)
  19. 19. 관리 방식 • 모든 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에게 주어짐
  20. 20. OpenStack 공식 프로젝트와 Big Tent – (1) • 기존 프로젝트 구분 방식 • 통합, 인큐베이팅, 외부, 실험적 프로젝트 등으로 구분 • 통합 프로젝트 부분에서 너무 커지는 부담감이 있었음 • 컨테이너 기술 등 다양한 분야를 포함 가능하도록 규모가 확장되지 않음
  21. 21. OpenStack 공식 프로젝트와 Big Tent – (2) • Big Tent: OpenStack의 openness 철학 및 상호운용성 등을 보장하는 범위 • Core services: OpenStack을 동작시키기 위해 필수적인 핵심 서비스
  22. 22. 디자인 서밋 & 개방성 • Design Summit이란? • 개발자들이 마주보면서 다음 릴리즈 주기를 위한 계획을 확정짓는 장소 • Working Session (특정 주제 중심의 토론), Contributor meetup (정해진 의제 없이 진행), Blueprint 및 Spec 논의, …
  23. 23. 공개 IRC 회의 • 모든 OpenStack 채널들은 eavesdrop.openstack.org에 기록됨 • 각 프로젝트 팀별로 미팅을 진행하며, 미팅 형식에 따른 회의록이 자동 생성
  24. 24. 기타 • TC (기술 위원회)에서 결정이 필요한 모든 투표 안건 및 과정이 공개되어 있음
  25. 25. 오픈스택에서의 오픈 소스 컨트리뷰션
  26. 26. 오픈스택에서의 오픈 소스 컨트리뷰션 • 컨트리뷰션 유형 • 버그 리포트, 버그 수정, 기능 추가, 번역, 홍보, 문서작성 등등 • 오픈스택에서 볼 수 있는 “오픈 소스” 컨트리뷰션 특징 • Gerrit을 활용한 peer 리뷰 • 인프라 관리자, 문서 기여자, 번역자 또한 동등한 컨트리뷰터! • 다양한 “오픈 소스” 도구를 인프라로 활용 • 컨트리뷰터 + 사용자 • … [1] 서주영, 오픈 소스를 통해 개발 근육 강화하기, GDG DevFest Seoul 2016
  27. 27. Gerrit을 활용한 peer 리뷰 - (1) • Gerrit • GitHub에서의 pull request 와 유사함 • 여러 사람에 의한 code review 가능
  28. 28. Gerrit을 활용한 peer 리뷰 - (2) • Gerrit 리뷰 점수 부여 • -2: 받아들일 수 없는 수정 • -1: 수정 필요한 사항 • 0 : 중립 또는 자세한 comment 작성시 • +1: 리뷰 결과 괜찮음 • +2: 해당 프로젝트의 핵심 개발자가 괜찮음을 표현 • 일반적인 코드 병합 • 2명의 핵심 개발자가 각각 +2를 주었을 때 병함됨 • Workflow를 +1로 주었을 때 최종 코드 병합 이루어짐
  29. 29. Gerrit을 활용한 peer 리뷰 - (3) • 코드 병합 (Merged 상태) • 업로드한 코드는 patch set 단 위로 관리됨 • 모든 업로드 코드는 Jenkins에 의해 업로드한 코드에 대해 자 동 점검 수행 • 일반적으로 해당 프로젝트 내 +2를 2번 이상 받았을 때 Workflow +1를 주면 해당 코 드에 대한 병합이 이루어짐
  30. 30. 인프라 관리자, 문서 기여자, 번역자 또한 동등한 컨트리뷰터! • OpenStack 공식 프로젝트 팀 • 각 Core + Optional 서비스 별로 공식 프로젝트 팀이 있음 • Cross-project 팀: 여러 프로젝트에 연관되며 동등한 팀 자격 부여 • OpenStack 문서팀 (Documentation) • OpenStack 번역팀 (I18n – Internationalization) • OpenStack 인프라팀 (Infrastructure) • …
  31. 31. 다양한 “오픈 소스“ 도구를 인프라로 활용 • IRC • 오픈 소스 프로토콜 사용을 추구하기에 Slack 등 사용을 가능한 줄임 • 모든 대화 기록 또한 오픈 소스   eavesdrop.openstack.org 오픈 소스로 구축 • Etherpad • Google Docs도 좋지만 오픈 소스 도구 사용을 추구 • Zanata • Red Hat에서 주로 컨트리뷰션하는 오픈 소스 번역 플랫폼 • 기존 Transifex 사용 중 통계 API 등 활용을 위해 (과감히) 오픈 소스 플랫폼으로 변경 • …
  32. 32. 컨트리뷰터 + 사용자 • 사례1: OpenStack + Hyper-V • OpenStack으로 Hyper-V 하이퍼바이저를 관리하는 인 프라 설치 트러블슈팅 • 해당 구성 요소 핵심 컨트리뷰터가 메일링 리스트를 통 해 답변  공개되어 저장됨
  33. 33. 결론
  34. 34. OpenStack with Open Ecosystem • OpenStack과 오픈 소스 컨트리뷰션 • 변화하는 IT (예: Docker 등 컨테이너) 및 문제 해결을 좋아하는 컨트리뷰터들이 주축이 되어 활동 • 기술 위원회의 모든 투표 과정을 공개할 만큼 Openness를 실천하고 있음 • 소스 코드 개발뿐만 아니라, 문서화, 번역 등도 컨트리뷰션에 간주 • 오픈 소스를 컨트리뷰션 하는 구성원으로서 오픈 소스 사용 또한 지향 • 컨트리뷰션 Ecosystem의 형성 & 성장 • 이러한 흐름 및 속도는 앞으로도 계속 지속될 것으로 보임 • 선순환 Ecosystem • 컨트리뷰터: 기술력 향상, 큰 규모에서의 컨트리뷰션 과정 경험, 신기술 습득 (예: Kubernetes), … • 회사: 오픈 소스 보완, 마케팅, …
  35. 35. Copyright ⓒ 2016 SAMSUNG ELECTRONICS. ALL RIGHTS RESERVED THANK YOU 감사합니다! (Questions?)

×