데브옵스 핸드북 2/e [세계 최고 수준의 기민성, 신뢰성, 안정성을 갖춘 기술 조직의 비밀]
- 원서명DevOps Handbook: How to Create World-Class Agility, Reliability, & Security in Technology Organizations, Second edition (ISBN 9781950508402)
- 지은이진 킴(Gene Kim), 제즈 험블(Jez Humble), 패트릭 드부아(Patrick Debois), 존 윌리스(John Willis), 니콜 포스그렌(Nicole Forsgren)
- 옮긴이김모세
- ISBN : 9791161758480
- 35,000원
- 2024년 05월 31일 펴냄
- 페이퍼백 | 628쪽 | 152*228mm
- 시리즈 : 소프트웨어 아키텍처, 애자일
책 소개
요약
데브옵스(DevOps)란 소프트웨어의 개발(Development)과 운영(Operations)의 합성어로 소프트웨어 개발자와 정보 기술 전문가 사이의 소통과 협업, 그리고 통합을 통해 지속적이고 안정적으로 소프트웨어를 개발하고 운용하는 환경과 문화를 나타낸다.
2016년 1판 출간 이후 최신 연구 결과와 프랙티스, 사례 연구들을 기반으로 내용을 다듬고 보강해 2판을 출간했다. 2020년 COVID-19 팬데믹 이후 모든 것이 변해버린 오늘날, 이 책을 통해 데브옵스의 개념뿐만 아니라 데브옵스가 갖는 현대적인 의의는 물론 실제 개발에서 활용 가능한 다양한 개념과 원칙에 대한 통찰력을 얻을 수 있을 것이다.
추천의 글
“『데브옵스 핸드북 2/e』은 모든 조직의 IT를 개선하기 위한 실제적인 로드맵이다. 내가 지난 10년 동안 읽은 책 중에서 소프트웨어 개발에 관한 가장 가치 있는 책이기도 하다."
“『데브옵스 핸드북 2/e』은 5년이 지난 지금도 여전히 변화무쌍한 기술 흐름의 바다와 화제의 바람 속에서 닻 역할을 해준다. 처음 책이 출간됐을 때와 마찬가지로 지금도 중요하다.”
“모든 데브옵스 여행의 시작은 데브옵스 핸드북을 읽는 것이다. (디지털) 트랜스포메이션에 참여한 모든 이해관계자 사이의 문화적, 조직적 정렬을 양성할 수 있을 것이다.”
"여러분이 어떤 산업에 속해 있든, 여러분의 조직이 제공하는 제품이나 서비스가 무엇이든 이 책이 설명하는 사고 방식은 모든 비즈니스 및 기술 리더들이 생존하기 위해 반드시 필요하다."
"『데브옵스 핸드북 2/e』은 우리가 필요로 했던 바로 그것이다. 실제적인 진보를 만들어 내는 방법에 관해 알 수 있을 것이다."
"데브옵스 방법론을 사용해 성공을 달성하는데 필요한 궁극적인 형태의 가이드다."
"『데브옵스 핸드북 2/e』은 역량을 확장하고 여러 부서 또는 비즈니스 라인 전체에 데브옵스 프랙티스를 확산하고자 하는 모든 조직이 반드시 읽어야 할 책이다."
이 책의 대상 독자
이 책은 기술 가치 흐름(일반적으로 프로젝트 관리, 개발, QA, IT 운영과 정보 보안)에서 업무를 수행하거나 영향을 미치는 사람뿐 아니라 기술 이니셔티브가 시작되는 모든 비즈니스 리더와 마케팅 리더를 위한 것이다.
이 책의 독자는 데브옵스, 애자일, ITIL, 린, 프로세스 개선과 같은 도메인에 대한 광범위한 지식이 아직 부족할 것으로 예상한다. 각 주제는 필요할 때 소개, 설명할 것이다.
이 책의 취지는 각 도메인의 핵심 개념에 대한 실무 지식을 생성하고, 입문서 역할을 함과 동시에 실무자가 전체 IT 가치 흐름에 있는 모든 동료와 함께 작업하는 데 필요한 언어를 소개하고, 공유된 목표의 틀을 만드는 데 있다.
목표 달성을 위해 점점 더 기술 조직에 의존하는 비즈니스 리더와 이해관계자에게도 가치 있는 내용이 될 것이다.
더 나아가 이 책에 기술한 모든 문제(예: 긴 배포 리드 타임, 고통스러운 배포)를 경험해보지 않은 조직의 독자도 대상으로 한다. 이들이 데브옵스 원칙, 특히 공유된 목표, 피드백과 지속적인 학습과 관련된 사항을 이해하면 많은 혜택을 얻을 수 있을 것이다.
이 책의 구성
1부에서는 데브옵스의 간략한 역사와 수십 년에 걸친 관련 지식 체계에서 얻은 기초 이론 및 핵심 주제를 소개한다. 다음으로 ‘세 가지 방법’의 상위 원칙인 지속적인 학습과 실험을 설명한다.
2부에서는 데브옵스를 어디서, 어떻게 시작하는지 설명하고 가치 흐름, 조직 설계 원칙과 패턴, 조직적 도입 패턴과 사례 연구와 같은 개념을 소개한다.
3부에서는 배포 파이프라인의 기반을 구축해 ‘흐름(Flow)’을 가속화하는 방법을 설명한다. 빠르고 효과적인 자동화 테스트, 지속적인 통합, 지속적인 전달과 낮은 위험도로 출시하기 위한 아키텍처 구현에 관해 알 수 있다.
4부에서는 피드백을 가속화하고 증폭하는 방법을 논의한다. 문제를 발견하고 해결하기 위한 효과적 프로덕션 텔레메트리를 생성하고 문제를 더 잘 예측해서 목표를 달성하기 위한 피드백을 활성화하며, 개발과 운영이 안전하게 변경 사항을 배포하고 A/B 테스트를 일상 업무와 통합하며, 작업의 질을 높이기 위한 리뷰와 조정 프로세스를 만드는 방법에 관해 이야기한다.
5부에서는 ‘지속적인 학습’을 가속화하는 방법을 알아본다. 올바른 문화를 수립하고 부서에서 새롭게 학습한 사항을 전체 조직의 개선에 적용하며 조직 학습과 개선을 위한 시간을 적절하게 확보하는 방법을 소개한다.
마지막으로 6부에서는 일상 업무에 보안 컴플라이언스를 적절하게 통합하는 방법에 관해 설명한다. 또한 보안 통제 예방책의 공유 소스 코드 저장소 및 서비스에 대한 통합, 배포 파이프라인에 대한 보안 통합, 더 효과적인 감지 및 복구를 위한 텔레메트리의 향상, 배포 파이프라인의 보호와 변경 관리 목표의 달성에 관해 설명한다.
이런 프랙티스를 체계화해 데브옵스 프랙티스의 도입을 가속화하고 데브옵스 이니셔티브의 성공을 증가시키며 데브옵스 트랜스포메이션에 필요한 노력의 양이 줄어들길 바란다.
목차
목차
- 1부. 세 가지 방법
- 1부 / 소개
- 1장. 애자일, 지속적인 전달, 그리고 세 가지 방법
- 제조(생산) 가치 흐름
- 기술 가치 흐름
- 데브옵스를 뒷받침하는 세 가지 원칙
- 사례 연구: 2판 추가 크루징 고도에 접근하기:
- 아메리칸 에어라인즈의 데브옵스 여행(Part 1)(2020)
- 결론
- 2장. 첫 번째 방법: 흐름 원칙
- 업무 시각화하기
- 진행 중 작업(WIP) 제한하기
- 배치 작업의 크기 줄이기
- 핸드오프 횟수 줄이기
- 제약 조건을 지속적으로 확인하고 향상시키기
- 가치 흐름에서 어려움과 낭비 제거하기
- 사례 연구: 2판 추가 헬스케어에서의 흐름과 제약 사항 관리(2001)
- 결론
- 3장. 두 번째 방법: 피드백 원칙
- 복잡한 시스템에서 안전하게 작업하기
- 문제를 발생 시점에 확인하기
- 스워밍과 문제 해결을 통한 새로운 지식 축적
- 사례 연구: 2판 추가 엑셀라, 안돈 코드 당기기(2018)
- 품질 활동을 원천에 더 가깝게 유지하기
- 다운스트림 워크 센터 최적화하기
- 결론
- 4장. 세 번째 방법: 지속적인 학습과 실험 원칙
- 조직적 학습과 안전 문화 활성화하기
- 일상 업무 개선을 제도화하라
- 국소적인 발견을 조직 전체의 개선으로 전환하라
- 일상 업무에 탄력성 패턴을 추가하라
- 리더가 학습 문화를 강화한다
- 사례 연구: 2판 추가 벨 연구소 이야기(1925)
- 결론
- 1부 / 결론
- 2부. 어디서 시작하는가?
- 2부 / 소개
- 5장. 시작할 가치 흐름을 선택하기
- 노드스트롬의 데브옵스 트랜스포메이션
- 그린필드 서비스 VS. 브라운필드 서비스
- 사례 연구: 2판 추가 케슬 런: 공중 급유 시스템의
- 브라운필드 전환(2020)
- 사례 연구: 2판 추가 케슬 런: 공중 급유 시스템의
- 기록 시스템과 참여 시스템을 모두 고려하라
- 가장 공감적이고 혁신적인 그룹에서 시작하라
- 데브옵스를 전체 조직으로 확장하기
- 사례 연구: 2판 추가 데브옵스를 비즈니스 전체로 확장하기:
- 아메리칸 에러라인즈의 데브옵스 여행(Part 2)(2020)
- 사례 연구: 2판 추가 HMRC, (대규모 PaaS를 이용한)
- 폐허에서 경제 살리기(2020)
- 사례 연구: 2판 추가 HMRC, (대규모 PaaS를 이용한)
- 결론
- 6장. 가치 흐름 내 작업의 이해 및 시각화와 조직 전체로의 확장
- 노드스트롬의 가치 흐름 매핑 경험
- 가치 흐름을 지원하는 팀 식별하기
- 가치 흐름 맵을 만들어 작업을 이해하라
- 전담 트랜스포메이션 팀 구축하기
- 사례 연구 링크드인, 오퍼레이션 인버전(2011)
- 행동 변화를 촉진하기 위한 도구 사용
- 결론
- 7장. 콘웨이의 법칙을 고려한 조직 및 아키텍처 설계 방법
- 엣시에서의 콘웨이의 법칙
- 조직의 아키타입
- 과도한 기능 지향(비용 최적화)에 따른 문제
- 시장 지향 팀 활성화하기(속도 최적화)
- 기능 지향 작업 만들기
- 테스팅, 운영, 보안은 모든 사람의 일상 업무다
- 모든 팀원이 제너럴리스트가 되게 하라
- 프로젝트가 아닌 서비스와 제품에 투자하라
- 콘웨이의 법칙에 따라 팀의 경계를 설계하라
- 개발자 생산성과 안전성을 위해
- 느슨하게 결합된 아키텍처를 구축하라
- 팀 규모를 작게 유지하라(피자 두 판의 법칙)
- 사례 연구 Target, API 활성화(2015)
- 결론
- 8장. 일상 업무와 운영을 통합해 최상의 결과를 얻는 방법
- 빅 피시 게임즈
- 개발자의 생산성 향상을 위한 공유 서비스를 생성하라
- 운영 엔지니어를 서비스 팀에 포함하라
- 서비스 팀마다 운영 연락 담당자를 지정하라
- 개발 팀의 정기적 업무 활동에 운영을 통합하라
- 사례 연구: 2판 추가 네이션와이드 빌딩 소사이어티,
- 일을 더 잘하는 방법(2020)
- 사례 연구: 2판 추가 네이션와이드 빌딩 소사이어티,
- 결론
- 2부 / 결론
- 3부. 첫 번째 방법: 흐름 개선을 위한 기술적 프랙티스
- 3부 / 소개
- 9장. 배포 파이프라인의 기반 생성
- 엔터프라이즈 데이터 웨어하우스 이야기(2009)
- 개발, 테스트, 프로덕션 환경을 온디맨드 방식으로
- 생성할 수 있게 하라
- 전체 시스템을 위한 단일 저장소를 생성하라
- 복구보다 재구축하기 쉬운 인프라스트럭처를 만들어라
- 사례 연구: 2판 추가 컨테이너로 300억 달러의
- 이익을 거둔 호텔 기업(2020)
- 사례 연구: 2판 추가 컨테이너로 300억 달러의
- 유사 프로덕션 환경에서의 실행도 포함하게 개발 항목의
- ‘완료’ 정의를 수정하라
- 결론
- 10장. 빠르고 신뢰할 수 있는 자동화 테스팅을 활성화하라
- 구글의 웹 서버 이야기(2005)
- 코드를 지속적으로 빌드 및 테스트하고 환경과 통합하라
- 빠르고 신뢰도가 높으며 자동화된 검증 테스트 스위트를 만들어라
- 가능한 한 초기에 자동화 테스트의 오류를 찾아내라
- 배포 파이프라인이 망가지면 안돈 코드를 당겨라
- 결론
- 11장. 지속적인 통합을 활성화하고 연습하라
- HP 레이저젯 펌웨어(2014)
- 소규모 배치 개발과 트렁크에 코드를
- 드물게 커밋할 때 발생하는 일
- 트렁크 기반 개발 프랙티스를 적용하라
- 사례 연구 바자보이스, 지속적인 통합(2012)
- 결론
- 12장. 리스크가 낮은 출시를 자동화하고 활성화하라
- 배포 프로세스를 자동화하라
- 사례 연구 CSG 인터내셔널, 일일 배포(2013)
- 사례 연구 엣시, 자체 서비스 개발자 배포 및 지속적 배포 사례(2014)
- 출시와 배포를 분리하라
- 사례 연구 딕슨스 리테일, 매장 관리 시스템의 블루 그린 배포(2008)
- 사례 연구 페이스북 챗, 다크 론치(2008)
- 지속적인 전달과 지속적인 배포에 대한 조사
- 사례 연구: 2판 추가 CSG, 개발과 운영의 윈윈 관계 만들기(2016)
- 결론
- 배포 프로세스를 자동화하라
- 13장. 위험도가 낮은 출시를 위한 아키텍처
- 생산성, 테스트 용이성 및 안전성을 향상하는 아키텍처
- 아키텍처의 아키타입 - 모놀리스 vs. 마이크로서비스
- 사례 연구 아마존, 진화적 아키텍처(2002)
- 엔터프라이즈 아키텍처의 안전한 진화를 위한
- 교살자 애플리케이션 패턴을 사용하라
- 사례 연구 블랙보드, Learn 프로젝트에서의 교살자 패턴(2011)
- 결론
- 3부 / 결론
- 4부. 두 번째 방법: 피드백을 위한 기술적 프랙티스
- 4부 / 소개
- 14장. 문제 확인과 해결을 가능케 하는 텔레메트리를 생성하라
- 엣시의 데브옵스 트랜스포메이션
- 중앙 집중식 텔레메트리 인프라스트럭처를 구축하라
- 프로덕션에 유용한 애플리케이션 로깅 텔레메트리를 생성하라
- 텔레메트리를 사용해서 문제 해결을 안내하라
- 일상 업무에서 프로덕션 지표 생성을 활성화하라
- 텔레메트리와 정보 방열기에 접근하기 위한 자체 서비스를 생성하라
- 사례 연구 링크드인, 자체 서비스 지표 생성(2011)
- 텔레메트리의 부족한 점을 파악하고 보완하라
- 결론
- 15장. 텔레메트리를 분석해 문제를 더 잘 예측하고 목표를 달성하라
- 넷플릭스에서의 텔레메트리(2012)
- 잠재적 문제를 감지하기 위해 평균과 표준 편차를 사용하라
- 바람직하지 않은 결과를 측정하고 경고하라
- 텔레메트리 데이터가 가우스 분포를 따르지 않을 때 발생하는 문제
- 사례 연구 넷플릭스, 자동 용량 확장(2012)
- 이상 탐지 기법 사용하기
- 사례 연구 향상된 이상 탐지 기법(2014)
- 결론
- 16장. 피드백을 활성화해 개발과 운영이 코드를 안전하게 배포하게 하라
- 텔레메트리를 사용해 배포를 보다 안전하게 만들어라
- 개발은 운영과 페이저 순환 의무를 공유한다
- 개발자가 다운스트림 작업을 따르게 하라
- 초기에는 개발자 스스로 제품 서비스를 관리하게 하라
- 사례 연구 구글, 실행 및 핸드오프 준비 리뷰(2010)
- 결론
- 17장. 일상 업무에 가설 주도 개발과 A/B 테스팅을 통합하라
- 인튜이트의 가설 주도 개발(2012)
- A/B 테스팅의 간략한 역사
- 기능 테스팅에 A/B 테스팅 통합하기
- A/B 테스팅을 출시와 통합하기
- A/B 테스팅을 기능 계획에 통합하기
- 사례 연구 Yahoo! Answers,
- 빠른 출시 주기 실험을 통한 매출의 2배 증가(2010)
- 사례 연구 Yahoo! Answers,
- 결론
- 18장. 리뷰 및 조정 프로세스를 만들어 현재 작업의 품질을 높여라
- 깃허브의 동료 리뷰(2011)
- 변경 승인 프로세스의 위험성
- ‘과도한 변경 통제’로 인한 잠재적 위험
- 사례 연구: 2판 추가 아디다스,
- 여섯 개의 눈의 원칙에서 출시까지(2020)
- 사례 연구: 2판 추가 아디다스,
- 변경에 대한 조정과 계획을 활성화하라
- 변경 사항에 대한 동료 리뷰를 활성화하라
- 사례 연구 구글, 코드 리뷰(2010)
- 더 많은 수동 테스트 수행 및 변경 금지에 따른 잠재적 위험
- 페어프로그래밍을 활성화해서 모든 변경을 개선하라
- 사례 연구 피보탈 랩스, 페어 프로그래밍을 이용한
- 망가진 코드 리뷰 프로세스 교체(2011)
- 사례 연구 피보탈 랩스, 페어 프로그래밍을 이용한
- 풀 리퀘스트 프로세스의 효과 평가하기
- 관료적 절차를 과감하게 제거하라
- 결론
- 4부 / 결론
- 5부. 세 번째 방법: 지속적인 학습과 실험을 위한 기술적 프랙티스
- 5부 / 소개
- 19장. 일상 업무의 일부로서 학습을 활성화하고 주입하라
- AWS 미 동부 리전과 넷플릿스(2011)
- 공정한 학습 문화를 조성하라
- 사고가 발생한 뒤에는 회고 미팅을 계획하라
- 회고 리뷰는 가능한 한 널리 공개하라
- 사고에 대한 내성을 줄여 가장 약한 실패 신호를 발견하라
- 실패를 재정의하고 계산된 리스크 감수를 장려하라
- 프로덕션 실패를 주입해 탄력성과 학습을 활성화하라
- 게임 데이를 도입해 실패를 연습하라
- 사례 연구: 2판 추가 CSG, 장애를 강력한 학습 기회로
- 전환하기(2021)
- 사례 연구: 2판 추가 CSG, 장애를 강력한 학습 기회로
- 결론
- 20장. 국지적 발견을 조직 전체의 개선으로 전환하라
- 챗 룸과 챗봇을 사용해 조직적 지식을 자동화하고 저장하라
- 깃허브의 휴봇
- 소프트웨어의 표준화 프로세스를 재사용할 수 있게 자동화하라
- 전체 조직을 위해 단일 공유 소스 코드 저장소를 생성하라
- 자동화 테스트를 문서화와 실천 커뮤니티로 활용해 지식을 확산하라
- 비기능 요구 사항을 체계화해 운영을 설계하라
- 코드화된 비기능 요구 사항을 활용해 운영을 위한 설계를 하라
- 재사용 가능한 운영 사용자 스토리를 개발 항목으로 만들어라
- 기술적 선택 사항이 조직의 목표 달성에 도움이 되는지 확인하라
- 사례 연구 엣시, 신규 기술 스택 표준화(2010)
- 사례 연구: 2판 추가 타깃, 크라우드 소싱을 통한
- 기술 거버넌스 (2018)
- 결론
- 21장. 조직의 학습과 개선을 만들기 위한 시간을 확보하라
- 타깃, 30일 도전(2015)
- 리추얼을 제도화함으로써 기술 부채를 상환하라
- 모든 사람이 가르치고 배울 수 있게 하라
- 데브옵스 콘퍼런스에서 경험을 공유하라
- 사례 연구 네이션와이드 인슈어런스, 캐피털원,
- 타깃의 내부 기술 콘퍼런스(2014)
- 사례 연구 네이션와이드 인슈어런스, 캐피털원,
- 커뮤니티 구조를 만들어 프랙티스를 확산하라
- 결론
- 5부 / 결론
- 6부. 정보 보안, 변화 관리, 컴플라이언스 통합을 위한 기술적 프랙티스
- 6부 / 소개
- 22장. 정보 보안은 모든 사람의 일상 업무이다
- 보안을 개발 이터레이션 데모에 통합하라
- 보안을 결함 추적과 포스트모템에 통합하라
- 예방 차원의 보안 통제를 공유 소스 코드 저장소와
- 공유 서비스에 통합하라
- 보안을 배포 파이프라인에 통합하라
- 애플리케이션의 보안을 보장하라
- 사례 연구 트위터, 정적 보안 테스트(2009)
- 소프트웨어 공급망의 보안을 확인하라
- 환경에 대한 보안을 확보하라
- 사례 연구 18F, 컴플라이언스 용병을 통한
- 연방 정부 컴플라이언스 자동화
- 사례 연구 18F, 컴플라이언스 용병을 통한
- 정보 보안을 프로덕션 텔레메트리와 통합하라
- 사례 연구 엣시, 환경 계측(2010)
- 배포 파이프라인을 보호하라
- 사례 연구: 2판 추가 파이 마에, 보안의 시프팅 레프트(2020)
- 결론
- 23장. 배포 파이프라인 보호하기
- 보안과 컴플라이언스를 변경 승인 프로세스에 통합하라
- 위험도가 낮은 변경 사항을 표준 변경 사항으로 재분류하라
- 변경 사항이 일반 변경 사항으로 분류될 때 수행해야 할 작업
- 사례 연구 세일즈포스닷컴, 표준 변경 사항으로
- 자동화된 인프라스트럭처의 변경 처리(2012)
- 사례 연구 세일즈포스닷컴, 표준 변경 사항으로
- 코드 리뷰를 통해 직무를 분리하라
- 사례 연구 엣시, PCI 준수와 직무 분리의 교훈적 일화(2014)
- 사례 연구: 2판 추가 캐피털 원, ‘전혀 두려움 없는’
- 하루당 10회 출시를 향산 비즈니스와 개발 사이의 파트너십
- 감사관과 컴플라이언스 책임자를 위한 문서와 증거를 확보하라
- 사례 연구 규제 환경에서 컴플라이언스 증명하기(2015)
- 사례 연구 ATM 시스템을 위한 프로덕션 텔레메트리에
- 의존하기(2013)
- 결론
- 6부 / 결론
- 이제 행동할 때다: 데브옵스 핸드북의 결론
- 2판을 마치며
- 부록