DevOps 툴체인
DevOps toolchain![]() | 이 글에는 유행어가 다수 포함되어 있는 것으로 보인다.(2018년 7월) |
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]버전 관리 관련 활동의 요약은 다음과 같다.
- 비선형개발
- 분산 개발
- 기존 시스템 및 프로토콜과의 호환성
- 툴킷 기반 설계
버전 제어의 정보는 종종 변경사항과 새로운 릴리스 주기에 필요한 릴리스 활동을 지원한다.
참고 항목
참조
- ^ Edwards, Damon. "Integrating DevOps tools into a Service Delivery Platform". dev2ops.org.
- ^ Seroter, Richard. "Exploring the ENTIRE DevOps Toolchain for (Cloud) Teams". infoq.com.
- ^ "Toolchain Overview". nongnu.org. 2012-01-03. Retrieved 2013-10-21.
- ^ "Toolchains". elinux.org. 2013-09-08. Retrieved 2013-10-21.
- ^ 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.
- ^ Loukides, Mike (2012-06-07). "What is DevOps?".
- ^ Garner Market Trends: DevOps – Not a Market, but Tool-Centric Philosophy That supports a Continuous Delivery Value Chain (Report). Gartner. 18 February 2015.
- ^ a b c d e f g Avoid Failure by Developing a Toolchain that Enables DevOps (Report). Gartner. 16 March 2016.
- ^ Best Practices in Change, Configuration and Release Management (Report). Gartner. 14 July 2010.
- ^ Roger S. Pressman (2009). Software Engineering: A Practitioner's Approach (7th International ed.). New York: McGraw-Hill.