DevOps 데브옵스

소프트웨어 개발 방법론의 하나로, 개발(development)과 운영(operation)을 결합한 혼성어이다. 개발 담당자와 운영 담당자가 연계하여 협력하는 개발 방법론을 말한다.

시스템 개발자와 운영을 담당하는 정보기술 전문가 사이의 소통, 협업, 통합 및 자동화를 강조하는 소프트웨어 개발 방법론을 말한다. 정확한 정의가 존재하지 않는 추상적 개념에 해당하지만, 소프트웨어 제품이나 서비스를 알맞은 시기에 출시하기 위해서 개발과 운영이 상호의존적으로 대응해야 한다는 의미로 통용된다.

이러한 데브옵스의 개념은 애자일 소프트웨어(agile software) 개발과 지속적 통합(continuous integration) 등의 개념과도 관련이 있다. 애자일 소프트웨어 개발 방법은 계획과 문서를 기반으로 개발 모형이나 모델에 따라 앞을 예측하며 개발하는 것이 아니라, 실질적인 코딩을 기반으로 일정한 주기에 따라 계속적으로 프로토타입을 형성하고 필요한 요구 사항을 파악하며 이에 따라 즉시 수정사항을 적용하여 결과적으로 하나의 큰 소프트웨어를 개발하는 적응형(adaptive style) 개발 방법이다.

지속적 통합이란 개발 당시의 코드(baseline code)와 개발 완료 후의 차이가 극심하여 통합시 다양한 변화와 의존성 문제 해결에 개발 시간보다 더 많은 시간이 소요되는 문제를 해결하기 위해, 통합 작업을 초기부터 계속적으로 자주 수행하여 지속적으로 소프트웨어의 품질 제어를 적용하고자 하는 것이다.

애자일 소프트웨어 개발에서는 작은 변경을 자주 출시하기 때문에 개발 담당자와 운영 담당자의 협업이 긴밀해야 하며, 이러한 개발 방법의 보급과 함께 데브옵스에 대한 개념도 널리 보편화되었다.

데브옵스라는 용어는 2008년 애자일 컨퍼런스에서 앤드루 클레이 쉐이퍼(Andrew Clay Shafer)와 패트릭 드부와(Patrick Debois)가 "애자일 인프라스트럭처"에 대해 논의하며 처음으로 사용되었다. 이 용어는 그 후 2009년 벨기에에서 열리기 시작한 "데브옵스 데이(DevOps Day)"를 통해 대중화되었다.

데브옵스는 개발 프로세스에 대한 철학이자 이러한 방법론을 실현시키는 플랫폼과 툴셋을 모두 포함하는 개념으로, 데브옵스를 더욱 쉽게 실천하기 위해서 셰프(Chef)나 퍼펫(Puppet)과 같은 인프라 구성관리 자동화 툴을 사용할 수 있다. 이러한 데브옵스 툴을 사용하는 경우 자동화된 테스팅 실시가 가능하며 자동화된 구성관리(CM:Configuration Management)를 통해 서버 설정을 자동화할 수 있기 때문에 투입 리소스를 절감할 수 있는 효과를 가져온다.

출처 : 두산백과 두피디아


소프트웨어 개발과 IT 운영을 병행하고 협업하는 방식.
소프트웨어 개발(software Development)과 IT 운영(Information Technology Operations)의 합성어이다. 개발 부문, 운영 부문, 품질 관리 부서 사이의 통합, 커뮤니케이션, 협업을 위한 일련의 방법 및 적기에 제품이나 서비스 출시를 목표로 하는 조직의 속성상 개발과 운영은 상호 의존을 해야 한다는 의미가 있다.
소프트웨어 개발과 IT 운영이 분리된 환경에서는 개발이 지연되거나 납기 후 문제 발생 빈도가 높은 반면, 데브옵스에서는 개발자와 운영자 간에 책임을 공유함으로써 개발 주기가 단축되고 비용이 절감되었다. 그리고 문제 발생 빈도가 낮아지고 문제가 발생하여도 즉시 처리가 가능하게 되었다. 이에 따라 개발과 운영 경력을 두루 갖춘 사람들에 대한 수요도 생겨났다.
출처 : IT용어사전, 한국정보통신기술협회 

 

 

개발  (소프트웨어 공학),  오퍼레이션 ,  품질 보증 (QA)의 조사로서 데브옵스를 나타낸  벤 다이어그램 .

Devops - 데브옵스 - 위키백과, 우리 모두의 백과사전 (wikipedia.org)

+ Recent posts