Azure를 사용하여 Real-World Cloud Apps 빌드

작성자 : Rick Anderson, Tom Dykstra

수정 프로젝트 다운로드 또는 전자책 다운로드

이 전자책에서는 실제 클라우드 솔루션을 빌드하는 패턴 기반 접근 방식을 안내합니다. 패턴은 개발 프로세스뿐만 아니라 아키텍처 및 코딩 사례에도 적용됩니다.

이 콘텐츠는 Scott Guthrie가 개발하고 2013년 6월 노르웨이 개발자 컨퍼런스(NDC)(1, 2부)와 2013년 9월 Microsoft Tech Ed Australia에서 전달한 프레젠테이션을 기반으로 합니다. 다른 많은 사람들이 콘텐츠를 업데이트하고 보강하면서 비디오에서 작성된 양식으로 전환했습니다.

대상 독자

클라우드 개발, 클라우드로의 이전을 고려하거나 클라우드 개발에 익숙하지 않은 개발자는 여기서 알아야 할 가장 중요한 개념과 사례에 대한 간결한 개요를 찾을 수 있습니다. 개념은 구체적인 예제와 함께 설명되며, 각 챕터는 더 자세한 정보를 위해 다른 리소스에 연결됩니다. 추가 리소스에 대한 예제 및 링크는 Microsoft 프레임워크 및 서비스를 위한 것이지만 설명된 원칙은 다른 웹 개발 프레임워크 및 클라우드 환경에도 적용됩니다.

클라우드용으로 이미 개발 중인 개발자는 여기서 더 성공적인 아이디어를 찾을 수 있습니다. 시리즈의 각 챕터를 독립적으로 읽을 수 있으므로 관심 있는 topics 선택하고 선택할 수 있습니다.

Azure 프레젠테이션을 사용하여 Scott Guthrie의 Building Real World Cloud Apps 를 시청하고 자세한 내용과 업데이트된 정보를 원하는 사람은 여기에서 찾을 수 있습니다.

클라우드 개발 패턴

이 전자책에서는 클라우드 개발에 권장되는 13가지 패턴을 설명합니다. "패턴"은 클라우드 앱을 개발, 디자인 및 코딩하는 가장 좋은 방법인 작업을 수행하는 권장되는 방법을 의미하는 광범위한 의미에서 사용됩니다. 이들은 당신이 그들을 따르는 경우 "성공의 구덩이에 빠지다"도움이 될 것입니다 주요 패턴입니다.

  • 모든 것을 자동화합니다.

    • 스크립트를 사용하여 효율성을 최대화하고 반복 프로세스에서 오류를 최소화합니다.
    • 데모: Azure 관리 스크립트.
  • 소스 제어.

    • DevOps 워크플로를 용이하게 하려면 소스 제어에서 분기 구조를 설정합니다.
    • 데모: 소스 제어에 스크립트를 추가합니다.
    • 데모: 중요한 데이터를 소스 제어에서 벗어나지 않도록 합니다.
    • 데모: Visual Studio에서 Git을 사용합니다.
  • 지속적인 통합 및 배달.

    • 각 소스 제어 검사 사용하여 빌드 및 배포를 자동화합니다.
  • 웹 개발 모범 사례.

    • 웹 계층을 상태 비지정 상태로 유지합니다.
    • 데모: Azure App Service Web Apps 크기 조정 및 자동 크기 조정
    • 세션 상태를 방지합니다.
    • CDN을 사용할 수 없는 경우 대체와 함께 CDN을 사용합니다.
    • 비동기 프로그래밍 모델을 사용합니다.
    • 데모: ASP.NET MVC 및 Entity Framework의 비동기입니다.
  • Single Sign-On.

    • Azure Active Directory 소개
    • 데모: Azure Active Directory를 사용하는 ASP.NET 앱을 만듭니다.
  • 데이터 스토리지 옵션

    • 데이터 저장소 유형입니다.
    • 올바른 데이터 저장소를 선택하는 방법
    • 데모: Azure SQL 데이터베이스.
  • 데이터 분할 전략.

    • 관계형 데이터베이스를 쉽게 확장할 수 있도록 데이터를 세로, 가로 또는 둘 다 분할합니다.
  • 구조화되지 않은 Blob Storage.

    • Blob 서비스를 사용하여 클라우드에 파일을 저장합니다.
    • 데모: 수정 앱에서 Blob Storage 사용.
  • 실패에서 살아남을 수 있도록 디자인합니다.

    • 오류 유형입니다.
    • 실패 범위입니다.
    • SLA 이해.
  • 모니터링 및 원격 분석.

    • 원격 분석 앱을 구입하고 고유한 코드를 작성하여 앱을 계측해야 하는 이유
    • 데모: Azure용 New Relic
    • 데모: 수정 앱의 로깅 코드입니다.
    • 데모: 수정 앱의 종속성 주입.
    • 데모: Azure에서 기본 제공 로깅 지원.
  • 일시적인 오류 처리.

    • 스마트 재시도/백오프 논리를 사용하여 일시적인 오류의 영향을 완화합니다.
    • 데모: Entity Framework 6에서 다시 시도/백오프합니다.
  • 분산 캐싱.

    • 분산 캐싱을 사용하여 확장성을 개선하고 데이터베이스 트랜잭션 비용을 줄입니다.
  • 큐 중심 작업 패턴입니다.

    • 웹 및 작업자 계층을 느슨하게 결합하여 고가용성을 사용하도록 설정하고 확장성을 개선합니다.
    • 데모: 수정 앱의 Azure Storage 큐.
  • 더 많은 클라우드 앱 패턴 및 지침.

  • 부록: Fix It 애플리케이션 예제

    • 알려진 문제
    • 모범 사례
    • 다운로드, 빌드, 실행 및 배포하는 방법입니다.

이러한 패턴은 모든 클라우드 환경에 적용되지만 Visual Studio, Team Foundation Service, ASP.NET 및 Azure와 같은 Microsoft 기술 및 서비스를 기반으로 하는 예제를 사용하여 설명합니다.

이 챕터의 나머지 부분에서는 Fix It 샘플 애플리케이션 및 Fix It 앱이 실행되는 Azure App Service 클라우드 환경의 Web Apps 소개합니다.

수정 샘플 애플리케이션

이 전자책에 표시된 대부분의 스크린샷 및 코드 예제는 권장 클라우드 앱 개발 패턴 및 사례를 보여주기 위해 Scott Guthrie 가 원래 개발한 Fix It 앱을 기반으로 합니다.

앱 홈페이지 수정

샘플 앱은 간단한 작업 항목 티켓 시스템입니다. 고정된 항목이 필요한 경우 티켓을 만들어 다른 사람에게 할당하면 다른 사람이 로그인하여 할당된 티켓을 보고 작업이 완료되면 티켓을 완료된 것으로 표시할 수 있습니다.

표준 Visual Studio 웹 프로젝트입니다. ASP.NET MVC를 기반으로 하며 SQL Server 데이터베이스를 사용합니다. IIS Express 로컬로 실행될 수 있으며 클라우드에서 실행되도록 Azure 웹 사이트에 배포할 수 있습니다. 양식 인증 및 로컬 데이터베이스를 사용하거나 Google과 같은 소셜 공급자를 사용하여 로그인할 수 있습니다. (나중에 Active Directory 조직 계정으로 로그인하는 방법도 보여 줍니다.)

로그인 페이지

로그인한 후에는 티켓을 만들고, 다른 사람에게 할당하고, 수정하려는 내용의 사진을 업로드할 수 있습니다.

수정 작업 만들기

만든 작업 수정

만든 작업 항목의 진행률을 추적하고, 할당된 티켓을 보고, 티켓 세부 정보를 보고, 항목을 완료된 것으로 표시할 수 있습니다.

기능 관점에서 매우 간단한 앱이지만 수백만 명의 사용자로 확장할 수 있도록 빌드하는 방법을 확인할 수 있으며 데이터베이스 오류 및 연결 종료와 같은 항목에 복원력이 있습니다. 또한 개발 주기를 효율적이고 빠르게 반복하여 간단하게 시작하고 앱을 더 효율적으로 만들 수 있는 자동화되고 민첩한 개발 워크플로를 만드는 방법도 알아봅니다.

Azure App Service의 Web Apps

Fix It 애플리케이션에 사용되는 클라우드 환경은 웹 사이트를 호출하는 Azure의 서비스입니다. 이 서비스는 VM을 만들고 업데이트된 상태로 유지하고 IIS를 설치 및 구성할 필요 없이 Azure에서 고유한 웹앱을 호스트할 수 있는 방법입니다. VM에서 사이트를 호스트하고 자동으로 백업 및 복구 및 기타 서비스를 제공합니다. 웹 사이트 서비스는 ASP.NET, Node.js, PHP 및 Python에서 작동합니다. Visual Studio, 웹 배포, FTP, Git 또는 TFS를 사용하여 매우 빠르게 배포할 수 있습니다. 일반적으로 배포를 시작하는 시간과 인터넷을 통해 업데이트를 사용할 수 있는 시간 사이에는 몇 초밖에 되지 않습니다. 모두 무료로 시작할 수 있으며 트래픽이 증가함에 따라 확장할 수 있습니다.

백그라운드에서 Azure App Service Web Apps 자체 VM에서 IIS를 사용하여 웹 사이트를 호스트하려는 경우 직접 빌드해야 하는 많은 아키텍처 구성 요소와 기능을 제공합니다. 한 구성 요소는 IIS를 자동으로 구성하고 사이트를 실행하려는 만큼의 VM에 애플리케이션을 설치하는 배포 엔드포인트입니다.

배포 서비스

사용자가 웹 사이트에 도달하면 IIS VM에 직접 충돌하지 않고 ARR(애플리케이션 요청 라우팅) 부하 분산 장치를 통과합니다. 사용자 고유의 서버에서 사용할 수 있지만 여기서 장점은 자동으로 설정된다는 것입니다. 세션 선호도, IIS의 큐 깊이 및 각 컴퓨터의 CPU 사용량과 같은 요소를 고려하여 트래픽을 웹 사이트를 호스트하는 VM으로 전송하는 스마트 추론을 사용합니다.

ARR 부하 분산 장치

컴퓨터가 다운되면 Azure는 자동으로 회전에서 끌어오고, 새 VM instance 스핀업하고, 새 instance 트래픽을 전달하기 시작합니다. 모두 애플리케이션에 대한 가동 중지 시간 없이 진행됩니다.

컴퓨터 오류에서 자동 복구

이 모든 작업은 자동으로 수행됩니다. Windows PowerShell, Visual Studio 또는 Azure 관리 포털을 사용하여 웹 사이트를 만들고 애플리케이션에 배포하기만 하면 됩니다.

Visual Studio에서 웹 애플리케이션을 만들고 Azure 웹 사이트에 배포하는 방법을 보여 주는 빠르고 쉬운 단계별 자습서는 Azure 시작 및 ASP.NET 참조하세요.

요약

이 소개에서는 이 책에서 다룰 topics 목록, 샘플 애플리케이션의 스크린샷 및 Azure App Service 클라우드 환경의 Web Apps 대한 간략한 개요를 제공했습니다. 클라우드에서 앱을 개발할 때의 가장 큰 장점 중 하나는 테스트 환경 만들기 및 코드 배포와 같은 반복적인 개발 작업을 쉽게 자동화할 수 있다는 것입니다. 이 작업을 수행하는 방법은 다음 챕터의 주제입니다.

리소스

이 챕터에서 다루는 topics 대한 자세한 내용은 다음 리소스를 참조하세요.

설명서:

  • Azure App Service Web Apps. Web Apps 대한 Azure 설명서에 대한 포털 페이지입니다.
  • Web Apps, Cloud Services 및 VM: 언제 사용해야 할까요? 이 장과 같이 WAWS는 Azure에서 웹앱을 실행할 수 있는 세 가지 방법 중 하나일 뿐입니다. 이 문서에서는 세 가지 방법 간의 차이점을 설명하고 시나리오에 적합한 방법을 선택하는 방법에 대한 지침을 제공합니다. 웹 사이트와 마찬가지로 Cloud Services Azure의 PaaS 기능입니다. VM은 IaaS 기능입니다. PaaS 및 IaaS에 대한 설명은 데이터 옵션 챕터를 참조하세요.

비디오: