SlideShare ist ein Scribd-Unternehmen logo
1 von 39
Downloaden Sie, um offline zu lesen
Atlassian Cloud 제품을 이용한
DevOps 프로세스 구축
Contents
DevOps란?
01
Repository와 Jira의 연동
02
Bitbucket Cloud를 통한 소스 배포
03
Jira Automation을 통한 DevOps 구축
04
CI/CD 프로세스 구성도
DevOps란?
What is DevOps?
• 현대 소프트웨어 개발 용어로 디지털 제품을 생산하는 모든 팀에 적용 가능
• 전반적인 목표는 최상의 성과를 달성하는 것
• 고객에게 높은 가치를 신속하게 제공
• Apply to :
• organizational structure
• culture
• practices
• tool
Dev vs. Ops – 관점의 차이
• 개발팀과 운영팀의 분리
• 개발팀은 신규 서비스를 개발
• 운영팀은 서비스를 배포하고 운영
• 팀들간의 이해가 상충
• 개발팀은 결과물의 양과 혁신의 속도에 중점
• 운영팀은 안정성에 중점
DevOps의 4가지 주요 지표
• 처리량과 관련된 2가지 항목(Dev):
• Delivery lead time(cycle time) – 작업의 시작부터 생산까지의 시간
• Deployment frequency – 배포하는 빈도 수
• 안정성과 관련된 2가지 항목(Ops):
• Change failure rate – 취소 또는 신속하게 수정해야하는 변경 사항의 비율
• Mean time to recovery (MTTR) – 문제가 발생한 시작부터 해결까지의 시간
Atlassian DevOps 관련 제품
Atlassian DevOps 관련 정보에 대한 화면
• 서로 다른 DevOps Tool에 대한 정보를 통합하여 표시
• 지속적인 개선을 위한 Insight 제공
Repository와 Jira의 연동
Repositories
• 프로젝트의 파일과 폴더는 Git Repository에 저장
• Local repository – 파일 및 폴더가 내 컴퓨터에 위치
• Remote repository – 파일 및 폴더가 서버에 위치
• ex) Bitbucket, GitHub, GitLab
Jira를 통한 개발 작업 내역 보기
• Jira의 이슈에는 개발 작업과 관련된 내역이 표기됨
• Jira는 Bitbucket, GitLab, GitHub과 같은 Git Repository를 통합 가능
• 개발 작업 내역이 표기된 영역을 Development panel이라 부름
Jira 이슈를 통한 개발 내역 상세 보기
• Jira에서 개발 정보 클릭 시
Repository의 상세 내역이
팝업 창으로 표출
• 팝업 창에서 Commit 내역
클릭 시 Bitbucket의
Repository 화면으로 이동
Jira와 Git repository 통합의 장점
• Jira issue와 관련 개발 작업을 안정적으로 연결
• 개발 진행 상황에 따라 자동으로 Jira의 이슈 업데이트
• 작업에 대한 진행 상황을 팀원들에게 알림
• 개발자는 Jira issue 업데이트 없이 Tool에서
개발작업을 진행
• DevOps 프로세스 개선을 위한 Insight 제공
Jira의 Code 화면
• Jira 프로젝트에 연결된
repository를 표시
• 다양한 솔루션의 여러 repository를
추가 할 수 있음
• 예) GitHub, GitLab, Bitbucket
repository 연결
• repository가 연결되면 Jira에서
commit, branch 생성, pull
request 내역 확인 가능
• branch명, commit 메세지, pull
request 생성 시 이슈 키를
맵핑하여 사용
Jira issue에서 repository branch 생성
• Jira가 repository와 통합되면
Jira issue 보기 화면에 branch를
생성 할 수 있음
• Jira issue에서 개발 작업을
시작할 수 있는 편리함이 있음
branch 생성
• Jira issue key는 branch명에
포함되어 있음
• Jira issue와 repository를
연결하는 작업
• branch명에 Jira issue 제목이 포함 됨
Bitbucket에서 branch 화면
• 개발자는 Bitbucket 또는 개발
Tool을 통해 branch에 대한
작업 가능
Commit 생성
• bitbucket을 사용해서
repository 파일 및 commit
생성, 삭제 또는 업데이트를 함
Commit 메세지에 이슈키를 포함
• commit 메세지에 issue key를
포함하면 issue 보기화면에
commit 내역이 표시 됨
• commit 링크를 클릭하면 Jira
화면을 종료하지 않고 commit
정보를 확인 할 수 있음
Bitbucket Cloud를 통한 소스 배포
지속적인 통합과 지속적인 배포(CI/CD)
• DevOps의 핵심적인 요소는
CI/CD의 파이프라인
• 배포 파이프라인이라고도 함
• 자동화 항목
• Builds
• Test
• 스테이징 및 운영 환경에 배포
• CI/CD의 목표는 작은 사이즈 단위로
지속적인 배포를 하는 것
파이프라인의 단계
• 크게 두가지 단계로 구분
• Pre-deployment/build
• Deployment
• Pre-deployment 단계 실패 시
파이프라인이 중지 됨
• Pre-deployment 단계 통과 시
스테이징 또는 운영 환경에 배포
진행
Pre-deployment
Deployment
자동 VS. 수동 배포
• 배포 단계에서 자동 또는 수동으로
실행되도록 구성 할 수 있음
• 일반적으로 스테이징 서버 배포는
자동으로 구성
• 운영 배포는 종종 수동으로 구성
• 예를 들면 배포 담당자는
운영에 배포할 시기를 선택 할
수 있음
Automatic
Manual
파이프라인 실행 시점
• 소스 커밋
• pull request 승인
• Automation rule
• 수동으로 실행
Bitbucket 파이프라인 구성
• Bitbucket 파이프라인을 정의하려면
repository의 루트 폴더에
bitbucket-pipelines.yml이라는
텍스트 파일을 저장해야 함
• Bitbucket은 배포 과정을 보다 쉽게
수행 할 수 있도록 템플릿과 UI를
제공 함
bitbucket-pipelines.yml 파일 구성
• 템플릿은 Bitbucket에 의해 자동으로 생성
Pre-deployment/
build
Deployment
bitbucket-pipelines.yml 파일 수동 배포 구성
• trigger:‘manual’ 행을 step에 추가하여
자동 배포에서 수동 배포로 변경
Manual
Manual
파이프라인 트리거 항목 지정
• The default: 해당 라인의 의미는
repository에 대한 commit 실행 시
파이프라인이 시작되는 트리거
• default 대신 branch 명을 지정하여
선택적으로 trigger 가능
build가 실패했을 경우
• 실패한 단계를 시뮬레이션하기 위해 step
항목에 ‘exit 1’ 명령을 사용
• Security scan 단계 Jira가 빌드 실패를 적용
Jira Releases panel
• Jira에서 이슈와 관련된 배포 정보는 이슈의
release panel에 표시 됨
• Jira에 release 상태를 바로 확인 할 수 있음
• CI/CD 도구와 함께 작동하도록 Jira 구성
• commit 메세지, branch명, pull request에
이슈 키 지정
Jira Deployments page
• 배포 페이지에는 프로젝트 이슈에 대한 배포 정보가 표시 됨
배포에 대한 상세 정보 표시
• 타임라인 클릭 시 배포에 대한 상세 정보 확인 가능
Insight 확인
• 배포 빈도와 주기적인 시간 확인 및
과거 내역 확인은 Insight에서 가능
• 지속적인 개선을 위한 가시성 제공
JQL을 사용하여 개발 상태 보기
• repository 및 CI/CD 파이프라인과 같은
연결된 도구의 정보를 JQL 검색을 통해
확인 가능
• Examples:
• pull request가 생성된 모든 이슈
• 현재 운영에 배포되지 않은 모든 이슈
Jira Automation을 통한
DevOps 구축
DevOps Jira Automation 자동화 사용 사례
• 첫 commit 시 이슈 상태를 “진행 중”으로
자동 변경
• CI/CD 빌드가 실패하거나 pull request
생성 시 팀 slack 채널에 알림 전송
DevOps triggers
• repository에 변경을 기준으로 트리거 함

Weitere ähnliche Inhalte

Was ist angesagt?

숨겨진 마이크로서비스: 초고속 응답과 고가용성을 위한 캐시 서비스 디자인
숨겨진 마이크로서비스: 초고속 응답과 고가용성을 위한 캐시 서비스 디자인숨겨진 마이크로서비스: 초고속 응답과 고가용성을 위한 캐시 서비스 디자인
숨겨진 마이크로서비스: 초고속 응답과 고가용성을 위한 캐시 서비스 디자인
VMware Tanzu Korea
 

Was ist angesagt? (20)

Atlassian 및 오픈소스를 이용한 DevOps 구축 - 한국정보컨설팅
Atlassian 및 오픈소스를 이용한 DevOps 구축 - 한국정보컨설팅Atlassian 및 오픈소스를 이용한 DevOps 구축 - 한국정보컨설팅
Atlassian 및 오픈소스를 이용한 DevOps 구축 - 한국정보컨설팅
 
Pivotal Concourse를 활용한 CI/CD pipeline automated build-up & Workflow managemen...
Pivotal Concourse를 활용한 CI/CD pipeline automated build-up & Workflow managemen...Pivotal Concourse를 활용한 CI/CD pipeline automated build-up & Workflow managemen...
Pivotal Concourse를 활용한 CI/CD pipeline automated build-up & Workflow managemen...
 
[오픈소스컨설팅] DevOps 체험교육 소개
[오픈소스컨설팅] DevOps 체험교육 소개[오픈소스컨설팅] DevOps 체험교육 소개
[오픈소스컨설팅] DevOps 체험교육 소개
 
Hiapp
HiappHiapp
Hiapp
 
Git command
Git commandGit command
Git command
 
ALM과 DevOps 그리고 Azure DevOps
ALM과 DevOps 그리고 Azure DevOpsALM과 DevOps 그리고 Azure DevOps
ALM과 DevOps 그리고 Azure DevOps
 
[Atlassian in 부산]분야 별 Atlassian 솔루션 적용 사례_KIC
[Atlassian in 부산]분야 별 Atlassian 솔루션 적용 사례_KIC[Atlassian in 부산]분야 별 Atlassian 솔루션 적용 사례_KIC
[Atlassian in 부산]분야 별 Atlassian 솔루션 적용 사례_KIC
 
Azure DevOps를 활용한 CI, CD 구축
Azure DevOps를 활용한 CI, CD 구축Azure DevOps를 활용한 CI, CD 구축
Azure DevOps를 활용한 CI, CD 구축
 
Git의 기초 및 Bitbucket을 이용한 Git 코드 협업 - Twoseed
Git의 기초 및 Bitbucket을 이용한 Git 코드 협업 - TwoseedGit의 기초 및 Bitbucket을 이용한 Git 코드 협업 - Twoseed
Git의 기초 및 Bitbucket을 이용한 Git 코드 협업 - Twoseed
 
[오픈소스컨설팅] jira service desk 201908
[오픈소스컨설팅] jira service desk 201908[오픈소스컨설팅] jira service desk 201908
[오픈소스컨설팅] jira service desk 201908
 
가상화 환경에서 배포 방법과 컨테이너 환경에서 CICD 차이점
가상화 환경에서 배포 방법과 컨테이너 환경에서 CICD 차이점가상화 환경에서 배포 방법과 컨테이너 환경에서 CICD 차이점
가상화 환경에서 배포 방법과 컨테이너 환경에서 CICD 차이점
 
CI / CD ( 지속적인 통합 / 지속적인 전달 ) 발표 자료 다운로드
CI / CD ( 지속적인 통합 / 지속적인 전달 ) 발표 자료 다운로드CI / CD ( 지속적인 통합 / 지속적인 전달 ) 발표 자료 다운로드
CI / CD ( 지속적인 통합 / 지속적인 전달 ) 발표 자료 다운로드
 
[Atlassian meets dev ops and itsm] kakao meets jira
[Atlassian meets dev ops and itsm] kakao meets jira[Atlassian meets dev ops and itsm] kakao meets jira
[Atlassian meets dev ops and itsm] kakao meets jira
 
숨겨진 마이크로서비스: 초고속 응답과 고가용성을 위한 캐시 서비스 디자인
숨겨진 마이크로서비스: 초고속 응답과 고가용성을 위한 캐시 서비스 디자인숨겨진 마이크로서비스: 초고속 응답과 고가용성을 위한 캐시 서비스 디자인
숨겨진 마이크로서비스: 초고속 응답과 고가용성을 위한 캐시 서비스 디자인
 
Pivotal 101세미나 발표자료 (PAS,PKS)
Pivotal 101세미나 발표자료 (PAS,PKS) Pivotal 101세미나 발표자료 (PAS,PKS)
Pivotal 101세미나 발표자료 (PAS,PKS)
 
클라우드 네이티브로의 전환을 위한 여정
클라우드 네이티브로의 전환을 위한 여정클라우드 네이티브로의 전환을 위한 여정
클라우드 네이티브로의 전환을 위한 여정
 
[오픈소스컨설팅]Session 5. 또 다른 혁신, atlassian jira 7 소개
[오픈소스컨설팅]Session 5. 또 다른 혁신, atlassian jira 7 소개[오픈소스컨설팅]Session 5. 또 다른 혁신, atlassian jira 7 소개
[오픈소스컨설팅]Session 5. 또 다른 혁신, atlassian jira 7 소개
 
DevOps 발표 자료 다운로드
DevOps 발표 자료 다운로드DevOps 발표 자료 다운로드
DevOps 발표 자료 다운로드
 
클라우드 네이티브를 위한 필요사항과 Pivotal 제안 - 이우상
클라우드 네이티브를 위한 필요사항과 Pivotal 제안 - 이우상클라우드 네이티브를 위한 필요사항과 Pivotal 제안 - 이우상
클라우드 네이티브를 위한 필요사항과 Pivotal 제안 - 이우상
 
DevOps
DevOpsDevOps
DevOps
 

Ähnlich wie Atlassian cloud 제품을 이용한 DevOps 프로세스 구축

효과적인 데브옵스를 위한 AWS 개발 도구 활용하기 - AWS Summit Seoul 2017
효과적인 데브옵스를 위한 AWS 개발 도구 활용하기 - AWS Summit Seoul 2017효과적인 데브옵스를 위한 AWS 개발 도구 활용하기 - AWS Summit Seoul 2017
효과적인 데브옵스를 위한 AWS 개발 도구 활용하기 - AWS Summit Seoul 2017
Amazon Web Services Korea
 
Open standard open cloud engine (3)
Open standard open cloud engine (3)Open standard open cloud engine (3)
Open standard open cloud engine (3)
uEngine Solutions
 
GitHub로 프로젝트 운영하기
GitHub로 프로젝트 운영하기GitHub로 프로젝트 운영하기
GitHub로 프로젝트 운영하기
Lee Geonhee
 
OCE - Cno 2014 private sector oriented open paas oce
OCE - Cno 2014 private sector oriented open paas   oceOCE - Cno 2014 private sector oriented open paas   oce
OCE - Cno 2014 private sector oriented open paas oce
uEngine Solutions
 

Ähnlich wie Atlassian cloud 제품을 이용한 DevOps 프로세스 구축 (20)

GitLab과 Kubernetes를 통한 CI/CD 구축
GitLab과 Kubernetes를 통한 CI/CD 구축GitLab과 Kubernetes를 통한 CI/CD 구축
GitLab과 Kubernetes를 통한 CI/CD 구축
 
코드로 인프라 관리하기 - 자동화 툴 소개
코드로 인프라 관리하기 - 자동화 툴 소개코드로 인프라 관리하기 - 자동화 툴 소개
코드로 인프라 관리하기 - 자동화 툴 소개
 
About Git_2017.08.31 aug 투씨드 (박재석)
About Git_2017.08.31 aug 투씨드 (박재석)About Git_2017.08.31 aug 투씨드 (박재석)
About Git_2017.08.31 aug 투씨드 (박재석)
 
효과적인 데브옵스를 위한 AWS 개발 도구 활용하기 - AWS Summit Seoul 2017
효과적인 데브옵스를 위한 AWS 개발 도구 활용하기 - AWS Summit Seoul 2017효과적인 데브옵스를 위한 AWS 개발 도구 활용하기 - AWS Summit Seoul 2017
효과적인 데브옵스를 위한 AWS 개발 도구 활용하기 - AWS Summit Seoul 2017
 
DevOps 시대의 새로운 Role - Full Cycle Developer
DevOps 시대의 새로운 Role - Full Cycle DeveloperDevOps 시대의 새로운 Role - Full Cycle Developer
DevOps 시대의 새로운 Role - Full Cycle Developer
 
오픈소스 프로젝트 따라잡기_공개
오픈소스 프로젝트 따라잡기_공개오픈소스 프로젝트 따라잡기_공개
오픈소스 프로젝트 따라잡기_공개
 
Travis-ci를 이용한 CI/CD와 도커를 이용한 Jenkins for Android 구성하기
Travis-ci를 이용한 CI/CD와 도커를 이용한 Jenkins for Android 구성하기Travis-ci를 이용한 CI/CD와 도커를 이용한 Jenkins for Android 구성하기
Travis-ci를 이용한 CI/CD와 도커를 이용한 Jenkins for Android 구성하기
 
성장하는 스타트업의 프로세스 개척기
성장하는 스타트업의 프로세스 개척기성장하는 스타트업의 프로세스 개척기
성장하는 스타트업의 프로세스 개척기
 
2022.08 멘토링 자료.pptx
2022.08 멘토링 자료.pptx2022.08 멘토링 자료.pptx
2022.08 멘토링 자료.pptx
 
DevOps - Mousoft
DevOps - MousoftDevOps - Mousoft
DevOps - Mousoft
 
Travis CI 에서 CodeBuild 로
Travis CI 에서 CodeBuild 로Travis CI 에서 CodeBuild 로
Travis CI 에서 CodeBuild 로
 
github actions kubernetes 설치&운영하기
github actions kubernetes 설치&운영하기github actions kubernetes 설치&운영하기
github actions kubernetes 설치&운영하기
 
IBM Bluemix handson lab_DevOps_Target_Deploy_configutation_java_petclinic_v1.0
IBM Bluemix handson lab_DevOps_Target_Deploy_configutation_java_petclinic_v1.0IBM Bluemix handson lab_DevOps_Target_Deploy_configutation_java_petclinic_v1.0
IBM Bluemix handson lab_DevOps_Target_Deploy_configutation_java_petclinic_v1.0
 
Meetup tools for-cloud_native_apps_meetup20180510-vs
Meetup tools for-cloud_native_apps_meetup20180510-vsMeetup tools for-cloud_native_apps_meetup20180510-vs
Meetup tools for-cloud_native_apps_meetup20180510-vs
 
Open standard open cloud engine (3)
Open standard open cloud engine (3)Open standard open cloud engine (3)
Open standard open cloud engine (3)
 
DevOps와 함께 살펴보는 (해커톤의 성패를 좌우하는) 협업/개발 툴
DevOps와 함께 살펴보는 (해커톤의 성패를 좌우하는) 협업/개발 툴DevOps와 함께 살펴보는 (해커톤의 성패를 좌우하는) 협업/개발 툴
DevOps와 함께 살펴보는 (해커톤의 성패를 좌우하는) 협업/개발 툴
 
GitHub로 프로젝트 운영하기
GitHub로 프로젝트 운영하기GitHub로 프로젝트 운영하기
GitHub로 프로젝트 운영하기
 
데브옵스(DevOps) 문화 모범 사례와 구현 도구 살펴보기 – 박선준 :: AWS Builders Online Series
데브옵스(DevOps) 문화 모범 사례와 구현 도구 살펴보기 – 박선준 :: AWS Builders Online Series데브옵스(DevOps) 문화 모범 사례와 구현 도구 살펴보기 – 박선준 :: AWS Builders Online Series
데브옵스(DevOps) 문화 모범 사례와 구현 도구 살펴보기 – 박선준 :: AWS Builders Online Series
 
VSTS와 Azure를 이용한 팀 프로세스 관리
VSTS와 Azure를 이용한 팀 프로세스 관리VSTS와 Azure를 이용한 팀 프로세스 관리
VSTS와 Azure를 이용한 팀 프로세스 관리
 
OCE - Cno 2014 private sector oriented open paas oce
OCE - Cno 2014 private sector oriented open paas   oceOCE - Cno 2014 private sector oriented open paas   oce
OCE - Cno 2014 private sector oriented open paas oce
 

Atlassian cloud 제품을 이용한 DevOps 프로세스 구축

  • 1. Atlassian Cloud 제품을 이용한 DevOps 프로세스 구축
  • 2. Contents DevOps란? 01 Repository와 Jira의 연동 02 Bitbucket Cloud를 통한 소스 배포 03 Jira Automation을 통한 DevOps 구축 04
  • 5. What is DevOps? • 현대 소프트웨어 개발 용어로 디지털 제품을 생산하는 모든 팀에 적용 가능 • 전반적인 목표는 최상의 성과를 달성하는 것 • 고객에게 높은 가치를 신속하게 제공 • Apply to : • organizational structure • culture • practices • tool
  • 6. Dev vs. Ops – 관점의 차이 • 개발팀과 운영팀의 분리 • 개발팀은 신규 서비스를 개발 • 운영팀은 서비스를 배포하고 운영 • 팀들간의 이해가 상충 • 개발팀은 결과물의 양과 혁신의 속도에 중점 • 운영팀은 안정성에 중점
  • 7. DevOps의 4가지 주요 지표 • 처리량과 관련된 2가지 항목(Dev): • Delivery lead time(cycle time) – 작업의 시작부터 생산까지의 시간 • Deployment frequency – 배포하는 빈도 수 • 안정성과 관련된 2가지 항목(Ops): • Change failure rate – 취소 또는 신속하게 수정해야하는 변경 사항의 비율 • Mean time to recovery (MTTR) – 문제가 발생한 시작부터 해결까지의 시간
  • 9. Atlassian DevOps 관련 정보에 대한 화면 • 서로 다른 DevOps Tool에 대한 정보를 통합하여 표시 • 지속적인 개선을 위한 Insight 제공
  • 11. Repositories • 프로젝트의 파일과 폴더는 Git Repository에 저장 • Local repository – 파일 및 폴더가 내 컴퓨터에 위치 • Remote repository – 파일 및 폴더가 서버에 위치 • ex) Bitbucket, GitHub, GitLab
  • 12. Jira를 통한 개발 작업 내역 보기 • Jira의 이슈에는 개발 작업과 관련된 내역이 표기됨 • Jira는 Bitbucket, GitLab, GitHub과 같은 Git Repository를 통합 가능 • 개발 작업 내역이 표기된 영역을 Development panel이라 부름
  • 13. Jira 이슈를 통한 개발 내역 상세 보기 • Jira에서 개발 정보 클릭 시 Repository의 상세 내역이 팝업 창으로 표출 • 팝업 창에서 Commit 내역 클릭 시 Bitbucket의 Repository 화면으로 이동
  • 14. Jira와 Git repository 통합의 장점 • Jira issue와 관련 개발 작업을 안정적으로 연결 • 개발 진행 상황에 따라 자동으로 Jira의 이슈 업데이트 • 작업에 대한 진행 상황을 팀원들에게 알림 • 개발자는 Jira issue 업데이트 없이 Tool에서 개발작업을 진행 • DevOps 프로세스 개선을 위한 Insight 제공
  • 15. Jira의 Code 화면 • Jira 프로젝트에 연결된 repository를 표시 • 다양한 솔루션의 여러 repository를 추가 할 수 있음 • 예) GitHub, GitLab, Bitbucket
  • 16. repository 연결 • repository가 연결되면 Jira에서 commit, branch 생성, pull request 내역 확인 가능 • branch명, commit 메세지, pull request 생성 시 이슈 키를 맵핑하여 사용
  • 17. Jira issue에서 repository branch 생성 • Jira가 repository와 통합되면 Jira issue 보기 화면에 branch를 생성 할 수 있음 • Jira issue에서 개발 작업을 시작할 수 있는 편리함이 있음
  • 18. branch 생성 • Jira issue key는 branch명에 포함되어 있음 • Jira issue와 repository를 연결하는 작업 • branch명에 Jira issue 제목이 포함 됨
  • 19. Bitbucket에서 branch 화면 • 개발자는 Bitbucket 또는 개발 Tool을 통해 branch에 대한 작업 가능
  • 20. Commit 생성 • bitbucket을 사용해서 repository 파일 및 commit 생성, 삭제 또는 업데이트를 함
  • 21. Commit 메세지에 이슈키를 포함 • commit 메세지에 issue key를 포함하면 issue 보기화면에 commit 내역이 표시 됨 • commit 링크를 클릭하면 Jira 화면을 종료하지 않고 commit 정보를 확인 할 수 있음
  • 22. Bitbucket Cloud를 통한 소스 배포
  • 23. 지속적인 통합과 지속적인 배포(CI/CD) • DevOps의 핵심적인 요소는 CI/CD의 파이프라인 • 배포 파이프라인이라고도 함 • 자동화 항목 • Builds • Test • 스테이징 및 운영 환경에 배포 • CI/CD의 목표는 작은 사이즈 단위로 지속적인 배포를 하는 것
  • 24. 파이프라인의 단계 • 크게 두가지 단계로 구분 • Pre-deployment/build • Deployment • Pre-deployment 단계 실패 시 파이프라인이 중지 됨 • Pre-deployment 단계 통과 시 스테이징 또는 운영 환경에 배포 진행 Pre-deployment Deployment
  • 25. 자동 VS. 수동 배포 • 배포 단계에서 자동 또는 수동으로 실행되도록 구성 할 수 있음 • 일반적으로 스테이징 서버 배포는 자동으로 구성 • 운영 배포는 종종 수동으로 구성 • 예를 들면 배포 담당자는 운영에 배포할 시기를 선택 할 수 있음 Automatic Manual
  • 26. 파이프라인 실행 시점 • 소스 커밋 • pull request 승인 • Automation rule • 수동으로 실행
  • 27. Bitbucket 파이프라인 구성 • Bitbucket 파이프라인을 정의하려면 repository의 루트 폴더에 bitbucket-pipelines.yml이라는 텍스트 파일을 저장해야 함 • Bitbucket은 배포 과정을 보다 쉽게 수행 할 수 있도록 템플릿과 UI를 제공 함
  • 28. bitbucket-pipelines.yml 파일 구성 • 템플릿은 Bitbucket에 의해 자동으로 생성 Pre-deployment/ build Deployment
  • 29. bitbucket-pipelines.yml 파일 수동 배포 구성 • trigger:‘manual’ 행을 step에 추가하여 자동 배포에서 수동 배포로 변경 Manual Manual
  • 30. 파이프라인 트리거 항목 지정 • The default: 해당 라인의 의미는 repository에 대한 commit 실행 시 파이프라인이 시작되는 트리거 • default 대신 branch 명을 지정하여 선택적으로 trigger 가능
  • 31. build가 실패했을 경우 • 실패한 단계를 시뮬레이션하기 위해 step 항목에 ‘exit 1’ 명령을 사용 • Security scan 단계 Jira가 빌드 실패를 적용
  • 32. Jira Releases panel • Jira에서 이슈와 관련된 배포 정보는 이슈의 release panel에 표시 됨 • Jira에 release 상태를 바로 확인 할 수 있음 • CI/CD 도구와 함께 작동하도록 Jira 구성 • commit 메세지, branch명, pull request에 이슈 키 지정
  • 33. Jira Deployments page • 배포 페이지에는 프로젝트 이슈에 대한 배포 정보가 표시 됨
  • 34. 배포에 대한 상세 정보 표시 • 타임라인 클릭 시 배포에 대한 상세 정보 확인 가능
  • 35. Insight 확인 • 배포 빈도와 주기적인 시간 확인 및 과거 내역 확인은 Insight에서 가능 • 지속적인 개선을 위한 가시성 제공
  • 36. JQL을 사용하여 개발 상태 보기 • repository 및 CI/CD 파이프라인과 같은 연결된 도구의 정보를 JQL 검색을 통해 확인 가능 • Examples: • pull request가 생성된 모든 이슈 • 현재 운영에 배포되지 않은 모든 이슈
  • 38. DevOps Jira Automation 자동화 사용 사례 • 첫 commit 시 이슈 상태를 “진행 중”으로 자동 변경 • CI/CD 빌드가 실패하거나 pull request 생성 시 팀 slack 채널에 알림 전송
  • 39. DevOps triggers • repository에 변경을 기준으로 트리거 함