레이블이 DevOps인 게시물을 표시합니다. 모든 게시물 표시
레이블이 DevOps인 게시물을 표시합니다. 모든 게시물 표시

2014년 2월 13일 목요일

효과적 개발 및 운영을 위한 10가지 필수 DevOps 툴

효과적 개발 및 운영을 위한 10 가지 필수 DevOps 

- Key Message -
DevOps 는 개발 및 운영체계를 통합하여 빠른 서비스 개발과 반영을 위해 개발된 개발모델로 기존의 개발팀과 운영팀이 합쳐지는 등 변화의 폭이 매우 큼으로 인해 적용하기 어려움 이에 효과적인 개발 및 효율적인 운영을 위한 오픈소스 및 상용화 등 10 가지 필수 DevOps 툴을 소개함 .

▶ 서론
응용프로그램 및 인프라 관리의 DevOps 철학을 따르는 IT 전문가들은 chef 혹은 puppet 과 같은 오픈소스 그 이상의 형상관리 툴을 가지고 있음
DevOps 접근법은 어플리케이션 개발 및 보다 효율적인 실행으로의 전개를 위해 더욱 많은 툴 오픈소스를 요구함
여기 특별한 순서없이 ChefConf 2013 에 참석한 IT 전문가들에게 매우 유용한 10 가지 툴들을 소개함

▶ 10 가지 툴에 대한 소개

출시제품의 SW품질확보를 위한 DevOps 도입 접근법

- Key Message -
오늘날 대부분의 조직들은 개발단계에서의 SW 품질확보에 주력하고 있으나 일단 제품이 출시된 이후에는SW 품질유지에 무관심한 경향이 있음 이러한 문제점은 주로 개발팀과 운영팀 간의 협업이 이루어지고 있지 않음에서 기인하고 있으며 제품출시 이후 SW 품질관리의 책임이 누구에게 있는가도 불확실함에 따라 이를 위한 DevOps 도입 접근법을 제시함

▶ 서론
일부 조직들에서 소프트웨어가 제품으로 릴리즈 된 이후의 헬프데스크 조직규모가 년 간 총 조직규모의 50% 에 달하는 경우가 있음
오늘 날 너무 많은 조직들이 개발 시에 소프트웨어 품질을 높이기 위해 고군분투하지만 릴리즈 후 그 품질을 유지하기 어려움
이러한 문제들은 일반적인 것인데 그 근본적인 원인은 개발팀과 운영팀들이 소프트웨어 릴리즈되기 이전까지도 함께 작업하지 않기 때문임
애플리케이션이 생산이 되고 품질을 유지 보수하는 과정에서의 조직을 보면 대부분이 체계성 갖추고 있지 못하다고 IT Process Automation software company UC4 의 CMO 인 Randy Clark 은 밝히고 있음


▶ 소프트웨어 배포 전 개발팀과 운영팀의 팀워크
▶ QA 의 다른 이름
▶ 소프트웨어 생산 QA 접근방법
▶ 생산 QA 의 애자일 방법론

성공적인 애자일 데브옵스(DevOps) 적용으로 인도하는 세 가지 핵심요소

- Key Message -
최근 많은 전문가들 사이에서 데브옵스 (DevOps) 는 기업 애플리케이션 개발 및 운영 프로세스에 근본적인 변화를 제공하고 있다는 평가를 받고 있음 그러나 수많은 기업들이 데브옵스 (DevOps) 를 적용하는데 1 년 가까운 시간이 걸리며 그 중 일부는 적용에 실패하는 것으로 나타남 따라서 데브옵스 (DevOps) 를 효과적으로 적용하는 세 가지 방안 ( 프로세스 흐름 지속적인 피드백 끊임없는 학습 ) 을 제시하고자 함 .


▶ 서론
외견상으로 데브옵스 (DevOps) 는 개발자가 좀더 운영자처럼 생각하고 그 반대로도 생각해야 하는 것으로 말하고 있으나 그것만 가지고는 기술적 한계가 있음
지난 8 월 미국 내쉬빌에서 개최된  애자일 2013  에서 기조연설자인 진 킴 (Gene Kim) 은 애플리케이션 개발 과정에 있어서 실행 가능한 변화를 만들기 위한 구현 가능한 체계를 발표함
그는 높은 성과를 내는 데브옵스 (DevOps) 팀들이 기존 배치보다 30 배 이상 효과적이며 더 빠르게 주기가 나타나기 때문에 더욱 더 애자일적이고 응답하는 평균 시간의 비율과 높은 성공적인 변화들이 두 배 더 많기 때문에 더욱 신뢰할 만하다고 밝힘
높은 성과를 나타내는 데브옵스 (DevOps) 팀을 만들기 위해서는 프로세스 흐름 피드백 지속적인 학습 이런 세 가지 주요 요소가 필요함


▶ 첫 번째 방법 흐름 (The flow)
▶ 두 번째 방법 지속적인 피드백 (Consistent feedback)
▶ 세 번째 방법 :   끊임없는 학습 (Continual learning)

Devops 의 이해와 구현

Devops 이해하기 ( 개발과 운영은 남이 아니다 !)


 . Devops 란 무엇인가 ?
매일 새로운 용어가 등장하는 IT 분야에서 요즘 Devops 란 말이 자주 등장하고 있다 . IT 관리자 및 전문가에게 널리 알려진 CIO 전문지에서  놓치지 말아야 할 필수 IT 프로젝트 ” 경력중 하나로 Devops 를 꼽기도 하였다 . Devops 란 무엇인지 살펴보기 위해 위키피디아 (wikipedia) 에서 정의한 내용을 먼저 살펴보자 .

▶ DevOps  ?
DevOps(Devops = Development + Operations) 라는 합성어는 소프트웨어 개발자들과 IT 종사자들 사이의 의사소통 ,협업 융합을 강조한 소프트웨어 개발 방법론이며 소프트웨어 개발과 IT 운영간의 상호 의존관계에 대한 산물이다 . DevOps 는 조직에서 소프트웨어 상품과 서비스를 신속히 생산하는 것에 도움이 되는 것을 목적으로 한다 .


 . Devops 가 아닌것은 ?
 새로운 개발문화로써의 Devops


Devops 구현하기 ( 품질 프로세스 도구 관점에서 )


 품질
전통적인 폭포수 개발 모델에서는 코드가 개발이 완료되어야 빌드와 테스트가 이루어질 수 있다 코드가 최종 단계에 이르러야 테스트가 수행되므로 테스트 결과는 프로젝트 후반에서 파악할 수 있다 테스트를 통과하지 못할 경우 변경된 사항과 해결할 문제 사이에 상관관계를 파악하기 어려워 문제 해결에 많은 시간을 낭비하게 된다 그나마도 프로젝트 일정과 비용 등의 제약으로 아직 해결하지 못한 문제가 남아 있지만 운영 단계로 넘어가야 하는 경우 품질에 상당한 악영향을 미칠 수밖에 없다 .
저명한 컴퓨터 과학자인 Gerald M. Weinberg 는 품질은 사용자의 요구사항에 부합하는 것이라고 정의하였다 즉 품질이라는 것은 정도가 있는 것으로  얼마나 잘  이라는 것이 사용자에 따라 달라질 수 있다 가령 시스템 성능은 얼마나 많은 사용자가 동시에 사용하는지 어떤 기능을 주로 사용하는지에 따라 그 기준이 달라진다 이는 품질이 절대적인 기준 값이 있는 것이 아니라 전체적 맥락 (context) 하에서 정의되고 주요 품질 속성과 아닌 것을 구분하는 것이 필요하다는 것을 말해준다 .


 프로세스
 도구
IV. 결어