CONTENTS
DevOps 란?
개념
- Development(개발) + Operations(운영)의 합성어
- 소프트웨어 개발자(개발 측)와 정보기술 전문가(운영 측) 간의 소통, 협업 및 통합을 강조하는 개발 환경이나 문화를 말한다.
- 조직이 소프트웨어 제품과 서비스를 빠른 시간에 개발 및 배포하는 것을 목적으로 한다.
탄생 배경
- 초기 애자일의 문제를 해결하고자 탄생한다.
- 기존 폭포수 방법론 대신 빠르게 개발하는 접근 방식으로 애자일이 탄생한다.
- 애자일 소프트웨어 개발은 시스템 규모가 커지고 복잡해지면서 빠르고 새로운 변화를 시도하는 개발 조직과 장애없고 안정적인 운영을 해야하는 운영조직간의 갈등이 깊어졌다.
- 개발조직과 운영조직간의 협업이 어려워졌다.
- 개발 조직과 운영 조직간의 갈등을 해소하고자 DevOps가 탄생
<aside>
💡 DevOps개념이 애자일로 부터 탄생하기는 하였으나, 이제는 오히려 온전한 DevOps 실현을 위한 요소 중 하나로써 애자일 방법이 필요한 것으로 본다.
</aside>
개발조직과 운영조직의 갈등을 해소하는 방법
- 개발조직은 잦은 배포로 더 많은 기능들을 추가하여 더 좋은 서비스를 제공하고 싶어한다.
- 운영조직은 잦은 배포는 그만큼 많은 버그와 오류에 대한 걱정과 스트레스가 커지고 새로운 배포는 기존 서비스를 잠시 중단해야하는 상황이 올 수 있다.
- 개발에서부터 운영까지의 절차를 하나의 프로세스로 합치고 자동화하여 해결
CI/CD
Continuous Integration (CI, 지속적 통합)
- 애플리케이션의 버그 수정이나 새로운 코드 변경이 주기적으로 빌드 및 테스트 되면서 공유되는 레포지토리에 통합되는 것을 의미한다.
- 많은 양의 코드를 한꺼번에 통합하지않고, 적은 양의 코드를 자주 통합하여 발생하는 오류를 줄인다.