6. 6
Launchpad 를 사용하는 오픈 소스
(2017. 5. 27. 기준)
• 프로젝트: 40391
• 버그 리포팅 활용: 12281
• 번역 기능 활용: 2457
• (코드) Bazzar 브랜치 사용: 25344
• 블루프린트 사용: 5602
• 커뮤니티 답변 (추적) 사용: 4423
7. 7
Launchpad: 블루프린트
• 완료할 작업에 대한 구체적인 사항을 목록화하고 계획을 확인하는 공간
• 솔루션에 대한 (상세한) 설명
• 포함 항목
• 제목
• 설명
• (추적에 관한) 관련 정보
• Whiteboard
• Work Items
• 예시
• https://blueprints.launchpad.net/openstack-i18n/+spec/python35-support
8. 8
Launchpad: 버그
• 특정 프로젝트 내 구체적인 버그를 보고 & 관리
• 예시: https://bugs.launchpad.net/ubuntu/+source/linphone/+bug/566075
• 버그 상태
• New, Incomplete, Confirmed, Triaged, In Progress, Fix
Committed, Fix Released, Invalid, Opinion, Won’t fix
9. 9
Launchpad 사용 장점
• 오픈 플랫폼 & 오픈 소스
• 누구나 Launchpad에 프로젝트를 생성하여 사용 가능합니다.
• 오픈 소스로 직접 설치하여 사용 가능하다고 합니다 (전 안해봄)
• 오픈 소스 프로젝트 개발에 대한 “추적성” 확보
• 어떤 버그가 있었고, 누구에게 할당이 이루어져 수정이 이루어진 후 배포에 반영되었는가?
• 새로 제안된 기능이 특정 마일스톤 기간 내 개발 진행에 문제가 없는가?
• 프로젝트 그룹 & 구성원 관리 용이
• 여러 프로젝트를 묶어 그룹화하여 표현 가능
• 관리자 그룹 지정 등에 따른 Launchpad 프로젝트 권한 관리
• 카르마(업보?!)
10. 10
Launchpad 계정 만드세요
• Ubuntu One 계정 만들기
• Launchpad ID가 생기며 프로필 공간도 생김
• 예시: https://launchpad.net/~ianychoi
• 일종의 OpenID 개념으로 다른 로그인 활용 가능
• 예시: https://review.openstack.org 로그인
• 참고: 이메일 주소 나중에 추가/변경도 가능
• 그 다음 할 일은?
• 관심있는 프로젝트에 참가
• 번역, 버그 리포팅 등등
13. 13
OpenStack에 대한 다른 정의들
• OpenStack은 공용 (Public) 클라우드와 사설 (Private) 클라우드 구축을
가능하게 하는 오픈 소스 소프트웨어
• OpenStack은 서버, 스토리지, 네트워크들과 같은 자원들을 모두 모아,
이들을 제어하고 운영하기 위한 클라우드 Operating System
• OpenStack은 오픈 소스를 기반으로 클라우드를 구축하고 운용하고자 하는
오픈 소스 개발자, 회사, 사용자들이 주축이 되어 발전하는 커뮤니티
• IaaS 형태의 클라우드 컴퓨팅 오픈 소스 프로젝트로 컴퓨팅, 스토리지,
네트워킹 자원을 관리하는 여러 개의 하위 프로젝트들로 이루어짐
• …
14. 14
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
16. 16
Launchpad & OpenStack과 인연 – (2)
• 초창기 개발부터 함께 한 nova & swift
• https://launchpad.net/swift
• https://launchpad.net/nova
17. 17
OpenStack: Gerrit 사용
• https://review.openstack.org/
• 2011년 7월부터 (지금도 여전히) 사용
• Git 기반 코드 관리 + 코드 리뷰 및 의견 교환을 위해 사용
• 다른 프로젝트도 많이 사용
• Opendaylight, ONOS, …
19. 19
OpenStack: Blueprint & Spec
• Blueprint 기능 정의 명세서에 대한 리뷰 & 의견 교환 & 추적 필요성
• OpenStack 프로젝트마다 선호도가 다름
• Blueprint만으로도 충분 vs. Blueprint & Spec 동시 사용 vs. …
• 예시
• https://blueprints.launchpad.net/openstack-manuals/+spec/archiving
• https://review.openstack.org/#/c/426047/
• http://specs.openstack.org/openstack/docs-specs/specs/pike/archiving.html
21. 21
첫 Launchpad 버그 보고
• OpenStack 문서 페이지에 “한국어”가 아닌 “한국의”로 되어 있었음
• 리포팅: https://bugs.launchpad.net/openstack-manuals/+bug/1474452
• OpenStack Gerrit에서 수정: https://review.openstack.org/#/c/201647/
22. 22
Tokyo 서밋: Upstream Training때
• Upstream Training (현재 Upstream Institute)이란?
• OpenStack 개발자를 위해 OpenStack 프로젝트 technical tool 및 social
interaction이 어떻게 이루어지는지를 이틀 동안 학습
• 실제 OpenStack 프로젝트 내에서 bug (문서 오류도 okay)를 선택하여 OpenStack
upstream 소스 저장소에 반영하는 것을 목표로 함
• 보통 OpenStack Summit 행사 이전에 열린다고 함
• 공식 자료 (한글): https://docs.openstack.org/ko_KR/upstream-training/
• 실제 버그를 수정해보자!
• (초보자인 경우) 간단한 문서 버그부터 시작을 권장
• “low-langing-fruit” 태그를 지정하여 링크를 공유함
• https://bugs.launchpad.net/openstack/+bugs?field.tag=low-hanging-fruit
23. 23
Tokyo 서밋: Upstream Training때 경험
• 특정 Project 내 프로그래밍 소스로부터의 버그 선택은 어려울 것 같아…
• low-hanging-fruit 버그 목록 중 하나 선택
• https://launchpad.net/openstack-manuals/+bug/1492253
24. 24
버그 내용 자세히 살펴보기
• 버그: Kilo – Ubuntu 설치 가이드에서 LVM에 대한 Tooltip Text
25. 25
버그 상태 및 이력 살펴보기
• 버그 수정을 다른 사람이 기존에 제안하였음
상태가 abandoned 으로 변경 assignee: nobody로 변경
• 버그 수정을 위해 Upstream Training 기간 중 본인이 assign 선택
27. 27
Tokyo 업스트림 트레이닝에서 배운 사항
• 버그 태깅 중요성
• 버그 “Triaging”, “Assign”, “Importance”
• OpenStack에서는 core reviewer쪽에서 버그 적합성 검토
• 버그 상태 및 중요도를 변경하는 작업을 “Triaging”이라고 함
• OpenStack에서 버그 상태는 누구나 변경 가능하나,
버그 중요도는 core reviewer만 가능하였음
• 버그 수정을 원하는 사람이 수정을 하고 싶은 경우
: self-assign
• 다른 사람에게 이미 assign되어 있는 버그를 그냥 가져오면 안됨
• Social norm
• …
28. 28
(Long-term goal after Tokyo upstream
training)
• OpenStack 프로젝트에 더 많이 참여
• 번역팀
• Upstream training 번역 및 직접 기여
• Blueprint 등록
• OpenStack – Design Summit에서 5분 스피치 필요
• 나중에 알게 된 사항: 프로젝트마다 성격이 다름,
Design Summit PTG 변경 이후 심도있는 논의 이루어짐
• (당시: 나도 과연 할 수 있을까?)
• Launchpad 프로젝트 생성 & 관리
29. 29
Blueprint 등록
• OpenStack 문서에 PDF 지원하기
• 링크: https://blueprints.launchpad.net/openstack-manuals/+spec/build-pdf-from-rst-guides
• 배경
• OpenStack에서 이전에 PDF 구현이 있었는데 rst 기반 문서로 바뀌면서 PDF 다운로드 사라짐
• 2014년 ryu-book 번역 작업하면서 rst 기반 sphinx에서 PDF 생성하는 기능을 사용했었음
• (2016년, 오픈스택 컨트리뷰션 스터디 주제로 하고자 생각하고 있었음)
• 2016년 7월, 누군가가 메일링리스트에 PDF 지원 기능을 물어보았으며, 필요로 하는 기능임을
알 수 있었음
• 시작
• 2016년 8월, blueprint 등록
• Comment: spec 작성 필요하다고 하여 작성, 피드백 받아 최종 spec 완성 후 작업 시작
• 목표: Ocata 개발 기간
• (31 October 2016 - 24 February 2017)
30. 30
Blueprint 완료!
• 원래 rst2pdf 플러그인 사용하려 했으나, 여러 문제로 latex 기반 PDF 변환
작업으로 변경하여 완료
• 예상 작업량 보다 많았음
• 부대표 “조성수” help 덕택에 구현 완료
31. 31
Upstream Institute을 위한 Sandbox
• Gerrit <-> Launchpad 연동 학습을 위한 학습용 Launchpad 프로젝트
• https://launchpad.net/openstack-dev-sandbox
• 연습 Tutorial 데모
• https://docs.openstack.org/ko_KR/upstream-training/workflow-using-
sandbox.html
33. 33
Launchpad와 오픈스택
• 오픈스택 초창기부터 Launchpad 적극 활용
• 다양한 오픈스택 프로젝트 등장 및 점차 복잡해지는 관리를 위해 Gerrit
등을 사용하나, Launchpad 기능과의 연결을 통해 적극 활용하였음
• 최근에는 Launchpad를 대신하기 위한 스토리보드 활용 검토 중
• https://storyboard.openstack.org
• 다양한 프로젝트마다 다른 성격 등을
수용하기 위한 방향으로 고려 중
• 찬성/반대 다양한 의견 수렴 중