맨위로가기

데브옵스 툴체인

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

1. 개요

데브옵스 툴체인은 데브옵스 실현을 위해 사용되는 도구들의 집합을 의미한다. 데브옵스는 소프트웨어 개발자와 IT 전문가 간의 협업을 통해 소프트웨어 전달 및 인프라 변경 프로세스를 자동화하는 일련의 관행이며, 데브옵스 툴체인은 계획, 생성, 검증, 패키지, 릴리스, 구성, 모니터링, 버전 관리 단계를 포함한다. 각 단계는 소프트웨어 개발 및 운영 과정에서 필요한 활동들을 지원하며, 다양한 도구와 솔루션이 사용된다.

더 읽어볼만한 페이지

  • 소프트웨어 설계 - 구조적 분석
    구조적 분석은 1960년대에서 1980년대 소프트웨어 개발의 복잡성을 해결하기 위해 개발된 기법으로, 다이어그램과 데이터 사전을 활용하여 시스템을 분석하고 설계했으며, 객체 지향 프로그래밍의 등장으로 활용도가 감소했다.
  • 소프트웨어 설계 - 지속적 배포
    지속적 배포(CD)는 소프트웨어 릴리스 프로세스를 자동화하는 접근 방식이며, 배포 파이프라인을 통해 구현되고 시장 출시 시간 단축, 제품 품질 향상 등의 이점을 제공하지만 테스트 자동화 부족 등의 과제도 존재한다.
  • 프로그래밍 도구 - SWIG
    SWIG는 C/C++ 코드를 다른 프로그래밍 언어에서 사용할 수 있도록 인터페이스를 자동으로 생성해주는 도구로서, 복잡한 데이터 형식 처리, 메모리 관리 등을 지원하며, LLDB, GNU Radio, TensorFlow 등 다양한 프로젝트에서 활용된다.
  • 프로그래밍 도구 - 소스 코드 편집기
    소스 코드 편집기는 구문 강조, 자동 완성, 들여쓰기 등의 기능으로 코드 편집을 용이하게 하고 개발 도구 실행 환경을 제공하며, 텍스트 편집 대신 AST를 조작하는 구조 편집기도 존재한다.
  • 소프트웨어 개발 프로세스 - 버전 관리
    버전 관리는 파일 변경 이력을 체계적으로 관리하는 시스템이며, 다양한 구조와 소스 관리 모델을 통해 협업을 지원하고, 비즈니스 등 다양한 분야에서 활용된다.
  • 소프트웨어 개발 프로세스 - 소프트웨어 개발 수명 주기
    소프트웨어 개발 수명 주기(SDLC)는 시스템 설계자와 개발자가 따르는 일련의 단계로, 예비 분석부터 폐기까지 여러 단계를 거치며, 폭포수 모델, 시스템 분석 및 설계(SAD), 객체 지향 분석 및 설계(OOAD) 등 다양한 방법론을 포함한다.
데브옵스 툴체인
데브옵스 툴체인
데브옵스 툴체인의 시각적 표현
데브옵스 툴체인의 시각적 표현
분야소프트웨어 개발
문제 해결개발 및 운영 팀 간의 협업 및 커뮤니케이션 격차
솔루션프로세스 및 도구의 컬렉션
관련 주제지속적 통합
지속적 배포
데브섹옵스
사이트 안정성 엔지니어링
참고 자료Atlassian 데브옵스 가이드
마이크로소프트 데브옵스 소개
아마존 웹 서비스 데브옵스란 무엇인가?
도구 범주
코딩코드 개발 및 검토, 버전 제어 도구
빌드지속적 통합 도구
테스트테스트 결과에 대한 품질 보증 및 지속적 테스트 도구 제공
릴리스릴리스 오케스트레이션, 애플리케이션 릴리스 자동화
배포패키징된 소프트웨어를 배포할 수 있도록 함
인프라 구축 및 구성 도구
운영애플리케이션 성능 모니터링
모니터링애플리케이션 성능에 대한 피드백 제공
데브옵스 툴체인의 단계별 기능
계획요구 사항 정의
제품 기능 정의
코드코드 개발
코드 검토
빌드코드 통합
빌드 실행
테스트테스트 실행
테스트 결과 분석
릴리스릴리스 준비
릴리스 승인
배포프로비저닝
구성
운영애플리케이션 운영
문제 해결
모니터링모니터링
피드백 제공

2. 툴체인

소프트웨어 분야에서 툴체인은 복잡한 소프트웨어 개발 작업을 수행하거나 소프트웨어 제품, 일반적으로 다른 컴퓨터 프로그램 또는 관련 프로그램 집합을 만드는 데 사용되는 프로그래밍 도구의 집합이다. 일반적으로 툴체인을 구성하는 도구는 연속적으로 실행되므로 각 도구의 출력 또는 결과 환경 상태가 다음 도구의 입력 또는 시작 환경이 된다. 하지만, 반드시 연속적으로 실행될 필요는 없는 관련 도구 집합을 지칭할 때도 이 용어가 사용된다.[3][4][5]

데브옵스소프트웨어 개발자와 다른 정보 기술(IT) 전문가의 협업과 소통을 강조하면서 소프트웨어 전달 및 인프라 변경 프로세스를 자동화하는 일련의 관행이다. 따라서 데브옵스를 구현하는 과정에는 소프트웨어 개발 수명 주기의 다양한 단계에서 사용되는 일련의 도구를 정의하는 것이 포함될 수 있다. 데브옵스는 소프트웨어 개발과 운영 간의 문화적 변화와 협업을 의미하므로, 단일 제품을 '데브옵스 도구'라고 지칭하기는 어렵다. 대신, 다양한 공급업체의 도구 모음이 수명 주기의 하나 이상의 단계에서 활용된다.[6][7]

3. 데브옵스 (DevOps) 단계

소프트웨어 개발자와 정보 기술(IT) 전문가 간의 협업과 소통을 강조하며, 소프트웨어 전달 및 인프라 변경 프로세스를 자동화하는 일련의 관행을 데브옵스라고 한다.[6][7] 데브옵스를 구현하는 과정에는 소프트웨어 개발 수명 주기의 다양한 단계에서 사용되는 일련의 도구, 즉 툴체인을 정의하는 것이 포함될 수 있다.

툴체인은 일반적으로 복잡한 소프트웨어 개발 작업을 수행하거나 소프트웨어 제품을 만드는 데 사용되는 프로그래밍 도구의 집합을 의미한다.[3][4][5] 전통적인 툴체인에서는 각 도구의 출력이 다음 도구의 입력이 되는 방식으로 도구들이 연속적으로 실행되는 경우가 많다. 하지만 데브옵스 맥락에서는 반드시 연속적으로 실행될 필요는 없는 관련 도구들의 집합을 지칭하는 데 사용되기도 한다.[3][4][5]

데브옵스는 소프트웨어 개발과 운영 간의 문화적 변화와 협업을 중시하기 때문에, '데브옵스 도구'라고 불릴 수 있는 단일 제품은 존재하지 않는다. 대신, 다양한 공급업체에서 제공하는 여러 도구들이 모여 툴체인을 구성하고, 이 툴체인이 데브옵스 수명 주기의 하나 이상의 단계를 지원하게 된다.[6][7] 데브옵스 프로세스는 여러 단계로 구성되며, 각 단계는 특정 활동과 이를 지원하는 도구들을 포함한다.

3. 1. 계획 (Plan)

계획(Plan) 단계는 "정의(define)"와 "계획(plan)" 두 가지 활동으로 구성된다.[8] 이 단계에서는 비즈니스 가치와 애플리케이션 요구 사항을 정의하고 계획한다. 주요 활동은 다음과 같다.

  • 생산 관련 지표, 객체, 피드백 수집 및 분석
  • 애플리케이션 요구 사항 정의
  • 비즈니스 목표 달성을 위한 지표 설정
  • 릴리스 관련 지표 업데이트
  • 릴리스 계획 수립, 시기 결정 및 비즈니스 타당성 검토
  • 보안 정책 수립 및 관련 요구 사항 정의


이러한 활동에는 비즈니스 애플리케이션 소유자, 소프트웨어 개발자, 소프트웨어 아키텍트, 지속적인 릴리스 관리 담당자, 보안 담당자, IT 인프라 생산 관리 담당자 등 다양한 IT 전문가들이 참여한다.

3. 2. 생성 (Create)

생성(Create)은 소프트웨어 개발 프로세스의 빌딩, 코딩 및 구성을 포함한다. 구체적인 활동은 다음과 같다.

  • 소프트웨어 및 구성 설계
  • 코드 품질 및 성능을 포함한 코딩
  • 소프트웨어 빌드 및 빌드 성능
  • 릴리스 후보


이 범주의 도구 및 공급업체는 종종 다른 범주와 중복된다. 데브옵스는 사일로(silo)를 무너뜨리는 것을 목표로 하므로, 이러한 특징은 활동과 제품 솔루션에도 반영된다.

3. 3. 검증 (Verify)

Verify는 소프트웨어 릴리스의 품질을 보장하는 것과 직접적으로 관련이 있다. 코드 품질을 유지하고 최고 품질의 코드가 프로덕션 환경에 배포되도록 설계된 활동이다.[8] 여기에는 다음과 같은 주요 활동이 포함된다.

  • 인수 테스트
  • 회귀 테스트
  • 보안 및 취약점 분석
  • 성능 테스트
  • 구성 테스트


Verify 관련 활동을 위한 솔루션은 일반적으로 테스트 자동화, 정적 분석, 테스트 랩 및 보안의 네 가지 주요 범주로 분류된다.

3. 4. 패키지 (Package)

패키지는 릴리스가 배포 준비가 되었을 때 관련된 활동을 말하며, 종종 스테이징 또는 사전 프로덕션(pre-production|프리 프로덕션eng, "preprod")이라고도 한다.[8] 여기에는 다음과 같은 작업과 활동이 포함되는 경우가 많다.

  • 승인 및 사전 승인
  • 패키지 구성
  • 트리거된 릴리스
  • 릴리스 스테이징 및 보류

3. 5. 릴리스 (Release)

릴리스는 소프트웨어를 프로덕션 및 대상 환경에 일정에 맞춰 배포하고, 오케스트레이션, 프로비저닝하는 활동을 포함한다.[9] 구체적인 릴리스 활동은 다음과 같다.

  • 릴리스 조정
  • 애플리케이션 배포 및 승격
  • 폴백 및 복구
  • 예약/시간 지정 릴리스


이러한 활동을 지원하는 툴체인 솔루션으로는 애플리케이션 릴리스 자동화, 배포 자동화, 릴리스 관리 등이 있다.

3. 6. 구성 (Configure)

구성 활동은 데브옵스의 운영 측면에 속한다. 소프트웨어가 배포된 후, 추가적인 IT 인프라 프로비저닝 및 구성 활동이 필요할 수 있다.

구체적인 활동은 다음과 같다.

  • 인프라 스토리지, 데이터베이스 및 네트워크 프로비저닝 및 구성
  • 애플리케이션 프로비저닝 및 구성


이러한 활동을 용이하게 하는 주요 솔루션 유형은 지속적 구성 자동화, 구성 관리, 그리고 코드형 인프라 도구이다.[10]

3. 7. 모니터 (Monitor)

모니터링은 데브옵스 툴체인에서 중요한 연결 고리 역할을 한다. 이를 통해 IT 조직은 특정 소프트웨어 릴리스에서 발생한 문제를 식별하고, 해당 문제가 최종 사용자에게 어떤 영향을 미치는지 파악할 수 있다. 모니터링 활동에는 주로 다음 내용들이 포함된다.

  • IT 인프라의 성능 측정
  • 최종 사용자의 응답 시간 및 사용 경험 분석
  • 실제 운영 환경(프로덕션)에서의 지표 및 통계 수집


이렇게 모니터링을 통해 얻은 정보는 시스템 변경이나 새로운 소프트웨어 릴리스 주기를 계획하는 데 중요한 기초 자료로 활용된다.

3. 8. 버전 관리 (Version Control)

버전 관리는 데브옵스 툴체인에서 중요한 연결 고리이자 소프트웨어 구성 관리의 구성 요소이다. 버전 관리는 문서, 컴퓨터 프로그램, 대규모 웹사이트 및 기타 정보 모음에 대한 변경 사항을 관리하는 것이다. 버전 관리와 관련된 활동의 요약은 다음과 같다.

  • 비선형 개발
  • 분산 개발
  • 기존 시스템 및 프로토콜과의 호환성
  • 툴킷 기반 설계


버전 관리의 정보는 변경 사항 및 새로운 릴리스 주기에 필요한 릴리스 활동을 지원하는 경우가 많다.

참조

[1] 웹사이트 Integrating DevOps tools into a Service Delivery Platform http://dev2ops.org/2[...] 2023-08-22
[2] 웹사이트 Exploring the ENTIRE DevOps Toolchain for (Cloud) Teams http://www.infoq.com[...]
[3] 웹사이트 Toolchain Overview http://www.nongnu.or[...] 2013-10-21
[4] 웹사이트 Toolchains http://elinux.org/To[...] 2013-10-21
[5] 서적 On the Move to Meaningful Internet Systems: OTM 2015 Workshops 2015-10-29
[6] 웹사이트 What is DevOps? http://radar.oreilly[...] 2012-06-07
[7] 간행물 Garner Market Trends: DevOps – Not a Market, but Tool-Centric Philosophy That supports a Continuous Delivery Value Chain Gartner 2015-02-18
[8] 간행물 Avoid Failure by Developing a Toolchain that Enables DevOps Gartner 2016-03-16
[9] 간행물 Best Practices in Change, Configuration and Release Management Gartner 2010-07-14
[10] 서적 Software Engineering: A Practitioner's Approach McGraw-Hill



본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.

문의하기 : help@durumis.com