다음을 통해 공유


DevOps 팀 토폴로지

IT 팀과 애플리케이션 팀 간의 역할, 책임 및 신뢰 분산은 대규모 클라우드 채택과 관련된 운영 변환에 가장 중요합니다.

IT 팀은 제어를 유지하기 위해 노력합니다. 애플리케이션 소유자는 민첩성을 최대화하려고 합니다. 이러한 두 목표 간에 궁극적으로 설정하는 균형은 클라우드 운영 모델의 성공에 큰 영향을 줍니다.

콘웨이의 법에 따르면, 팀은 통신 구조에 따라 아키텍처를 생산합니다. 자율성과 제어 사이의 필요한 균형을 달성하기 위해 노력할 때 이 원칙을 이해하는 것이 중요합니다. 시스템을 디자인하는 모든 조직(광범위하게 정의됨)은 해당 조직의 통신 구조의 복사본인 디자인 구조를 생성합니다.

콘웨이의 법칙을 보여주는 다이어그램.

DevOps 관점에서 조직은 고객의 요구에 신속하게 대응하도록 최적화해야 합니다. 애플리케이션 및 시스템을 소유, 디자인 및 구현하는 팀은 다음과 같은 특성을 가진 아키텍처에서 가장 높은 수준의 자율성을 찾습니다.

  • 지속적인 변경을 지원하는 진화 아키텍처
  • 배포 가능성
  • 테스트 용이성

콘웨이의 해결책은 콘웨이의 법칙을 뛰어넘는 것입니다. 조직에서 특정 구조를 따라 서비스 및 제품을 생산하고 최적화하려는 경우 조직 구조를 재고해야 합니다. 원하는 아키텍처를 달성하기 위해 팀과 조직 구조를 개선합니다.

역방향 콘웨이 기동의 도형.

이 원칙은 DevOps의 전체 분야를 달성하기 위해 팀이 소유한 모든 애플리케이션, 시스템 또는 플랫폼의 엔드 투 엔드를 담당하는 의도적으로 디자인된 팀 토폴로지로 이어집니다.

다음 표에서는 이러한 팀의 간소화된 분류를 제공합니다.

팀 유형 정의
애플리케이션 워크로드 팀 이러한 팀은 비즈니스 도메인의 세그먼트에 대한 직접적인 비즈니스 결과를 유도하는 애플리케이션을 빌드합니다. Azure 랜딩 존의 컨텍스트에서 이러한 팀은 애플리케이션 워크로드의 종단 간 수명 주기를 담당합니다.
플랫폼 팀들 이러한 팀은 강력한 내부 플랫폼을 구축하여 배달을 가속화하고 애플리케이션 워크로드 팀의 인지 부하를 줄입니다. Azure 랜딩 존의 컨텍스트에서 이러한 팀은 Azure 랜딩 존의 엔드 투 엔드 수명 주기를 담당합니다.
팀 활성화 이러한 팀은 DevOps와 같은 특수한 기능을 가진 다른 팀을 지원하여 기술 격차를 극복하는 데 도움을 줍니다.

디자인 고려 사항

  • Azure 랜딩 존 수명 주기를 설계하고, 빌드하며, 프로비전하고, 관리하고, 유지 보수할 기능 간 플랫폼 팀을 구축하세요. 이 팀은 중앙 IT 팀, 보안, 규정 준수 및 사업부의 구성원을 포함시켜 광범위한 엔터프라이즈가 표현되도록 할 수 있습니다. 안티패턴 를 피하도록 하세요.

  • 기존 DevOps 기능이 없는 애플리케이션 및 플랫폼을 지원하기 위해 DevOps 함수를 제공할 수 있는 지원 팀 또는 개발 기능이 최소인 레거시 애플리케이션과 같은 비즈니스 사례를 설정할 수 있는 지원 팀을 설정하는 것이 좋습니다.

  • 애플리케이션 작업팀의 민첩성을 저해할 수 있으므로 이들을 중앙 아티팩트로 제한하지 마세요. 정책 기반 거버넌스 및 Azure 역할 기반 액세스 제어(Azure RBAC)를 사용하여 일관된 기준 구성을 적용하고, 애플리케이션(사업 부서) 팀이 혁신을 추구하면서도 미리 정의된 템플릿을 활용할 수 있도록 유연성을 가질 수 있습니다.

  • 애플리케이션 팀이 애플리케이션 리소스 인스턴스화 또는 관리에 중앙 프로세스 또는 프로비전 파이프라인을 사용하도록 강제하지 마세요. 애플리케이션 배달을 위해 이미 DevOps 파이프라인을 사용하는 기존 팀은 여전히 현재 도구를 사용할 수 있습니다. Azure Policy를 사용하여 조직의 표준을 시행하고 대규모로 규정 준수를 평가하며, DevOps 프로세스를 위한 보안 고려 사항을 해결할 수 있습니다.

  • DevOps 모델의 일괄적 적용은 유능한 DevOps 팀을 즉시 구축하지 않습니다.

  • 엔지니어링 기능 및 리소스에 대한 투자는 매우 중요합니다.

  • 일부 레거시 애플리케이션에 대한 애플리케이션 팀에는 DevOps 전략에 부합하는 데 필요한 엔지니어링 리소스가 없을 수 있습니다.

디자인 권장 사항

다음 섹션에는 팀 토폴로지 설계를 안내하는 디자인 권장 사항이 포함되어 있습니다.

클라우드 운영 모델에 맞춰 팀 토폴로지를 조정하십시오.

팀의 토폴로지를 원하는 클라우드 운영 모델에 맞추도록 하십시오.

팀 구조에서 발생할 수 있는 문제를 완전히 이해할 수 있도록 운영 적합성 검토 위한 핵심 프로세스를 설정합니다.

플랫폼 팀에 대한 함수 정의

다음 목록에서는 Azure 랜딩 존을 담당하는 플랫폼 팀에 권장되는 함수 집합을 제공합니다.

  • 아키텍처 거버넌스
  • 필요한 네트워크, ID 및 액세스 관리 정책의 구독 프로비저닝 및 위임
  • 플랫폼 관리 및 모니터링(전체론적)
  • 비용 관리(전체론적)
  • 플랫폼-애즈-코드(템플릿, 스크립트 및 기타 자산의 관리)
  • Microsoft Entra 테넌트 내에서 Microsoft Azure에 대한 전체 작업(서비스 주체 관리, Microsoft Graph API 등록 및 역할 정의)
  • Azure RBAC(전체론적)
  • 중앙 서비스에 대한 키 관리(간단한 메일 전송 프로토콜 및 도메인 컨트롤러)
  • 정책 관리 및 적용(전체론적)
  • 보안 모니터링 및 감사(전체론적)
  • 네트워크 관리(전체론적)

애플리케이션 워크로드 팀에 대한 함수 정의

다음 목록에서는 애플리케이션 워크로드를 담당하는 애플리케이션 팀에 권장되는 함수 집합을 제공합니다.

  • DevOps 모델을 통해 애플리케이션 리소스 만들기 및 관리
  • 데이터베이스 관리
  • 애플리케이션 마이그레이션 또는 변환
  • 애플리케이션 관리 및 모니터링(애플리케이션 리소스)
  • Azure RBAC(애플리케이션 리소스)
  • 보안 모니터링 및 감사(애플리케이션 리소스)
  • 비밀 및 키 관리(애플리케이션 키)
  • 비용 관리(애플리케이션 리소스)
  • 네트워크 관리(애플리케이션 리소스)

팀을 가능하게 하는 함수 정의

다음 목록에서는 다른 팀을 지원하는 지원 기반 팀에 권장되는 기능 집합을 제공합니다.

  • 전체 대상 클라우드 운영 모델(예: DevOps)과 일치하도록 조직 전체에서 올바른 전문 지식을 습득하는 데 도움이 되는 수평(기능 간) 지침 및 기능 정의
  • 다른 팀이 필요한 수준의 전문 지식에 도달할 수 있도록 지원, 교육 및 코칭
  • 귀하의 애플리케이션 또는 플랫폼 팀을 위한 공통의 재사용 가능한 템플릿 및 라이브러리 집합을 설정하고, Azure 확인된 모듈같은 InnerSourcing을 촉진합니다.

팀 간의 상호 작용 모드 정의

팀 간의 상호 작용 목표는 다음과 같습니다.

  • 자율성 달성
  • 종속성 차단 해제
  • 낭비 시간 최소화
  • 병목 현상 방지

팀 토폴로지 세 가지 팀 상호 작용 모드를 간략하게 설명합니다.

상호 작용 모드 묘사
협업 팀들은 긴밀하게 협력합니다.
X-as-a-Service(서비스로서의 X) 팀은 제3자 공급업체와의 상호작용처럼 최소한의 협력만으로 다른 팀에 어떤 것을 소비하거나 제공합니다.
촉진하기 팀은 다른 팀이 장애물을 제거하는 데 도움을 주거나 도움을 받습니다.