오픈소스 개발 Upstream - ONOS/CORD 워킹 그룹 2차 세미나
Transcript of 오픈소스 개발 Upstream - ONOS/CORD 워킹 그룹 2차 세미나
![Page 1: 오픈소스 개발 Upstream - ONOS/CORD 워킹 그룹 2차 세미나](https://reader031.fdocuments.net/reader031/viewer/2022020113/586fa0411a28abcc238b66b5/html5/thumbnails/1.jpg)
2016년 12월 16일, ONOS/CORD 워킹 그룹 2차 세미나
최영락, 오픈스택한국커뮤니티운영진
![Page 2: 오픈소스 개발 Upstream - ONOS/CORD 워킹 그룹 2차 세미나](https://reader031.fdocuments.net/reader031/viewer/2022020113/586fa0411a28abcc238b66b5/html5/thumbnails/2.jpg)
2
목차• Part 1: 오픈소스와 Upstream 개발개요
• Part 2: 주요 Upstream 개발워크플로우
• Part 3: Sandbox를활용한워크플로우살펴보기 (with Demo)
• Part 4: 결론
![Page 3: 오픈소스 개발 Upstream - ONOS/CORD 워킹 그룹 2차 세미나](https://reader031.fdocuments.net/reader031/viewer/2022020113/586fa0411a28abcc238b66b5/html5/thumbnails/3.jpg)
오픈소스와 Upstream 개발개요
![Page 4: 오픈소스 개발 Upstream - ONOS/CORD 워킹 그룹 2차 세미나](https://reader031.fdocuments.net/reader031/viewer/2022020113/586fa0411a28abcc238b66b5/html5/thumbnails/4.jpg)
4
Upstream 개발이지니는의미가무엇일까요?
http://docs.openstack.org/ko_KR/upstream-training/
![Page 5: 오픈소스 개발 Upstream - ONOS/CORD 워킹 그룹 2차 세미나](https://reader031.fdocuments.net/reader031/viewer/2022020113/586fa0411a28abcc238b66b5/html5/thumbnails/5.jpg)
5
참고: OpenStack에서바라보는 Openness
• Open Source• 재사용및확장가능한진정한의미에서의오픈소스를목표로함• No “Enterprise Edition”
• Open Design• 요구사항수집및로드맵승인등모든절차를대중에게공개• 개방형디자인의의미보다는모든설계과정을 open하겠다는의미에가까움
• Open Development• 모든소스코드공개를개방된코드리뷰과정을거치며, 모든과정은투명하게문서화됨
• Open Community• 커뮤니티를통해설계과정을결정• 모든프로젝트미팅은공개 IRC 채널을통해열리며기록
[1] 서주영, 오픈소스를통해개발근육강화하기, GDG DevFest Seoul 2016
(커뮤니티를통해함께)
![Page 6: 오픈소스 개발 Upstream - ONOS/CORD 워킹 그룹 2차 세미나](https://reader031.fdocuments.net/reader031/viewer/2022020113/586fa0411a28abcc238b66b5/html5/thumbnails/6.jpg)
6
오픈소스시작: from small to larger
• Github하나로시작할수있습니다!• 소스관리도되고 (git repository)
![Page 7: 오픈소스 개발 Upstream - ONOS/CORD 워킹 그룹 2차 세미나](https://reader031.fdocuments.net/reader031/viewer/2022020113/586fa0411a28abcc238b66b5/html5/thumbnails/7.jpg)
7
오픈소스시작: from small to larger
• Github하나로시작할수있습니다!• 다른사용자가소스를가져다가작업할수도있고 (fork & pull request)
![Page 8: 오픈소스 개발 Upstream - ONOS/CORD 워킹 그룹 2차 세미나](https://reader031.fdocuments.net/reader031/viewer/2022020113/586fa0411a28abcc238b66b5/html5/thumbnails/8.jpg)
8
오픈소스시작: from small to larger
• Github하나로시작할수있습니다!• 다른사용자가작업한소스를리뷰및코멘트를작성가능하고 (pull request review)
![Page 9: 오픈소스 개발 Upstream - ONOS/CORD 워킹 그룹 2차 세미나](https://reader031.fdocuments.net/reader031/viewer/2022020113/586fa0411a28abcc238b66b5/html5/thumbnails/9.jpg)
9
오픈소스시작: from small to larger
• Github하나로시작할수있습니다!• 리뷰를완료하면병합또한가능하며 (merge and/or rebase)
![Page 10: 오픈소스 개발 Upstream - ONOS/CORD 워킹 그룹 2차 세미나](https://reader031.fdocuments.net/reader031/viewer/2022020113/586fa0411a28abcc238b66b5/html5/thumbnails/10.jpg)
10
오픈소스시작: from small to larger
• Github하나로시작할수있습니다!• 버그등이있을때사용자피드백을받을수도있으며 (issues)
![Page 11: 오픈소스 개발 Upstream - ONOS/CORD 워킹 그룹 2차 세미나](https://reader031.fdocuments.net/reader031/viewer/2022020113/586fa0411a28abcc238b66b5/html5/thumbnails/11.jpg)
11
오픈소스시작: from small to larger
• Github하나로시작할수있습니다!• 문서화등을위한위키또한지원합니다 (wiki)
![Page 12: 오픈소스 개발 Upstream - ONOS/CORD 워킹 그룹 2차 세미나](https://reader031.fdocuments.net/reader031/viewer/2022020113/586fa0411a28abcc238b66b5/html5/thumbnails/12.jpg)
12
오픈소스규모가커지면…
• 코드리뷰의중요성: e.g.) Gerrit• Case example: https://review.openstack.org/#/c/396943/
![Page 13: 오픈소스 개발 Upstream - ONOS/CORD 워킹 그룹 2차 세미나](https://reader031.fdocuments.net/reader031/viewer/2022020113/586fa0411a28abcc238b66b5/html5/thumbnails/13.jpg)
13
오픈소스규모가커지면…
• 이슈및기능추적: e.g.) Launchpad, Jira• Case example 1: https://bugs.launchpad.net/pbr/+bug/1379998
![Page 14: 오픈소스 개발 Upstream - ONOS/CORD 워킹 그룹 2차 세미나](https://reader031.fdocuments.net/reader031/viewer/2022020113/586fa0411a28abcc238b66b5/html5/thumbnails/14.jpg)
14
오픈소스규모가커지면…
• 이슈및기능추적: e.g.) Launchpad, Jira• Case example 2: Jira 사용 (예시)
![Page 15: 오픈소스 개발 Upstream - ONOS/CORD 워킹 그룹 2차 세미나](https://reader031.fdocuments.net/reader031/viewer/2022020113/586fa0411a28abcc238b66b5/html5/thumbnails/15.jpg)
15
오픈소스규모가커지면…
• 자동빌드: Jenkins• Case example: https://review.openstack.org/#/c/410341/
![Page 16: 오픈소스 개발 Upstream - ONOS/CORD 워킹 그룹 2차 세미나](https://reader031.fdocuments.net/reader031/viewer/2022020113/586fa0411a28abcc238b66b5/html5/thumbnails/16.jpg)
16
오픈소스규모가커지면…
• 통합인증체계• Case example 1: openstackid (https://openstackid.org/accounts/user/profile)
• Case example 2: ONOS crowd (https://crowd.onlab.us/openidserver/)
![Page 17: 오픈소스 개발 Upstream - ONOS/CORD 워킹 그룹 2차 세미나](https://reader031.fdocuments.net/reader031/viewer/2022020113/586fa0411a28abcc238b66b5/html5/thumbnails/17.jpg)
주요 Upstream 개발워크플로우
![Page 18: 오픈소스 개발 Upstream - ONOS/CORD 워킹 그룹 2차 세미나](https://reader031.fdocuments.net/reader031/viewer/2022020113/586fa0411a28abcc238b66b5/html5/thumbnails/18.jpg)
18
Github기반워크플로우
![Page 19: 오픈소스 개발 Upstream - ONOS/CORD 워킹 그룹 2차 세미나](https://reader031.fdocuments.net/reader031/viewer/2022020113/586fa0411a28abcc238b66b5/html5/thumbnails/19.jpg)
19
OpenStack에서의워크플로우
http://docs.openstack.org/infra/manual/developers.html
![Page 20: 오픈소스 개발 Upstream - ONOS/CORD 워킹 그룹 2차 세미나](https://reader031.fdocuments.net/reader031/viewer/2022020113/586fa0411a28abcc238b66b5/html5/thumbnails/20.jpg)
20
OpenStack에서의워크플로우
Copyright by koain (김영우), OpenStack Korea Community –업스트림컨트리뷰션스터디
![Page 21: 오픈소스 개발 Upstream - ONOS/CORD 워킹 그룹 2차 세미나](https://reader031.fdocuments.net/reader031/viewer/2022020113/586fa0411a28abcc238b66b5/html5/thumbnails/21.jpg)
Sandbox를활용한워크플로우살펴보기
![Page 22: 오픈소스 개발 Upstream - ONOS/CORD 워킹 그룹 2차 세미나](https://reader031.fdocuments.net/reader031/viewer/2022020113/586fa0411a28abcc238b66b5/html5/thumbnails/22.jpg)
22
Sandbox 저장소공간• OpenStack Sandbox 저장소
• https://review.openstack.org/#/admin/projects/openstack-dev/sandbox
• Git커밋, 패치, 리뷰등연습공간
![Page 23: 오픈소스 개발 Upstream - ONOS/CORD 워킹 그룹 2차 세미나](https://reader031.fdocuments.net/reader031/viewer/2022020113/586fa0411a28abcc238b66b5/html5/thumbnails/23.jpg)
23
OpenStack: Sandbox 저장소• OpenStack은학습및테스트목적을위해 sandbox 저장소를보유하고있습니다
• OpenStack 학습을시작하기위한훌륭한저장소입니다• https://git.openstack.org/cgit/openstack-dev/sandbox
![Page 24: 오픈소스 개발 Upstream - ONOS/CORD 워킹 그룹 2차 세미나](https://reader031.fdocuments.net/reader031/viewer/2022020113/586fa0411a28abcc238b66b5/html5/thumbnails/24.jpg)
24
Sandbox Launchpad
• openstack-dev/sandbox 저장소와관련이있는보고된버그및이슈를추석및관리• https://launchpad.net/openstack-dev-sandbox
![Page 25: 오픈소스 개발 Upstream - ONOS/CORD 워킹 그룹 2차 세미나](https://reader031.fdocuments.net/reader031/viewer/2022020113/586fa0411a28abcc238b66b5/html5/thumbnails/25.jpg)
25
Gerrit을활용한워크플로우확인
• Gerrit• GitHub에서의 pull
request와비슷• 여러사람에의한
code review 가능
![Page 26: 오픈소스 개발 Upstream - ONOS/CORD 워킹 그룹 2차 세미나](https://reader031.fdocuments.net/reader031/viewer/2022020113/586fa0411a28abcc238b66b5/html5/thumbnails/26.jpg)
26
Gerrit리뷰과정 in OpenStack
• 점수부여• -2: 받아들일수없는수정• -1: 수정필요한사항• 0 : 중립또는자세한
comment 작성시• +1: 리뷰결과괜찮음• +2: 해당프로젝트의핵심개발자가괜찮음을표현
• 일반적인코드병합• 2명의핵심개발자가각각
+2를주었을때병함됨• Workflow를 +1로주었을때최종코드병합이루어짐
![Page 27: 오픈소스 개발 Upstream - ONOS/CORD 워킹 그룹 2차 세미나](https://reader031.fdocuments.net/reader031/viewer/2022020113/586fa0411a28abcc238b66b5/html5/thumbnails/27.jpg)
27
코드병합 (Merged) in OpenStack
• 업로드한코드는 patch set 단위로관리됨
• 모든업로드코드는Jenkins에의해업로드한코드에대해자동점검수행
• 일반적으로해당프로젝트내+2를 2번이상받았을때Workflow +1를주면해당코드에대한병합이이루어짐
![Page 28: 오픈소스 개발 Upstream - ONOS/CORD 워킹 그룹 2차 세미나](https://reader031.fdocuments.net/reader031/viewer/2022020113/586fa0411a28abcc238b66b5/html5/thumbnails/28.jpg)
28
Sandbox 저장소를활용한데모• 참고: http://docs.openstack.org/ko_KR/upstream-
training/workflow-using-sandbox.html
![Page 29: 오픈소스 개발 Upstream - ONOS/CORD 워킹 그룹 2차 세미나](https://reader031.fdocuments.net/reader031/viewer/2022020113/586fa0411a28abcc238b66b5/html5/thumbnails/29.jpg)
결론
![Page 30: 오픈소스 개발 Upstream - ONOS/CORD 워킹 그룹 2차 세미나](https://reader031.fdocuments.net/reader031/viewer/2022020113/586fa0411a28abcc238b66b5/html5/thumbnails/30.jpg)
30
OpenStack with Open Ecosystem
• OpenStack과업스트림컨트리뷰션• 변화하는 IT (예: Docker 등컨테이너) 및문제해결을좋아하는컨트리뷰터들이주축이되어활동
• 기술위원회의모든투표과정을공개할만큼 Openness를실천하고있음• 소스코드개발뿐만아니라, 문서화, 번역등도컨트리뷰션에간주함
• ONOS에서의업스트림컨트리뷰션• Jira를기반으로프로젝트버전및관련된기능개발, 이슈를통합적으로관리• 업스트림컨트리뷰션을위해서는해당분야지식뿐만아니라 Git, Jira, Gerrit 등오픈소스기반도구에익숙해질필요가있음
![Page 31: 오픈소스 개발 Upstream - ONOS/CORD 워킹 그룹 2차 세미나](https://reader031.fdocuments.net/reader031/viewer/2022020113/586fa0411a28abcc238b66b5/html5/thumbnails/31.jpg)
31
참고: OpenStack 번역업스트림컨트리뷰션• 오픈소스번역플랫폼인 Zanata를사용하여번역에컨트리뷰션
![Page 32: 오픈소스 개발 Upstream - ONOS/CORD 워킹 그룹 2차 세미나](https://reader031.fdocuments.net/reader031/viewer/2022020113/586fa0411a28abcc238b66b5/html5/thumbnails/32.jpg)
Finished!