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

More Related Content

What's hot

[OpenStack Day in Korea] Introduction to open stack
[OpenStack Day in Korea] Introduction to open stack[OpenStack Day in Korea] Introduction to open stack
[OpenStack Day in Korea] Introduction to open stack
Nalee Jang
 
[12월 번역 Meetup] Hands on-lab 오픈스택: 번역으로 contributor 활동하기
[12월 번역 Meetup] Hands on-lab 오픈스택: 번역으로 contributor 활동하기[12월 번역 Meetup] Hands on-lab 오픈스택: 번역으로 contributor 활동하기
[12월 번역 Meetup] Hands on-lab 오픈스택: 번역으로 contributor 활동하기
OpenStack Korea Community
 
[12월 번역 Meetup] 나의 오픈스택 번역 contributing 삽질 경험기
[12월 번역 Meetup] 나의 오픈스택 번역 contributing 삽질 경험기[12월 번역 Meetup] 나의 오픈스택 번역 contributing 삽질 경험기
[12월 번역 Meetup] 나의 오픈스택 번역 contributing 삽질 경험기
OpenStack Korea Community
 

What's hot (20)

2016 상반기 오픈스택 한국 커뮤니티 개발팀 활동 소개
2016 상반기 오픈스택 한국 커뮤니티 개발팀 활동 소개2016 상반기 오픈스택 한국 커뮤니티 개발팀 활동 소개
2016 상반기 오픈스택 한국 커뮤니티 개발팀 활동 소개
 
OpenStack 커뮤니티 상반기 스터디
OpenStack 커뮤니티 상반기 스터디 OpenStack 커뮤니티 상반기 스터디
OpenStack 커뮤니티 상반기 스터디
 
오픈스택 커뮤니티 소개 및 기술 동향
오픈스택 커뮤니티 소개 및 기술 동향오픈스택 커뮤니티 소개 및 기술 동향
오픈스택 커뮤니티 소개 및 기술 동향
 
OpenStack DevStack Install - 1부 (All-in-one)
OpenStack DevStack Install - 1부 (All-in-one)OpenStack DevStack Install - 1부 (All-in-one)
OpenStack DevStack Install - 1부 (All-in-one)
 
[OpenStack Day in Korea] Introduction to open stack
[OpenStack Day in Korea] Introduction to open stack[OpenStack Day in Korea] Introduction to open stack
[OpenStack Day in Korea] Introduction to open stack
 
[SOSCON 2016] 오픈스택을 살펴보는 오픈 소스 컨트리뷰션
[SOSCON 2016] 오픈스택을 살펴보는 오픈 소스 컨트리뷰션[SOSCON 2016] 오픈스택을 살펴보는 오픈 소스 컨트리뷰션
[SOSCON 2016] 오픈스택을 살펴보는 오픈 소스 컨트리뷰션
 
OpenStack 2018 Vancouver Summit 후기
OpenStack 2018 Vancouver Summit 후기OpenStack 2018 Vancouver Summit 후기
OpenStack 2018 Vancouver Summit 후기
 
[12월 번역 Meetup] Hands on-lab 오픈스택: 번역으로 contributor 활동하기
[12월 번역 Meetup] Hands on-lab 오픈스택: 번역으로 contributor 활동하기[12월 번역 Meetup] Hands on-lab 오픈스택: 번역으로 contributor 활동하기
[12월 번역 Meetup] Hands on-lab 오픈스택: 번역으로 contributor 활동하기
 
[12월 번역 Meetup] 나의 오픈스택 번역 contributing 삽질 경험기
[12월 번역 Meetup] 나의 오픈스택 번역 contributing 삽질 경험기[12월 번역 Meetup] 나의 오픈스택 번역 contributing 삽질 경험기
[12월 번역 Meetup] 나의 오픈스택 번역 contributing 삽질 경험기
 
Open technet openstack
Open technet openstackOpen technet openstack
Open technet openstack
 
[2018 공개SW그랜드챌린지] 오픈 인프라와 오픈 커뮤니티에서의 협력
[2018 공개SW그랜드챌린지] 오픈 인프라와 오픈 커뮤니티에서의 협력[2018 공개SW그랜드챌린지] 오픈 인프라와 오픈 커뮤니티에서의 협력
[2018 공개SW그랜드챌린지] 오픈 인프라와 오픈 커뮤니티에서의 협력
 
OpenStack DevStack Install - 2부 (Multi-nodes)
OpenStack DevStack Install - 2부 (Multi-nodes)OpenStack DevStack Install - 2부 (Multi-nodes)
OpenStack DevStack Install - 2부 (Multi-nodes)
 
Kcd open stack
Kcd open stackKcd open stack
Kcd open stack
 
2019년 커뮤니티 활동 보고: 오픈스택 한국 커뮤니티
2019년 커뮤니티 활동 보고: 오픈스택 한국 커뮤니티2019년 커뮤니티 활동 보고: 오픈스택 한국 커뮤니티
2019년 커뮤니티 활동 보고: 오픈스택 한국 커뮤니티
 
오픈스택커뮤니티와기술동향
오픈스택커뮤니티와기술동향오픈스택커뮤니티와기술동향
오픈스택커뮤니티와기술동향
 
OpenStack 개요 및 활용 사례 @ Community Open Camp with Microsoft
OpenStack 개요 및 활용 사례 @ Community Open Camp with MicrosoftOpenStack 개요 및 활용 사례 @ Community Open Camp with Microsoft
OpenStack 개요 및 활용 사례 @ Community Open Camp with Microsoft
 
OpenSource! OpenStack!
OpenSource! OpenStack!OpenSource! OpenStack!
OpenSource! OpenStack!
 
Red hat and after 1 year
Red hat and after 1 yearRed hat and after 1 year
Red hat and after 1 year
 
Openstack에 컨트리뷰션 해보기
Openstack에 컨트리뷰션 해보기Openstack에 컨트리뷰션 해보기
Openstack에 컨트리뷰션 해보기
 
[12월 번역 Meetup] 오픈스택 official 번역 프로젝트 소개
[12월 번역 Meetup] 오픈스택 official 번역 프로젝트 소개[12월 번역 Meetup] 오픈스택 official 번역 프로젝트 소개
[12월 번역 Meetup] 오픈스택 official 번역 프로젝트 소개
 

Viewers also liked

[OpenStack Days Korea 2016] Track1 - 카카오는 오픈스택 기반으로 어떻게 5000VM을 운영하고 있을까?
[OpenStack Days Korea 2016] Track1 - 카카오는 오픈스택 기반으로 어떻게 5000VM을 운영하고 있을까?[OpenStack Days Korea 2016] Track1 - 카카오는 오픈스택 기반으로 어떻게 5000VM을 운영하고 있을까?
[OpenStack Days Korea 2016] Track1 - 카카오는 오픈스택 기반으로 어떻게 5000VM을 운영하고 있을까?
OpenStack Korea Community
 
오픈소스 개발 방법론 - Mozilla 사례 중심 (2010)
오픈소스 개발 방법론 - Mozilla 사례 중심 (2010)오픈소스 개발 방법론 - Mozilla 사례 중심 (2010)
오픈소스 개발 방법론 - Mozilla 사례 중심 (2010)
Channy Yun
 
OpenStack: running manually installed components on VirtualBox
OpenStack: running manually installed components on VirtualBoxOpenStack: running manually installed components on VirtualBox
OpenStack: running manually installed components on VirtualBox
Ian Choi
 
제13회컨퍼런스 조대협 서버사이드개발
제13회컨퍼런스 조대협 서버사이드개발제13회컨퍼런스 조대협 서버사이드개발
제13회컨퍼런스 조대협 서버사이드개발
Terry Cho
 

Viewers also liked (20)

무엇이 무엇이 닮았을까?- OpenStack과 Azure
무엇이 무엇이 닮았을까?- OpenStack과 Azure무엇이 무엇이 닮았을까?- OpenStack과 Azure
무엇이 무엇이 닮았을까?- OpenStack과 Azure
 
[OpenStack Days Korea 2016] Track1 - 카카오는 오픈스택 기반으로 어떻게 5000VM을 운영하고 있을까?
[OpenStack Days Korea 2016] Track1 - 카카오는 오픈스택 기반으로 어떻게 5000VM을 운영하고 있을까?[OpenStack Days Korea 2016] Track1 - 카카오는 오픈스택 기반으로 어떻게 5000VM을 운영하고 있을까?
[OpenStack Days Korea 2016] Track1 - 카카오는 오픈스택 기반으로 어떻게 5000VM을 운영하고 있을까?
 
About IssueTracker
About IssueTrackerAbout IssueTracker
About IssueTracker
 
공개SW와 개발방법론(오픈소스 성공요인 사례)
공개SW와 개발방법론(오픈소스 성공요인 사례)공개SW와 개발방법론(오픈소스 성공요인 사례)
공개SW와 개발방법론(오픈소스 성공요인 사례)
 
오픈소스 개발 방법론 - Mozilla 사례 중심 (2010)
오픈소스 개발 방법론 - Mozilla 사례 중심 (2010)오픈소스 개발 방법론 - Mozilla 사례 중심 (2010)
오픈소스 개발 방법론 - Mozilla 사례 중심 (2010)
 
South Korea OpenStack UG - Study & Development team activities
South Korea OpenStack UG - Study & Development team activitiesSouth Korea OpenStack UG - Study & Development team activities
South Korea OpenStack UG - Study & Development team activities
 
Aug seoul 활동 가이드라인
Aug seoul 활동 가이드라인Aug seoul 활동 가이드라인
Aug seoul 활동 가이드라인
 
openstack-ko 메일링 리스트 이용하기 (openstack-ko@lists.openstack.org)
openstack-ko 메일링 리스트 이용하기 (openstack-ko@lists.openstack.org)openstack-ko 메일링 리스트 이용하기 (openstack-ko@lists.openstack.org)
openstack-ko 메일링 리스트 이용하기 (openstack-ko@lists.openstack.org)
 
[오픈소스컨설팅] Atlassian webinar 기본 트러블슈팅(1 of 2)
[오픈소스컨설팅] Atlassian webinar 기본 트러블슈팅(1 of 2)[오픈소스컨설팅] Atlassian webinar 기본 트러블슈팅(1 of 2)
[오픈소스컨설팅] Atlassian webinar 기본 트러블슈팅(1 of 2)
 
필요해서 하는 개발 자동화
필요해서 하는 개발 자동화필요해서 하는 개발 자동화
필요해서 하는 개발 자동화
 
Atlassian Product Overview (아틀라시안 제품 소개) - 2016년 4월 버전
Atlassian Product Overview (아틀라시안 제품 소개) - 2016년 4월 버전Atlassian Product Overview (아틀라시안 제품 소개) - 2016년 4월 버전
Atlassian Product Overview (아틀라시안 제품 소개) - 2016년 4월 버전
 
OpenStack : DevStack installation using VirtualBox & Ubnutu (Juno with Neutron)
OpenStack: DevStack installation using VirtualBox & Ubnutu (Juno with Neutron)OpenStack: DevStack installation using VirtualBox & Ubnutu (Juno with Neutron)
OpenStack : DevStack installation using VirtualBox & Ubnutu (Juno with Neutron)
 
Cloud life seminar open shift,이준영(배포용)
Cloud life seminar   open shift,이준영(배포용)Cloud life seminar   open shift,이준영(배포용)
Cloud life seminar open shift,이준영(배포용)
 
OpenStack: running manually installed components on VirtualBox
OpenStack: running manually installed components on VirtualBoxOpenStack: running manually installed components on VirtualBox
OpenStack: running manually installed components on VirtualBox
 
14회 jco 컨퍼런스 조대협의 소프트웨어 개발 배포용
14회 jco 컨퍼런스 조대협의 소프트웨어 개발 배포용14회 jco 컨퍼런스 조대협의 소프트웨어 개발 배포용
14회 jco 컨퍼런스 조대협의 소프트웨어 개발 배포용
 
애자일 개발 프로세스를 이용한 고품질 소프트웨어 개발
애자일 개발 프로세스를 이용한 고품질 소프트웨어 개발애자일 개발 프로세스를 이용한 고품질 소프트웨어 개발
애자일 개발 프로세스를 이용한 고품질 소프트웨어 개발
 
제13회컨퍼런스 조대협 서버사이드개발
제13회컨퍼런스 조대협 서버사이드개발제13회컨퍼런스 조대협 서버사이드개발
제13회컨퍼런스 조대협 서버사이드개발
 
애자일활용사례
애자일활용사례애자일활용사례
애자일활용사례
 
AWS Lambdas with a Static Outgoing IP
AWS Lambdas with a Static Outgoing IPAWS Lambdas with a Static Outgoing IP
AWS Lambdas with a Static Outgoing IP
 
Atlassian confluence WIKI를 활용한 공유와 협업 환경 구성
Atlassian confluence WIKI를 활용한 공유와 협업 환경 구성Atlassian confluence WIKI를 활용한 공유와 협업 환경 구성
Atlassian confluence WIKI를 활용한 공유와 협업 환경 구성
 

Similar to 오픈소스 개발 Upstream - ONOS/CORD 워킹 그룹 2차 세미나

개알못의 오픈소스이야기 - 이상준님
개알못의 오픈소스이야기 - 이상준님개알못의 오픈소스이야기 - 이상준님
개알못의 오픈소스이야기 - 이상준님
NAVER D2
 

Similar to 오픈소스 개발 Upstream - ONOS/CORD 워킹 그룹 2차 세미나 (20)

Launchpad 활용 사례 in OpenStack: 다루어본 Bug & Blueprint를 중심으로
Launchpad 활용 사례 in OpenStack: 다루어본 Bug & Blueprint를 중심으로Launchpad 활용 사례 in OpenStack: 다루어본 Bug & Blueprint를 중심으로
Launchpad 활용 사례 in OpenStack: 다루어본 Bug & Blueprint를 중심으로
 
Open Source 그리고 git과 github, code review
Open Source 그리고 git과 github, code reviewOpen Source 그리고 git과 github, code review
Open Source 그리고 git과 github, code review
 
경희대 해커 기술 세미나 - Git hub으로 학교 팀프로젝트 하기(조성수)
경희대 해커 기술 세미나 - Git hub으로 학교 팀프로젝트 하기(조성수)경희대 해커 기술 세미나 - Git hub으로 학교 팀프로젝트 하기(조성수)
경희대 해커 기술 세미나 - Git hub으로 학교 팀프로젝트 하기(조성수)
 
Github 으로 학교 팀 프로젝트 하기
Github 으로 학교 팀 프로젝트 하기Github 으로 학교 팀 프로젝트 하기
Github 으로 학교 팀 프로젝트 하기
 
Opensource contributor 회고_ver_0.6
Opensource contributor 회고_ver_0.6Opensource contributor 회고_ver_0.6
Opensource contributor 회고_ver_0.6
 
개알못의 오픈소스이야기 - 이상준님
개알못의 오픈소스이야기 - 이상준님개알못의 오픈소스이야기 - 이상준님
개알못의 오픈소스이야기 - 이상준님
 
청강대 특강 - 프로젝트 제대로 해보기
청강대 특강 - 프로젝트 제대로 해보기청강대 특강 - 프로젝트 제대로 해보기
청강대 특강 - 프로젝트 제대로 해보기
 
학교에선 알려주지 않는 오픈소스이야기 - 박치완님
학교에선 알려주지 않는 오픈소스이야기 - 박치완님학교에선 알려주지 않는 오픈소스이야기 - 박치완님
학교에선 알려주지 않는 오픈소스이야기 - 박치완님
 
github actions kubernetes 설치&운영하기
github actions kubernetes 설치&운영하기github actions kubernetes 설치&운영하기
github actions kubernetes 설치&운영하기
 
제2회 난공불락 오픈소스 인프라 세미나 Kubernetes
제2회 난공불락 오픈소스 인프라 세미나 Kubernetes제2회 난공불락 오픈소스 인프라 세미나 Kubernetes
제2회 난공불락 오픈소스 인프라 세미나 Kubernetes
 
2022.08 멘토링 자료.pptx
2022.08 멘토링 자료.pptx2022.08 멘토링 자료.pptx
2022.08 멘토링 자료.pptx
 
오픈소스가이드 win,c++
오픈소스가이드 win,c++오픈소스가이드 win,c++
오픈소스가이드 win,c++
 
오픈 플랫폼 타이젠과 컨트리부션하기(연세대 오픈소스 미니콘서트)
오픈 플랫폼 타이젠과 컨트리부션하기(연세대 오픈소스 미니콘서트)오픈 플랫폼 타이젠과 컨트리부션하기(연세대 오픈소스 미니콘서트)
오픈 플랫폼 타이젠과 컨트리부션하기(연세대 오픈소스 미니콘서트)
 
2021년 4월 10일 개발자 이야기
2021년 4월 10일 개발자 이야기2021년 4월 10일 개발자 이야기
2021년 4월 10일 개발자 이야기
 
오픈소스 컨트리뷰톤 2020 backend.ai 발표자료
오픈소스 컨트리뷰톤 2020 backend.ai 발표자료오픈소스 컨트리뷰톤 2020 backend.ai 발표자료
오픈소스 컨트리뷰톤 2020 backend.ai 발표자료
 
[113]apache zeppelin 이문수
[113]apache zeppelin 이문수[113]apache zeppelin 이문수
[113]apache zeppelin 이문수
 
jjongwuner_cv_page
jjongwuner_cv_pagejjongwuner_cv_page
jjongwuner_cv_page
 
DevOps - CI/CD 알아보기
DevOps - CI/CD 알아보기DevOps - CI/CD 알아보기
DevOps - CI/CD 알아보기
 
오픈소스 프로젝트 따라잡기_공개
오픈소스 프로젝트 따라잡기_공개오픈소스 프로젝트 따라잡기_공개
오픈소스 프로젝트 따라잡기_공개
 
위클리 발표자료
위클리 발표자료위클리 발표자료
위클리 발표자료
 

More from Ian Choi

More from Ian Choi (18)

Ship it! ⛴️ AKS에 스프링 앱 배포하기 at Microsoft x GitHub Roadshow 2023
Ship it! ⛴️ AKS에 스프링 앱 배포하기 at Microsoft x GitHub Roadshow 2023Ship it! ⛴️ AKS에 스프링 앱 배포하기 at Microsoft x GitHub Roadshow 2023
Ship it! ⛴️ AKS에 스프링 앱 배포하기 at Microsoft x GitHub Roadshow 2023
 
클라우드 컴퓨팅 기본 사항 (Fundamentals)
클라우드 컴퓨팅 기본 사항 (Fundamentals)클라우드 컴퓨팅 기본 사항 (Fundamentals)
클라우드 컴퓨팅 기본 사항 (Fundamentals)
 
디자인에 이어 코딩까지 AI가 프로그램 개발을 척척?: GitHub Copilot, 어디까지 알아보셨나요
디자인에 이어 코딩까지 AI가 프로그램 개발을 척척?: GitHub Copilot, 어디까지 알아보셨나요디자인에 이어 코딩까지 AI가 프로그램 개발을 척척?: GitHub Copilot, 어디까지 알아보셨나요
디자인에 이어 코딩까지 AI가 프로그램 개발을 척척?: GitHub Copilot, 어디까지 알아보셨나요
 
마이크로소프트 애저 및 클라우드 트렌드 소개 (부제: Beyond IaaS)
마이크로소프트 애저 및 클라우드 트렌드 소개 (부제: Beyond IaaS)마이크로소프트 애저 및 클라우드 트렌드 소개 (부제: Beyond IaaS)
마이크로소프트 애저 및 클라우드 트렌드 소개 (부제: Beyond IaaS)
 
Evolving Translation and Internationalization in OpenStack & Kubernetes commu...
Evolving Translation and Internationalization in OpenStack & Kubernetes commu...Evolving Translation and Internationalization in OpenStack & Kubernetes commu...
Evolving Translation and Internationalization in OpenStack & Kubernetes commu...
 
쿠버네티스 오픈 소스와 클라우드 매니지드 서비스 접점 소개
쿠버네티스 오픈 소스와 클라우드 매니지드 서비스 접점 소개쿠버네티스 오픈 소스와 클라우드 매니지드 서비스 접점 소개
쿠버네티스 오픈 소스와 클라우드 매니지드 서비스 접점 소개
 
오픈 소스 프로그래밍 - NoSQL with Python
오픈 소스 프로그래밍 - NoSQL with Python오픈 소스 프로그래밍 - NoSQL with Python
오픈 소스 프로그래밍 - NoSQL with Python
 
Azure 클라우드 학생 계정 & Ubuntu VM 셋업 (Mar 2022)
Azure 클라우드 학생 계정 & Ubuntu VM 셋업 (Mar 2022)Azure 클라우드 학생 계정 & Ubuntu VM 셋업 (Mar 2022)
Azure 클라우드 학생 계정 & Ubuntu VM 셋업 (Mar 2022)
 
OpenStack I18n Product Update at Shanghai: how OpenStack translation started ...
OpenStack I18n Product Update at Shanghai: how OpenStack translation started ...OpenStack I18n Product Update at Shanghai: how OpenStack translation started ...
OpenStack I18n Product Update at Shanghai: how OpenStack translation started ...
 
[OpenInfra Days Vietnam 2019] Innovation with open sources and app modernizat...
[OpenInfra Days Vietnam 2019] Innovation with open sources and app modernizat...[OpenInfra Days Vietnam 2019] Innovation with open sources and app modernizat...
[OpenInfra Days Vietnam 2019] Innovation with open sources and app modernizat...
 
Microsoft loves communities - Korea DevRel Team
Microsoft loves communities - Korea DevRel TeamMicrosoft loves communities - Korea DevRel Team
Microsoft loves communities - Korea DevRel Team
 
DevOps와 함께 살펴보는 (해커톤의 성패를 좌우하는) 협업/개발 툴
DevOps와 함께 살펴보는 (해커톤의 성패를 좌우하는) 협업/개발 툴DevOps와 함께 살펴보는 (해커톤의 성패를 좌우하는) 협업/개발 툴
DevOps와 함께 살펴보는 (해커톤의 성패를 좌우하는) 협업/개발 툴
 
국제화/번역과 함께 하는 오픈소스에 대한 경험 및 노하우
국제화/번역과 함께 하는 오픈소스에 대한 경험 및 노하우국제화/번역과 함께 하는 오픈소스에 대한 경험 및 노하우
국제화/번역과 함께 하는 오픈소스에 대한 경험 및 노하우
 
[201808] GitHub 사용하기 - GIt & 협업 활용
[201808] GitHub 사용하기 - GIt & 협업 활용[201808] GitHub 사용하기 - GIt & 협업 활용
[201808] GitHub 사용하기 - GIt & 협업 활용
 
[OpenStack] 공개 소프트웨어 오픈스택 입문 & 파헤치기
[OpenStack] 공개 소프트웨어 오픈스택 입문 & 파헤치기[OpenStack] 공개 소프트웨어 오픈스택 입문 & 파헤치기
[OpenStack] 공개 소프트웨어 오픈스택 입문 & 파헤치기
 
"docs.microsoft.com"에 기여하기
"docs.microsoft.com"에 기여하기"docs.microsoft.com"에 기여하기
"docs.microsoft.com"에 기여하기
 
[Pycon KR 2017] Rst와 함께하는 Python 문서 작성 & OpenStack 문서 활용 사례
[Pycon KR 2017] Rst와 함께하는 Python 문서 작성 & OpenStack 문서 활용 사례[Pycon KR 2017] Rst와 함께하는 Python 문서 작성 & OpenStack 문서 활용 사례
[Pycon KR 2017] Rst와 함께하는 Python 문서 작성 & OpenStack 문서 활용 사례
 
OpenStack을 중심으로 한 오픈 소스 & 상용 하이브리드 클라우드
OpenStack을 중심으로 한 오픈 소스 & 상용 하이브리드 클라우드OpenStack을 중심으로 한 오픈 소스 & 상용 하이브리드 클라우드
OpenStack을 중심으로 한 오픈 소스 & 상용 하이브리드 클라우드
 

Recently uploaded

캡스톤-디자인-최종-발표-(대상혁) 24년도 졸업작품발표회 ppt.pptx
캡스톤-디자인-최종-발표-(대상혁) 24년도 졸업작품발표회 ppt.pptx캡스톤-디자인-최종-발표-(대상혁) 24년도 졸업작품발표회 ppt.pptx
캡스톤-디자인-최종-발표-(대상혁) 24년도 졸업작품발표회 ppt.pptx
cho9759
 
INU Graduation Powerpoint-Rabbit FootPrint
INU Graduation Powerpoint-Rabbit FootPrintINU Graduation Powerpoint-Rabbit FootPrint
INU Graduation Powerpoint-Rabbit FootPrint
ahghwo99
 

Recently uploaded (7)

암호화 보안USB & 외장하드 중앙관리 솔루션 ‘DataLocker SafeConsole’_DATASHEET
암호화 보안USB & 외장하드 중앙관리 솔루션 ‘DataLocker SafeConsole’_DATASHEET암호화 보안USB & 외장하드 중앙관리 솔루션 ‘DataLocker SafeConsole’_DATASHEET
암호화 보안USB & 외장하드 중앙관리 솔루션 ‘DataLocker SafeConsole’_DATASHEET
 
캡스톤-디자인-최종-발표-(대상혁) 24년도 졸업작품발표회 ppt.pptx
캡스톤-디자인-최종-발표-(대상혁) 24년도 졸업작품발표회 ppt.pptx캡스톤-디자인-최종-발표-(대상혁) 24년도 졸업작품발표회 ppt.pptx
캡스톤-디자인-최종-발표-(대상혁) 24년도 졸업작품발표회 ppt.pptx
 
INU Graduation Powerpoint-Rabbit FootPrint
INU Graduation Powerpoint-Rabbit FootPrintINU Graduation Powerpoint-Rabbit FootPrint
INU Graduation Powerpoint-Rabbit FootPrint
 
인천대학교 캡스톤디자인(2) Pencil me 프레젠테이션 발표자료 파일
인천대학교 캡스톤디자인(2) Pencil me 프레젠테이션 발표자료 파일인천대학교 캡스톤디자인(2) Pencil me 프레젠테이션 발표자료 파일
인천대학교 캡스톤디자인(2) Pencil me 프레젠테이션 발표자료 파일
 
인천대학교 컴퓨터공학과 아틀란티스 졸업작품 commINUty PPT
인천대학교 컴퓨터공학과 아틀란티스 졸업작품 commINUty PPT인천대학교 컴퓨터공학과 아틀란티스 졸업작품 commINUty PPT
인천대학교 컴퓨터공학과 아틀란티스 졸업작품 commINUty PPT
 
2024년 5월 27일 개발자 이야기 - AWS 람다의 내부 동작 방식 외
2024년 5월 27일 개발자 이야기 - AWS 람다의 내부 동작 방식 외2024년 5월 27일 개발자 이야기 - AWS 람다의 내부 동작 방식 외
2024년 5월 27일 개발자 이야기 - AWS 람다의 내부 동작 방식 외
 
(독서광) 대격변 AI 시대, 데이터로 사고하고 데이터로 리드하라
(독서광) 대격변 AI 시대,   데이터로 사고하고   데이터로 리드하라(독서광) 대격변 AI 시대,   데이터로 사고하고   데이터로 리드하라
(독서광) 대격변 AI 시대, 데이터로 사고하고 데이터로 리드하라
 

오픈소스 개발 Upstream - ONOS/CORD 워킹 그룹 2차 세미나

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