Azure Deployment Environments란?
Azure Deployment Environments를 통해 개발 팀은 보안을 극대화하면서 일관성과 모범 사례를 설정하는 프로젝트 기반 템플릿을 사용하여 앱 인프라를 빠르고 쉽게 실행할 수 있습니다. 보안 환경에 대한 이러한 주문형 액세스는 규정을 준수하고 비용 효율적인 방식으로 소프트웨어 개발 수명 주기의 단계를 가속화합니다.
배포 환경는 환경 정의라는 템플릿에 정의된 Azure 인프라 리소스의 컬렉션입니다. 개발자는 액세스 권한이 있는 구독의 템플릿에 정의된 인프라를 배포하고 인프라에서 애플리케이션을 빌드할 수 있습니다. 예를 들어 웹앱, 데이터베이스 및 스토리지 계정을 포함하는 배포 환경을 정의할 수 있습니다. 웹 개발자는 기본 인프라에 대한 걱정 없이 웹앱 코딩을 시작할 수 있습니다.
플랫폼 엔지니어는 환경 정의를 만들고 관리할 수 있습니다. 개발자가 사용할 수 있는 환경 정의를 지정하기 위해 플랫폼 엔지니어는 환경 정의를 프로젝트와 연결하고 개발자에게 권한을 할당할 수 있습니다.
Azure Deployment Environments는 플랫폼 엔지니어가 다양한 형식의 환경에 올바른 정책 및 설정 집합을 적용하고, 개발자가 만들 수 있는 리소스 구성을 제어하고, 프로젝트 전반에서 환경을 추적하는 데 도움이 됩니다. 샌드박스, 테스트, 스테이징 또는 프로덕션과 같은 환경 유형에 따라 Azure 거버넌스를 적용할 수도 있습니다.
다음 다이어그램에서는 Azure Deployment Environments 기능에 대한 개요를 보여 줍니다. 플랫폼 엔지니어는 인프라 템플릿을 정의하고 구독, ID 및 권한을 구성합니다. 개발자는 템플릿을 기반으로 환경을 만들고, 인프라에 애플리케이션을 빌드 및 배포합니다. 환경은 주문형 환경, 테스트를 위한 샌드박스 환경, 연속 통합 및 지속적인 배포를 위한 CI/CD 파이프라인과 같은 다양한 시나리오를 지원할 수 있습니다.
Azure Deployment Environments의 주요 개념에 대해 자세히 알아볼 수 있습니다.
사용 시나리오
일반적인 Azure Deployment Environments 시나리오에는 다음이 포함됩니다.
CI/CD 파이프라인의 일부인 환경
기업 전체에서 환경을 만들고 관리하려면 상당한 활동이 필요할 수 있습니다. Azure Deployment Environments를 사용하면 개발자는 다양한 형식의 제품 수명 주기 환경(예: 개발, 테스트, 준비, 사전 프로덕션, 프로덕션)을 CI/CD(연속 통합 및 지속적인 업데이트) 파이프라인에 통합할 수 있습니다.
이 시나리오에서는
- 개발 팀은 환경을 CI/CD 파이프라인에 연결하여 DevOps 시나리오를 사용할 수 있습니다.
- 중앙 개발 IT 팀은 중앙에서 비용을 추적하고, 보안 경고를 추적하고, 프로젝트 및 개발 센터 전체에서 환경을 관리할 수 있습니다.
조사를 위한 샌드박스 환경
개발자는 종종 다른 기술 또는 인프라 디자인을 조사합니다. 기본적으로 Azure Deployment Environments로 만들어진 모든 환경은 자체 리소스 그룹에 있습니다. 프로젝트 구성원은 기본적으로 해당 리소스에 대한 기여자 액세스 권한을 얻습니다.
이 시나리오에서는
- 개발자는 개발 또는 테스트 환경에 필요한 Azure 리소스를 추가하고 변경할 수 있습니다.
- 중앙 개발 IT 팀은 조사에 사용되는 모든 환경에 대한 비용을 쉽게 추적할 수 있습니다.
주문형 테스트 환경
개발자는 코드를 체크 인하고 파이프라인을 실행하기 전에 새로운 기능을 테스트하기 위해 공식 개발 또는 테스트 환경을 모방하는 임시 환경을 만들 수 있습니다.
이 시나리오에서는
- 개발자는 재사용 가능한 템플릿을 사용하여 새 임시 환경을 신속하게 만들어 최신 버전의 애플리케이션을 테스트할 수 있습니다.
교육, 실습 랩, 해커톤
Azure Deployment Environments의 프로젝트는 워크샵, 실습 랩, 교육 또는 해커톤과 같은 일시적인 활동을 위한 컨테이너 역할을 합니다. 각 사용자에게 사용자 지정 템플릿을 제공하는 프로젝트를 만들 수 있습니다.
이 시나리오에서 Azure Deployment Environments는 다음과 같은 이점을 제공합니다.
- 각 사용자는 교육을 위해 동일하고 격리된 환경을 만들 수 있습니다.
- 교육이 끝나면 프로젝트 및 모든 관련 리소스를 쉽게 삭제할 수 있습니다.
이점
Azure Deployment Environments는 클라우드에서 환경을 만들고 구성하고 관리하는 데 다음과 같은 이점을 제공합니다.
표준화 및 협업: 팀 또는 조직 내 소스 제어에서 IaC 템플릿을 캡처하고 공유하여 주문형 환경을 손쉽게 만듭니다. 소스 제어 리포지토리에서 템플릿의 내부 소싱을 통해 협업을 촉진합니다.
규정 준수 및 거버넌스: 플랫폼 엔지니어링 팀은 환경 정의를 조정하여 엔터프라이즈 보안 정책을 적용하고 프로젝트를 환경 형식별로 Azure 구독, ID 및 권한에 매핑할 수 있습니다.
프로젝트 기반 구성: 구성되지 않은 템플릿 목록이나 기존 IaC 설정을 사용하는 대신 개발 팀이 작업 중인 애플리케이션 유형별로 환경 정의를 구성합니다.
걱정할 필요가 없는 셀프 서비스: 미리 구성된 템플릿 세트를 사용하여 개발 팀이 앱 인프라(PaaS, 서버리스 등)를 빠르고 쉽게 만들 수 있도록 합니다. 이러한 리소스에 대한 비용을 추적하여 예산을 벗어나지 않도록 할 수도 있습니다.
기존 툴체인과의 통합: API를 사용하여 선호하는 CI 도구, IDE(통합 개발 환경) 또는 자동화된 릴리스 파이프라인에서 직접 환경을 프로비저닝합니다. 포괄적인 명령줄 도구를 사용할 수도 있습니다.
Microsoft Dev Box와 공유되는 구성 요소
Microsoft Dev Box 및 Azure Deployment Environments는 특정 아키텍처 구성 요소를 공유하는 보완 서비스입니다. Dev Box는 개발자에게 작업에 필요한 도구로 구성된 개발 상자라는 클라우드 기반 개발용 워크스테이션을 제공합니다. 개발자 센터와 프로젝트는 두 서비스 모두에 공통적이며 엔터프라이즈에서 리소스를 구성하는 데 도움이 됩니다.
Deployment Environments를 구성할 때 Dev Box 리소스 및 구성 요소가 표시될 수 있습니다. Dev Box 기능에 관한 정보 메시지가 표시될 수도 있습니다. Dev Box 기능을 구성하지 않는 경우 이러한 메시지를 무시해도 됩니다.