Azure 웹 앱: 배포 슬롯을 통한 원활한 배포

당신이 웹 플랫폼을 통해 서비스를 제공하는 의료 회사에서 일한다고 가정해봅시다. 이 플랫폼의 사용자 인터페이스는 Azure App Services에 호스팅된 PHP 웹 앱으로 설정되어 있습니다. 앱의 소스 코드에 빈번한 업데이트가 롤아웃되어 기능을 향상하거나 버그를 수정합니다.그러나 이러한 업데이트는 때로 문제를 야기할 수 있습니다:

  • 감지되지 않은 버그: 엄격한 테스트에도 불구하고, 테스터들은 가끔 중요한 버그를 놓치며, 이는 프로덕션 환경에서 문제를 일으킬 수 있습니다.
  • 다운타임: 버그가 식별되면 변경 사항을 롤백하는 것이 서비스 중단을 일으켜 엔드 유저들을 좌절시킵니다.
  • 느린 배포: 배포 및 컴파일 프로세스가 앱의 응답성에 영향을 미치며, 특히 피크 사용 시간에는 사용자들의 불만을 야기할 수 있습니다.

서비스를 중단시키지 않고 원활한 업데이트를 보장할 수 있는 더 나은 솔루션이 있을까요? 네! Microsoft Azure는 배포 슬롯이라고 알려진 강력한 기능을 제공합니다.

Azure 배포 슬롯

마이크로소프트 애저의배포 슬롯은 애플리케이션 업데이트를 효율적이고 안정적으로 관리할 수 있는 방법을 제공합니다. 배포 슬롯을 사용하면 애플리케이션의 새로운 버전과 이전 버전을 동시에 유지할 수 있습니다. 두 버전 간의 스왑은 몇 번의 마우스 클릭만으로 간단히 이루어지며, 시간이 오래 걸리는 코드 롤백이 필요하지 않습니다. 

배포 슬롯이란 무엇이며, 어떻게 작동합니까?

애저 배포 슬롯은 애저 앱 서비스의 기능으로, 모든 최종 사용자에게 앱을 제공하기 전에 웹 앱을 배포하고 테스트할 별도의 환경을 생성할 수 있습니다. 각 배포 슬롯은 앱의 독립적인 인스턴스로 작동하며, 다음과 같은 특정 목적을 위해 사용자 정의할 수 있습니다: 

  • 스테이징: 프로덕션으로 이동하기 전에 변경 사항을 테스트하고 유효성을 검사하는 데 사용됩니다.
  • 프로덕션: 앱의 안정 버전을 최종 사용자에게 제공하는 데 사용됩니다.
  • 추가 슬롯: 가격 요금제에 따라 QA, 테스트 또는 기타 환경을 위한 슬롯을 생성할 수 있습니다.

배포 슬롯의 주요 기능

미리 가열된 인스턴스

스테이징 슬롯에 배포하면 슬롯이 사전에 가열됩니다. 이는 앱이 완전히 초기화되어 최소한의 대기 시간으로 사용자 요청을 처리할 준비가 되어 있다는 것을 의미합니다.

스테이징 슬롯을 프로덕션으로 스왑하면 다운타임이나 콜드 스타트 지연이 없음이 보장됩니다.

원활한 트래픽 리디렉션

스왑 중에 슬롯 간의 트래픽 리디렉션이 원활하게 이루어져 사용자 요청이 손실되지 않도록 보장됩니다.

롤백 기능

프로덕션으로 새 버전을 스왑한 후 예상치 못한 문제가 발생할 경우, “마지막으로 알려진 좋은” 구성으로 바로 스왑백할 수 있습니다.

배포 슬롯이 문제를 해결하는 방법

프로덕션 이전 버그 탐지

새 코드를 스테이징 슬롯에 배포함으로써 테스터들은 프로덕션과 유사한 환경에서 앱을 유효성 검사할 수 있습니다. 이를 통해 감지되지 않은 버그의 위험을 최소화할 수 있습니다.

서비스 중단 없음

앱이 스테이징 슬롯에서 사전에 가열되었기 때문에, 프로덕션으로 스왑하는 과정에서 다운타임 없이 엔드 사용자에게 중단되지 않는 서비스를 제공합니다.

빠른 배포

슬롯 스왑은 전통적인 배포 방법보다 즉시 발생하여 배포에 필요한 시간을 크게 줄이고 응답성을 향상시킵니다.

Azure 웹 앱 설정 및 구성하기

1. 웹 앱 생성

귀하의 계정으로 Azure 포털에 로그인하십시오. 앱 서비스를 검색한 다음 클릭하십시오.


웹 앱을 클릭하십시오.

응용 프로그램에 필요한 1에서 7개의 값을 선택한 다음 검토 + 생성을 클릭한 후 생성을 클릭하십시오. 이 데모에서의 웹 앱 이름은 webappdemotosrs입니다.

Click on Go to resource.

webappdemotosrs(웹 앱)은 기본 도메인 URL을 통해 액세스할 수 있습니다.

2. 배포 슬롯 생성

다음을 클릭하십시오: 배포 슬롯패널.

슬롯 추가을 클릭하십시오.

슬롯에 이름을 지정하십시오.


다른 슬롯에서 설정을 복제할지 여부를 선택하십시오. 복제를 선택하면 설정이 지정한 슬롯에서 새 슬롯으로 복사됩니다.

추가을(를) 클릭하십시오.


주어진 이름으로 슬롯이 생성됩니다.

웹 앱 배포 설정 구성

이 작업에서는 웹 앱 배포 설정을 구성합니다. 배포 설정을 통해 지속적인 배포가 가능합니다. 이를 통해 앱 서비스가 애플리케이션의 최신 버전을 보유할 수 있습니다. 스테이징 슬롯에서 배포 센터를 선택한 다음 설정을 선택하십시오. 소스 드롭다운 목록에서 외부 Git을 선택하십시오. 다른 선택 사항을 확인하십시오.

  • 저장소 필드에 다음을 입력하십시오: https://github.com/Azure-Samples/php-docs-hello-world.
  • 분기 필드에 master를 입력하십시오. 저장을 선택하십시오.
  • 스테이징 슬롯에서 개요를 선택하십시오.
  • 기본 도메인 링크를 선택하고 새 탭에서 URL을 엽니다.
  • 스테이징 슬롯이 Hello World를 표시하는지 확인하십시오.

3. 배포 슬롯 스왑

클릭하십시오 스왑.

Start Swap를 클릭하십시오.

스왑이 완료되면 상태를 보여주는 알림이 팝업됩니다.

4. 이후 배포 슬롯 스왑

프로덕션 기본 도메인 URL 출력:

스테이징 기본 도메인 URL 출력은 아래와 같을 것입니다


배포 슬롯 스왑 후, 프로덕션 슬롯이 새 코드를 실행하며 스테이징 슬롯은 이전 코드로 되돌아갑니다.

요약

이 기사에서는 Azure App Service에서 배포 슬롯을 만들고 사용하는 방법을 배웠습니다. 우리는 슬롯을 사용하여 앱의 새 버전을 테스트하고 스테이징하고 그 배포 슬롯을 교체했습니다. 우리는 슬롯을 교체하여 테스트된 앱을 프로덕션에 배포하고 예상치 못한 문제가 발생할 때 배포된 앱을 롤백할 수 있습니다.배포 슬롯을 사용할 때는 Azure가 스왑 전에 앱을 워밍업하고 트래픽 리다이렉션이 즉시 발생한다는 점을 기억해야 합니다. 그 결과로 앱이 서비스 중단이나 성능 저하 없이 배포됩니다.

Source:
https://dzone.com/articles/azure-web-apps-deployment-slots