다음을 통해 공유


App Service 랜딩 존 가속기의 플랫폼 자동화 및 DevOps

이 문서에서는 Azure App Service 랜딩 존 가속기 사용 시 적용할 수 있는 플랫폼 자동화 및 DevOps에 대한 디자인 고려 사항과 권장 사항을 제공합니다. 플랫폼 자동화 및 DevOps는 Infrastructure-as-Code를 사용하여 배포에 대한 접근 방식을 현대화할 기회를 제공합니다.

플랫폼 자동화 및 DevOps 디자인 영역에 대해 자세히 알아봅니다.

디자인 고려 사항

Automation 및 DevOps는 최신 소프트웨어 개발에서 중요한 사례이며, App Service 웹 애플리케이션을 빌드하고 배포하기 위한 강력한 플랫폼입니다. 자동화 및 DevOps 기술을 사용하여 워크플로를 간소화하고 애플리케이션의 품질과 안정성을 향상시킬 수 있습니다.

App Service 배포를 준비할 때 다음 사항을 고려합니다.

  • 자동화에 가장 적합한 도구와 방법을 결정할 수 있도록 프로젝트의 요구 사항과 목표를 이해합니다. 이 단계에는 인프라 프로비저닝, 코드 배포 및 테스트와 같이 자동화하려는 작업을 식별하는 작업이 포함됩니다. 또한 자동화를 구현하는 데 사용할 도구와 기술을 식별하는 것도 포함됩니다.

  • App Service에서 자동화 및 CI/CD 파이프라인을 디자인할 때 보안을 최우선 순위로 삼습니다. 보안 작업에는 파이프라인 및 해당 구성 요소에 대한 액세스를 보호하는 데 도움이 되는 인증 및 권한 부여 조치 구현이 포함될 수 있습니다. 또한 중요한 데이터를 보호하는 데 도움이 되는 암호화 및 기타 보안 조치를 구현하는 것도 포함될 수 있습니다.

  • 연속 통합 및 배포를 고려합니다. App Service는 Azure Repos, GitHub 및 Bitbucket을 비롯한 다양한 소스 제어 시스템의 연속 통합 및 배포를 지원합니다. 이러한 도구를 사용하여 빌드 및 배포 프로세스를 자동화하여 앱을 항상 최신 상태로 유지하고 사용할 수 있습니다.

  • 자동화 스크립트를 고려합니다. App Service는 PowerShell, Azure CLI, Bicep 및 ARM(Azure Resource Manager) 템플릿을 비롯한 다양한 자동화 스크립트를 제공합니다. 이러한 스크립트를 사용하여 리소스 프로비전 및 크기 조정과 같은 일반적인 작업을 자동화할 수 있습니다.

  • 자체 호스팅 에이전트를 사용해야 하는지 여부를 평가합니다. 네트워크 구성에 따라 공용 인터넷에서 App Services를 사용하지 못할 수 있습니다. 그렇지 않은 경우 퍼블릭 호스팅 에이전트는 배포에 대해 작동하지 않습니다. 이러한 시나리오에서 자체 호스팅 에이전트를 사용하도록 계획합니다.

  • 유연성을 제공하면서 협업하는 데 도움이 되는 분기 전략을 채택합니다. 전략을 단순하게 유지하고, 단기 기능 격리를 사용하고, 수동 및 자동화된 코드 분석을 사용하여 끌어오기 요청을 통해 주 분기로 다시 수정할 수 있습니다.

  • 빌드 파이프라인의 단위 테스트를 통해 비즈니스 논리를 확인해야 합니다. 릴리스 파이프라인에서 통합 테스트를 사용하여 새 릴리스 후에 모든 서비스와 리소스가 함께 작동하는지 확인합니다. 자동화된 UI 테스트를 사용하여 가장 중요한 UI 요소를 확인합니다. 스테이징 환경에서 k6 및 JMeter와 같은 도구를 통해 부하 테스트를 사용하여 비기능적 성능 요구 사항을 확인합니다.

  • 자동화 및 CI/CD 파이프라인을 모니터링하고 유지 관리합니다. 이 프로세스에는 파이프라인의 성능과 상태를 추적하기 위한 로깅 및 모니터링 도구 구현이 포함될 수 있습니다. 또한 파이프라인을 정기적으로 검토하고 업데이트하는 프로세스를 구현하여 효과적이고 효율적인 상태를 유지할 수 있습니다.

App Service에서 성공적인 플랫폼 자동화 및 CI/CD 파이프라인 구현의 핵심은 배포하는 애플리케이션의 특정 요구 사항과 요구 사항을 고려하여 솔루션을 신중하게 계획하고 설계하는 것입니다. 올바른 접근 방식을 사용하면 클라우드에서 애플리케이션을 배포하고 관리하기 위한 확장 가능하고 안전하며 효율적인 플랫폼을 만들 수 있습니다.

디자인 권장 사항

App Service를 배포할 때 다음 모범 사례를 염두에 두어야 합니다.

  • CI/CD 파이프라인에 Azure DevOps를 사용합니다. Azure DevOps는 애플리케이션의 빌드, 테스트 및 배포를 자동화하기 위한 완전한 솔루션을 제공합니다.

  • 파이프라인 또는 작업을 사용하여 다음을 수행합니다.

    • 팀 전체에서 적용된 사례의 이점을 최대화합니다.
    • 프로세스를 재창조하는 부담을 상당 부분 제거합니다.
    • 전반적인 품질 및 민첩성에 대한 예측 가능성과 인사이트를 가져옵니다.
  • 트리거 기반 및 예약된 파이프라인을 사용하여 초기 및 자주 배포합니다. 트리거 기반 파이프라인은 변경 내용이 적절한 유효성 검사를 거치도록 합니다. 예약된 파이프라인은 변화하는 환경에서 동작을 관리합니다.

  • 애플리케이션 배포와 인프라 배포를 구분합니다. 핵심 인프라는 애플리케이션보다 변경 빈도가 낮습니다. 각 배포 유형을 별도의 흐름 및 파이프라인으로 처리합니다.

  • ARM 또는 Bicep 템플릿과 같은 코드 도구로 인프라를 사용하여 Azure 리소스의 프로비전 및 관리를 자동화합니다. ARM 및 Bicep 템플릿을 사용하여 인프라를 코드로 정의하여 리소스 배포를 쉽게 버전 제어, 협업 및 자동화할 수 있습니다.

  • 관련 비밀 저장소(예: Azure Key Vault 또는 GitHub 비밀)에 비밀 및 기타 중요한 아티팩트를 저장합니다. 작업 및 기타 워크플로 파트가 필요에 따라 읽을 수 있도록 허용합니다.

  • 하드 코딩된 구성 및 설정을 방지하여 배포 동시성을 최대화하기 위해 노력합니다.

  • 파이프라인 초기에 컨테이너 검색과 같은 취약성 및 비밀 검색 도구를 포함하여 시프트 레프트 보안을 구현합니다.

  • 가동 중지 시간을 최소화하고 배포 실패의 위험을 줄이기 위해 파란색/녹색 또는 카나리아 배포의 원칙을 구현하는 배포 전략을 설정합니다. 이렇게 하면 전체 사용자 기반에 배포하기 전에 사용자의 작은 하위 집합에 새 버전의 애플리케이션을 점진적으로 롤아웃할 수 있습니다.

  • App Service 배포 슬롯을 사용하여 파란색/녹색 배포 전략을 구현합니다. 이렇게 하면 프로덕션 환경에 배포하기 전에 스테이징 환경에서 배포의 유효성을 검사하고 테스트할 수 있습니다. 이 전략은 원활하고 성공적인 배포를 보장하고, 애플리케이션 변경의 유효성을 검사하고, 가동 중지 시간을 최소화하는 데 도움이 됩니다.

  • Application Insights를 사용하여 애플리케이션의 성능 및 가용성을 모니터링하고 추적합니다. Application Insights는 애플리케이션의 상태 및 사용에 대한 실시간 인사이트를 제공합니다. 또한 발생하는 문제를 신속하게 진단하고 해결하는 데 도움이 될 수 있습니다.

  • Agile 개발 방법론 및 작업 및 종속성을 추적하고 관리하기 위한 도구와 같은 통신 및 협업을 용이하게 하는 도구 및 프로세스를 구현합니다. 성공적인 플랫폼 자동화, DevOps 및 CI/CD 프로세스는 팀 구성원 간의 효과적인 협업 및 커뮤니케이션에 의존합니다.

App Service를 통한 성공적인 플랫폼 자동화, DevOps 및 CI/CD의 핵심은 확장 가능하고 안전하며 잘 모니터링되고 협업이 가능한 프로세스와 시스템을 설계하고 구현하는 것입니다. 이러한 권장 사항은 IT 및 클라우드 엔지니어가 앱 및 API가 최상의 성능 및 사용자 환경을 제공하도록 보장하는 데 도움이 될 수 있습니다.