본문 바로가기

아틀라시안/How To 가이드

DevOps로 나아가기 위한 4가지 주요 방법

 

안녕하세요, 디무브입니다! 🎈

현재 업무를 수행하고 있는 대부분의 팀은 목표를 달성하는 데 필요한 여러 업체의 다양한 도구를 사용하고 있습니다.

 

그러나 Atlassian에서 조사한 2020 DevOps Trends Survey에서 알 수 있듯이 많은 팀들이 DevOps 구현에 어려움을 겪고 있습니다.

 

DevOps로의 전환에는 문화적, 기술적 변화가 모두 필요하기 때문입니다.

 

작년 10월, Atlassian의 Ian Buchanan(주요 솔루션 설계자이자 DevOps 전문가)은 “DevOps 통합을 위한 4가지 중요 요소“라는 주제로 웨비나를 주최했습니다.

 

이 웨비나에서 Ian은 어떻게 파트너 에코 시스템이 통합된 DevOps tool chain을 강화하고 고객에게 그 가치를 제공할 수 있는 지에 관한 방법을 다뤘습니다.

 

Ian은 Atlassian 고객 설문조사 외에도 가장 큰 파트너 및 고객과의 경험을 바탕으로 DevOps 구축을 진행할 때 고려해야 할 4가지 주요 DevOps 사례를 소개했습니다.

 

 


1. 애자일 테스트

전통적으로 테스트는 QA 팀이 주도하며 프로젝트가 끝날 시점에 진행했습니다.

하지만 애자일 및 DevOps 전환에서는 팀이 초기 설계에서 통합, 배포 및 소프트웨어 제공에 이르는 개발 프로세스 전반에 걸친 테스트를 통합하여 리드 타임을 단축하고 버그를 더 빠르게 감지할 수 있습니다.

Agile testing에서 테스트는 사양(스펙)의 일부로 자동화를 통해 요청 사항에 맞는 테스트를 진행할 수 있습니다.

Atlassian의 테스트 통합은 팀 구성원이 Jira에서 직접 테스트를 쉽게 보고 관리할 수 있도록 설계되었습니다.

예를 들어, Zephyr for Jira에서 테스트 관리를 사용하면 Jira 이슈를 테스트로 사용하면 다른 애플리케이션으로 전환하지 않고도 테스트 상태 및 성능에 대한 전체 정보를 얻을 수 있습니다.

소프트웨어 개발 프로세스 전반에 걸쳐 테스트를 통합하기 위한 팁

01. 개발 프로세스 전반에 걸쳐 테스트의 가치를 공유할 수 있도록 설계합니다.

즉, 계획 단계에 테스트를 포함하고 개발 프로세스의 관계자가 각 테스트 구성 요소를 정의하는 데 도움을 줄 수 있습니다. 이렇게 하면 실패 분석 시간을 절약할 수 있습니다.

 

02. 세부 정보와 광범위한 보기를 모두 포함하는 중앙 집중식 보고를 설정합니다.

모든 팀이 사용할 수 있고 개발자, 제품 관리자 및 CTO가 해석할 수 있는 보고를 작성합니다.

 

03. DevOps 업무 흐름(워크플로)의 각 시스템에서 테스트를 통합합니다.

자동화 프레임워크 및 CI/CD 플랫폼을 포함하여 툴 전반에 걸쳐 테스트 진행 상황과 결과를 통합하도록 노력해야 합니다. 이를 실현하는 한 가지 방법은 Jira를 설정하여 데이터 흐름에 도움이 되는 통합을 식별하는 것입니다.

 


2. DevSecOps

많은 조직에서 보안 조치는 여전히 외부에서 내부로 향한 보안 사항에 국한되어 있습니다.

그러나 DevOps 및 Agile로의 전환으로 인해 소프트웨어 릴리스가 더 자주 발생하고 기존 보안 관행을 계속 사용하기가 더 어려워졌습니다.

 

이러한 변화로 인해 업무를 수행하는 팀은 테스트와 마찬가지로 개발 속도를 저해하지 않으면서 개발 흐름의 초기에 보안에 관한 내용을 함께 고려하여 개발을 진행해야합니다.

이러한 “좌회전(Shift-left)” 접근 방식을 통해 팀은 리드 타임이 단축시키고 보안 사고를 줄여 궁극적으로 유지 보수에 사용되는 시간과 자원을 절약할 수 있습니다.

 

DevSecOps 용 Atlassian 통합은 Jira 또는 Bitbucket 내에서 보안 관행을 관리하고 해결하는 데 사용할 수 있습니다.

예를 들어, Snyk와의 통합은 Bitbucket pipes를 이용하여 Bitbucket pipeline라인에 보안 스캐닝을 직접 삽입하거나 빌드 단계의 일부로 스캐닝을 포함하여 코드의 커밋에 대해 스캐닝을 할 수 있습니다.

 

이렇게 하면 풀 리퀘스트를 실행하기 전에 모든 보안 항목을 확인할 수 있습니다.

 


DevSecOps 사례 구축을 위한 팁

01. 도구가 아닌 방법에 대해 생각합니다.

DevSecOps는 올바른 도구를 비롯하여 사고 방식의 전환도 필요합니다. 계획 및 개발 프로세스에 보안을 통합하는 방법을 이해하는 데 시간을 할애하십시오. 보안에 관한 올바른 사고방식이나 문화가 있으면 도구의 가치를 극대화할 수 있습니다.

 

02. 이해 관계자의 동의를 얻어야 합니다.

보안을 개발 프로세스에 적용했을 때 얻을 수 있는 주요 이점들을 제시하여 이해 관계자의 동의를 얻을 수 있도록 합니다.

 

03. 보안을 위해 공유 모델을 채택합니다.

적합한 이해 관계자의 동의를 얻으면 더 많은 참여를 이끌 수 있습니다. 이해 관계자들과 협력하여 팀에 도움이 되는 방법을 정의합니다.

 

04. 개발자가 정보에 입각한 결정을 내릴 수 있도록 합니다.

개발자가 보안 전문가가 될 필요는 없지만 정보에 입각한 결정을 내릴 수 있을 만큼 초기에 관련 정보가 있어야 합니다. 올바른 도구를 사용하면 개발자가 필요로 하는 정보를 얻을 수 있습니다.

 


3. 기능 플래그(Feature flag) 사용

팀은 릴리스와 코드 배포를 결합할 때 플랫폼 기능과 사용자 경험에 비롯된 문제를 경험할 수 있습니다.

이를 해결하기 위해코드를 배포하지 않고 원격으로 기능을 활성화하거나 비활성화하는데 사용되는 소프트웨어 개발 프로세스인 기능 플래그를 사용하면 위험도를 낮추고 배포 빈도를 높여 변경 실패를 줄일 수 있습니다.

Atlassian은 Jira 내의 롤아웃 상태와 같은 기능 플래그 세부 정보를 표시하여 업무 흐름(워크 플로우)를 통합할 수 있도록 지원합니다.

또한 LaunchDarkly와의 통합을 통해 Jira 스토리 내에 기능 플래그를 만들 수 있습니다.

 

기능 플래그에 대한 팁

 

01. 플래그 계획을 전체 기능을 설계할 때 포함합니다.

사용자 인터페이스의 일부를 온/오프할 수 있도록 아이디어를 계획하고 이에 따라 코드를 개발하면 if문과 같은 기능 플래그를 쉽게 관리할 수 있습니다.

 

02. 명명 시스템을 표준화합니다.

기능 플래그 지정은 매우 중요하며 대규모 기능 플래그 지정이 일반적입니다. 명명시스템을 표준화하면 긴급 상황에서 신속하게 사용하려는 기능을 찾을 수 있습니다.

 

03. 플래그의 범위를 최소화합니다.

릴리스 및 배포에 대한 더 많은 제어를 유지하려면 플래그 범위를 좁혀 기능 변경 사항을 격리하십시오.

 

04. 정기적으로 플래그 사용을 검토합니다 .

모든 사용자에 대해 기능이 설정되면 일부 사용자는 기능 플래그를 제거하고 싶을 것입니다. 그렇기 때문에 몇 개월마다 기능 플래그를 주기적으로 살펴봐야 합니다.

 

4. 모니터링 및 옵저버빌리티(Observability)

많은 운영 팀은 여전히 ​​속도와 품질 사이의 균형을 맞추는데에 어려움을 겪고 있습니다.

이는 효과적으로 우선 순위를 정할 수 있는 기준을 놓치고 있기 때문이며 이는 주어진 시간에 성능 테스트에 대한 감각을 얻기 어렵기 때문입니다.

또한 로깅 및 모니터링은 중요하지만 사각지대와 잘못된 구성을 생성하는 수십 개의 데이터 소스로 인해 불필요한 모니터링을 수행할 수도 있습니다.

 

그래서 옵저버빌리티에 대한 기능은 애플리케이션의 성능, 기본 인프라 및 모든 사용자의 경험에 대해 정확한 답변을 제공하여 팀이 훨씬 더 빠르게 인시던트를 찾고 해결할 수 있도록 합니다.

Atlassian의 고급 관찰 기능(Advanced Observability)은 팀이 플랫폼 전반에 걸쳐 경고를 업데이트, 확인 및 관리할 수 있도록 지원합니다.

 

예를 들어, Dynatrace와의 통합은 모니터링 플랫폼과 Jira간에 발생한 문제를 동기화하거나 Bitbucket 배포 작업을 플랫폼에 보내 문제의 근본 원인을 파악할 수 있습니다.

Sumo Logic과 같은 솔루션을 통해 한 개의 대시보드에서 여러 Atlassian 제품의 정보를 통합하여 확인할 수도 있습니다.

 

모니터링 및 관찰 가능성에 접근하는 방법

01. “고급 관찰 가능성”의 메트릭을 추적합니다.

메트릭, 로그 및 추적 외에도 앱 토폴로지, 코드 수준 세부 정보, 사용자 경험 및 동작도 모니터링해야 합니다. 이러한 메트릭이 상황에 맞게 연결되면 근본 원인과 미치는 영향을 더 빨리 이해할 수 있습니다.

 

02. 업무 자동화를 실현합니다.

자동화는 현대적이고 동적인 멀티 클라우드 애플리케이션 환경에서 매우 중요하기 때문에 충분한 시간을 투자하여 적용하십시오.

 

03. 근본 원인과 비즈니스 영향에 대한 정보를 전달할 수 있는 AI로 “가상 팀”을 설계합니다.

발생한 상황, 비즈니스 영향, 문제의 근본 원인 및 해결 방법에 대한 정보를 알려줄 준비가 된 “가상 팀” 역할을 하는 기술을 사용합니다.

 

04. 팀 간에 도구를 공유합니다.

개발, 운영 및 비즈니스의 팀 간에 공통 언어를 사용할 수 있는 도구를 채택하여 보다 효과적으로 협업할 수 있습니다.

 

 


Atlassian과 파트너 에코시스템은 DevOps에 대한 개방형 툴체인 접근 방식을 지원합니다.

이 접근 방식을 통해 조직의 기존 워크플로우와 간편하게 통합할 수 있습니다.

 

예를 들어, DevOps의 초기 단계의 경우 Jira에서 주요 업무를 작업하고 다른 기능은 수동으로 처리하는식으로

업무 방식을 관리할 수 있습니다.

 

이 단계가 끝나면 애자일 테스트 및 지속적 제공으로 전환하여 더 많은 통합과 자동화를 실현할 수 있습니다.

이러한 과정이 더 발전할수록 테스트와 전달이 훨씬 더 통합되고 옵저버빌리티와 기능 플래그를 채택하게 될 것입니다.

 

DevOps를 보다 성공적으로 시작하고 싶으시다면 언제든지 디무브로 연락주세요.

감사합니다. 😃