https://azuredevopslabs.com/labs/vstsextend/azuredevopsprojectdotnet/ 개요 Azure DevOps 프로젝트는 Azure DevOps를 사용하여 Azure에 대한 전체 CI (지속적 통합) 및 CD (지속적 배포) 파이프라인의 설정을 단순화한다. 기존 코드로 시작하거나 제공된 샘플 애플리케이션 중 하나를 사용할 수 있다. 그런 다음 해당 애플리케이션을 Virtual Machines, App Service, AKS (Azure Kubernetes Services), Azure SQL Database 및 Azure Service Fabric과 같은 다양한 Azure 서비스에 빠르게 배포 할 수 있다. DevOps Projects는 초기 Git 리포지토리 ..
https://azuredevopslabs.com/labs/vstsextend/docker/ 개요 Docker 컨테이너 이미지는 코드, 런타임, 시스템 도구, 시스템 라이브러리 및 설정 등 애플리케이션을 실행하는 데 필요한 모든 것이 포함된 경량의 독립 실행형 소프트웨어 패키지이다. 이 랩에서는 ASP.NET Core 애플리케이션의 사용자 지정 Docker 이미지를 빌드하고 해당 이미지를 ACR(Azure Container Registry)의 프라이빗 리포지토리로 푸시하는 프로세스를 간략하게 설명한다. 이러한 이미지는 Azure DevOps를 사용하여 Azure App Service (Linux)의 Docker 컨테이너에 애플리케이션을 배포하는 데 사용된다. Web App for Containers를 사..
https://azuredevopslabs.com/labs/vstsextend/launchdarkly/ 더보기 이번 실습은 5번을 시도해 봤으나 에러가 없었음에도 불구하고 최종적으로 기능 플래그가 적용되지 않았다. 혹시 진행과정에서 잘못된 부분을 발견하시는 분이 있다면 바로잡아 주시길~~~^ 개요 LaunchDarkly는 기능 플래그를 서비스로 제공하고 개발자가 빠르고 안전하게 반복할 수 있도록 해주는 지속적인 전달 플랫폼이다. LaunchDarkly는 코드 배포에서 기능 롤아웃을 분리하고 기능 플래그를 대규모로 관리할 수 있는 권한을 제공한다. LaunchDarkly와 Azure DevOps 서비스의 통합을 통해 개발자는 적은 위험으로 자신 있게 릴리즈 할 수 있다. 기능 플래그 롤아웃을 Azure D..
https://azuredevopslabs.com/labs/vstsextend/github-azureboards/ Azure 보드는 칸반 보드, 백로그, 팀 대시보드, 그리고 커스텀 리포팅 등을 포괄하는 풍부한 프로젝트 관리 기능을 제공한다. Azure DevOps를 GitHub 리포지토리와 연결하여 팀은 풍부한 프로젝트 관리 능력을 활용할 수 있다. GitHub 커밋과 풀 요청 사이에 링크를 만들어 Azure 보드에서 추적된 항목으로 작업할 수 있다. 이를 통해 작업을 계획하고 추적하기 위해 Azure 보드를 사용하면서 원활한 방법으로 소프트웨어 개발에 GitHub를 사용할 수 있도록 해준다. 이번 랩에서는 GitHub와 함께 Azure 보드를 설정하는 것이 얼마나 쉬운지 그리고 작업 항목에서 코드 변..
https://azuredevopslabs.com/labs/vstsextend/github-azurepipelines/ 과제 4: CI 파이프라인에 자동화된 테스트 포함하기 CI를 성공적으로 구축했으므로 이제 배포를 할 차례다. 그러나 빌드가 릴리즈에 적합한지 여부를 어떻게 알 수 있을까? 대부분의 팀은 CI 프로세스의 일부로 단위 테스트와 같은 자동화된 테스트를 실행하여 고품질 소프트웨어를 출시하고 있는지 확인한다. 팀은 코드 적용 범위, 테스트 수행 시 코드 분석과 같은 주요 코드 메트릭을 캡처하여 코드 품질이 떨어지지 않도록 하며, 완전히 제거되지 않은 경우 기술 부채가 낮도록 유지한다. 앞에서 만든 azure-pipelines.yml 파일을 내려 놓고 몇 가지 테스트를 실행하고 테스트 결과를 게시..
https://azuredevopslabs.com/labs/vstsextend/github-azurepipelines/ 이 랩은 전체 5개의 과제로 이루어져 있으며 2편에 걸쳐 분리 포스팅 하고자 한다. 먼저 1편을 정리한다. 개요 GitHub는 모든 모양과 크기의 애플리케이션을 포함하는 1억 개 이상의 리포지토리를 호스트한다. 그러나 GitHub는 시작에 불과하며 이러한 애플리케이션은 잠재력을 최대한 발휘하기 위해 여전히 구축, 출시 및 관리해야 한다. Azure 파이프라인은 어떤 플랫폼이나 클라우드에 대해서도 지속적으로 빌드, 테스트 및 배포할 수 있도록 해준다. 리눅스, MacOS 및 윈도우즈용 클라우드 호스팅 에이전트, 네이티브 컨테이너를 지원하는 강력한 워크플로우, Kubernetes, VM 및..
https://azuredevopslabs.com/labs/vstsextend/teams/ 개요 Micro Teams는 오피스 365의 팀워크를 위한 허브다. 팀의 모든 채팅, 미팅, 파일 및 앱을 한 곳에 함께 보관하라. 소프트웨어 개발팀은 오피스365와 Azure DevOps로부터의 팀, 대화, 컨텐츠 및 도구를 한 곳으로 통합하는 팀워크를 위한 전용 허브에서 필요로하는 모든 것을 즉시 액세스 할 수 있다. 이 토픽은 Azure DevOps 서비스 및 TFS 2017.2 이상 버전에 적용된다. 전제 조건 Microsoft Teams를 Azure DevOps 서비스와 통합하기 위해서는 오피스365 계정이 있어야 한다. 동일 조직(AAD 테넌트)의 Azure DevOps 조직만이 Microsoft Tea..
https://azuredevopslabs.com/labs/vstsextend/azurekeyvault/ 개요 Azure Key Vault는 산업 표준 알고리즘, 키 길이 및 하드웨어 보안 모듈로 보호된 중앙 저장소에 키, 암호, 인증서 등과 같은 민간한 정보를 안전하게 저장 및 관리할 수 있도록 돕는다. 이는 많은 개발자들이 흔히 범하는 실수인 소스 코드를 통한 정보의 공개를 방지해준다. 많은 개발자는 데이터베이스 연결 문자열, 암호, 개인키 등과 같은 기밀 정보을 소스 코드 상에 그대로 둔다. 이 정보를 악의적인 사용자가 얻게 될 경우 의도치 않는 결과를 초래할 수 있다. key vault에 액세스 하기 위해서는 적절한 인증과 인가를 필요로 하며 팀은 RBAC을 사용하여 민감한 데이터에 대한 퍼미션을..
https://azuredevopslabs.com/labs/azuredevops/appinsights/ 과제 4 : 애플리케이션 트래픽 생성 및 검토하기 1. Application map 탭을 선택한다. 2. 애플리케이션 맵을 사용하면 분산 애플리케이션의 모든 구성 요소에서 성능 병목 현상 또는 오류 핫스팟을 파악할 수 있다. 맵의 각 노드는 상태 KPI 및 경고 상태뿐만 아니라 애플리케이션 구성 요소 또는 해당 종속성을 나타낸다. 모든 구성 요소에서 Application Insights 이벤트와 같은 보다 자세한 진단을 수행 할 수 있다. 앱에서 Azure 서비스를 사용하는 경우 SQL Database Advisor 권장 사항과 같은 Azure 진단을 클릭 할 수도 있다. 3. Smart Detecti..
https://azuredevopslabs.com/labs/azuredevops/appinsights/ 기존 웹 애플리케이션에 Application Insights를 어떻게 추가하는지 알아보고 더불어, Azure 포털을 통해 어떻게 애플리케이션을 모니터링 하는지 살펴 보고자 한다. 이 랩은 전체 6개의 과제로 이루어져 있는데, 내용이 다소 방대하여 2편에 걸쳐 분리 포스팅 하고자 한다. 먼저 1편을 정리한다. 혹시 실습을 따라 하려는 경우, 실습을 위한 환경구성을 위해 Web App + SQL 리소스 생성이 요구되므로 과다 비용 발생의 우려가 있으니 가급적 1, 2편이 모두 포스팅 된 후에 한번에 실습을 따라 하는 것이 권장된다. 개요 Application Insights는 여러 플랫폼의 웹 개발자를 위..