0Pricing
Cloud & IT Cert Prep · レッスン

Azure DevOps Services の概要

5 つの Azure DevOps サービスを確認し、組織とプロジェクトを作成して、コード リポジトリを接続し、作業項目とコミットをまとめて追跡できるようにします。

「Azure DevOps Services の概要」はCoddyKit上の無料Cloud & IT Cert Prepレッスンです。 これはレッスン1/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはCloud & IT Cert Prep学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Cloud & IT Cert Prepコースには全4レッスンが含まれています。

Azure DevOps とは

Azure DevOpsは、ソフトウェア提供ライフサイクル全体をカバーする、Microsoft のクラウド ホスト型開発者ツール スイートです。プロジェクト管理、ソース管理、ビルドとリリースの自動化、テスト管理、成果物の保存を 1 つの統合プラットフォームにまとめています。Azure DevOps を使用するチームは、1 つのサービスからスプリントの計画、コードのコミット、自動ビルドの実行、本番環境へのデプロイ、品質メトリックの追跡を行えます。また、他の Azure サービスとの高度な統合も利用できます。

Azure DevOps の 5 つのサービス

Azure DevOps は 5 つのサービスで構成されています。Azure Boards(エピック、ストーリー、タスク、バグなどのアジャイル作業項目の追跡)、Azure Repos(無制限の Git リポジトリまたは従来の TFVC)、Azure Pipelines(任意の言語、プラットフォーム、クラウドに対応した CI/CD 自動化)、Azure Test Plans(手動テストと探索的テスト、テスト ケース、品質メトリック)、Azure Artifacts(NuGet、npm、Maven、Python、コンテナー イメージ向けのユニバーサル パッケージ フィード)です。

組織とプロジェクト

Azure DevOps の階層は組織から始まります。組織は Azure AD テナントに関連付けられた最上位のコンテナーで、通常は会社名が付けられます。組織内にはプロジェクトを作成し、それぞれをソフトウェア製品またはチームに対応させます。各プロジェクトには、独自の Boards、Repos、Pipelines、Test Plans、Artifacts が用意されます。アクセス制御、課金、設定は組織レベルで構成しますが、プロジェクトごとに上書きすることもできます。

# Create an Azure DevOps project via CLI
# First install the Azure DevOps extension
az extension add --name azure-devops

# Configure defaults
az devops configure --defaults organization=https://dev.azure.com/myorg

# Create a new project
az devops project create \
  --name MyProject \
  --description 'E-commerce platform' \
  --visibility private \
  --process Agile

Azure Boards: アジャイル計画

Azure Boardsは 3 つのプロセス テンプレートをサポートしています。Basic(シンプルな Issues と Tasks)、Agile(Epics、Features、User Stories、Tasks、Bugs)、Scrum(Epics、Features、Product Backlog Items、Tasks、Bugs)です。作業項目は構成可能な状態を順に移動します。カンバン ボードは進行中の作業を視覚化し、スプリント バックログはキャパシティを計画し、バックログは未着手の作業全体に優先順位を付けます。作業項目をコミット、pull request、テスト ケースにリンクすることで、完全な追跡可能性を確保できます。

# Create a work item (User Story) via CLI
az boards work-item create \
  --title 'Add payment processing' \
  --type 'User Story' \
  --description 'As a customer I want to pay by credit card' \
  --assigned-to developer@contoso.com \
  --project MyProject

# List open work items
az boards work-item list \
  --project MyProject \
  --query "[?fields.\"System.State\"=='Active']"

Azure Repos: ソース管理

Azure Reposは、ブランチ ポリシー、pull request ワークフロー、コード レビュー ツールを備えた無制限のプライベート Git リポジトリを提供します。ブランチ ポリシーは、保護されたブランチに対して品質ゲートを適用します。マージする前に、最小レビュー担当者数、ビルド検証の成功、リンクされた作業項目、コメントの解決を必須にできます。各リポジトリは Azure Pipelines と直接統合され、ブランチへの push や pull request をトリガーとしてビルドとデプロイを自動的に実行できます。

# Clone an Azure Repos Git repository
git clone https://myorg@dev.azure.com/myorg/MyProject/_git/MyRepo

# Set branch policies via CLI
az repos policy required-reviewer create \
  --branch main \
  --branch-match-type exact \
  --project MyProject \
  --repository-id <repo-id> \
  --blocking true \
  --enabled true \
  --minimum-approver-count 2 \
  --allow-downvotes false

Azure Pipelines: CI/CD 自動化

Azure Pipelinesは、任意の言語で記述されたアプリケーションをビルド、テストし、Azure、AWS、GCP、オンプレミスなど任意のプラットフォームにデプロイする CI/CD サービスです。パイプラインは、コードと同じリポジトリに保存された YAML ファイルで定義します。主な概念には、stages(Build、Test、Deploy などの論理的なフェーズ)、jobs(並列実行の単位)、steps(個々のタスク)があります。Azure Pipelines は、オープンソース プロジェクトに対して毎月 1,800 分の無料ビルド時間を提供します。

# azure-pipelines.yml (minimal CI pipeline)
trigger:
  branches:
    include:
    - main

pool:
  vmImage: ubuntu-latest

stages:
- stage: Build
  jobs:
  - job: BuildJob
    steps:
    - task: NodeTool@0
      inputs:
        versionSpec: '18.x'
    - script: npm install && npm run build
      displayName: 'Install and Build'
    - script: npm test
      displayName: 'Run unit tests'

Azure Artifacts: パッケージ管理

Azure Artifactsは、NuGet(.NET)、npm(Node.js)、Maven(Java)、pip(Python)、Universal Packages(任意のバイナリ)向けに、バージョン管理されたパッケージ フィードをホストします。公開レジストリに公開することなく、プロジェクト間またはチーム間で内部ライブラリを共有できます。アップストリーム ソースを使用すると、公開レジストリ(npmjs.com、nuget.org)をフィード経由でプロキシできます。これにより、すべてのパッケージに対する単一のエンドポイント、依存関係の監査およびキャッシュが可能になります。

# Publish an npm package to Azure Artifacts
npm install -g vsts-npm-auth
vsts-npm-auth -config .npmrc

# .npmrc file:
# registry=https://pkgs.dev.azure.com/myorg/MyProject/_packaging/MyFeed/npm/registry/

# Publish
npm publish --registry https://pkgs.dev.azure.com/myorg/MyProject/_packaging/MyFeed/npm/registry/

パイプライン エージェント: Microsoft ホステッドとセルフホステッド

パイプラインは、パイプライン ジョブを実行する VM またはコンテナーであるエージェント上で実行されます。Microsoft ホステッド エージェントは、Microsoft が提供する、完全に管理された事前構成済みの VM(Ubuntu、Windows、macOS)であり、セットアップは不要です。セルフホステッド エージェントは、自社のインフラストラクチャ(オンプレミスまたは Azure VM)上で実行され、環境、事前インストールするツール、プライベート ネットワークへのアクセスを制御できます。ビルドで VNet へのアクセス、特殊なハードウェア、またはクラウド VM よりも短い起動時間が必要な場合は、セルフホステッド エージェントを使用してください。

# Register a self-hosted agent on a Linux VM
# 1. Download the agent package
curl -O https://vstsagentpackage.azureedge.net/agent/3.x/vsts-agent-linux-x64-3.x.x.tar.gz
mkdir myagent && tar xzf vsts-agent-linux-x64-3.x.x.tar.gz -C myagent && cd myagent

# 2. Configure the agent
./config.sh --url https://dev.azure.com/myorg --auth pat --token <PAT>

# 3. Run as a service
sudo ./svc.sh install && sudo ./svc.sh start

環境と承認

Azure Pipelines の環境は、デプロイ先(開発、ステージング、本番)を表し、デプロイ履歴を追跡します。環境には承認とチェックのゲートを設定できます。たとえば、本番環境へのデプロイにはリリース マネージャーによる手動承認が必要です。その他のチェックには、業務時間のゲート(09:00~17:00 の間のみデプロイ可能)、待機タイマー、Azure Monitor のアラートチェック(重大なアラートが発生している場合はデプロイしない)などがあります。これにより、チームはリスクの高い本番デプロイを統制できます。

# YAML: deployment job targeting an environment with approval
- stage: DeployProd
  jobs:
  - deployment: DeployToProduction
    environment:
      name: Production       # Requires manual approval in Azure DevOps portal
      resourceType: VirtualMachine
    strategy:
      runOnce:
        deploy:
          steps:
          - task: AzureWebApp@1
            inputs:
              appName: myapp-prod
              package: '$(Pipeline.Workspace)/drop/app.zip'

サービス接続

サービス接続には、外部サービス(Azure サブスクリプション、GitHub、Docker Hub、SonarQube、Kubernetes クラスター)への認証済み接続を保存します。これにより、パイプラインで YAML に認証情報を埋め込まずにサービスを利用できます。Azure Resource Manager サービス接続では、サービス プリンシパルまたはマネージド ID を使用して Azure リソースをデプロイします。すべての認証情報は暗号化され、プロジェクトまたはパイプラインの範囲に限定されるため、パイプライン ログへの認証情報の露出を防げます。

# Create an Azure Resource Manager service connection via CLI
az devops service-endpoint azurerm create \
  --azure-rm-service-principal-id '<AppId>' \
  --azure-rm-subscription-id '<SubId>' \
  --azure-rm-subscription-name 'MySubscription' \
  --azure-rm-tenant-id '<TenantId>' \
  --name 'AzureProductionSC' \
  --project MyProject

# Use in pipeline YAML
# - task: AzureCLI@2
#   inputs:
#     azureSubscription: 'AzureProductionSC'
#     scriptType: bash
#     scriptLocation: inlineScript

Azure DevOps と GitHub の比較

Microsoft はAzure DevOpsとGitHubの両方を所有しており、どちらも CI/CD をサポートしています。Azure DevOps は、Microsoft ツールを広範に導入している企業や、Azure Boards、Test Plans、Artifacts を必要とする企業に適しています。GitHub は、オープンソース プロジェクト、開発者中心のワークフロー、すでに GitHub リポジトリを使用しているチームに適しています。GitHub Actionsは GitHub の CI/CD プラットフォームです。Azure Pipelines は Azure Repos と GitHub の両方と統合できるため、GitHub リポジトリで Azure Boards と Artifacts を使用することもできます。

理解度チェック

このレッスンで扱った Microsoft Azure Fundamentals(AZ-900)の概念について、理解度を確認します。

レッスンのまとめ

このレッスンでは、Azure DevOpsが計画(Boards)、ソース管理(Repos)、CI/CD(Pipelines)、テスト(Test Plans)、パッケージ管理(Artifacts)を対象とする 5 つの統合サービスを提供すること、承認付きの環境によってリスクの高いデプロイを制御できること、そしてサービス接続によってパイプラインで使用する外部サービスの認証情報を安全に保存できることを学びました。次は、Azure Pipelines を使用した CI パイプラインの構築について学びます。

よくある質問

「Azure DevOps Services の概要」レッスンは無料ですか?

はい。「Azure DevOps Services の概要」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Cloud & IT Cert Prepコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Cloud & IT Cert Prepコースには全4レッスンが含まれています。

「Azure DevOps Services の概要」で何を学びますか?

5 つの Azure DevOps サービスを確認し、組織とプロジェクトを作成して、コード リポジトリを接続し、作業項目とコミットをまとめて追跡できるようにします。 ブラウザで直接実行するハンズオンコードでCloud & IT Cert Prepを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

Cloud & IT Cert Prepを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのCloud & IT Cert Prepは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン1/4です。

「Azure DevOps Services の概要」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このCloud & IT Cert Prepレッスンでコードを書いて実行できますか?

はい。すべてのCloud & IT Cert Prepレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. Azure DevOps Services の概要
  2. Azure Pipelines で CI パイプラインを構築
  3. Azure への継続的デプロイ
  4. Azure での GitHub Actions
← Cloud & IT Cert Prepに戻る