개발
아마존, 페북도 한다는 데브옵스(DEVOPS)란?
4분
2021.01.08.4.5K
데브옵스는 가치 실현 시간(time to value, TTV)의 지속적인 개선을 목표로 하는 결과 지향적인 사고방식입니다. 데브옵스의 목표는 소프트웨어 개발/ 품질보증(QA), IT 운영과 같은 다양한 프로세스 모두를 하나로 통합해서 전반적인 효율성을 향상시키는 것입니다. 즉, IT 분야의 복잡한 사안들을 효율적으로 관리하는 동시에, 애자일(agile)기법에서 필요한 속도까지 유지시켜주는 역할을 하는 것이죠.
데브옵스라는 용어는 드부아(Debois)라는 유명한 애자일 기법 전문가가 개발(development)과 운영(Operation)이라는 단어들을 조합해 만든 개념입니다. 드부아의 원래 목적은 소프트웨어 개발에 드는 시간과 비용을 최소화하면서 동시에 사용자들에게는 뛰어난 품질의 제품을 보다 빠르게 전달하는 것이었습니다. 그리고 첫 번째 컨퍼런스가 열린지 10년이 지난 오늘날, 전 세계의 개발 조직에서 데브옵스 팀원들의 수가 꾸준히 늘어 현재는 전체의 26%를 차지하고 있다고 하죠.
이쯤에서 한 가지 중요한 질문을 던지고자 합니다. '대체 왜 데브옵스인가?'하는 것인데요. 데브옵스는 기존의 '소프트웨어 개발 생명주기(Software Development Life Cycle, SDLC)' 방법론에 비해 많은 장점들이 있으며 개발(Dev)과 운영(Ops)을 분리해왔던 오래된 전통인 SDLC 방법론을 뛰어넘을 수 있게 해줍니다.
뿐만 아니라 속도, 안정성, 배치 및 설정 관리 등 여러 가지 면에서 장점을 가질 수 있죠. 그 외에도 데브옵스는 스케일드 애자일 프레임워크(Scaled Agile Framework, SAFe)에도 필수적인데, 배치 사이즈의(batch size)의 소형화, 지연 시간의 단출, 빠른 피드백 등 SAFe의 많은 개념과 원칙들이 데브옵스에서도 사용될 수 있습니다.
깃허브(Github) – 소스 제어 관리(Source Control Management, SCM) 젠킨스(Jenkins) – 지속적 통합(Continuous Integration, CI) 나기오스(Nagios) – 경고 관리(Alert Management) 및 모니터링(Monitoring) 도커(Docker) – 컨테이너 관리(Container Management) 및 오케스트레이션(Orchestration) 엘라스틱서치(Elasticsearch) – 로그 분석(Log Analytics) 아이싱어(Icinga) – 분산 모니터링(Distributed Monitoring) 셰프(Chef) – 설정 관리(Configuration Management)
데브옵스 개발 프로세스에 내재된 또 다른 중요한 측면은 바로 이것이 이루어지는 경로입니다. 데브옵스는 소프트웨어 개발에서부터 모니터링과 버그 탐색에 이르기까지 다양하면서도 광범위한 활동들을 다루고 있습니다. 단일한 업무가 아닙니다. 그러므로 데브옵스 운영 경로에서는 지속적인 개발과 테스트에 중점을 두고 있으며, 다음과 같은 4가지를 강조합니다. 소스코드 제어. : 새로운 버전의 시스템을 적절한 시기에 얻어낸다.
구축 및 테스트 자동화. : 새로운 버전의 시스템에서 발견된 품질 관련 문제들을 모두 정리한다.
출시 자동화. : 다수의 팀에서 수행되는 업무들을 자동화하고 서로 연결한다.
배치 및 모니터링. : 버전 관리를 활용해서 개발 환경으로 새로운 버전의 시스템을 배포한다.