1부 첫걸음
1장 코드형 인프라 소개
1.1 인프라란 무엇인가?
1.2 코드형 인프라란 무엇인가?
1.2.1 수동 인프라 설정
1.2.2 코드형 인프라
1.2.3 코드형 인프라가 아닌 것은 무엇인가?
1.3 코드형 인프라 원칙
1.3.1 재현성
1.3.2 멱등성
1.3.3 결합성
1.3.4 진화 가능성
1.3.5 네 가지 원칙 적용
1.4 왜 코드형 인프라를 사용하는가?
1.4.1 변경 관리
1.4.2 시간 투자 대비 수익
1.4.3 지식 공유
1.4.4 보안
1.5 도구
1.5.1 책에서 소개하는 사례
1.5.2 프로비저닝
1.5.3 설정 관리
1.5.4 이미지 빌딩
요약
2장 코드형 인프라 작성
2.1 인프라 변화 표현
2.2 불변성 이해하기
2.2.1 대역 외 변경사항 교정
2.2.2 코드형 인프라로 이전하기
2.3 깨끗한 코드형 인프라 작성하기
2.3.1 버전 관리는 맥락을 전달한다
2.3.2 린팅 및 포맷팅
2.3.3 자원 이름 지정
2.3.4 변수와 상수
2.3.5 의존성 매개변수화
2.3.6 비밀 유지하기
요약
3장 인프라 모듈 패턴
3.1 싱글톤
3.2 컴포지트
3.3 팩토리
3.4 프로토타입
3.5 빌더
3.6 패턴 선택하기
요약
4장 인프라 의존성 패턴
4.1 단방향 관계
4.2 의존성 주입
4.2.1 제어 역전
4.2.2 의존성 역전
4.2.3 의존성 주입 적용하기
4.3 퍼사드
4.4 어댑터
4.5 중재자
4.6 사용할 패턴 결정하기
요약
2부 팀으로 확장하기
5장 모듈 구조화 및 공유
5.1 코드 저장소 구조
5.1.1 단일 코드 저장소
5.1.2 다중 저장소
5.1.3 저장소 구조 선택하기
5.2 버전 관리
5.3 릴리스
5.4 모듈 공유하기
요약
6장 테스트
6.1 인프라 테스트 주기
6.1.1 정적 분석
6.1.2 동적 분석
6.1.3 인프라 테스트 환경
6.2 단위 테스트
6.2.1
이 책에서 다루는 내용
* 의존성을 격리하고 인프라를 최적으로 모듈화하는 방법
* 인프라 변경 실패 시 문제를 완화하거나, 해결하고, 격리하는 방법
* 블루-그린 배포를 활용하여 최소 한도의 장애 시간으로 인프라를 업데이트하는 방법
* 프로비저닝 도구나 설정 관리 또는 이미지 빌딩을 사용하는 패턴
이 책의 대상 독자
* 클라우드 인프라와 IaC를 사용하기 시작하고, 팀이나 회사 전체로 확장하려는 모든 사람(소프트웨어 개발자, 보안 엔지니어, 품질 보증 엔지니어, 인프라 엔지니어
* 다양한 인프라 사용 사례, 도구 및 시스템에 적용할 수 있는 일반적인 패턴과 사례를 알고 싶은 개발자
이 책의 구성
이 책은 13개의 장, 3부로 구성되어 있다.
1부는 IaC를 소개하고 어떻게 독자가 작성할 수 있는지 소개한다.
1장은 IaC의 개념, IaC의 장점 및 원칙을 정의한다. 하시코프 테라폼을 실행하여 구글 클라우드 플랫폼(GCP에 배포하는 파이썬 예제를 포함하고 있음을 설명한다. 또한 IaC 여정에서 접하게 될 도구와 사용 사례에 대해서도 논의한다.
2장은 불변성의 원칙을 깊이 있게 다루고 기존 인프라 자원을 IaC로 이전할 수 있는 방법을 설명한다. 또한 깨끗한 IaC 작성 방법도 다룬다.
3장은 인프라 자원을 모듈로 나누거나 그룹화하는 패턴을 제공한다. 각 패턴은 예제와 사용 사례를 포함한다.
4장은 인프라 자원 및 모듈 간 의존성을 관리하는 방법과 의존성 주입 및 일부 공용 패턴을 사용해 의존성을 분리하는 방법을 다룬다.
2부는 팀 단위로 IaC를 작성하고 협업하는 방법을 묘사한다.
5장은 IaC를 다중 저장소 구조로 조직하여 팀 간 공유하는 방법과 고려사항을 다룬다.
6장은 인프라 테스트 전략을 제공한다. 각 테스트 유형을 설명하고 IaC로 작성할 수 있는 방법을 묘사한다.
7장은 지속적인 제공을 IaC에 적용한다. 상위 수준의 브랜칭 모델을 다루고 팀이 이를 활용하여 인프라를 변경할 수 있는 방법을 설명한