DevOps

37
DevOps

Transcript of DevOps

Page 1: DevOps

DevOps

Page 2: DevOps

• DevOps 시작• DevOps 소개• DevOps 구성• 자동화 도구• 이제 무엇을 할까 ?

Page 3: DevOps

DevOps 시작

Page 4: DevOps

DevOps 시작• 의사소통 , 협업 , 융합• 신속히 생산

Page 5: DevOps

혼동 , 혼란

Page 6: DevOps

개발의 이슈를 운영팀이 해결 해야 하는 상황이 옴

Page 7: DevOps

1.범인찾기2.욕하기3.맘 상처 입기4.문제 원인 분석5.문제 해결

Page 8: DevOps

범인 찾기

누구의 잘못 인가 ? 불행의 시작

Page 9: DevOps

욕하기

누구의 잘못 인가 ? 불행의 시작

Page 10: DevOps

맘 상처 입기

누구의 잘못 인가 ? 불행의 시작

Page 11: DevOps

문제 원인 분석

누구의 잘못 인가 ? 불행의 시작

Page 12: DevOps

문제 해결

누구의 잘못 인가 ? 불행의 시작

Page 13: DevOps

Ops Dev

Dev VS Ops - 충돌

Page 14: DevOps

결국엔…

Page 15: DevOps

Dev VS Ops - 충돌• Dev : 고객에게 제공한 변경을 빠르게 보기 원함• Ops : 안정성에 관심이 더 많음

Page 16: DevOps

Dev 와 Ops 간에 문제가 발생하는 이유• 동기 : Dev 와 Ops 간에 서로 다른 목표 때문에 생김• 프로세스 : 변경을 관리하는 방식 , 실 서비스에 반영하는 방식 및 관리하는 방식이 다름• 도구 : Dev 와 Ops 가 서로 별도의 프로그램을 사용함

Page 17: DevOps

DevOps 란 ?• 동기를 맞추고 프로세스와 도구에 대한 접근을 공유하여 차이를 줄임• 애자일 프랙티스를 운영으로 확장하여 더 강한 협업 및 소프트웨어 배포 프로세스 강화• 문화 , 사람이 프로세스보다 중요하며 도구보다 더 중요함 .

Page 18: DevOps

DevOps 에서 중요한 것은 문화와 사람이며 그 다음이 프로세스와 도구

Page 19: DevOps

DevOps 가 아닌 것은 ?

• DevOps 는 새로운 팀이 아님 .

• DevOps 는 새로운 일자리 이름이 아님 .

• DevOps 는 새로운 툴이 아님 .

Page 20: DevOps

DevOps 소개

Page 21: DevOps

전통적인 프로젝트 세팅• 프로그래머 -> QA -> OPS

• OPS 가 프로그래머 , 테스터 , QA 에 항상 관여하는 것은 아니지만 최종 결과는 OPS 에서 진행이 됨 .

• 분리된 팀 , 공통의 언어가 없음 .

• 서로간에 두려움이 있음 .

Page 22: DevOps

애자일 프로젝트 세팅• 프로그래머와 QA 가 함께 developer 가 되고 한 팀이 됨 .

• 애자일에서 운영은 분리가 되어 있음 .

• 운영의 경우 개발 팀에서 만든 소프트웨어를 배포함 .

• Cycle time ( 아이디어에서 사용자에게 실제 서비스 하는데 걸리는 시간 ) 은 여전히 길어짐 .

Page 23: DevOps

Dev + Ops

Page 24: DevOps

DevOps 의 핵심• 가치와 목적• 프로세스• 도구

Page 25: DevOps

가치와 목적• 서로간의 존중• 공유된 목적에 대한 합의• 공동의 소유권

(ownership)

• 가치의 공유

Page 26: DevOps

프로세스• 소프트웨어를 어떻게 개발하고 배포할지 정의하는 프로세스가 툴보다 중요함 .

• 운영을 애자일 프로세스에 포함시키기 .

• Dev 와 Ops 간에 동일 프로세스를 공유 .

• 통합된 프로세스를 통해서 cycle time 을 줄임 .

Page 27: DevOps

도구• 프로세스가 도구보다 중요하지만 도구는 여전히 중요함 .

• DevOps 의 능률은 자동화에 의존함 .

• 빌드 시스템 .

• 모든 단계에서 자동화된 적절한 도구가 필요함 .

Page 28: DevOps

DevOps 구성

Page 29: DevOps

DevOps 구성하기 - 측정 지표• Dev 와 Ops 간에 가장 중요한 측정지표는 cycle

time.

전통적인 측정기준 애자일 측정 기준

Page 30: DevOps

DevOps - 변경• 변경은 Dev 와 Ops 간에 사용할 수 있는 유용한 지표임 .

Page 31: DevOps

DevOps 구성하기 - 흐름 개선하기

• batch size 를 줄이는 것이 중요해짐 : batch size 는 새로운 버전으로 올리기 전에 완료해야 할 변경 또는 작업량의 크기 .

• 더 적은 변경사항 (batch size) 을 자주 배포하는 것이 중요함 .

Page 32: DevOps

자동화 도구

Page 33: DevOps

이상적인 프로젝트란 ?• 티켓 관리 시스템에 이슈 등이 집약되어 있다 .

• 버전 관리 시스템을 이용 .

• 반복 검증 가능한 CI 시스템을 도입• 환경의 영향을 최소화하고 항상 배포 가능 상태로 둔다 .

• 모두 기록해서 추적 가능하게 한다 .

Page 34: DevOps

지속적 통합 (Continous Integration)

• CI 란 ?• 통합이란 빌드 , 테스트를 실시하는 프로세스를 말하며 이러한 통합 프로세스를 상시로 실시하는 것을 CI 라고 함 .

• 통합을 지속적으로 수행하는 것이 CI• 원래 CI 는 애자일 개발 방법의 하나로 , 익스트림 프로그래밍 방법론으로 고안되었음 .• 가치 있는 소프트웨어를 고품질로 신속하게 전달하는 것을 목표로 하는것 .• 애자일 개발 중에서도 가장 기본이자 핵심 방법론임 .• 통합 작업을 미루지 말고 개발 중에라도 실시해서 소프트웨어 개발의 복잡성을 제거 하자는 것 .

• 왜 CI 같은 방법론이 요구되는 걸까 ?• 비용 면에서의 이점• 시장 변화 속도• 속도와 품질 둘 다 확보

Page 35: DevOps

CI 에 필요한 것• 버전 관리 시스템 : subversion, Git

• 빌드 도구 : make, Scons, Ant, Maven, Gradle, Rake

• CI 도구 : Jenkins, Travis CI

Page 36: DevOps

이제 무엇을 할까 ?

Page 37: DevOps

우리의 문제는 무엇인가 ? 무엇을 할 것인가 ?• 큰 이야기

• 같은 목적을 향해 달려가고 있는가 ?

• 같은 프로세스를 사용하고 있는가 ?

• 같은 도구를 사용하고 있는가 ?

• 작은이야기 1

• 도구부터 접근하기• 공통의 배포 프로그램 , 워크플로우 프로그램 사용• QA / Staging 환경을 구축해보기

• 작은 이야기 2

• 오늘 해커톤을 통하여 효과를 검증해 보기 ( 만들고 측정하고 배우기 )