Digital Transformation 시대의 개발 프로세스의 변화와 개선의 필요성이 대두되면서, DevOps에 대한 관심도 점차 높아지고 있는데요. DevOps 툴로서 아틀라시안(Atlassian)의 도입과 활용이 IT 업종을 비롯한 다양한 회사에서 다방면으로 이루어지고 있습니다. 특히 Atlassian Cloud 버전을 출시하고, 많은 회사들이 Cloud 버전을 사용하면서 DevOps로의 쓰임새가 더욱 확장되고 있습니다.
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) – 문제가 발생한 시작부터 해결까지의 시간
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 제목이 포함 됨
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를
제공 함
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에
이슈 키 지정