DevOps 이해하기

1 분 소요

What DevOps?

2008년 Agile Conference에서 Andrew Clay Shafer와 Patrick Debois가 Agile Infrastructure에 대해 논의하며 처음으로 사용

  • 소통, 협업, 통합 및 자동화를 강조하는 소프트웨어 개발 방법론
  • 개발과 운영이 상호 의존적으로 대응해야한다는 의미
  • 개발과 운영 사이의 역할


Why DevOps?

image.png


  • 빠른 속도와 빠른 시장
    최근 IT 트랜드의 핵심 요소는 속도입니다. 페이스북과 구글에서도 중요 철학 중 하나로 빠른 속도를 내세우고 있으며, 일정한 주기를 가지고 끊임없이 결과물을 만들어 내어 그때그때 필요한 요소를 진행하는 방법론이 대두되고 있습니다. 결국 빠르게 변하는 비즈니스 환경과 사용자의 요구 사항에 기민하게 대처하고, 비즈니스가 계속 살아남기 위해 필요한 것입니다.

  • DevOps의 필요성
    서비스를 운영하는데 있어, 가장 중요한 핵심은 서비스를 개발하는 개발자와, 해당 서비스를 운영하는 시스템 관리자입니다. 두 역할의 담당 업무는 다르지만, 추구하는 목적 및 서비스는 같기 때문에 협업이 가장 중요시하게 됩니다. 다만 현재 IT 환경은 빠르게 발전하고 있고, 새로운 기술 및 요구사항에 대한 처리에 많은 시간이 소요되고 있습니다. 그 두 역할의 간격을 좁혀주는 것이 바로 DevOps 입니다.

  • 기술의 진화
    DevOps를 가능하게 하는 요소 중, 자동화는 서로 간의 업무와 정보를 쉽게 공유할 수 있는 기반이 됩니다. 개발자가 각각 개발한 소스 코드를 모아서 한꺼번에 빌드 하는 통합 빌드의 과정을 특정 시점이 아니라 주기적으로 수행합니다. 그로 인해 통합에서 발생하는 오류를 사전에 해결하고 이 모든 과정에 소요되는 시간을 줄이기 위한 것이 나오면서 가능하게 되었습니다. 더 이상 빌드는 컴파일만을 의미하지 않습니다. 소프트웨어가 거대해지고 복잡해지면서 팀 단위로 개발을 하게 되었고, 그 과정에 있어서 분업과 협업은 필수적이 되었습니다. 이러한 기술의 진화로 배포를 위한 빌드 단계, 테스팅 단계 등에서 시간을 절약하는 효과를 발휘하여 빠른 시장 변화 속도에 발맞춰 대응할 수 있는 것이 가능하게 되었습니다.


DevOps CALMS

DevOps는 CALMS라고 해서, 크게 5개지 핵심 요소로 나누어 볼 수 있습니다. 일반적으로 문화(Culture), 자동화(Automation), 간소화(Lean), 측정(Measurement), 공유(Share)를 주요한 원칙으로 제시하고 있습니다.


문화(Culture)

  • DevOps 문화의 핵심은 협업
  • DevOps의 문화는 도구의 문제가 아닌 사람 간의 문제를 해결


자동화(Automation)

  • 개발, 테스트 및 지속적 배포의 핵심 요소
  • 지속적 배포 - 자동화 테스트, 빌드 패키징, 자동화 배포
  • 자동화를 통해 안정적인 운영 및 위험도 개선


간소화(Lean)

  • 비효율적인 부분을 간소화하고 개선하여 빠르게 제공
  • 간소화의 핵심은 끊임없이 문제를 해결하고 개선하는 것


측정(Measurement)

  • DevOps는 측정 결과를 가시화하여 표현
  • 실질적 데이터를 표현함으로써 개선방향 확인
  • 측정을 통해 서로 간 공유 및 피드백


공유(Sharing)

  • Dev와 Ops 간 마찰은 공유 부족에서 발생
  • 성공 유무와 상관없이 자신의 경험을 공유
  • 함께 성공, 실패 사례를 공유하며 끊임없는 개선

댓글남기기