DevOps Azure Web App 배포 퍼포먼스 최적화

[DevOps] Azure Web Apps CD Deploy 퍼포먼스 이슈

Azure App Service 셋팅 환경

  • App Service Type
    • Web App on Linux
  • Runtime Stack
    • 16 LTS (NODE|16-lts)

Linux OS 환경에 Node 기반에서 Nuxt.js CI/CD 자동화 배포 연동 후 Releases(CD) deploy 로그를 살펴보면

Azure Web Apps CD 배포 로그

‘9분 45 초’ 로 로그가 나오는데 수십번 배포 테스트 확인 결과 대략 평균 ‘8 ~ 14분’ 정도 정도 걸리는 듯 하다.

DevOps 가 기본적으로 처리연산이 저렇게 나오기에 내부에서 사용하고 있는 기존 서버사이드로 사용하고 있는 VM 앱 서비스도 보통 배포 시간이 이런줄 알았는데 확인 결과 VM 쪽은 5 분? 정도 내외로 CD 배포가 이뤄지고 있다는 것을 확인 하였다.

팀내 인프라 로그 분석 도움을 주셨는데, 검토 결과 zip 파일 압축해제 과정에서 node_modules 폴더 용량이 크기 때문에 이 부분에서 시간이 오래 걸리는거 같다는 의견 이였다.
해당 폴더는 배포 시 반드시 존재해야 의존성 패키지 모듈이기에 제외할 수 없고.. 다른 방법이 존재 하는지 찾아보아야 했다.

결론적으론 WEBSITE_RUN_FROM_PACKAGE 옵션 추가 후 값을 1 로 설정하면 배포 시간을 크게 단축 시킬 수 있었다.
문서상으로는 zip 파일 상태로 배포하는 옵션인거 같은데 ssh > 터미널에서 파일을 확인해보면 수정 파일이 최신화 되어 있는걸 볼 수 있다..(정확한 옵션 기능이 뭔지….)

Azure Web Apps CD 배포 로그 (WEBSITE_RUN_FROM_PACKAGE 옵션 설정 후)

WEBSITE_RUN_FROM_PACKAGE 옵션을 추가 후 확인해 보면 1분대 내외로 배포되는 과정의 로그를 확인 할 수 있다.

옵션 추가 방법

  • DevOps > App settings 에 추가
  • Azure 포탈 > 관리자단 에서 추가

1) DevOps > App settings 에 추가

  1. -WEBSITE_RUN_FROM_PACKAGE 1
    • DevOps 옵션 주입 시 반영구적으로 반영되어 설정 셋팅이 유지 된다.

옵션 추가 방법1

첫번째 방법으로 옵션을 추가하고 테스트 해봤는데

확인결과 Azure Web App Deploy 단계에서는 크게 배포 시간이 단축 되었지만 반대로 Download Artifacts 단계에서 ‘6분 52 초’ 시간이 걸렸다…;;

로그를 살펴보면 무언가 재귀하면서 반복 실행 되는 듯 하다. 암튼 해당 이유는 Task Version을 1 로 했을 시 일어나는 현상이었고 4 버전대로 가면 해당 이슈는 없을 것이다.

2) Azure 포탈 > 관리자단 에서 추가

  • WEBSITE_RUN_FROM_PACKAGE 1

옵션 추가 방법2

공유하기