[DevOps] DevOps & CI/CD

나무나무·2025년 8월 29일

DevOps

목록 보기
1/5

데브옵스(DevOps)

  • 데브옵스는 소프트웨어 개발(Development) + 운영(Operations)의 합성어로 개발과 운영을 통합하여 소통, 협업, 통합을 강조하는 방법론이다.
  • 정보기술 전문가 간의 협업을 통해 소프트웨어 개발과 배포 속도를 높이고, 품질을 개선하는 것을 목표로 한다.
  • 기존엔 개발팀 / 운영팀의 독립 작업이 많았음 -> 두 팀이 소통 + 협업을 바탕으로 문제 해결, 고품질 소프트웨어의 효율적, 안정적인 제공

DevOps 주요 목표

  • 자동화 도구 활용을 통해 반복 작업을 줄이고, 배포 속도를 향상시키며 인적 오류를 최소화하여 시스템의 안정성을 확보한다.
  • 지속적인 통합(CI, Continuous Integration)지속적인 배포(CD, Continuous Delivery)를 구현하여, 개발부터 운영까지의 흐름을 자동화하고 신속하게 전달한다.
  • 개발팀과 운영팀 간의 협력과 소통을 강화하여, 책임을 공유하고 더 나은 결과를 만들어내는 협업 문화를 조성한다.
  • 자동화 및 실시간 모니터링 도구를 활용하여 시스템 상태를 상시 파악하고, 문제를 조기에 발견하고 신속히 대응할 수 있도록 한다.

DevOps Tools

버전 관리 도구
- 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/CD

지속적인 통합(CI, Continuous Integration)

  • 코드를 주기적으로 빌드+ 테스트 + 병합 하는 과정
  • 긴 기간 작업한 이후 merge할 경우 코드 충돌 병합에 시간이 오래 걸리게 됨. → 작은 단위로 개발해 주기적으로 빈번하게 merge 해야 함

지속적인 배포(CD, Continuous Delivery)

  • "지속적인 제공(수동 배포)" / "지속적인 배포(자동 배포)" 라는 2개의 뜻으로 불림
  • 지속적인 제공 : 배포 준비 상태가 확인되면 개발자, 검증팀이 승인
  • 지속적인 배포 : CI 단계에서 빌드, 테스트 완료 후 준비 상태 확인 후 자동으로 배포까지
  • A 회사 : test 코드 자동으로 해도 디자인은 자동 확인이 어렵지! → QA 검수 후 최종 배포 진행 (지속적 제공)
  • B 회사 : 디자인이 이슈되어도 수정 시 빠르게 배포하도록 합시다! → QA팀은 상시 Product 서버 기준 테스트 해주고 배포는 DevOps 팀에서 맡도록 (지속적 배포)

CI/CD 프로세스

1. 코드 작성
- 코드 변경사항 -> Git과 같은 버전 관리 시스템에 Commit & Push
2. 자동 빌드 & 테스트
- 자동 빌드 시스템 -> 코드 빌딩 수행(의존성 설치, 컴파일링, 빌드 시 문제 발생 여부 확인) -> 빌드 후 테스트 진행
3. 배포 준비
- 코드의 성공적인 통합 -> 자동 패키징, 배포 가능 상태로 유지
4. 자동 배포
- CD 도구를 바탕으로 운영 환경에 배포됨

profile
백엔드 개발자 나무입니다

0개의 댓글