본문 바로가기

DevOps

[DevOps] DevOps란? (1/2)

DevOps toolchain

DevOps란?

DevOps란 개발(Development)과 운영(Operations)의 합성어로 소프트웨어 개발자(또는 개발 업무)와

정보기술 전문가 간(또는 관리 업무)의 소통, 협업 및 통합을 강조하는 개발 환경이나 문화를 말합니다.

 

DevOps는 두 역할이 상호 의존성을 가지고 있다는 것을 인지하고,

두 역할을 하나의 팀으로 통합함으로써 서비스의 안정성을 유지하고 더 빠른 변화를 위한 방법론 중 하나입니다.

 

DevOps는 최신 기술과 도구의 사용뿐만 아니라 그것들을 둘러싼 조직의 문화까지 포함된 생각이며,

더 나아가 계속적으로 개선이 진행되는 시스템 운용 방식까지 폭넓게 포함합니다.

 

이러한 방식은 기존의 소프트웨어 개발 및 인프라 관리 프로세스를 사용하는 조직보다 제품을 더 빠르고 혁신적으로 개선할 수 있고,

빠른 속도를 통해 고객에게 더 많은 지원과 시장에서의 경쟁력을 갖출 수 있습니다.

 

DevOps의 탄생 배경

DevOps라는 용어는 어느 날 갑자기 생겨난 것은 아닙니다.

계속적으로 발전해 온 개발 방법을 토대로 하여 '더욱 효율적으로 개발하려면 어떻게 해야하지?'

또는 '더욱 좋은 방안으로 개선하려면 어떻게 하면 좋지?'라는 질문의 해결 방법을 도출해내기 위해 오늘 날의 DevOps가 나오게 되었습니다.

 

 

DevOps의 주요 원칙

DevOps의 주요 원칙은 흔히 CALMS라고 말하는 다음과 같습니다.

 

https://www.softserveinc.com/en-us/blog/assess-devops-structure-through-calms

 

Culture(문화)

DevOps 문화는 한 마디로 협업입니다. 

Tool이나 자동화 시스템들이 Dev와 Ops가 협력하고자 하지 않는다면, 결국 필요가 없어집니다.

그렇기에 DevOps는 도구의 문제가 아닌, 사람 간의 문제를 해결합니다.

 

Automation(자동화)

자동화는 개발, 테스트 및 지속적 배포의 핵심 요소입니다.

개발 사이클에 있어서 높은 수준의 자동화를 도입하게 된다면, 막대한 이익을 얻을 수 있게 됩니다.

자동화를 처음 접하는 팀은 보통 CD(Continuous Delivery)로 시작합니다.

- 이 부분은 원래 저는 Continous Deployment로 알고 있었는데, 차이점은 (semaphoreci.com/blog/2017/07/27/what-is-the-difference-between-continuous-integration-continuous-deployment-and-continuous-delivery.html)을 참고하시면 될 것 같습니다!

지속적 배포에 대한 내용은 추후 포스팅 예정입니다!

 DevOps의 주요 이점은 속도이고, 가능한 많은 프로세스와 운영을 자동화하면 효율성이 향상되고 비용이 절감됩니다.

 

Lean(간소화)

간소화를 통해서 낭비를 줄이고 더 많은 가치를 제공할 수 있습니다.

제거하거나 간소화할 수 있는 구성 요소를 찾고, 이를 개선하는 과정이라고도 볼 수 있습니다.

이를 시작하기에 가장 좋은 방법은, 가장 많은 시간을 소비한 부분을 분석하고 병목 현상을 알아내는 것입니다.

 

Measurement(측정)

전반적인 가치의 흐름을 개선하기 위해서 지속적으로 지표를 측정해야 합니다.

실질적인 데이터를 통해 지속적인 개선이 실제로 이루어지고 있는지 확인해야 합니다.

즉, 실제 측정을 통해 DevOps의 구현을 지속적으로 최적화해야합니다.

 

Share(공유)

DevOps의 성공은 이해 관계자와 팀 구성원 간의 협업 및 합의에 따라 크게 좌우됩니다.

DevOps 팀과 비즈니스 전체에서 아이디어를 조정해가며, 모든 당사자들이 협력하고 의사소통 할 수 있도록 노력해야 합니다.

즉 Dev와 Ops, 그리고 모든 관계자들이 서로 경험 및 아이디어 등을 공유해가며 지속적인 개선을 할 수 있도록 해야합니다.

 

 

'DevOps' 카테고리의 다른 글

[DevOps] DevOps란? (2/2)  (0) 2020.07.08
[DevOps] IaC (Infrastructure as Code)  (0) 2020.06.30