2019년 1월 9일
데브옵스 (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 사용 |