DevOps

개발과 운영의 통합, DevOps의 개념

DevOps의 정의

협업, 융합 등을 통해 SW 개발과 IT 운영간의 상호 의존관계로 SW 상품과 서비스를 신속히 생산하는 SW 개발방법론

DevOps의 등장 배경

  • 기존의 전통적인 IT 조직은 소프트웨어 제품을 개발하는 개발 조직과 개발된 소프트웨어와 인프라를 운영하는 조직으로 구분
  • 프로젝트에서 개발을 담당하는 조직은 빠른 개발과 테스트를 통해 빈번하게 제품의 형상을 업데이트하여 기능을 완성을 목표로 하는 반면, 운영 조직은 제품의 구성과 배포를 최소한으로 하여 안정성과 유지보수성을 높이기 위해 노력
  • 개발조직과 운영조직간에 이해관계의 갈등, 장애 발생시 책임소재 전가 등 초래

DevOps의 구성 및 지원기술 요소

DevOps의 구성요소

  • 사람, 조직: 문화, 협업, 대화
  • 프로세스: 관리, 책임, 통합
  • 기술나. , 도구: 자동화, 가시성, 통합

DevOps의 지원기술 요소

  • 자동화된 빌드 및 릴리즈, 인프라스트럭처와 시스템 프로비저닝, 표준화된 개발환경 툴 제공
  • 설정과 같은 코드는 어플리케이션 코드와 분리, 공유 가능한 버전관리 도구
  • Configuration 관리 툴: Chef, Puppet, Cfengine
  • 시스템, 네트워크 모니터링 툴: Nagios
  • 서버 모니터링 툴: Ganglia, Graphite + statsd, Munin
  • 시스템로그 분석 툴: Splunk, Logstash, Graylog2
  • 형상관리 툴: Git, Mercurial, Subversion

기업 내 DevOps 적용 방안

  • 통합개발/운영환경 제공: 개발에서 운영까지를 하나의 통합된 프로세스로 묶어내고, 툴과 시스템을 표준화하고, 통합하여 의사소통의 효율성을 확보하고, 매뉴얼 작업을 가능한 자동화하여 코드통합, 테스트, 릴리즈 과정이 자동화될 수 있도록 필요
  • End-to-End 보상체계 마련: 팀별 성과가 아닌 전체 개발 차원의 성과를 측정하는 방식으로 보상 마련하여 조직문화가 변화를 수용하도록 유도
  • 경영진의 지원: 사업적인 목표를 개발과 운영 조직이 서로 협업하여 같은 목표로 나아갈 수 있도록 개발, 품질보증, 운영 간의 협업과 의사소통을 이끌 수 있도록 경영진의 지원이 필요