2017년 11월 12일 일요일

(SW) 데브옵스 (DevOps) 개발방법론

원문 : http://www.sw-eng.kr/member/customer/Report/BoardView.do?boardId=00000000000000036454


  • DevOps 란?

- Development +Operations 의 합성어
- 소프트웨어 개발방법론의 하나로서, 개발자와 비개발자 사이의 대화와 협동, 통합을 강조하고 담당 업무와 직급의 장벽을 허물고 상호 이해를 추구함
- 제품과 서비스의 빠른 변화 및 배포에 초점
- 2009 벨기에 DevOpsDays 행사에서 유래
- 2013년 5대 IT 트렌드에 선정 (대표 사례 기업 Netflix , Flickr , fotopedia)


  • Waterfall과 Agile 개발모델



  • DevOps 모델

 기획/개발/테스트/유지보수의 전반적인 이슈를 공유
 클라우드/가상 환경으로 환경 제한이 현저히 줄어듦
 개발자/비개발자 모두가 함께 고민을 하며 함께 업무를 해결


  • Agile (애자일)과 DevOps 특징 비교

1) Agile Development
  – (고객 요구사항)과 (개발+테스팅 팀) 사이의 거리 문제를 해결
  – 고객 요구사항의 우선순위에 맞게 설계, 개발, 테스트를 교차 수행
  – 기능 / 비기능 에 초점

2) DevOps
  – (개발+테스팅)과 (관리+영업) 팀 사이의 거리 문제를 해결
  – 자동화 릴리즈 관리
  – 기능 / 비기능 + 관리와 영업 에 초점
  – 재사용성과 자동화에 집중


  • Agile (애자일)과 DevOps 배포 비교

Agile 에 비해 각 개발 생산 과정이 지속적인 빌드 (Continuous Integration Build)의 형태를 취하고 바로 생산에 반영


  • DevOps 적용

1) DevOps 적용 조건
  – 개발 / 테스트 환경은 실제 환경과 유사함
  – 디플로이 빌드가 빈번함
  – 지속적으로 개발과정 도중의 품질을 검증함
2) 적용 분야
  – e 비즈니스 및 웹 사이트 프로젝트 (Amazon , Flickr , Groupon 등)
  – 클라우드 플랫폼 (IaaS , PaaS)
3) 적용을 피해야할 분야
  – 치명적으로 중요성이 높은 응용 프로그램 (금융 , 전력 시스템 등)
  – 높은 완결성을 필요로 하는 프로그램 (패키지 , 제조 , 건설 시스템 등)


  • DevOps 툴 (Tool)

1) CHEF, https://www.chef.io/chef/
  – automation tool
  – jenkins 의 build 후 처리와 비슷하지만 훨씬 많은 templet 을 제공
  – 다양한 환경과 서비스 모델에 대하여 build 후에 취해야 할 활동들을 미리 설정해두고 자동으로 실행 테스트를 수행

2) puppet, https://puppet.com/
  – delivery & deploy tool
  – WAS 환경의 java deploy 를 제어/관리
  – 단순히 tomcat manager 처럼 container 의 동작을 관리하는 게 아니라
    각 서비스 deploy 의 수행 결과를 수집하고 통계 처리를 지원

댓글 없음:

댓글 쓰기