다음을 통해 공유


DevOps 도구 체인

DevOps 도구 체인은 DevOps 팀이 전체 제품 수명 주기에 걸쳐 협업하고 주요 DevOps 기본 사항을 다룰 수 있도록 하는 도구 모음입니다.

DevOps 도구 체인에 포함된 도구는 계획, 연속 통합, 지속적인 업데이트, 작업, 협업 및 피드백을 위한 통합 단위로 작동합니다. DevOps 기술 에코시스템 정의에서 여러 DevOps 단계에 걸쳐 DevOps 기술의 몇 가지 예를 검토할 수 있습니다.

DevOps 도구 체인 고려 사항

  • 도구 체인을 선택할 때 DevOps의 프로세스는 조직 전체에서 이미 사용 중일 수 있습니다. 팀의 요구 사항에 적합한 기술 채택과 조직 전체에서 다른 유형의 DevOps 에코시스템을 표준화하고 방지하는 목표 간에 적절한 균형을 찾아야 합니다.

  • 다양한 종류의 DevOps 도구 체인을 채택할 수 있습니다.

    • 올인원: 다른 타사 도구와 통합되지 않을 수 있는 완전한 솔루션을 제공합니다. 올인원 도구 체인은 DevOps 과정을 시작하는 조직에 유용할 수 있습니다. 예: 전체 스택 Azure DevOps 도구 체인.
    • 사용자 지정: 팀이 알고 있고 이미 사용 중인 기존 도구를 더 넓은 DevOps 도구 체인으로 가져와 혼합할 수 있습니다. 이러한 유형의 도구 체인은 화면 간을 전환하고, 여러 위치에 로그인하고, 도구 간에 정보를 공유하는 데 불필요한 시간을 소비하지 않도록 하기 위해 통합해야 합니다. 예: Azure DevOps 및 GitHub 도구 체인.
  • 정기적으로 업데이트되고 이메일 또는 온라인 포털을 통해 필요할 때마다 지원을 받을 수 있는 도구 체인을 사용하는 것이 좋습니다. 이는 중요한 시장 진출 경로에 있는 모든 제품 또는 서비스에 대한 요구 사항입니다.

계획

  • 연속 계획 사례를 지원하는 도구를 채택하는 것이 좋습니다.
    • 릴리스 계획
    • 에픽 및 기능 식별
    • 우선 순위 지정
    • 예측
    • 사용자 스토리 정의
    • 백로그 구체화
    • 스프린트 계획
    • 데일리 스크럼
    • 스프린트 검토
    • 회고

연속 통합 및 지속적인 업데이트

  • CI(지속적인 통합)/CD(지속적인 업데이트)를 구현할 때 다음을 지원하는 도구를 채택하는 것이 좋습니다.
    • 버전 제어 시스템. 프로젝트의 모든 항목은 Git과 같은 단일 버전 제어 리포지토리(예: 코드, 테스트, 데이터베이스 스크립트, 빌드 및 배포 스크립트, 애플리케이션 생성, 설치, 실행 및 테스트하는 데 필요한 모든 항목)에 체크 인해야 합니다.
    • 분기 전략.
    • 자동화된 빌드.
  • 리포지토리 선택은 데이터 주권/상주 요구 사항의 영향을 받습니다. 데이터를 미국 이외의 국가/지역에서 로컬로 호스트해야 하는 경우 GitHub Repos를 사용할 수 없을 때 Azure DevOps 리포지토리가 필요합니다.
  • 리소스를 프로비전하는 데 필요한 수동 구성의 양을 최소화하려면 IaC(Infrastructure as Code)를 채택하는 것이 좋습니다. IaC를 사용하면 테스트 및 버전 관리와 같은 소프트웨어 엔지니어링 사례를 적용하여 인프라 및 배포를 자동화하고, 일관되며, 반복 가능하게 만들 수 있습니다. 유지 관리하는 다른 코드와 마찬가지로 소스 제어 하에 스크립트와 템플릿을 유지합니다.
  • 코드 검색 도구를 채택하여 코드 결함을 최대한 빨리 감지할 수 있습니다. 배포(예: "what-if" 함수) 전에 변경 내용의 유효성을 검사하고 확인하는 배포 전 검사를 포함합니다.
  • CI/CD 도구는 제품 출시 시간을 단축합니다. 작업을 병렬화하고 클라우드 호스팅 인프라에서 탄력적 확장성을 활용할 수 있는 도구는 CI/CD 프로세스의 성능을 향상시킵니다.
  • DevOps 성능 측정을 지원하는 CI/CD 도구 기능을 사용하는 것이 좋습니다. 대시보드 및 보고는 리드 타임, 주기 시간, 작업 속도 등과 같은 개발 프로세스의 측면을 추적할 수 있습니다.

지속적인 운영

지속적인 운영은 조직이 중요한 서비스 또는 함수의 중단 없이 제공을 통해 내부 시스템과 고객 간의 출력 연속성을 유지하는 데 도움이 되는 초점입니다. 지속적인 운영의 목표는 다음과 같습니다.

  • 계획된 가동 중지 시간 또는 예약된 유지 관리, 용량 최적화 및 배포와 같은 중단의 필요성을 줄이거나 제거합니다.
  • 사람, 프로세스 및 도구의 세 가지 측면에서 시스템의 전반적인 안정성과 복원력을 높입니다.

클라우드 네이티브 도구를 사용하여 다음을 수행합니다.

  • 서비스 성능 및 가용성에 대한 주요 메트릭을 모니터링합니다.
  • 디지털 환경 및 고객 인사이트를 얻습니다.
  • 인시던트, 시스템 복구 또는 크기 조정에 대한 인텔리전스 기반 응답을 생성합니다.
  • 자동 관리 유지 관리 및 배포 또는 시스템 업데이트와 같은 작업을 자동화합니다.
    • Azure Automation은 문제를 진단하고 해결하는 이벤트 기반 자동화를 만드는 데 사용할 수 있는 클라우드 네이티브 도구입니다.

협업 및 피드백

  • 신속한 피드백 루프는 CI/CD 프로세스의 핵심입니다. CI/CD 도구는 피드백을 사용하여 CI/CD 워크플로 논리의 조건을 해결하고 일반적으로 대시보드를 통해 사용자에게 정보를 다시 표시합니다.

  • 이메일 알림 지원 및 IDE 또는 통신 플랫폼과의 통합을 통해 대시보드를 확인하지 않고도 발생하는 일에 대한 정보를 지속적으로 알 수 있습니다. 경고가 너무 많으면 백그라운드 노이즈로 변환되므로 수신하는 경고를 유연하게 구성할 수 있는지 확인합니다.

  • 협업을 위해 선택한 도구는 다음과 같은 협업 사례를 지원해야 합니다.

    • Kanban 협업
    • Wiki 콘텐츠 협업
    • ChatOps 협업
    • 단체방

Azure 랜딩 존에 대한 DevOps 도구 체인 권장 사항

Azure 랜딩 존 구현을 위한 DevOps 도구 체인은 앞에서 설명한 모든 DevOps 단계를 고려해야 합니다.

  • 계획
  • CI/CD(Infrastructure as Code와 같은 자동화 기능 포함)
  • 작업
  • 협업 및 피드백

랜딩 존 배포에 대한 지침과 랜딩 존 채택 선택에서 구현 옵션을 선택하기 위한 고려 사항을 검토합니다.

선택한 방법론(소규모 및 확장 또는 엔터프라이즈 규모 시작)에 관계없이 기업이 DevOps 워크플로 및 도구 체인을 디자인할 때 따르는 경향이 있는 몇 가지 일반적인 토폴로지가 있습니다.

  • 전체 스택 Azure DevOps 도구 체인: 이미 Microsoft 에코시스템에 많은 투자를 하고 있는 기업의 경우 이 토폴로지를 통해 Microsoft 제품과 서비스 간의 네이티브 통합을 최대한 활용하고 주요 프로세스를 간소화할 수 있습니다.
  • Azure DevOps 및 GitHub 도구 체인: 이 토폴로지를 통해 Azure와 GitHub의 장점을 잘 통합된 솔루션의 일부로 사용할 수 있습니다.

전체 스택 Azure DevOps 도구 체인

전체 스택 Azure DevOps 도구 체인의 다이어그램.

DevOps 단계 도구
계획 Azure Boards는 계층적 백로그, 사용자 지정 가능한 Kanban 보드, 풍부한 프로세스 사용자 지정, 팀 대시보드 및 사용자 지정 보고를 포함하여 개발자 및 기타 가상 사용자에게 강력하고 유연한 계획 기능을 제공합니다.
CI/CD Azure Repos를 사용하면 프라이빗 Git 리포지토리를 만들 수 있으며 다양한 Git 클라이언트, 분기 전략 및 보호를 지원합니다. Azure Repos는 또한 유럽 규정을 준수할 수 있도록 클라우드에서 지역화된 데이터 상주를 제공합니다. Azure Pipelines를 통해 고객은 고급 테스트 보고를 포함하여 CI/CD에 대한 자동화된 파이프라인을 설정할 수 있으며 다단계 파이프라인에 대한 강력한 지원을 제공합니다. Azure Pipelines의 세분화된 권한, 게이트, 사용자 지정 검사 및 자동화된 테스트 결과 보고를 통해 조직에서 보안, 규정 준수 및 안전한 배포 모범 사례를 적용하고 병렬 단계 실행 및 확장성을 지원할 수 있습니다. Azure Artifacts는 패키지를 저장하고 보안을 위해 각 패키지를 검토하고 유효성을 검사하는 피드를 제공하며 세분화된 권한 제어 및 감사를 제공합니다. Azure DevOps의 Azure Test Plans는 탐색, 수동 및 사용자 승인 테스트를 위한 브라우저 기반 테스트 관리 솔루션을 제공합니다. Azure Test Plans 사용자는 일반적으로 계획 및 프로젝트 관리에 Azure Boards를 사용합니다. 사용자 스토리 및 기타 요구 사항을 테스트 사례에 연결하고 테스트를 통해 발견된 버그를 문서화할 수 있습니다. 자격 증명 스캐너, 오픈 소스 스캐너, 버그 및 취약성 스캐너 등의 도구를 사용하여 정적 코드 분석을 개선하기 위해 DevOps용 Marketplace 확장을 채택합니다.
작업 Azure 대시보드 및 보고는 주요 서비스 성능 메트릭을 모니터링하는 데 도움이 되는 사용자 지정 보고를 제공합니다. Azure DiagnosticsApplication Insights는 Azure 리소스의 상태를 추적하는 표준 방법입니다. Azure Monitor는 중앙 집중식 모니터링 및 관리를 제공합니다. Azure Automation을 사용하여 문제를 진단하고 해결하는 이벤트 기반 자동화를 만들 수 있습니다.
협업 및 피드백 Azure DevOps Wiki를 사용하면 다른 팀의 구성원과 정보를 공유할 수 있으며 콘텐츠 및 구조에 대한 공동 편집을 지원합니다. Azure Boards는 Kanban 협업 및 백로그 항목의 의견 및 토론에 대한 지원을 제공합니다. 완전한 팀 협업 환경을 위해 Microsoft Teams를 Azure DevOps와 통합할 수 있습니다.

Azure DevOps 및 GitHub 도구 체인

Azure DevOps 및 GitHub 도구 체인의 다이어그램.

DevOps 단계 도구
계획 Azure Boards는 계획, 리포지토리 관리, 데이터 시각화 및 계층적 작업 항목 구성을 위한 안정적이고 확장 가능한 솔루션을 제공합니다. GitHub와 통합되므로 작업 항목과 GitHub 커밋을 연결할 수 있습니다. 또한 강력하고 유연한 Azure Boards 사용자 지정 엔진으로 빌드하는 간단한 기본 워크플로든 사용자 지정 워크플로든 관계없이 이상적인 워크플로를 선택할 수 있습니다. 데이터를 시각화해야 하는 경우 Azure Boards를 통해 사용자 지정 대시보드를 쉽게 빌드 및 구성하고 프로젝트 수명 주기 전체에서 진행 상황을 모니터링할 수 있습니다.
CI/CD GitHub RepoGHAS(GitHub Advanced Security)를 포함하는 GitHub의 GHE(GitHub Enterprise) 버전을 사용합니다. GHAS에는 CodeQL, 코드 검사, 비밀 검사종속성 검토가 포함됩니다. 또한 GHE는 코드를 개발하는 데 사용할 수 있고 조직에서 일반적으로 전체 스택 Azure DevOps 시나리오에 포함하는 Visual Studio Code를 대체할 수 있는 클라우드 IDE인 Codespaces를 제공합니다. 리포지토리가 GitHub에 있는 경우 GitHub Actions를 사용하여 빌드되지 않은 워크플로를 자동화할 수 있습니다. GitHub 외부에서 코드에 액세스하거나 워크플로 템플릿 및 빌드 파이프라인에 대한 중앙 집중식 관리가 필요한 더 복잡한 시나리오가 있는 경우 Azure Pipelines를 채택합니다. Azure Boards의 경우 GitHub 리포지토리와 Azure Pipelines를 통합할 수 있습니다. Azure DevOps 및 GitHub 통합에 대해 알아보려면 Azure DevOps 및 GitHub 작업을 참조하세요. GitHub Packages는 고유한 패키지를 비공개 또는 공개적으로 호스트할 수 있도록 해 주는 소프트웨어 패키지 서비스입니다. GitHub는 Docker 또는 OCI 이미지를 호스팅하기 위한 컨테이너 레지스트리 지원을 제공합니다. 패키지를 게시, 설치 또는 삭제하고 패키지 수명 주기 관리를 안전하게 유지하려면 액세스 토큰이 필요합니다. 패키지를 자동화하기 위해 GitHub Actions, GitHub API 및 웹후크와 GitHub 패키지를 통합하여 코드, CI 및 배포가 모두 하나의 인터페이스에 포함되는 DevOps 워크플로를 만들 수 있습니다.
작업 GitHub Insights는 소프트웨어 제공 프로세스를 이해하고 개선하는 데 도움이 되도록 GitHub Enterprise Server 인스턴스의 데이터를 기반으로 하는 분석 보고서를 제공합니다. 랜딩 존 진단 및 관리의 경우 전체 스택 Azure DevOps 시나리오에서 권장하는 Azure 서비스를 사용합니다.
협업 및 피드백 GitHub Discussions를 사용하여 질문, 아이디어, 대화, RFC(의견 요청), 리소스 계획 및 공지를 공유할 수 있습니다. Azure Boards를 사용하여 사용자 지정 대시보드를 쉽게 빌드 및 구성하고 프로젝트 수명 주기 전체에서 진행 상황을 모니터링할 수 있습니다. 완전한 팀 협업 환경을 위해 Microsoft Teams를 채택합니다.