DevOps 툴체인

DevOps toolchain

DevOps 툴체인(DevOps toolchain)은 DevOps practice를 사용하는 조직에 의해 조정된 대로 시스템 개발 수명주기 전반에 걸쳐 소프트웨어 애플리케이션의 전달, 개발 및 관리를 지원하는 툴의 세트 또는 조합이다.

일반적으로 DevOps 도구는 하나 이상의 활동에 적합하며, 특정 DevOps 이니셔티브인 Plan, Create, Verify, Package, Release, Configure, Monitor 및 Version Control을 지원한다.[1][2]

공구체인

소프트웨어에서 툴체인(toolchain)은 복잡한 소프트웨어 개발 작업을 수행하거나 소프트웨어 제품을 만드는 데 사용되는 프로그래밍 툴의 집합으로, 일반적으로는 다른 컴퓨터 프로그램이나 관련 프로그램의 집합이다.일반적으로 툴체인을 형성하는 툴은 연속적으로 실행되기 때문에 각 툴의 출력이나 결과 환경 상태가 다음 툴의 입력이나 시작 환경이 되지만, 반드시 연속적으로 실행되지 않는 관련 툴의 집합을 언급할 때도 이 용어를 사용한다.[3][4][5]

DevOps는 소프트웨어 개발자와 기타 정보기술(IT) 전문가 모두의 협업과 커뮤니케이션을 강조하는 관행의 집합체로서, 소프트웨어 전달과 인프라 변경의 프로세스를 자동화하는 동시에, 라이프사이클의 다양한 단계에서 사용되는 일련의 도구의 정의를 구현할 수 있다.e; DevOps는 개발과 운영 사이의 문화적 변화 및 협업이기 때문에 하나의 DevOps 도구로 간주할 수 있는 제품은 없다.대신 다양한 공급업체의 도구 모음이 라이프사이클의 하나 이상의 단계에서 사용된다.[6][7]

DevOps 단계

계획

계획은 "define"과 "plan"[8]의 두 가지로 구성되어 있다.이 활동은 비즈니스 가치와 응용 프로그램 요건을 가리킨다.구체적으로 "계획" 활동은 다음을 포함한다.

  • 운영 메트릭, 개체 및 피드백
  • 요구 사항들
  • 비즈니스 메트릭
  • 릴리스 메트릭 업데이트
  • 출시 계획, 시기 및 비즈니스 사례
  • 보안 정책 및 요구 사항

비즈니스 애플리케이션 소유자, 소프트웨어 개발, 소프트웨어 설계자, 지속적인 릴리스 관리, 보안 담당자 및 IT 인프라 생산 관리를 담당하는 조직 등 IT 인력의 조합이 이러한 활동에 참여하게 된다.

만들다

Create는 소프트웨어 개발 프로세스의 구축, 코딩 및 구성으로 구성된다.[8]구체적인 활동은 다음과 같다.

  • 소프트웨어 및 구성 설계
  • 코드 품질 및 성능을 포함한 코드화
  • 소프트웨어 빌드 및 빌드 성능
  • 불출후보자

이 범주의 도구 및 공급업체는 종종 다른 범주와 중복된다.DevOps는 사일로를 해체하기 위한 것이기 때문에, 이는 활동과 제품 솔루션에서 반영된다.[clarification needed]

검증하다

검증은 소프트웨어 릴리스의 품질을 보증하는 것과 직접적인 관련이 있다. 즉, 코드 품질을 유지하고 최고 품질을 생산에 배치하도록 설계된 활동이다.[8]이에 대한 주요 활동은 다음과 같다.

  • 합격시험
  • 회귀 검정
  • 보안 및 취약성 분석
  • 퍼포먼스
  • 구성 테스트

관련 활동을 검증하기 위한 해결책은 일반적으로 네 가지 주요 범주에 속한다.테스트 자동화, 정적 분석, 테스트 랩 및 보안.

포장

포장(packaging)은 배포가 준비되면 관련된 활동을 말하며, 종종 준비 또는 사전 제작/"사전 제작"이라고도 한다.[8]여기에는 종종 다음과 같은 업무와 활동이 포함된다.

  • 승인/사전 승인
  • 패키지 구성
  • 트리거된 릴리스
  • 해제 스테이징 및 홀딩

해제

릴리즈 관련 활동에는 일정, 조정, 프로비저닝 및 소프트웨어를 프로덕션 및 타겟 환경에 배포하는 작업이 포함된다.[9]구체적인 릴리스 활동에는 다음이 포함된다.

  • 릴리즈 조정
  • 애플리케이션 배포 및 홍보
  • 낙후 및 회복
  • 예약/시간 지정 릴리스

툴체인의 이러한 측면을 다루는 솔루션에는 애플리케이션 릴리스 자동화, 구축 자동화 및 릴리스 관리가 포함된다.

설정하다

DevOps의 운영 측에 해당하는 구성 활동.소프트웨어가 구축되면 추가 IT 인프라 프로비저닝 및 구성 작업이 필요할 수 있다.[8]다음을 포함한 특정 활동:

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

이러한 활동을 촉진하는 주요 솔루션 유형은 지속적인 구성 자동화, 구성 관리코드 툴로서의 인프라다.[10]

모니터

모니터링은 DevOps 툴체인에서 중요한 링크다.IT 조직은 특정 릴리스의 특정 문제를 파악하고 최종 사용자에게 미치는 영향을 파악할 수 있다.[8]모니터 관련 활동의 요약은 다음과 같다.

  • IT 인프라의 성능
  • 최종 사용자의 대응 및 경험
  • 프로덕션 메트릭 및 통계

모니터링 활동의 정보는 변경 및 새로운 릴리스 주기에 필요한 계획 활동에 영향을 미치는 경우가 많다.

버전 제어

Version Control은 DevOps 툴체인의 중요한 링크로서 소프트웨어 구성 관리의 구성요소다.버전 제어는 문서, 컴퓨터 프로그램, 대형 웹 사이트 및 기타 정보 모음의 변경 사항을 관리하는 것이다.[8]버전 관리 관련 활동의 요약은 다음과 같다.

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

버전 제어의 정보는 종종 변경사항과 새로운 릴리스 주기에 필요한 릴리스 활동을 지원한다.

참고 항목

참조

  1. ^ Edwards, Damon. "Integrating DevOps tools into a Service Delivery Platform". dev2ops.org.
  2. ^ Seroter, Richard. "Exploring the ENTIRE DevOps Toolchain for (Cloud) Teams". infoq.com.
  3. ^ "Toolchain Overview". nongnu.org. 2012-01-03. Retrieved 2013-10-21.
  4. ^ "Toolchains". elinux.org. 2013-09-08. Retrieved 2013-10-21.
  5. ^ Imran, Saed; Buchheit, Martin; Hollunder, Bernhard; Schreier, Ulf (2015-10-29). Tool Chains in Agile ALM Environments: A Short Introduction. Lecture Notes in Computer Science. Vol. 9416. pp. 371–380. doi:10.1007/978-3-319-26138-6_40. ISBN 978-3-319-26137-9.
  6. ^ Loukides, Mike (2012-06-07). "What is DevOps?".
  7. ^ Garner Market Trends: DevOps – Not a Market, but Tool-Centric Philosophy That supports a Continuous Delivery Value Chain (Report). Gartner. 18 February 2015.
  8. ^ a b c d e f g Avoid Failure by Developing a Toolchain that Enables DevOps (Report). Gartner. 16 March 2016.
  9. ^ Best Practices in Change, Configuration and Release Management (Report). Gartner. 14 July 2010.
  10. ^ Roger S. Pressman (2009). Software Engineering: A Practitioner's Approach (7th International ed.). New York: McGraw-Hill.