뒤로 가기
연속 배송: 포괄적인 정의
지속적인 제공은 소프트웨어 개발 프로덕션 환경에 소프트웨어 애플리케이션을 지속적이고 자동으로 배포하는 것을 강조하는 관행입니다. 지속적 배포의 목표는 소프트웨어가 개발 팀 를 통해 사용자에게 빠르고 안정적이며 지속 가능한 방식으로 소프트웨어 변경 사항을 전달합니다.
지속적 전송은 자연스럽게 진화한 애자일 개발 방법론입니다. 이는 배포 프로세스를 자동화하고 가능한 한 수동 개입을 제거하여 작동 중인 소프트웨어를 자주 배포하는 애자일 원칙을 기반으로 합니다. 지속적 배포는 사일로를 허물고 개발, 운영 및 기타 이해관계자 간의 협업을 촉진하는 것을 목표로 하는 문화 및 조직 운동인 DevOps의 핵심 원동력입니다.
지속적 제공에는 다음과 같은 몇 가지 주요 관행이 포함됩니다:
- 지속적 통합: 통합 사례 코드 여러 개발자의 변경 사항을 공유 코드 리포지토리에 하루에 여러 번씩 빈번하게 적용합니다. 지속적 통합은 코드베이스가 항상 작동 상태를 유지하고 자동화된 테스트 및 배포를 위한 준비를 갖추도록 하기 때문에 지속적 배포의 전제 조건입니다.
- 자동화된 테스트: 자동화된 테스트 도구를 사용하여 소프트웨어 변경 사항을 프로덕션에 배포하기 전에 검증하는 관행입니다. 자동화된 테스트에는 단위 테스트, 통합 테스트, 기능 테스트 및 소프트웨어가 예상대로 작동하는지 확인하는 기타 유형의 테스트가 포함됩니다.
- 지속적인 배포: 소프트웨어 변경 사항이 자동화된 테스트를 통과하는 즉시 프로덕션 환경에 자동으로 배포하는 관행입니다. 지속적 배포를 위해서는 자동화된 테스트 프로세스에 대한 높은 신뢰도와 필요한 경우 변경 사항을 신속하게 롤백할 수 있는 기능이 필요합니다.
- 코드로서의 인프라: 서버, 데이터베이스, 네트워킹 구성 요소와 같은 인프라 리소스를 코드로 관리하는 관행입니다. 인프라스트럭처를 코드로 사용하면 팀이 인프라 리소스의 프로비저닝 및 구성을 자동화하여 복잡한 소프트웨어 시스템을 더 쉽게 관리하고 확장할 수 있습니다.
- 버전 관리: Git과 같은 버전 관리 시스템을 사용하여 코드 및 기타 아티팩트에 대한 변경 사항을 관리하는 관행입니다. 버전 관리를 통해 팀은 코드 변경 사항에 대해 공동 작업하고, 시간 경과에 따른 변경 사항을 추적하며, 필요한 경우 변경 사항을 롤백할 수 있습니다.
- 지속적인 모니터링: 프로덕션 환경의 소프트웨어 애플리케이션과 인프라 리소스를 모니터링하여 문제를 신속하게 감지하고 해결하는 관행입니다. 지속적인 모니터링에는 소프트웨어 시스템의 상태 및 성능에 대한 가시성을 제공하는 로깅, 메트릭 및 기타 유형의 모니터링이 포함됩니다.
지속적 전송은 다음과 같은 여러 가지 이점을 제공합니다:
- 속도: 지속적 제공을 통해 다음을 지원합니다. 소프트웨어 개발 팀 를 사용하여 소프트웨어 변경 사항을 사용자에게 더 빠르고 더 자주 전달하여 시장 에서 새로운 기능과 개선 사항을 확인하세요.
- 신뢰성: 지속적 배포는 배포 프로세스를 자동화하고 변경 사항을 프로덕션에 배포하기 전에 철저히 테스트하여 소프트웨어 장애 및 중단의 위험을 줄입니다.
- 확장성: 지속적 제공은 인프라 리소스의 프로비저닝 및 구성을 자동화하고 팀이 변경 사항을 빠르고 안정적으로 배포할 수 있도록 지원하여 소프트웨어 시스템을 보다 쉽게 확장할 수 있도록 합니다.
- 협업: 지속적 업데이트는 사일로를 허물고 팀이 보다 효과적으로 협업할 수 있도록 지원하여 개발, 운영 및 기타 이해관계자 간의 협업을 촉진합니다.
- 지속적인 개선: 지속적 배포를 통해 소프트웨어 개발팀은 변경 사항을 조금씩 제공하고 사용자로부터 피드백을 수집하여 소프트웨어 시스템을 지속적으로 개선할 수 있습니다.
결론적으로, 지속적 배포는 팀이 빠르고 안정적이며 지속 가능한 방식으로 사용자에게 소프트웨어 변경 사항을 제공할 수 있도록 하는 소프트웨어 개발 관행입니다. 여기에는 지속적 통합, 자동화된 테스트, 지속적 배포, 코드형 인프라, 버전 관리, 지속적 모니터링 등 몇 가지 주요 관행이 포함됩니다. 지속적 배포는 속도, 안정성, 확장성, 협업, 지속적인 개선 등 여러 가지 이점을 제공합니다.