개발 철학

DevOps

Operation CWAL 2021. 4. 26. 21:38

What is DevOps?

DevOps에 대한 정의는 관점에 따라 다를 수 있지만, 일반적으로 개발과 IT 운영의 협업을 통해 제품을 더욱 빠르고 자주 배포함(high deploy rate)과 동시에 신뢰성, 안정성, 보안을 향상시키는 개발 방법론이자 문화라고 할 수 있다. 또한 'DevOps Handbook'의 공동 저자인 John Willis는 자신의 책에서 DevOps를 다음과 같이 정의하고 있다.

"DevOps is about humans. DevOps is a set of practices and patterns that turn human capital into high-performance organizational capital." - John Willis

DevOps는 기술, 프로세스, 사람 3개의 축으로 구성되며, 빌드-배포-운영-지원으로 이루어진 Software Lifecycle의 전 과정을 다룬다. DevOps를 도입한 조직과 그렇지 않은 조직 간의 Performance 차이가 극명한데 'Accelerate State of DevOps 2019 Report'에 의하면 다음과 같다.

 

출처 - https://devops.com/the-state-of-devops-report-2019-is-out

생산성 측면에서 보았을 때, 배포 주기가 주~월 단위에서 시~일 단위로 줄어들었으며, Code Commit에서 Deploy가 100배 이상 빠르다. 안정성 관점에선 문제 발생시 복구 속도가 수천배 이상 빠르며, 코드 변경시 실패율도 매우 낮은 것을 알 수 있다.

 

DevOps의 핵심가치

John Willis는 DevOps의 핵심가치를 CAMS라는 줄임말로 표현하였으며, 각각의 앞글자는 다음을 의미한다.

 

  • Culture - 조직 모두가 공유하는 하나의 DevOps 문화를 만들어 나간다. 
  • Automation - 반복적인 업무를 최대한 자동화하여, 효율성과 생산성을 극대화한다.
  • Measurement - 공수(effort)에 대한 정량적인 지표를 정의하고 측정함으로써, 지속적인 개선이 이루어진다.
  • Sharing - 문제 해결 방식을 다른 사람과 공유한다.

DevOps Engineer가 하는 일

DevOps Engineer는 위에서 언급한 DevOps 핵심가치를 조직에 전파하고 정착시키는 임무를 수행한다. 이를 위해 Software Lifecycle에 존재하는 반복적인 업무를 찾아 자동화하고, 여기서 발생하는 기술적 또는 인적 Issue를 예방하거나 해결할 수 있어야 한다. 물론 이는 원론적인 설명이며, 현장에선 담당 서비스에 대한 CI/CD 파이프라인을 구축하고, IaC를 통한 Provisioning, Container 관련 기술 등 다양한 업무를 담당한다. 여기에 필요한 업무 소양은 아래 Roadmap이 잘 표현하고 있다.

출처 - https://roadmap.sh/devops

 

'개발 철학' 카테고리의 다른 글

12-Factor Application  (0) 2021.03.12