개발과 운용 간의 간극을 줄이자 !
⇒ DevOps는 어떠한 요구사항을 효율적으로 만족시키기 위해 일을 자동화하며, 변경 지표들을 측정, 공유하고 이 모든 결과물들을 지속적으로 축적해 나아가는 문화, 철학, 방법론, 기술
소프트웨어 배포 속도와 안정성을 높이기 위한 방법
배포과정을 자동화해서 짧은 주기로 배포하는 DevOps의 핵심 프로세스
CI(Continuous Integration : 지속적 통합)
여러 개발자가 코드 변경사항을 공유 저장소에 지속적으로 병합하는 소프트웨어 개발 방식
→ 개발 초기에 오류와 충돌을 미리 발견해 실행이 가능한 상태로 코드를 유지하는 것
→ 버그를 신속히 찾아 해결하고, 소프트웨어 배포의 시간을 단축하는 것
CD(Continuous Delivery / Deployment : 지속적 제공(or 배포))
프로덕션 환경에 릴리스하기 위한 코드 변경이 자동으로 빌드, 테스트 및 준비되는 소프트웨어 개발 방식
→ 지속적 제공(D for ‘Delivery’)
- 프로덕션 환경에서 배포할 코드베이스를 확보하는 것
- 개발자가 애플리케이션에 적용한 변경 사항이 테스트를 거쳐 VCS에 자동으로 업로드
- 운영팀은 VCS에서 애플리케이션을 실시간으로 프로덕션 환경에 배포
→ 지속적 배포(D for ‘Deployment’)
- 개발자가 애플리케이션에 적용한 변경 사항을 VCS에서, 고객이 사용가능한 프로덕션 환경까지 자동으로 릴리즈
- 애플리케이션 제공 속도를 저해하는 수동 프로세스로 인한 과부하 문제해결