데브옵스 (DevOps)

I. 데브옵스(DevOps)

개념개발과 운영의 합성어로 개발과 운영 간의 상호 작용을 원활하게 하기 위한 개발 방법론
목적개발자와 비 개발자 사이의 대화, 협동, 통합을 강조하고 담당 업무와 직급 간 상호 이해를 추구
  • 신뢰성, 보안성 기반 빠른 개발→테스팅→배포 순환

 

II. 데브옵스의 구성요소

구분구성요소요소 설명
품질테스트
자동화
– 서비스 통합/시스템 테스트
– 단위테스트(xUnit), UI 테스트
프로세스
내재화
– 업무백로그-운영을 프로세스화
– 운영 이슈 개선 위한 프로세스
프로
세스
소규모
릴리즈
– 변화에 유연, 롤백 용이
– Cycle-time 감소, 피드백 강화
지속적 통합
(Cont. Integration)
– 개발초기-릴리즈 간 요구 반영
– CMDB 코드 통합, Test, Release
도구어플리케이션
릴리즈 자동화
– 개발팀은 형상관리 기반 배치
– 운영팀은 표준화GW 사용
프로비저닝– 코드 자동 설치, 시스템 구성
– Tool: 퍼펫(Puppet), 셰프(Chef)

 

III. 데브옵스 한계점 및 고려사항

구분한계점고려사항
장애– 버그 자주 발생
– 테스트 부족
– 표준, 자동화 프로세스
보안– 개발자 운영 접근
– 내부 부정
– 우선순위 명확화
– 재사용성 고려
인력– 개발자 업무 비효율
– 평가기준 모호
– 개발, 운영 분리 운영
– 탐지통제와 감사강화

 

IV. Agile 방법론과 DevOps의 개념 비교

 

항목Agile 방법론DevOps
개념도
개념변화에 유연하고 신속하게 적응하는 시스템 개발 방법론개발과 운영의 합성어로 개발과 운영의 상호작용 하게 하는 개발 방법론
목적– 빠른 환경 변화 적응
– 고객 요구 적극 수용
– 개발팀과 운영팀의 원활한 Co-work
중점
가치
– 개인과 상호작용
– 고객과 협력
– 변화에 대한 적응
– 개발팀과 운영팀의 원활한 의사소통
– 원활한 운영, 서비스
  • 각각 적용하는 조직의 범위가 상이하므로 조직 관점에서 비교할 필요성 존재

 

V. 조직 관점에서 Agile 방법론과 DevOps 비교

가. 적용 조직 관점에서의 Agile 방법론과 DevOps 비교

항목Agile 방법론DevOps
적용
조직
– 개발 팀 단독 적용
– One Team으로 존재
– 개발/운영팀 통합적용
– 2팀간 TF형태로 운영
조직
규모
– 소규모 조직 (소팀제)
– 중규모 이상 적용 곤란
– 중규모 이상 조직
– 여러 개발/운영팀 통합 운영, 상대적대조직
요구
문화
– 환격 적응을 위한 Agility 문화– 개발자와 운영자 간 협업 문화
Sailo제거
대상
– 개발자와 테스터의 Silo 제거– 개발팀과 운영팀의 Silo 제거
조직성과
측정
– Sprint 단위의 성과측정
– Burndown Chart
– Cycle Time
– 운영 성과 측정 지표

나. 조직 내부 관점에서의 Agile 방법론과 DevOps 비교

항목Agile 방법론DevOps
조직 구성원– 개발자 + 테스터– 개발자 + 테스터 + 운영자
관리자 역할– 코칭 모델 접근
– 문제점해결과 지원
– 코칭 및 훈련 관점에서 접근
조직원 역할– 팀원 모두가 팀 내 발생 업무 소화 가능– 각자 고유의 업무 수행
– 상호 적기적 의사소통
구성원간
의사소통
– Daily Scrum Meeting
– 매일 15분 내외 미팅
– Specification & Doc.
– 정확한 사양, 설계위주

 

VI. 절차 관점의 Agile 방법론과 DevOps 비교

가. Agile 방법론과 DevOps 절차 범위 비교

  • Agile 방법론은 Inspection부터 Transition까지 적용, DevOps는 Elaboration 부터 Operation까지 적용

나. 구현 절차 관점 Agile 방법론과 DevOps 비교

항목Agile 방법론DevOps
프로세스Product Backlog → Sprint Backlog → Sprint(Implement, Scrum Meeting & Test) → Release 순환Plan → Code → Build → Test → Release → Deploy → Operate 순환
스케줄링– Sprint 주기(2~4주 이내) 별 반복 기능 구현– Business 중단 최소화 가능한 배포일 선택
적용기술– 형상관리, 버전 관리
– Git, SVN, CVS
– CD, CI, 무중단 배포
적용도구– Tool은 지원 수단
– Kanban/Scrum 보드
– Tool은 필수적 도구
– 특정 Tool 사용

 

콘텐츠 사용 시 출처 표기 부탁 드리고, 댓글은 큰 힘이 됩니다^^