3. 코드형 인프라(IaC)의 장점
- 자급식 배포(Self-service)
- 코드를 수동으로 배포하는 대부분 팀에서는 배포를 수행하는 데 필요한 마법의 명령어를 알고 있는 소수의 시스템 관리자만 프로덕션 환경에 접속하여 배포를 진행함.
- 이 것은 회사가 성장하는 데 장애물이 됨
- 인프라를 코드로 정의하면 전체 배포 프로세스를 자동화할 수 있으며 개발자는 필요할 때마다 자체적으로 배포를 진행 가능
- 속도와 안정성
- 배포 프로세스를 자동화하면 사람이 진행하는 것보다 훨씬 빠르게 컴퓨터가 배포를 진행할 수 있음
- 자동화된 프로세스는 일관되고 반복 가능하며 수동으로 진행했을 대보다 오류가 적게 발생하기 때문에 안전
- 문서화
- 시스템 관리자 조직만 인프라에 대한 정보를 독점하는 것이 아니라 누구나 읽을 수 있는 소스 파일로 인프라 상태를 나타낼 수 있음.
- 즉, 코드형 인프라는 문서 역할을 하여 시스템 관리자가 휴가 중일 때도 조직의 모든 사람이 인프라 구조를 이해하고 업무를 볼 수 있도록 해줌
- 버전 관리
- 인프라의 변경 내용이 모두 기도록된 코드형 인프라 소스 파일을 저장할 수 있으므로 버전을 쉽게 관리할 수 있음.
- 인프라 변경 내역이 남아 있기 때문에 시스템에 문제가 생겼을 때 문제가 발생한 지점을 찾기가 수월함.
- 문제의 내용을 확인한 다음 문제가 없던 이전 코드로 다시 되돌리면 문제가 해결됨
- 이는 디버깅을 돕는 강력한 도구
- 유효성 검증
- 인프라 상태가 코드로 정의되어 있으면 코드가 변경될 때마다 검증을 수행하고 일련의 자동화된 테스트를 실행할 수 있으며, 정적 분석 프로그램에 코드를 전달하여 오류 발생 위험을 줄일 수 있음
- 재사용성
- 인프라르 재사용 가능한 모듈로 패키징할 수 있으므로 모든 제품을 매번 처음부터 배포하는 대신 문서화되고 검증된 모듈로 일관되게 배포할 수 있음
- 행복
- 코드 배포나 수동적인 인프라 관리는 반복적이고 지루한 일