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 AgileAzure 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 falseAzure 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: inlineScriptAzure 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フィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- Azure DevOps Services の概要
- Azure Pipelines で CI パイプラインを構築
- Azure への継続的デプロイ
- Azure での GitHub Actions