- 데브옵스는 소프트웨어 개발(Development) + 운영(Operations)의 합성어로 개발과 운영을 통합하여 소통, 협업, 통합을 강조하는 방법론이다.
- 정보기술 전문가 간의 협업을 통해 소프트웨어 개발과 배포 속도를 높이고, 품질을 개선하는 것을 목표로 한다.
- 기존엔 개발팀 / 운영팀의 독립 작업이 많았음 -> 두 팀이 소통 + 협업을 바탕으로 문제 해결, 고품질 소프트웨어의 효율적, 안정적인 제공
버전 관리 도구
- GitHub, GitLab, Bitbucket
CI/CD 도구
- Jenkins, GitLab CI/CD, CircleCI, Travis CI, ArgoCD, Spinnaker
컨테이너 및 오케스트레이션 도구
- Docker(애플리케이션을 컨테이너에 패키징), Kubernetes(z컨테이너화된 애플리케이션을 오케스트레이션)
인프라 관리 도구
- Terraform, Ansible
모니터링 및 로깅 도구
- Grafana, ELK 스택 (Elasticsearch, Logstash, Kibana), Nagios
지속적인 통합(CI, Continuous Integration)
merge할 경우 코드 충돌 병합에 시간이 오래 걸리게 됨. → 작은 단위로 개발해 주기적으로 빈번하게 merge 해야 함지속적인 배포(CD, Continuous Delivery)
- A 회사 : test 코드 자동으로 해도 디자인은 자동 확인이 어렵지! → QA 검수 후 최종 배포 진행 (지속적 제공)
- B 회사 : 디자인이 이슈되어도 수정 시 빠르게 배포하도록 합시다! → QA팀은 상시 Product 서버 기준 테스트 해주고 배포는 DevOps 팀에서 맡도록 (지속적 배포)
1. 코드 작성
- 코드 변경사항 -> Git과 같은 버전 관리 시스템에 Commit & Push
2. 자동 빌드 & 테스트
- 자동 빌드 시스템 -> 코드 빌딩 수행(의존성 설치, 컴파일링, 빌드 시 문제 발생 여부 확인) -> 빌드 후 테스트 진행
3. 배포 준비
- 코드의 성공적인 통합 -> 자동 패키징, 배포 가능 상태로 유지
4. 자동 배포
- CD 도구를 바탕으로 운영 환경에 배포됨