- 개발(Dev)과 운영(Ops)의 합성어인 DevOps는 고객에게 지속적으로 가치를 제공하도록 지원하는 사람, 프로세스 및 기술의 합집합입니다.
개발자는 계속해서 새로운것을 도입하고 싶어하지만, Ops들은 안정성을 최우선으로 여긴다.
그래서 등장한것이 DevOps이다.
이 DevOps라는 개념은 소프트웨어 개발 방법론 중 하나이다.
개발자들과 Ops들을 서로 잘 융합시키고 의사소통이 원할하게 하기 위한 개발 방법론이다.
- 제품 출시까지 걸리는 시간(time to market)단축
- 새로운 판의 더 낮은 실패율
- 픽스간 짧아진 리드타임(상품생산 시작부터 완성까지 걸리는 시간)
- 복구시 더 빠른 평균시간(새로운 릴리스의 충돌 등)
- 각 프로세스의 (개발 ~ 배포 및 테스트) 담당자들을 하나의 팀으로 모으는 것
개발 프로세스를 하나의 팀에서 할 수 있도록 해야 한다는 것
: 팀원 모두가 알고있는 하나의 공유된 지표가 필요하다는 것
서비스 개발 뿐만아니라 서비스가 운영에서 잘 돌아가고 있는지, 사용자의 반응은 어떤지를 측정할 수 있는 기준이 필요하다는 것
- 이 지표를 기준으로 팀원들이 아
우리 서비스가 이정도로 잘돌아가고있구나
, 아니면 아이부분은 좀 부족하구나
라는걸 인지할 수 있도록 해야함
: 반복적인 일들은 자동화 하라는 것 반복작업에 투입되는 시간을 줄여야 좀 더 생산적으로 일할수 있고 좀 더 고도화된 서비스를 만들 여유와 시간을 벌 수 있을 것이다.
CI/CD를 이용해서 빌드-배포-테스트 프로세스를 자동화 해야한다
그리고 자동화 툴을 만드는 과정에서 시스템 전체에 대한 이해가 높아진다 장점이 여러모로 많음
: 장애나 이슈가 있을때 그걸 혼자만 알지 말고 팀원들과 공유하는 것
서비스를 운영만 하다보면 어떤 이슈가 있을때 이 이슈가 얼마나 큰 이슈인지를 파악하지 못할떄가 많다고 한다
: 짧은 주기의 정기 배포를 통해서 빠르게 서비스의 기능을 개선, 고객들의 VOC를 반영해 나가는 것�
- 속도
- 신속한제공
- 안정성
- 확장
- 협력강화
- 보안
- 지속적 통합(CI)
- 지속적 제공(CD)
- 마이크로 서비스
- 코드형 인프라
- 모니터링 및 로깅
- 커뮤니케이션 및 협업