Top

깃허브로 완성하는 데브옵스 가속화 [깃허브를 이용한 효율적인 개발과 운영]

  • 원서명Accelerate DevOps with GitHub: Enhance software delivery performance with GitHub Issues, Projects, Actions, and Advanced Security (ISBN 9781801813358)
  • 지은이마이클 카우프만(Michael Kaufmann)
  • 옮긴이최재웅, 류한진, 백준선, 채민관, 김대곤
  • ISBN : 9791161758053
  • 40,000원
  • 2023년 12월 27일 펴냄
  • 페이퍼백 | 600쪽 | 188*235mm
  • 시리즈 : 소프트웨어 아키텍처

책 소개

본문에 쓰인 컬러 이미지는 여기에서 내려 받으세요.

소스 코드 파일은 여기에서 내려 받으실 수 있습니다.
https://github.com/AcornPublishing/devops-github

요약

소프트웨어 개발 및 협업의 전반적인 내용을 다루며, 효율적인 소프트웨어 개발 및 관리를 위한 깃허브 활용방안을 제시하는 책이다. 이를 통해 팀의 생산성 향상과 혁신에 기여하고자 한다. 첫 장에서는 메트릭을 중심으로 한 린 관리의 이론과 성과를 설명하며, 뒤이어 나오는 장들에서는 깃허브를 이용한 계획, 추적, 협업, 자동화, 보안, 그리고 린 제품 개발 등의 다양한 주제를 다룬다. 이를 통해 독자는 깃허브를 활용해 팀의 생산성을 향상시키고 안전하게 협업하며, 소프트웨어의 품질을 향상시키는 방법을 배울 수 있다. 특히, 오픈소스와 이너소스 전략, 깃허브 액션을 통한 자동화, 시큐어 코딩 및 코드 보안, 느슨하게 결합된 아키텍처와 마이크로서비스, 그리고 기업에서 활용할 수 있는 소프트웨어 개발 환경 수준을 향상시킬 수 있는 다양한 내용을 다룬다. 또한 실무 경험과 체계적인 이론을 통해 깃허브를 최대한 활용해서 소프트웨어 개발 생태계에서 성공적으로 나아갈 수 있도록 한다. 개발자, 팀 리더, 조직의 의사 결정자에게 현대적이고 효율적인 소프트웨어 개발 방법을 제시하고자 하는 유용한 지침서이다.

추천의 글

2011년, 기업가 마크 앤드리슨(Marc Andreessen)은 <월스트리트 저널(Wall Street Journal)>에서 “소프트웨어가 세상을 먹어 치우고 있다”는 유명한 주장을 했다. 소프트웨어의 급부상으로 우리가 알고 있는 모든 산업과 모든 분야가 디지털 방식으로 변모할 것이라고 예측한 것이다. 10년이 지난 지금 이 글을 쓰면서 “마크가 옳았다”는 말 외에는 할 말이 없다. 소프트웨어는 우리의 삶을 변화시켰고, 모든 기업과 조직도 변화시켰다. 넷플릭스를 통해 엔터테인먼트가, 에어비앤비를 통해 여행과 숙박이, 아마존을 통해 지구상에서 구매할 수 있는 거의 모든 것이 어떻게 근본적으로 변화했는지 살펴보라. 마트와 슈퍼에서는 이제 디지털 경험을 제공하고, 주차 미터기는 스마트폰 앱으로 대체되고 있으며, 가장 오래되고 전통적인 은행도 클라우드로 이전했고, 자동차는 휴대폰보다 더 자주 업데이트를 받는다.
모든 기업이 소프트웨어 기업이 돼 가고 있다. 수백만 줄의 코드가 이미 글로벌 경제의 근간을 이루고 있으며 소프트웨어 개발자는 새로운 디지털 세상의 설계자다. 이제 규모나 산업에 관계없이 어떤 조직도 소프트웨어와 개발자 없이는 경쟁하고 성공할 수 없다.
그리고 이러한 추세는 둔화될 기미가 보이지 않는다. 세계경제포럼(World Economic Forum)에 따르면 향후 10년간 경제에서 창출되는 새로운 가치의 약 70%가 디지털로 구현되는 플랫폼 비즈니스 모델에 기반할 것으로 예상된다. 이 기회를 활용하려면 모든 조직은 오픈소스(open source)의 힘을 활용해야 한다. 오픈소스 없이는 경쟁력을 유지할 수 없으며 기업들은 내부 문화를 쇄신하고 강화하며 소프트웨어 제공 성능을 지속적으로 개선하기 위해 데브옵스(DevOps) 관행을 도입해야 한다. 당연히 깃허브(GitHub)의 CEO로서 나는 모든 조직이 이를 달성할 수 있는 최적의 장소가 깃허브라고 믿는다.
2011년 마크가 글을 썼을 때만 해도 깃허브는 아직 초창기였고, 깃 리포지터리(Git repository) 호스팅에 집중하고 있었다. 오늘날 깃허브는 개발자 라이프사이클의 모든 단계에서 개발자를 지원하는 기능을 갖춘 완전한 데브옵스 플랫폼으로 발전했다. 8,300만 명 이상의 개발자가 플랫폼을 사용하며 전 세계 개발자를 위한 홈을 제공하고 있다. 깃허브는 오픈소스, 클라우드 네이티브, 모바일, 엔터프라이즈 등 모든 프로젝트를 생성하고, 현대화해 목적지에 배포할 수 있는 곳이며 서로 연결된 개발자 커뮤니티가 미래의 세상을 구축하는 곳이기도 하다.
마이클(Michael)처럼 경험이 풍부한 사람이 이 책을 집필하게 돼 매우 기쁘다. 소프트웨어 개발자, 컴퓨터 공학도, 솔루션 아키텍트, 사이트 신뢰성 엔지니어 등을 위한 책이다. 이 책은 여러분과 여러분의 조직이 데브옵스와 깃허브의 힘을 활용할 수 있는 명확하고 간결하며 실용적인 방법을 제공한다. 앞으로 다가올 소프트웨어 개발의 황금기를 준비하는 데 도움이 될 것이다.
이 책을 쓰느라 오랜 시간 고생한 것도 자랑스럽지만, 그 이상으로 이 책이 다른 사람들에게 가져올 의미 있는 변화와 진전을 생각하면 더욱 자랑스럽다.

—토마스(Thomas),
깃허브 CEO

마이클과 나는 데브옵스에 대해 발표하던 콘퍼런스에서 처음 만났다. 이후 데브옵스에 대한 공통된 열정을 통해 유대감을 형성했고, 강연을 통해 자주 만났다. 만날 때마다 함께 셀카를 찍는 것이 습관이 됐고 우리의 우정과 데브옵스에 대한 그의 열정이 있었기에 책을 집필해 자신의 지식을 세상에 공유한다는 소식을 듣고 매우 기뻤다.
시간이 지남에 따라 우리가 사용하는 도구는 바뀔 수 있겠지만, 책에서 공유하는 정보는 데브옵스 전환을 시작하는 조직에 보편적으로 적용된다. 코로나19로 인해 전 세계가 원격 근무로 전환되는 상황에서 비동기 작업에 대해 다뤄준 마이클에게 정말 감사했다. 비동기 작업은 빠르게 우리의 새로운 표준이 됐으며, 원격 및 분산된 팀에서 민첩성과 생산성을 유지하기 위해 팀은 이러한 역량을 개발해야 한다.
판도를 바꿀 수 있는 피처 플래그(feature flag)의 사용에 대해 읽을 수 있어서 좋았다. 피처 플래그는 배포와 릴리스를 분리하고 보다 고급 배포 전략을 가능하게 한다. 또한 롤백의 필요성을 줄이고 잘못된 코드에서 복구하는 데 걸리는 시간을 크게 단축할 수 있다. 하지만 모든 것이 그렇듯이 비용도 발생한다. 마이클은 피처 플래그 사용으로 인한 비용과 이를 완화하는 방법을 잘 설명한다. 이를 통해 독자는 피처 플래그가 자신에게 적합한지 여부에 대해 데이터에 입각한 결정을 내릴 수 있다.
내가 만나는 많은 팀은 속도를 높이면 비용을 절감할 수 있다고 생각하지만, 마이클은 프로세스에 품질과 보안을 도입하는 것이 중요하다고 설명한다. 또한 이를 달성하는 방법에 대한 실용적인 지침도 제공한다. 데브옵스를 올바르게 구현하면 안전하고 고품질의 코드를 더 빠르게 제공할 수 있다.
데브옵스의 진정한 힘을 활용하려면 애플리케이션을 리팩토링해야 하는 경우가 많다. 마이클은 소프트웨어 아키텍처가 프로세스와 팀에 미치는 영향을 다룬다. 또한 각 옵션의 장단점도 다뤄 팀이 어떤 것이 최선인지 결정하는 데 도움을 준다.
이 책은 독자들에게 데브옵스 전환을 지원하는 데 없어서는 안 될 도구가 될 것이라고 확신한다.

—도노반 브라운(Donovan Brown),
파트너 프로그램 관리자, 애저 인큐베이션(Azure Incubations), 애저 오피스(Azure Office) 최고기술경영자(CTO)

이 책에서 다루는 내용

◆ 소프트웨어 배포 성능의 효과적인 측정
◆ 데브옵스 및 린 관리 기법 도입
◆ 깃허브 이슈 및 프로젝트를 사용해 작업 계획, 추적, 시각화
◆ 깃허브 액션 및 패키지로 지속적 배포
◆ 프로덕션 테스트와 카오스 엔지니어링을 통한 품질 개선
◆ 보안의 우선순위를 높여 전체 소프트웨어 공급망 보호
◆ 깃허브의 고급 보안 기능으로 데브섹옵스의 모범 사례 사용
◆ 코드 스캐닝, 시크릿 스캐닝 및 Dependabot으로 코드 보안 유지

이 책의 대상 독자

개발자, 솔루션 아키텍트, 데브옵스 엔지니어, 사이트 신뢰성 엔지니어(SRE, Site Reliability Engineer)는 물론 소프트웨어 전달 성능을 향상시키고자 하는 엔지니어링 또는 제품 관리자를 위한 책이다. 데브옵스를 처음 접하거나 이미 경험이 있지만 최대 성능을 달성하는 데 어려움을 겪고 있는 조직 및 이미 깃허브 엔터프라이즈(GitHub Enterprise)를 사용해본 경험이 있거나 애저 데브옵스(Azure DevOps), 팀 파운데이션 서버(Team Foundation Server), 깃랩(GitLab), 비트버킷(Bitbucket), 퍼펫(Puppet), 셰프(Chef) 또는 젠킨스(Jenkins)와 같은 플랫폼 사용 경험이 있는 독자에게 적합하다.

이 책의 구성

1장, '메트릭이 핵심'에서는 린(lean) 관리의 이론과 성과 및 문화적 변화를 측정하는 방법을 설명한다. 인재를 유치하고 뛰어난 고객 만족을 달성하는 데 개발자 생산성이 왜 중요한지 살펴본다.
2장, '업무의 계획, 추적, 시각화'에서는 린 원칙을 적용해 소프트웨어 전달 성과를 가속화하는 작업 인사이트에 대해 설명한다. 깃허브 이슈, 레이블, 마일스톤(milestone), 프로젝트를 사용해 팀과 제품 전반에서 업무를 계획, 추적, 시각화하는 방법을 배우게 된다.
3장, '팀워크와 협업'에서는 소프트웨어 협업 개발의 중요성과 팀과 분야 간 협업에 깃허브를 어떻게 사용할 수 있는지 설명한다.
4장, '장소에 제약받지 않는 비동기식 협업'에서는 비동기 작업 방식의 이점과 이를 활용해 책임 공유, 분산된 팀, 품질 향상, 팀 간 협업을 개선하는 방법을 설명한다. 깃허브 모바일, 마이크로소프트 팀즈(Microsoft Teams), 슬랙(Slack), 깃허브 페이지, 위키(Wiki), 토론을 사용해 장소와 기기에 구애받지 않고 협업하는 방법을 알아본다.
5장, '오픈소스와 이너 소스 전략으로 개발 역량 강화'에서는 무료 및 오픈소스 소프트웨어의 역사와 최근 몇 년 동안 클라우드 컴퓨팅의 맥락에서 그 중요성이 커지고 있는 것에 대해 설명한다. 오픈소스를 활용해 소프트웨어 배포 속도를 높이는 방법을 알려 준다. 또한 이너 소스(inner source)에 오픈소스 사례를 적용해 조직을 혁신하는 방법과 오픈소스와 이너 소스가 인소싱 및 아웃소싱 전략에 미칠 수 있는 영향에 대해 살펴본다.
6장, '깃허브 액션으로 자동화'에서는 품질과 속도를 위한 자동화의 중요성에 대해 설명한다. 지속적 전달뿐 아니라 모든 종류의 자동화에 깃허브 액션을 사용하는 방법을 소개한다.
7장, '워크플로 실행'에서는 다양한 호스팅 옵션을 사용해 하이브리드 클라우드 시나리오(hybridcloud scenario) 또는 하드웨어 인 더 루프 테스트(hardware-in-the-loop test)를 처리하는 방법을 설명한다. 또한 자체 호스팅 러너를 설정하고 관리하는 방법을 알아본다.
8장, '깃허브 패키지를 사용한 종속성 관리'에서는 깃허브 패키지와 시맨틱(semantic) 버전 관리를 깃허브 액션과 함께 사용해 팀과 제품 간의 종속성을 관리하는 방법을 설명한다.
9장, '플랫폼별 배포'에서는 마이크로소프트 애저(Microsoft Azure), AWS ECS, 구글 쿠버네티스(Google Kubernetes) 엔진에 대한 간단한 실습 예제를 통해 여러 클라우드와 플랫폼에 쉽게 배포하는 방법을 보여 준다. 또한 깃허브 액션(GitHub Actions)을 사용해 단계별 배포를 수행하는 방법과 IaC(Infrastructure as Code)를 사용해 리소스 프로비저닝을 자동화하는 방법을 알아본다.
10장, '피처 플래그와 피처의 수명 주기’에서는 피처 플래그(Feature Flag) 또는 피처 토글(Feature Toggle)이 어떻게 복잡성을 줄이고 피처 및 소프트웨어의 수명 주기(lifecycle)를 관리하는 데 도움이 되는지 설명한다.
11장, '트렁크 기반 개발'에서는 트렁크 기반 개발의 이점을 설명하고 소프트웨어 배포를 가속화하는 데 가장 적합한 깃 워크플로(Git workflow)를 소개한다.
12장, '품질 향상을 위한 테스트의 시프트-레프트'에서는 개발 속도에 대한 품질 보증 및 테스트의 역할을 자세히 살펴보고 테스트 자동화를 통해 테스트의 시프트-레프트를 보여준다. 또한 프로덕션에서의 테스트 및 카오스 엔지니어링(chaos engineering)에 대해 다룬다.
13장, '시프트-레프트 보안과 데브섹옵스'에서는 소프트웨어 개발에서 보안의 역할과 프로세스에 보안을 도입하고 데브섹옵스(DevSecOps), 제로 트러스트(zero-trust)를 실행하는 방법, 보안을 전환하는 방법을 폭넓게 살펴본다. 일반적인 공격 시나리오를 살펴보고 공격 시뮬레이션과 레드 팀/블루 팀 연습을 사용해 보안을 연습하고 인식을 높이는 방법을 살펴본다. 또한 클라우드의 안전한 개발 환경으로서 깃허브 코드스페이스(GitHub Codespace)에 대해 소개한다.
14장, '코드 보안'에서는 깃허브 어드밴스드 시큐리티(GitHub Advanced Security)를 사용해 CodeQL 및 기타 도구로 정적 코드 분석을 수행한다. 또한 버그, 보안, 컴플라이언스 문제를 제거하고, Dependabot으로 소프트웨어 공급망을 성공적으로 관리하고, 시크릿 스캐닝(Secret Scanning)을 사용해 코드 베이스의 시크릿을 제거하는 방법을 설명한다.
15장, '안전한 배포'에서는 환경에 대해 안전하게 배포하는 방법과 전체 릴리스 파이프라인을 안전하고 규정을 준수하는 방식으로 자동화해 규제 요구 사항도 충족하는 방법을 보여준다. 또한 소프트웨어 구성 명세서(SBoM, Software Bills of Material), 코드 및 커밋 서명, 동적 애플리케이션 보안 테스트, 릴리스 파이프라인의 보안 강화에 대해 다룬다.
16장, '느슨하게 결합된 아키텍처와 마이크로서비스'에서는 느슨하게 결합된 시스템의 중요성과 이를 달성하기 위해 소프트웨어 설계를 발전시킬 수 있는 방법을 설명한다. 마이크로서비스, 진화적 설계, 이벤트 기반 아키텍처를 다룬다.
17장, '팀 고도화'에서는 조직의 커뮤니케이션 구조와 시스템 아키텍처의 상관관계(콘웨이의 법칙(Conway’s law))와 이를 사용해 아키텍처, 조직 구조, 소프트웨어 배포 성능을 개선하는 방법에 대해 설명한다. 또한 투-피자 팀(two-pizza team), 역 콘웨이 전략, 코드에 대한 모노/멀티 레포(mono/multi repo) 전략에 대해 다룬다.
18장, '린 제품 개발과 린 스타트업'에서는 제품 및 기능 수준에서 린 제품 관리의 중요성에 대해 설명한다. 고객 피드백을 제품 관리에 통합하고, 최소 기능 제품(MVP, Minimal Viable Product)을 만드는 방법과 엔터프라이즈 포트폴리오를 관리하는 방법을 알아본다.
19장, '실험과 A/B 테스트'에서는 A/B 테스트와 같은 증거 기반 데브옵스 관행을 통해 가설을 검증하는 실험을 수행해 제품을 발전시키고 지속적으로 개선할 수 있는 방법을 설명한다. 또한 OKR을 활용해 팀이 올바른 실험을 수행하고 올바른 제품을 구축할 수 있도록 지원하는 방법도 살펴본다. 20장, '깃허브 플랫폼 구성'에서는 깃허브가 어떻게 팀을 위한 종합적인 개방형 플랫폼 역할을 할 수 있는지 설명한다. 또한 다양한 호스팅 옵션, 가격, 기존 도구 체인에 통합하는 방법에 대해 알아본다.
21장, '깃허브로 이전'에서는 다른 플랫폼에서 깃허브로 마이그레이션(migration)하는 전략과 다른 시스템과의 통합 지점에 대해 설명한다. 또한 올바른 마이그레이션 전략을 찾는 방법과 깃허브 엔터프라이즈 임포터(GitHub Enterprise Importer) 및 발레(Valet)를 사용해 마이그레이션 작업을 수행하는 방법을 소개한다.
22장, '깃허브를 통한 협업 고도화'에서는 협업을 촉진하고 관리를 용이하게 하기 위해 리포지터리(repository) 및 팀을 조직 및 엔터프라이즈 단위로 구조화하는 모범 사례에 대해 설명한다. 또한 역할 기반 액세스, 사용자 지정 역할, 외부 공동 작업자에 대해 다룬다.
23장, '엔터프라이즈 혁신'에서는 모든 것을 한데 모아 놨다. 성공적인 혁신을 추진하고 개발 속도를 높이는 데 사용할 수 있는 많은 도구를 제공한다. 하지만 모든 요소를 종합적으로 고려해야만 혁신에 성공할 수 있다. 많은 혁신이 실패하는 이유와 혁신을 성공으로 이끌기 위해 무엇을 해야 하는지에 대해 설명한다.

저자/역자 소개

지은이의 말

2020년대에 접어든 지금, 10년이 넘는 연구 결과에 따르면 개발자 성과가 높은 기업은 속도와 처리량에서 경쟁사를 능가할 뿐만 아니라 품질, 혁신, 보안, 직원 만족도, 가장 중요한 고객 만족도에서도 더 높은 점수를 받는다.
하지만 일부 유니콘(unicorn) 기업을 제외한 대다수의 기존 기업은 혁신에 어려움을 겪고 있다. 기존 제품의 경직된 구조와 느린 프로세스, 모놀리식(monolithic) 애플리케이션 아키텍처, 긴 릴리스 주기는 기업이 변화하기 어렵게 만든다.
하지만 이는 새로운 현상이 아닐 뿐더러 혁신적 변화는 항상 어렵고 성공하더라도 성공하기까지 수년이 걸린다. 실패할 확률도 매우 높다. 혁신은 매우 다양한 수준에서 이뤄져야 하며, 이러한 변화가 일치하지 않으면 혁신은 실패할 수밖에 없기 때문이다. 이 책은 높은 개발자 성과를 위한 연구뿐만 아니라 소프트웨어 전달을 가속화하는 방법에 대한 실용적인 예제를 제공함으로써 여러분의 혁신에 도움이 될 것이다.
이 책은 데브옵스에 대한 실용적인 가이드다. 이미 데브옵스 여정에 있는 팀이 데브옵스 여정을 더욱 발전시킬 수 있도록 일반적인 문제에 대한 간단한 솔루션을 제공해 소프트웨어 전달 성능을 가속화하게끔 도와준다. 이를 통해 팀은 성공을 측정하는 데 적합한 지표를 찾고 다른 성공 사례에서 배울 수 있으며, 단순히 다른 팀이 수행한 작업을 모방하지 않아도 된다. 또한 깃허브를 데브옵스 플랫폼으로 사용하며 협업, 린 관리, 안전하고 빠른 소프트웨어 전달을 위해 깃허브의 강력한 기능을 활용하는 방법을 제시한다.
이 책을 다 읽고 나면 독자들은 소프트웨어 전달 성능에 영향을 미치는 요소와 전달 역량을 측정하는 방법을 이해할 수 있다. 따라서 팀 간 협업을 위한 투명성과 간단한 솔루션을 통해 현재 위치가 어디인지, 앞으로 어떻게 나아가야 하는지 깨닫게 될 것이다. 일반적인 문제에 대한 간단한 솔루션을 갖춘 독자들은 깃허브 프로젝트를 통해 작업을 가시화하고, 깃허브 인사이트로 올바른 지표를 측정하며, 깃허브 액션 및 고급 보안(advanced security)을 통해 견고하고 검증된 엔지니어링 사례를 사용하고, 이벤트 기반의 느슨하게 결합된 소프트웨어 아키텍처로 전환하는 등 깃허브의 힘을 활용해 가속화하는 방법을 이해할 수 있을 것이다.

지은이 소개

마이클 카우프만(Michael Kaufmann)

개발자와 엔지니어가 직장에서 행복하고 생산적으로 일할 수 있다고 믿는다. 개발자뿐만 아니라 데브옵스, 깃허브, 애저 및 최신 기술들을 좋아한다.
제비아(Xebia) 그룹의 컨설팅 회사인 엑스피리트 저머니(Xpirit Germany)의 창업자이자 CEO이며 20년 이상 IT 분야에서 일해 오고 있다. 클라우드 및 데브옵스 전환과 새로운 업무 방식 구현을 통해 고객이 성공할 수 있도록 지원하고 있다.
2015년부터 마이크로소프트 지역 책임자(Microsoft Regional Director)에 선정됐으며, 데브옵스 부문과 깃허브에 마이크로소프트 최우수 전문가(Microsoft MVP)에도 선정됐다.
책과 교육을 통해 지식을 공유하고 있으며, 국제 콘퍼런스에서 정기적으로 연사로 활동하고 있다.

옮긴이의 말

최근 깃허브(GitHub)와 데브옵스가 빠르게 통합돼 개발 환경의 핵심이 되고 있다. 이러한 중요성에도 불구하고, 이 책처럼 깃허브를 중심으로 다양한 주제를 아우르며 효율적인 개발과 협업 전략, 그리고 보안에 대한 심층적인 내용을 다룬 책은 드물다. 많은 분이 이 책을 통해 소프트웨어 개발 여정에서의 도전에 대응하고 뛰어난 결과를 이루기를 기대한다.

—최재웅

깃허브는 팀들에게 데브옵스와 같은 현대적인 개발 방법을 채택할 수 있는 유연하고 투명하며 통합된 플랫폼을 제공한다. 버전 관리, 협업, 자동화 기능들이 배포 파이프라인을 가속화시키고, 팀 간 협업을 용이하게 하며, 개발 수명 주기 전반에 걸친 가시성을 제공할 수 있다. 많은 곳에서 깃허브를 활용해 데브옵스를 실천하기 위해 노력을 하고 있다. 이 책이 그들의 길잡이가 됐으면 한다.

—류한진

데브옵스는 개발의 즐거움을 높여주는 중요한 요소다. 질 좋은 코드 관리, 지속적인 빌드 및 배포, 안정적인 롤백을 기반한 팀 간 협업 환경은 개발의 즐거움을 몇 배는 올려줄 것이다. 깃허브를 기반 데브옵스를 잘 설명하며, 보다 실용적인 관점에서의 구축 방법을 제안하는 책이다. 이 책을 통해 많은 분이 보다 더 즐거운 환경에서 개발하는 경험을 하기 바란다.

—백준선

데브옵스 실천을 위한 깃허브의 활용법을 심도 있게 다루는 책이다. 데브옵스의 효용성은 공감하지만 어떻게 조직에 적용할지 고민하는 분들께 좋은 길잡이가 될 것이다. 훌륭한 동료들과 함께 번역하며 책의 내용을 두고 논의하는 일은 매우 유익한 경험이었다. 이 책을 읽는 독자들도 많은 영감을 받길 바란다.

—채민관

코로나19 이후, 기업들은 점점 더 변동성이 커지는 시장에 직면했다. 이러한 변화에 빠르게 적응하고 신제품 출시 속도를 높이는 것이 성공의 핵심 요소가 됐다. 이러한 상황에서 가장 효과적인 전략은 기업 내 데브옵스 도입 및 확산을 지속하는 것인데, 이 책은 개발자에게 익숙한 깃허브라는 플랫폼을 통해 이 프로세스를 체계적으로 설명한다. 이 책을 통해 데브옵스를 어디서부터 시작해야 할지, 어떻게 조직 전체에 효과적으로 확산할지 몰라 갈림길에 서 있는 분들께 도움이 됐으면 좋겠다. 마지막으로 바쁜 프로젝트 중에도 같이 번역에 참여한 동료분들 및 책의 원작자, 에이콘출판사에 감사의 인사를 전한다.

—김대곤

옮긴이 소개

최재웅

삼성전자와 SK텔레콤을 거쳐 아마존 웹 서비스(AWS)에서 데브옵스 컨설턴트(DevOps Consultant)로 근무 중이다. 클라우드로 전환하는 AWS 고객의 비즈니스 목표를 달성하기 위해 데브옵스 여정의 모든 단계에서 고객이 탄력적이고 효율적인 아키텍처와 파이프라인을 구축하도록 돕는다. 데브옵스, MLOps, 개발자 도구, MSA에 관심이 많다.

류한진

AWS 데브옵스 컨설턴트로서 AWS 고객들이 데브옵스로 비즈니스를 가속화하는 여정을 돕고 있다. 또한 지식과 경험의 공유를 위해 개발자 커뮤니티에서 적극적으로 활동하고 있으며 현재는 플랫폼 엔지니어링(platform engineering)을 한국에 적용하기 위한 노력을 하고 있다.

백준선

네이버에서 데이터 엔지니어(data engineer) 및 머신러닝 엔지니어(machine learning engineer)로서 검색 및 보안 분야의 프로젝트를 이끌었다. 현재는 AWS 데이터 아키텍트(data architect)로서 데이터 활용에 직면한 고객들의 문제들을 함께 해결하며, 클라우드 여정을 함께하고 있다.

채민관

넥슨에서 오랫동안 게임 개발을 했다. AWS Professional Services 팀에서 엔터프라이즈 기업들의 현대화 프로젝트를 진행했으며, 현재는 AWS 솔루션 아키텍트 게임 팀에서 게임사 고객들의 클라우드 전이를 돕고 있다.

김대곤

현재 AWS Professional Services 팀에서 클라우드 아키텍트(cloud architect)로 근무 중이며 고객들의 클라우드 여정 및 데브옵스 가속화를 돕는 업무를 담당하고 있다.

목차

목차
  • 1부. 린 관리와 협업

  • 1장. 메트릭이 핵심
    • 가속화가 필요한 이유
    • 엔지니어링 속도
      • 공수로 개발 속도 측정하기
      • 독이 되는 추정치
      • 막연한 계획을 예측하는 방법
      • 개발자의 개발 속도와 엔지니어링 속도
    • 높은 성과를 내는 조직
      • 개발자의 개발 속도 지수
      • 데브옵스 연구 평가 보고서
    • 메트릭 측정의 중요성
      • 전달 소요 시간
      • 배포 주기
      • 평균 복구 시간
      • 변경 실패율
      • 4개의 핵심 대시보드
      • 하지 말아야 할 것
    • 개발자의 생산성을 위한 SPACE 프레임워크
      • 만족도와 웰빙
      • 성과
      • 활동성
      • 소통과 협업
      • 효율성과 플로
      • SPACE 프레임워크 사용법
    • 목표와 핵심 결과
      • OKR이란?
      • OKR의 동작 원리
      • OKR과 데브옵스
    • 정리
    • 사례 연구
    • 더 읽을거리 및 참고 자료

  • 2장. 업무의 계획, 추적, 시각화
    • 모든 일은 업무다
    • 계획되지 않은 작업과 재작업
    • 업무 시각화
      • 당기기 확립
      • 우선순위 지정
      • 단순하게 유지
    • WIP 제한
      • WIP 제한 설정
      • 배치 크기 줄이기
      • 핸드오프 줄이기
    • 깃허브 이슈, 레이블, 마일스톤
      • 새 이슈 만들기
      • 이슈에 대한 공동 작업
      • 이슈 백로그
      • 마일스톤
      • 이슈 고정
      • 이슈 템플릿
    • 깃허브 프로젝트
      • 시작하기
      • 프로젝트에 작업 항목 추가
      • 작업에 메타데이터 추가
      • 테이블 뷰 작업
      • 보드 뷰 작업
      • 뷰로 작업하기
      • 워크플로
      • 인사이트
      • 액세스 관리
    • 서드파티 통합
      • Jira
      • 애저 보드
    • 사례 연구
    • 정리
    • 더 읽을거리 및 참고 자료

  • 3장. 팀워크와 협업
    • 소프트웨어 개발은 팀 스포츠다
    • 협업의 핵심 - 풀 리퀘스트
    • 실습 - 풀 리퀘스트 생성
    • 변경 제안
      • 드래프트 풀 리퀘스트
      • 코드 소유자
      • 필수 리뷰
      • 풀 리퀘스트 리뷰 요청
      • 자동 병합
    • 풀 리퀘스트 리뷰
      • 풀 리퀘스트에서 제안된 변경 사항 리뷰
      • 파일을 조회된 상태로 표시
      • 실습 - 제안하기
      • 풀 리퀘스트에 피드백 통합
      • 리뷰 제출
      • 풀 리퀘스트 완료
    • 코드 리뷰를 위한 모범 사례
      • 깃 가르치기
      • 풀 리퀘스트를 이슈에 연결
      • 드래프트 풀 리퀘스트 사용
      • 최소 2명의 승인자 확보
      • 피어 리뷰 수행
      • 리뷰 단계 자동화
      • 변경 사항 배포 및 테스트
      • 리뷰 가이드 / 행동 강령
    • 정리
    • 더 읽을거리 및 참고 자료

  • 4장. 장소에 제약받지 않는 비동기식 협업
    • 동기식, 비동기식 업무 환경의 비교
      • 소통의 역사
      • 업무와 소통
      • 대면 업무와 원격 업무
    • 분산된 팀
    • 팀 간 협업
    • 비동기식 업무로 전환
    • 팀즈와 슬랙의 활용
    • 깃허브 디스커션
      • 깃허브 디스커션 시작
      • 디스커션 카테고리
      • 디스커션 시작
    • 페이지와 위키
      • 깃허브 페이지
      • 위키
      • 깃허브 위키
      • 사용자 정의 위키
    • 깃허브 모바일을 통한 장소에 구애받지 않는 업무 환경
    • 사례 연구
    • 정리
    • 더 읽을거리 및 참고 문헌

  • 5장. 오픈소스와 이너 소스 전략으로 개발 역량 강화
    • 자유-오픈소스 소프트웨어의 역사
      • 공개 도메인 소프트웨어
      • 자유 소프트웨어
      • 오픈소스 소프트웨어
      • 오픈소스 소프트웨어의 부상
    • 오픈소스와 개방형 개발의 차이점
    • 기업이 오픈소스를 도입할 때의 이점
      • OSS로 더 빠르게 공급하기
      • 커뮤니티 참여를 통해 더 나은 제품 만들기
      • 노후화 위험이 낮은 도구 사용하기
      • 인재 유치
      • 새로운 기술 및 표준에 영향을 미침
      • 오픈소스 프로젝트에서 학습해 프로세스 개선
    • 오픈소스 전략 구현
    • 오픈소스와 이너 소스
    • 내부 개발의 중요성
    • 깃허브 스폰서
      • 스폰서 등급
      • 후원 목표
    • 정리
    • 더 읽을거리 및 참고 자료

  • 2부. 데브옵스 실천

  • 6장. 깃허브 액션으로 자동화
    • 깃허브 액션 개요
    • 워크플로, 파이프라인, 액션
      • YAML 기본
      • 주석
      • 스칼라 타입
      • Collection 타입
    • 워크플로 문법
      • 워크플로 트리거
      • 워크플로 잡
      • 워크플로 스텝
      • 콘텍스트와 표현식 문법
      • 워크플로 명령
    • 시크릿 사용
      • 시크릿 저장
      • 시크릿 접근
      • GITHUB_TOKEN 시크릿
    • 워크플로 실습
    • 액션 실습
    • 깃허브 마켓플레이스
    • 정리
    • 더 읽을거리 및 참고 자료

  • 7장. 워크플로 실행
    • 호스팅 러너
      • 격리 및 권한
      • 하드웨어
      • 소프트웨어
      • 네트워크
      • 가격
    • 자체 호스팅 러너
      • 러너 소프트웨어
      • 러너와 깃허브 간의 통신
      • 프록시 서버 뒤편에서 자체 호스팅 러너 사용
      • 깃허브에 자체 호스팅 러너 추가하기
      • 자체 호스팅 러너 제거하기
    • 러너 그룹으로 액세스 관리하기
    • 레이블 사용하기
    • 자체 호스팅 러너 확장하기
      • 임시 러너
      • 깃허브 웹훅으로 스케일 업 및 스케일 다운하기
      • 기존 솔루션
    • 모니터링 및 문제 해결
      • 러너의 상태 확인
      • 애플리케이션 로그 파일 검토
      • 작업 로그 파일 검토
      • 서비스 상태 확인
      • 리눅스
      • macOS
      • 윈도우
      • 러너 업데이트 프로세스 모니터링
    • 사례 연구
    • 정리
    • 더 읽을거리 및 참고 자료

  • 8장. 깃허브 패키지를 사용한 종속성 관리
    • 깃허브 패키지
      • 요금 책정
      • 권한과 가시성
    • 액션과 npm 패키지 사용
    • 패키지와 도커 사용
    • 아파치 메이븐, 그래들, NuGet, RubyGem 패키지
      • 아파치 메이븐을 사용한 자바
      • 그래들
      • RubyGems
      • NuGet
    • 정리
    • 더 읽을거리 및 참고 자료

  • 9장. 플랫폼별 배포
    • 단계별 배포
    • 배포 자동화
    • 애저 앱 서비스에 배포하는 방법
      • 애저 리소스 배포
      • 깃허브 액션을 사용해 애플리케이션 배포하기
    • AWS ECS에 배포하는 방법
      • AWS 리소스 배포
      • 깃허브 액션으로 컨테이너 배포하기
    • GKE에 배포하는 방법
      • 구글 리소스 배포
      • 깃허브 액션으로 컨테이너 배포하기
    • 코드형 인프라
      • 도구
      • 모범 사례
      • 전략
      • 워크플로 템플릿
      • 재사용 가능한 워크플로
    • 성공 측정
    • 사례 연구
    • 정리
    • 더 읽을거리 및 참고 자료

  • 10장. 피처 플래그와 피처의 수명 주기
    • 피처 플래그란 무엇인가
    • 피처의 수명 주기
    • 피처 플래그의 이점
    • 피처 플래그 시작하기
    • 피처 플래그와 기술 부채
    • 프레임워크 및 제품
    • 피처 플래그를 사용한 실험
    • 정리
    • 더 읽을거리 및 참고 자료

  • 11장. 트렁크 기반 개발
    • 트렁크 기반 개발
    • 복잡한 브랜치를 피해야 하는 이유
    • 다른 깃 워크플로들
      • 깃플로
      • 깃허브 플로
      • 릴리스 플로
      • 깃랩 플로
    • 마이플로로 고도화
      • 메인 브랜치
      • 전용 토픽 브랜치
      • 출시
      • 핫픽스
      • 자동화
    • 사례 연구
    • 정리
    • 더 읽을거리 및 참고 자료

  • 3부. 견고한 출시 전략

  • 12장. 품질 향상을 위한 테스트의 시프트-레프트
    • 시프트-레프트 테스트 및 테스트 자동화
      • 테스트 주도 개발
      • 테스트 포트폴리오 관리
      • 단위 테스트(레벨 0)
      • 통합 테스트(레벨 1)
      • 데이터를 사용한 기능 테스트(레벨 2)
      • 운영 테스트(레벨 3)
    • 불안정한 테스트 제거
    • 코드 커버리지
    • 시프트-라이트 운영 환경에서의 테스트
      • 상태 데이터 및 모니터링
      • 피러 플래그 및 카나리 릴리스
      • 비즈니스 연속성 및 재해 복구
      • 탐색적 테스트 및 사용성 테스트
    • 결함 주입 및 카오스 엔지니어링
    • 테스트와 규정 준수
    • 깃허브에서의 테스트 관리
    • 사례 연구
    • 정리
    • 더 읽을거리

  • 13장. 시프트-레프트 보안과 데브섹옵스
    • 시프트-레프트 보안
    • 침해 가정, 제로 트러스트, 보안 우선 사고방식
    • 공격 시뮬레이션
    • 레드 팀-블루 팀 훈련
      • 팀 구성
      • 게임 규칙
      • 기간
      • 규칙과 행동 강령
      • 제공 항목
      • 어디서부터 시작해야 할까?
    • 공격 시나리오
    • 깃허브 코드스페이스
    • 정리
    • 더 읽을거리 및 참고 자료

  • 14장. 코드 보안
    • 종속성 관리 및 Dependabot
      • 종속성 탐색
      • Dependabot
      • 깃허브 액션으로 Dependabot 업데이트 자동화
      • Dependabot을 사용해 깃허브 액션을 최신 상태로 유지
    • 시크릿 스캔
      • 코드 스캔
      • 깃허브 에서 코드 스캔
      • 코드 스캔 실행
      • 시작하기
      • 코드 스캔 알림
      • 심각도
      • 이슈 알림 추적
      • 데이터 흐름 분석
      • CodeQL 쿼리
      • 타임라인
      • 풀 리퀘스트 통합
      • 코드 스캔 구성
    • CodeQL 쿼리 작성
    • 정리
    • 더 읽을거리

  • 15장. 안전한 배포
    • 컨테이너와 인프라 보안 스캐닝
      • 컨테이너 스캔
      • 인프라 정책
    • 인프라 변경 프로세스 자동화
    • 소스 코드 및 인프라 무결성
      • SBOM
      • 커밋 서명
      • 코드 서명
    • 동적 애플리케이션 보안 테스트
    • 릴리스 파이프라인 보안 강화
      • 러너 보안 강화
      • 액션 보안 유지하기
      • 환경을 보호하라
      • 가능한 경우 토큰을 사용하라
      • 보안 텔레메트리 수집
    • 사례 연구
    • 정리
    • 더 읽을거리 및 참고 문헌

  • 4부. 소프트웨어 아키텍처

  • 16장. 느슨하게 결합된 아키텍처와 마이크로서비스
    • 느슨하게 결합된 시스템
    • 마이크로서비스
    • 진화적 설계
    • 이벤트 중심 아키텍처
    • 정리
    • 더 읽을거리

  • 17장 팀 고도화
    • 콘웨이의 법칙
    • 투-피자 팀
    • 역 콘웨이 전략
    • 전달 주기
    • 모노 레포, 멀티 레포 전략
      • 대형 모노 레포 작업
      • 주제 및 스타 목록을 사용해 레포 구성
      • 코드를 구조화하기 위해 깃 서브모듈 사용
      • 적절한 전략은 무엇인가?
    • 사례 연구
    • 정리
    • 더 읽을거리

  • 5부. 린 제품 관리

  • 18장. 린 제품 개발과 린 스타트업
    • 린 제품 개발
    • 고객 피드백 통합하기
    • MVP
    • 엔터프라이즈 포트폴리오 관리
    • 제품 관리 기술 향상
      • 고객에 대한 이해
      • 비즈니스 이해
      • 제품 이해
    • 비즈니스 모델 캔버스
    • 정리
    • 더 읽을거리 및 참고자료

  • 19장. 실험과 A/B 테스트
    • 과학적 방법으로 실험 수행
      • 관찰 - 데이터 수집 및 분석
      • 가설 수립(가설 공식화)
      • 실험 구축
      • 결과 검증
    • GrowthBook 및 Flagger를 사용한 효과적인
    • A/B 테스트
      • GrowthBook
      • Flagger
    • 실험과 OKR
    • 정리
    • 더 읽을거리

  • 6부. 엔터프라이즈를 위한 깃허브

  • 20장. 깃허브 플랫폼 구성
    • 호스팅 옵션 및 가격
      • 호스팅 옵션
      • 깃허브 엔터프라이즈 클라우드
      • 깃허브 엔터프라이즈 서버
      • 깃허브 엔터프라이즈 AE
      • 깃허브 커넥트
      • 가격
    • 실습 - GitHub.com에서 계정 생성하기
    • 기업 보안
      • SAML 인증
      • SCIM
      • 자동 팀 동기화
      • 기업 관리 사용자
      • GHES를 사용한 인증
      • 감사 API
    • 깃허브 스킬즈
    • 정리
    • 더 읽을거리 및 참고 문헌

  • 21장. 깃허브로 이전
    • 올바른 마이그레이션 전략 선택하기
    • 낮은 충실도의 마이그레이션으로 규정 준수 달성하기
    • 원활한 전환을 위한 요구 사항 동기화
    • 코드 마이그레이션
    • 애저 데브옵스 또는 깃허브에서 마이그레이션하기
    • 파이프라인 마이그레이션
    • 정리
    • 더 읽을거리

  • 22장. 깃허브를 통한 협업 고도화
    • 깃허브 범위 및 네임스페이스
      • 깃허브 엔터프라이즈
      • 깃허브 조직
    • 깃허브 팀 구성
    • 역할 기반 액세스
    • 사용자 정의 역할
    • 외부 공동 작업자
    • 정리
    • 더 읽을거리

  • 23장. 엔터프라이즈 혁신
    • 많은 혁신이 실패하는 이유
      • 회사나 업계가 특별하다고 가정
      • 긴박감 부재
      • 명확한 비전 부재
      • 혁신을 막는 장애물
      • 도움을 거절하는 것
    • 왜?부터 시작하기
      • 목적에 기반한 미션
      • 엔지니어링 문화 구축
    • 데이터 기반 혁신
      • 제약 이론
      • 병목 제거
      • 데브옵스는 지속적인 개선의 여정
      • 밸류 스트림에 맞춘 팀을 위한 최적화
    • 정리
    • 더 읽을거리 및 참고 자료

도서 오류 신고

도서 오류 신고

에이콘출판사에 관심을 가져 주셔서 고맙습니다. 도서의 오탈자 정보를 알려주시면 다음 개정판 인쇄 시 반영하겠습니다.

오탈자 정보는 다음과 같이 입력해 주시면 됩니다.

(예시) p.100 아래에서 3행 : '몇일'동안 -> 며칠동안