이미 소장하고 있다면 판매해 보세요.
|
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장. 엔터프라이즈 혁신 __많은 혁신이 실패하는 이유 ____회사나 업계가 특별하다고 가정 ____긴박감 부재 ____명확한 비전 부재 ____혁신을 막는 장애물 ____도움을 거절하는 것 __왜?부터 시작하기 ____목적에 기반한 미션 ____엔지니어링 문화 구축 __데이터 기반 혁신 ____제약 이론 ____병목 제거 ____데브옵스는 지속적인 개선의 여정 ____밸류 스트림에 맞춘 팀을 위한 최적화 __정리 __더 읽을거리 및 참고 자료 |
Michael Kaufmann
|
이 책에서 다루는 내용
- 소프트웨어 배포 성능의 효과적인 측정 - 데브옵스 및 린 관리 기법 도입 - 깃허브 이슈 및 프로젝트를 사용해 작업 계획, 추적, 시각화 - 깃허브 액션 및 패키지로 지속적 배포 - 프로덕션 테스트와 카오스 엔지니어링을 통한 품질 개선 - 보안의 우선순위를 높여 전체 소프트웨어 공급망 보호 - 깃허브의 고급 보안 기능으로 데브섹옵스의 모범 사례 사용 - 코드 스캐닝, 시크릿 스캐닝 및 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)을 통해 견고하고 검증된 엔지니어링 사례를 사용하고, 이벤트 기반의 느슨하게 결합된 소프트웨어 아키텍처로 전환하는 등 깃허브의 힘을 활용해 가속화하는 방법을 이해할 수 있을 것이다. 옮긴이의 말 최근 깃허브(GitHub)와 데브옵스가 빠르게 통합돼 개발 환경의 핵심이 되고 있다. 이러한 중요성에도 불구하고, 이 책처럼 깃허브를 중심으로 다양한 주제를 아우르며 효율적인 개발과 협업 전략, 그리고 보안에 대한 심층적인 내용을 다룬 책은 드물다. 많은 분이 이 책을 통해 소프트웨어 개발 여정에서의 도전에 대응하고 뛰어난 결과를 이루기를 기대한다. - 최재웅 깃허브는 팀들에게 데브옵스와 같은 현대적인 개발 방법을 채택할 수 있는 유연하고 투명하며 통합된 플랫폼을 제공한다. 버전 관리, 협업, 자동화 기능들이 배포 파이프라인을 가속화시키고, 팀 간 협업을 용이하게 하며, 개발 수명 주기 전반에 걸친 가시성을 제공할 수 있다. 많은 곳에서 깃허브를 활용해 데브옵스를 실천하기 위해 노력을 하고 있다. 이 책이 그들의 길잡이가 됐으면 한다. - 류한진 데브옵스는 개발의 즐거움을 높여주는 중요한 요소다. 질 좋은 코드 관리, 지속적인 빌드 및 배포, 안정적인 롤백을 기반한 팀 간 협업 환경은 개발의 즐거움을 몇 배는 올려줄 것이다. 깃허브를 기반 데브옵스를 잘 설명하며, 보다 실용적인 관점에서의 구축 방법을 제안하는 책이다. 이 책을 통해 많은 분이 보다 더 즐거운 환경에서 개발하는 경험을 하기 바란다. - 백준선 데브옵스 실천을 위한 깃허브의 활용법을 심도 있게 다루는 책이다. 데브옵스의 효용성은 공감하지만 어떻게 조직에 적용할지 고민하는 분들께 좋은 길잡이가 될 것이다. 훌륭한 동료들과 함께 번역하며 책의 내용을 두고 논의하는 일은 매우 유익한 경험이었다. 이 책을 읽는 독자들도 많은 영감을 받길 바란다. - 채민관 코로나19 이후, 기업들은 점점 더 변동성이 커지는 시장에 직면했다. 이러한 변화에 빠르게 적응하고 신제품 출시 속도를 높이는 것이 성공의 핵심 요소가 됐다. 이러한 상황에서 가장 효과적인 전략은 기업 내 데브옵스 도입 및 확산을 지속하는 것인데, 이 책은 개발자에게 익숙한 깃허브라는 플랫폼을 통해 이 프로세스를 체계적으로 설명한다. 이 책을 통해 데브옵스를 어디서부터 시작해야 할지, 어떻게 조직 전체에 효과적으로 확산할지 몰라 갈림길에 서 있는 분들께 도움이 됐으면 좋겠다. 마지막으로 바쁜 프로젝트 중에도 같이 번역에 참여한 동료분들 및 책의 원작자, 에이콘출판사에 감사의 인사를 전한다. - 김대곤 |
|
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)) |