지속적인 통합 및 지속적인 업데이트 (Azure를 사용 하 여 실제 클라우드 앱 빌드)Continuous Integration and Continuous Delivery (Building Real-World Cloud Apps with Azure)

사람, Mike Wasson, Rick Anderson, Tom Dykstraby Mike Wasson, Rick Anderson, Tom Dykstra

Fix It 프로젝트 다운로드 또는 전자 서적 다운로드Download Fix It Project or Download E-book

Azure e-learning을 사용 하 여 실제 클라우드 앱 빌드 는 Scott Guthrie에서 개발한 프레젠테이션을 기반으로 합니다.The Building Real World Cloud Apps with Azure e-book is based on a presentation developed by Scott Guthrie. 클라우드의 웹 앱을 성공적으로 개발 하는 데 도움이 되는 13 개의 패턴 및 사례에 대해 설명 합니다.It explains 13 patterns and practices that can help you be successful developing web apps for the cloud. 전자 문서에 대 한 자세한 내용은 첫 번째 챕터를 참조 하세요.For information about the e-book, see the first chapter.

처음 두 가지 권장 되는 개발 프로세스 패턴은 모든 항목소스 제어를 자동화 하 고 세 번째 프로세스 패턴은 이러한 패턴을 결합 합니다.The first two recommended development process patterns were Automate Everything and Source Control, and the third process pattern combines them. CI (연속 통합)는 개발자가 소스 리포지토리에 코드를 체크 인할 때마다 빌드가 자동으로 트리거됩니다.Continuous integration (CI) means that whenever a developer checks in code to the source repository, a build is automatically triggered. 지속적인 업데이트 (CD)는이 한 단계를 추가로 수행 합니다. 빌드 및 자동화 된 단위 테스트가 성공한 후에는 추가 심층 테스트를 수행할 수 있는 환경에 응용 프로그램을 자동으로 배포 합니다.Continuous delivery (CD) takes this one step further: after a build and automated unit tests are successful, you automatically deploy the application to an environment where you can do more in-depth testing.

클라우드를 사용 하면 환경 리소스를 사용 하는 동안에만 비용을 지불 하므로 테스트 환경을 유지 관리 하는 비용을 최소화할 수 있습니다.The cloud enables you to minimize the cost of maintaining a test environment because you only pay for the environment resources as long as you're using them. 필요한 경우 CD 프로세스에서 테스트 환경을 설정할 수 있으며 테스트를 완료할 때 환경을 종료할 수 있습니다.Your CD process can set up the test environment when you need it, and you can take down the environment when you're done testing.

연속 통합 및 지속적인 업데이트 워크플로Continuous Integration and Continuous Delivery workflow

일반적으로 개발 및 스테이징 환경에 대 한 지속적인 업데이트를 수행 하는 것이 좋습니다.Generally we recommend that you do continuous delivery to your development and staging environments. Microsoft의 경우에도 대부분의 팀에는 프로덕션 배포를 위한 수동 검토 및 승인 프로세스가 필요 합니다.Most teams, even at Microsoft, require a manual review and approval process for production deployment. 프로덕션 배포의 경우 개발 팀의 주요 사용자를 지원 하거나 트래픽이 낮은 기간에 사용할 때 이러한 상황이 발생 하는지 확인 하는 것이 좋습니다.For a production deployment you might want to make sure it happens when key people on the development team are available for support, or during low-traffic periods. 하지만 개발 및 테스트 환경을 완전히 자동화 하는 것을 방지 하기 위해 모든 개발자가 변경 내용을 확인 하 고 환경에서 승인 테스트를 수행 하도록 설정 하는 것은 아닙니다.But there's nothing to prevent you from completely automating your development and test environments so that all a developer has to do is check in a change and an environment is set up for acceptance testing.

Microsoft 패턴 및 방법에 대 한 다음 다이어그램에서는 연속 업데이트에 대 한 일반적인 워크플로를 보여 줍니다.The following diagram from a Microsoft Patterns and Practices e-book about continuous delivery illustrates a typical workflow. 이미지를 클릭 하 여 원래 컨텍스트에서 전체 크기를 확인 합니다.Click the image to see it full size in its original context.

연속 배달 워크플로Continuous delivery workflow

클라우드를 사용 하 여 비용 효율적인 CI 및 CD를 사용 하는 방법How the cloud enables cost-effective CI and CD

Azure에서 이러한 프로세스를 쉽게 자동화할 수 있습니다.Automating these processes in Azure is easy. 클라우드에서 모든 항목을 실행 하 고 있기 때문에 빌드 또는 테스트 환경에 대 한 서버를 구입 하거나 관리할 필요가 없습니다.Because you're running everything in the cloud, you don't have to buy or manage servers for your builds or your test environments. 그리고 서버를 사용 하 여 테스트를 수행할 때까지 기다릴 필요가 없습니다.And you don't have to wait for a server to be available to do your testing on. 사용자가 수행 하는 모든 빌드에서는 자동화 스크립트를 사용 하 여 Azure에서 테스트 환경을 실행 하 고, 수용 테스트를 실행 하 고,이에 대 한 추가 심층 테스트를 실행 하 고, 잠시 후에 종료할 수 있습니다.With every build that you do, you could spin up a test environment in Azure using your automation script, run acceptance tests or more in-depth tests against it, and then when you're done just tear it down. 또한 2 시간 또는 8 시간 또는 하루 동안만 해당 서버를 실행 하는 경우에는 컴퓨터가 실제로 실행 되는 시간에 대해서만 요금을 지불 하기 때문에 비용을 지불 해야 하는 비용을 최소화 해야 합니다.And if you only run that server for 2 hours or 8 hours or a day, the amount of money that you have to pay for it is minimal, because you're only paying for the time that a machine is actually running. 예를 들어, Fix it 응용 프로그램에 필요한 환경은 무료 수준에서 한 계층으로 이동 하는 경우 기본적으로 시간당 1tb를 차지 합니다.For example, the environment required for the Fix it application basically costs about 1 cent per hour if you go one tier up from the free level. 한 달 동안 한 번에 한 시간에 한 번만 환경을 실행 하는 경우 테스트 환경은 Starbucks에서 구매한 latte 보다 저렴 한 것일 수 있습니다.Over the course of a month, if you only ran the environment an hour at a time, your testing environment would probably cost less than a latte that you buy at Starbucks.

Azure DevOps ServicesAzure DevOps Services

Azure DevOps Services는 배포 계획부터 응용 프로그램 개발에 도움이 되는 다양 한 기능을 제공 합니다.Azure DevOps Services provides a number of features to assist you with application development from planning to deployment.

  • Git (distributed) 및 TFVC (중앙 집중식) 소스 제어를 모두 지원 합니다.It supports both Git (distributed) and TFVC (centralized) source control.
  • 탄력적 빌드 서비스를 제공 합니다. 즉, 필요할 때 동적으로 빌드 서버를 만들고 작업이 완료 되 면 작동을 중단 합니다.It offers an elastic build service, which means it dynamically creates build servers when they're needed and takes them down when they're done. 사용자가 소스 코드 변경 내용을 체크 인할 때 빌드를 자동으로 시작할 수 있으며, 대부분의 시간 동안 유휴 상태에 있는 고유한 빌드 서버에 대 한 할당 및 요금을 지불할 필요가 없습니다.You can automatically kick off a build when someone checks in source code changes, and you don't have to have allocate and pay for your own build servers that lie idle most of the time. 빌드 서비스는 특정 개수의 빌드를 초과 하지 않는 한 무료입니다.The build service is free as long as you don't exceed a certain number of builds. 많은 양의 빌드를 수행 해야 하는 경우 예약 된 빌드 서버에 대해 약간의 추가 비용을 지불할 수 있습니다.If you expect to do a high volume of builds, you can pay a little extra for reserved build servers.
  • Azure에 대 한 지속적인 업데이트를 지원 합니다.It supports continuous delivery to Azure.
  • 자동화 된 부하 테스트를 지원 합니다.It supports automated load testing. 부하 테스트는 클라우드 앱에 중요 하지만 너무 늦을 때까지 종종 연락이 중단 될 수 있습니다.Load testing is critical to a cloud app but is often neglected until it's too late. 부하 테스트는 수천 명의 사용자가 많은 앱을 사용 하 여 응용 프로그램을 프로덕션 환경으로 릴리스하기 전에 병목 상태를 찾고 처리량을 향상 시킬 수 있도록 합니다.Load testing simulates heavy use of an app by thousands of users, enabling you to find bottlenecks and improve throughput —before you release the app to production.
  • 팀 대화방 공동 작업을 지원 하므로 소규모 agile 팀에 대 한 실시간 통신과 공동 작업을 용이 하 게 합니다.It supports team room collaboration, which facilitates real-time communication and collaboration for small agile teams.
  • Agile 프로젝트 관리를 지원 합니다.It supports agile project management.

Azure DevOps Services의 지속적인 통합 및 배달 기능에 대 한 자세한 내용은 Azure DevOps 설명서를 참조 하세요.For more information on the continuous integration and delivery features of Azure DevOps Services, see the Azure DevOps documentation.

키를 사용 하는 프로젝트 관리, 팀 공동 작업 및 소스 제어 솔루션을 찾고 있는 경우 Azure DevOps Services 확인 하세요.If you're looking for a turn-key project management, team collaboration, and source control solution, check out Azure DevOps Services. Azure DevOps Services에서 등록 합니다.Sign up at Azure DevOps Services.

요약Summary

처음 세 가지 클라우드 개발 패턴은 주기 시간이 짧은 반복 가능 하 고 안정적 이며 예측 가능한 개발 프로세스를 구현 하는 방법에 대 한 것입니다.The first three cloud development patterns have been about how to implement a repeatable, reliable, predictable development process with low cycle time. 다음 장에서 는 아키텍처 및 코딩 패턴을 확인 하기 시작 합니다.In the next chapter we start to look at architectural and coding patterns.

리소스Resources

자세한 내용은 Azure App Service에서 웹 앱 배포를 참조 하세요.For more information, see Deploy a web app in Azure App Service.

또한 다음 리소스를 참조 하세요.See also the following resources: