- 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 의 수행 결과를 수집하고 통계 처리를 지원
댓글 없음:
댓글 쓰기