안녕하세요. 오픈소스컨설팅 마케터 박현수입니다.
Digital Transformation 시대의 개발 프로세스의 변화와 개선의 필요성이 대두되면서, DevOps(데브옵스)에 대한 관심도 점차 높아지고 있는데요. DevOps 툴로서 아틀라시안(Atlassian)의 도입과 활용이 IT 업종을 비롯한 다양한 회사에서 다방면으로 이루어지고 있습니다. 특히 Atlassian Cloud(아틀라시안 클라우드) 버전이 출시되고, 많은 회사들이 Cloud 버전을 사용하면서 DevOps로의 쓰임새가 더욱 확장되고 있습니다. 이 글의 가장 하단에는 더욱 상세한 기술적 내용의 발표 자료와 데모가 준비되어 있으니 필요하신 분은 참고하시길 바랍니다.
(이 게시물은 오픈소스컨설팅 아틀라시안팀의 강미경님이 전사 테크세션으로 공유한 “Atlassian Cloud 제품을 이용한 DevOps 프로세스 구축”을 바탕으로 하여 그 이론과 사례를 소개하고자 합니다. 이 발표 자료를 작성한 강미경님이 어떤 엔지니어인지 궁금하시다면? 아래 인터뷰를 참고해주세요 😎😎)
👉👉 [Interview] 공유를 실천하는 엔지니어 – 강미경님
DevOps(데브옵스)란 현대 소프트웨어 개발 용어로, 디지털 제품을 생산하는 모든 팀에 적용 가능한 개념입니다. 전반적인 목표는 최상의 성과를 달성하는 것으로 고객에게 높은 가치를 신속하게 제공하고자 하는 목표가 있습니다. DevOps는 조직 구조와 문화, 관습 그리고 도구까지 아우르는 개념으로서, 오늘 소개할 Atlassian 솔루션은 이러한 DevOps의 개념을 실현하는 일종의 도구로 사용될 수 있습니다.
DevOps의 Dev와 Ops를 구분하는 것은 어떻게 보면 관점의 차이라고 볼 수 있겠는데요. 고전적인 의미에서 양 팀을 정의하자면 개발팀은 신규 서비스를 개발하는 팀이고, 운영팀은 서비스를 배포하고 운영하는 팀입니다. 따라서 두 팀의 목적은 다를 수 밖에 없죠. 개발팀은 결과물의 양과 혁신의 속도가 운영팀은 안정적인 서비스 운영이 가장 중요한 목표입니다. 이렇듯 팀 간의 이해가 상충하는 부분이 있지만, 회사의 궁극적 목표인 “고객의 (서비스)만족” 을 위해서는 두 가지 목표가 모두 충족 되어야만 합니다. 따라서, 개발과 운영 두 팀이 하나의 더 큰 목표를 가지고 효과적으로 잘 협업하도록 하는 것이 바로 DevOps라고 할 수 있습니다.
그렇다면, 성공적인 DevOps 도입을 위한 4가지 주요 지표에 대해서 알아보겠습니다.
먼저, 고전적인 개발팀의 중요한 목표 “산출량”에 관련한 2가지 지표입니다.
1)리드 타임 (Lead Time: 작업의 시작부터 생산까지의 시간) 2) 배포 빈도수
그리고 고전적인 운영팀의 중요한 목표 “안정성”과 관련된 2가지 지표입니다.
3)취소 또는 신속하게 수정해야 하는 변경 사항의 비율 4) MTTR (문제가 발생한 시작부터 해결까지의 시간)
위에서 언급했던 것처럼, 아틀라시안(Atlassian)은 DevOps를 효과적으로 구성할 수 있는 툴입니다.
계획을 위한 Jira Software, 산출물 관리를 위한 Confluence 부터 CI/CD를 위한 Bitbucket, Bamboo, 그리고 서비스 운영을 위한 Opsgenie, Jira Service Management까지 전체적인 DevOps 프로세스의 모든 구성원들이 도움을 받을 수 있는 솔루션이 다양하게 준비되어 있습니다. (상세한 로드맵은 아래 사진을 참고해주세요!) 물론 일부 솔루션들은 다른 솔루션으로 대체 가능하겠지만, Atlassian Toolkit을 구성해서 사용하시는 것을 가장 추천 드립니다.
Atlassian(아틀라시안) 솔루션에서 어떻게 DevOps가 이루어지고 있는지에 대한 화면을 살펴보겠습니다.
먼저 가장 기초가 되는 Jira issue(지라 이슈)의 상세 화면을 보면, 서로 다른 DevOps Tool에 정보를 통합하여 표시하고 있어 지속적으로 개선을 위한 Insight를 제공합니다.
다음으로 Repository와 Jira의 연동에 대해서 알아보겠습니다.
프로젝트의 파일과 폴더는 보통 Git Repository에 저장하게 되는데요, 내가 소스를 커밋할 때 파일과 폴더가 내 컴퓨터에 위치 하면 Local Repository, 파일과 폴더가 서버 (Bitbucket이나 아니면 Github(깃헙), Gitlab(깃랩) 등이 해당됩니다.)에 저장되면 Remote Repository라고 합니다.
Jira 이슈에는 “Development Panel”라는 개발 작업 내역이 표기된 영역이 있어 개발 작업 내용에 대해서 확인할 수 있습니다. Bitbucket나 Github, Gitlab (빗버킷,깃헙,깃랩)과 같은 Remote Repository와도 통합이 가능한 것을 확인할 수 있습니다.
또한, Jira에서 개발 정보를 클릭하면 Repository의 상세 내역을 팝업 창으로 표출하며, 팝업 창에서 Commit(커밋) 내역을 클릭 시, Bitbucket의 Repository 화면으로 바로 이동하는 것도 가능합니다.
이렇게 Jira와 Git repository를 통합하면 다양한 장점이 있습니다.
- Jira issue와 관련 개발 작업을 안정적으로 연결하여 Jira issue (지라 이슈) 하나만으로도 개발 작업 파악이 가능합니다.
- 개발 진행 상황에 따라 자동으로 Jira issue가 업데이트되어, 작업에 대한 진행상황을 팀원에게 편리하게 공유하는 것이 가능합니다.
- DevOps 프로세스 개선을 위한 Insight를 얻을 수 있습니다.
Jira의 코드 화면을 살펴보면, Jira 프로젝트에 연결된 repository를 표시할 수 있어 다양한 솔루션의 여러 Repository를 추가가 가능합니다. Repository가 연결되면, Jira에서 Commit, Branch 생성, Pull Request 내역 확인 등이 가능합니다.
Jira issue 세팅을 마치고 나면, 작업 내역이나 업데이트 등이 자동으로 표시되어 편리한 협업 환경을 절반 이상 마쳤다고 볼 수 있습니다. 다음으로는 CI/CD를 위한 Bitbucket Cloud를 이용한 소스 배포에 대해 알아 보겠습니다. 사실 Atlassian Cloud 제품이 출시되면서, 가장 큰 변화라고 볼 수 있는데요. 기존 Atlassian Server 버전에서 Bamboo와 Bitbucket을 함께 사용해야 CI/CD가 가능했었죠. 하지만 Bitbucket Cloud에서는 기존 Bamboo 서버 버전에서 이용 가능했던 배포 기능이 추가로 제공되어, Bitbucket Cloud 즉, Bitbucket Pipeline (빗버킷 파이프라인)에서 한 번에 CI/CD가 가능합니다.
DevOps의 가장 핵심적 요소는 CI/CD 파이프라인이라고 볼 수 있는데요. (CI/CD란 Continuous Integration/Continuous Deployment의 줄임말로서, 지속적인 통합과 지속적 배포를 뜻합니다.) 작은 사이즈 단위로 지속적으로 배포하여 최종 산출물에 빠르게 반영을 하는 것을 뜻합니다.
Bitbucket과 Jira Cloud를 활용한 DevOps 사례는 아래 영상에서도 바로 확인해보실 수 있습니다. 더욱 상세한 데모와 설명이 필요하다면, 오픈소스컨설팅 아틀라시안팀에 연락주세요
[DevOps편] 우리 회사도 재택 근무 할 수 있다! Atlassian으로 더 쉽게 재택 근무하기(Bitbucket,Jira)_#3 개발팀 이야기
배포 파이프라인은 Build(Pre-Deployment)단계와 Deployment 단계, 2단계로 이루어집니다. 파이프라인의 Build(pre-deployment)단계를 통과하면 스테이징 또는 운영 환경에 배포 진행되고, 실패하면 파이프라인이 중단됩니다. 위에서 언급한 DevOps 데모영상처럼 파이프라인의 실행 시점에 이루어지는 단계는 아래와 같습니다.
배포를 할 때는 Jira Automation을 이용하여 자동 배포를 하는 방법도 있고, 아니면 수동으로 배포할 수도 있습니다.
예전에는 Jenkins나 Bamboo를 이용해서 배포를 해야 했지만, 현재는 Bitbucet Cloud 자체적으로 해당 기능이 제공하고 있어 편리하게 배포 파이프라인 단계를 거칠 수 있습니다. (큰 조직이나 복잡한 기능이 필요한 경우는 Bamboo의 Special 기능을 사용해야겠죠.) Atlassian은 SaaS에서는 Bitbucket pipeline을 사용하는 것을 권고하고 있습니다.
다음으로는 위에서 잠깐 언급된 DevOps Jira Automation (지라 오토메이션) 자동화 기능과 사용 화면을 간단히 살펴보겠습니다. 첫 커밋(commit)시, 이슈 상태는 진행 중으로 자동 변경되고, CI/CD 빌드가 실패하거나 Pull Request 생성 시 팀 slack 채널에 자동 알림이 전송됩니다. 코드 Annotation시에는 따로 Jira issue 번호를 기입할 필요 없으며, Commit(커밋) 메시지에 Jira issue key가 들어가 있으면 자동으로 Jira link로 인식하여 따로 연결이 필요하지 않습니다.
요즘 IDE (Integrated Development Environment: 통합개발환경)에서는 Jira가 자동으로 연동이 되어, 코드를 만들 때 아예 Jira 이슈를 생성해 주는 경우도 있습니다.
오늘은 Atlassian Cloud (아틀라시안 클라우드) 제품들, 특히 Jira Cloud와 Bitbucket Cloud를 통해 DevOps 프로세스를 구축하는 방법을 살펴 보았는데요, 더욱 상세한 내용은 아래 링크들을 참고해주세요!
혹시 궁금한 점에 대해 묻고 싶거나, 자세한 데모가 필요하시면 아틀라시안 플래티넘 파트너 오픈소스컨설팅으로 연락주세요!
앞으로 오픈소스컨설팅에서 알려줬으면 하는 정보가 있으면, 아래 댓글로 의견을 남겨주세요!! 여러분의 의견을 적극 반영하여, 더 유용하고 풍성한 정보로 돌아오겠습니다.
🙋 🙋♂️ 상세 자료 다운로드받기 (“Atlassian Cloud 제품을 이용한 DevOps 프로세스 구축”- 출처 : 오픈소스컨설팅 강미경님)
👩💻 🧑💻 DevOps 활용 사례 및 데모 영상 (우리팀도 재택 근무할 수 있다!: 개발팀의 DevOps 활용 사례 살펴보기)
👩🔧 🧑🔧 지금 바로 Atlassian 전문가에게 문의하기