1 분 소요

지난 글에서 지속적 통합 및 전달에 대해 완전히 이해 했습니다. 그렇다면, 이번에는 소프트웨어 배포 자동화의 중요성에 대해 한번 알아보도록 하겠습니다.

1.2 소프트웨어 배포 자동화의 중요성

소프트웨어 배포 자동화에는 몇 가지 프로세스가 포함됩니다. 코드 컴파일 유효성 검사, 코드 안정성, 품질 및 보안은 지속적인 통합에서 다룹니다. 통합 및 기능 테스트 자동화는 비즈니스 요구 사항이 소프트웨어 시스템에서 충족되고 있는지 확인합니다. 또한 릴리스 또는 배포 자동화는 배포 구성을 자동으로 제공하고 관리합니다.

코드로 인프라스트럭처(Iac, Infrastructure as Code)를 사용하고 자동화된 파이프라인으로 인프라를 배포하면 소프트웨어 팀에 동적 프로비저닝 환경을 제공하여 본질적으로 애자일 프로세스를 촉진하고 데브옵스 팀의 기능을 향상시킬 수 있습니다.

만일 소프트웨어 프로세스 자동화가 없다면, 소프트웨어 배포는 어려운 작업이 될 것입니다. 데브옵스 팀은 새로운 환경을 수동으로 설정하고 배포하는 데 많은 시간을 할애해야 합니다. 설정하는 동안 단계를 놓칠 가능성이 높아져 해결하는 데 시간과 비용이 소요되는 예상치 못한 다양한 문제가 발생할 수 있습니다. 환경을 설정하고 배포하려면 인적 자원에 대한 추가 투자가 필요합니다.

1-3-IBMBug

[그림 1-3] IBM System Science Institute의 결함 수정 상대 비용 연구 게이트의 데이터

테스트를 건너뛰면 버그가 프로덕션에 침투하여 더 많은 비용이 들거나 클라이언트 불만을 야기하고 법적 조치로 이어지거나 비즈니스 평판에 해를 끼칠 수 있습니다. 그리고 수동으로 테스트하면 비용이 많이 들고 결과물이 지연됩니다. 추가 비용 및 소프트웨어 제공 문제를 피하기 위해 테스트 자동화가 매우 중요합니다.

1-4-AutoManual

[그림 1-4] 자동 테스트 대 수동 테스트 비교

시프트 레프트 방식으로 보안 및 기타 소프트웨어 취약성을 식별하면서 배포 및 테스트 프로세스를 자동화하는 것이 중요합니다. 가능한 경우 프로세스 흐름의 왼쪽에서 가능한 한 빨리 취약점을 탐지하는 것은 수정하는 것보다 비용이 적게 듭니다.

업데이트: