DevOps
- Developer + Operation 합성어
- 개발과 운영을 통합하자! (개발 프로세스와 운영의 모든 단계를 통합, 자동화 하는 것이 목표)
DevOps 역할
- 개발자가 운영에 참여할 수 있는 환경과 문화를 제공
- 개발자가 비즈니스 로직에 집중할 수 있도록 지원
개발자를 위해 어떻게 해준다는 말인가?
- 네트워크 구성, 배포 플랫폼, 클라우드, 보안, 관측, 데이터 등을 관리하는 플랫폼을
- 자동화하여 사용할 수 있도록 구축, 개발자에게 제공 해서
- 개발자들은 개발만 하고 나머지는 자동화할 수 있도록 하는 것!
Mutable vs Immutable
- 가변 인프라(Mutable Infrastructure)
- 서버가 프로비저닝 된 이후, 지속적으로 변형되는 형태의 인프라 구조 (전통적인 방식)
- instance 01은 다른 서버로 대체될 수 없기 때문에, 관리자는 서버의 패키지를 수동 업데이트, 설정파일을 수정하고, 새 코드를 직접 기존 서버에 배포해야 한다.
- 불변 인프라(Immutable Infrastructure)
- 서버가 프로비저닝 된 이후, 절대 변경되지 않는 인프라 구조
- instance 01 완전히 없어지고 instance 02 로 새로 프로비저닝 해도 os, app 변경 없음.
- 업데이트, 수정 변경 해야할 때
- 공통 이미지/init script 형태 스크립트 적절히 수정
- 새로 서버를 프로비저닝해서 기존 서버 대체
- 새 서버는 검증 완료되면 새 서비스에 투입, 기존 서버는 사용X
Terraform
테라폼 사용 이유?