IaaS ソリューションの DevTest と DevOps

Azure Active Directory
Boards
Azure DevOps
DevTest Labs
Key Vault
Monitor
Pipelines
ポリシー

"サービスとしてのインフラストラクチャ (IaaS) " は、仮想化されたコンピューティング リソースを提供するクラウド コンピューティングの 1 つの形式です。Infrastructure as a service (IaaS) is a form of cloud computing that provides virtualized computing resources. "開発とテスト (DevTest) " は、開発の早い段階でテストを統合するソフトウェア開発アプローチです。Development testing (DevTest) is a software development approach that integrates testing early in the development phase. このソリューションでは、IaaS アプリケーションの DevTest 操作を構成して、仮想マシン (VM) と VM イメージの統合とデプロイの自動化により開発を迅速化しながら、開発およびテスト環境のコストとオーバーヘッドを削減できます。In this solution, configuring DevTest operations for an IaaS application reduces the cost and overhead of development and test environments, while facilitating faster development through automated virtual machine (VM) and VM image integration and deployment.

DevOps は、ソフトウェア開発と IT 運用を組み合わせて、開発サイクルを短縮し、高品質の継続的デプロイ (CD) を提供する一連のプラクティスです。DevOps is a set of practices that combine software development and IT operations to shorten the development cycle and provide high-quality continuous deployments (CD). DevTest 環境で Azure DevOps を使用すると、IaaS の開発プロセスが強化されると共に、開発に集中できるようになります。Using Azure DevOps with DevTest environments lends power and focus to the IaaS development process.

アーキテクチャArchitecture

IaaS アプリケーションの DevTest および DevOps の構成を示す図。

  1. 開発者は、開発環境を手動で構成する代わりに、プロジェクトに必要なライブラリ、ツール、ランタイムで事前構成された Windows Virtual Desktop イメージを使用できます。Instead of manually configuring development environments, developers can use Windows Virtual Desktop images, pre-configured with the libraries, tools, and runtimes they need for their projects. 開発者を Azure DevTest サブスクリプションに追加すると、DevTest 環境から適切な Windows Virtual Desktop イメージを利用できるようになります。Adding a developer to an Azure DevTest Subscription makes the appropriate Windows Virtual Desktop image available to them from the DevTest environment.

  2. ソース コードは GitHub リポジトリで入手でき、Azure DevOps とシームレスに統合されます。Source code is available in GitHub repos, which integrate seamlessly with Azure DevOps. Visual Studio 開発環境では、GitHub ソース コードの編集と、作業項目や pull request の追跡などの機能が組み合わされています。The Visual Studio development environment combines GitHub source code editing with features like work item and pull request tracking.

  3. Azure Pipelines により、GitHub リポジトリから自動化された継続的インテグレーション (CI) ビルドがトリガーされ、それらは DevTest 環境に自動的に配信されて、開発者のオーバーヘッドを抑えながら品質保証 (QA) テストに迅速に到達します。Azure Pipelines triggers automated continuous integration (CI) builds from GitHub repos and automatically delivers them to the DevTest environments, reaching quality assurance (QA) testing quickly with low developer overhead. Azure Pipelines により、Azure Key Vault が使用され、リリースとデプロイの構成に必要な資格情報や接続文字列などのシークレットが安全に使用されます。Azure Pipelines uses Azure Key Vault to securely consume secrets like credentials and connection strings required for release and deployment configurations.

  4. Azure Boards により、GitHub リポジトリに接続し直され、開発者はコードとタスクの両方を 1 か所で追跡できるようになります。Azure Boards connects back to the GitHub repos, letting developers track both code and tasks in one location. 自動テストでは、ビルドまたはリリースのエラーに関するバグも生成され、結果が開発サイクルにフィードバックされます。Automated testing also generates bugs for any build or release failures, feeding the results back into the development cycle.

  5. Azure Boards の作業項目は、自動テスト、手動による QA テスト、追加された機能から取得されます。Azure Boards work items come from automated testing, manual QA testing, and added features. 開発者は、機能ブランチを作成し、それらを作業項目に関連付けて開発を追跡し、開発ループのさらに多くのイテレーションを作成します。Developers create feature branches and associate them with work items to track development, creating more iterations of the development loop.

  6. Azure Pipelines により、ビルドが低コストの Azure DevTest Labs サブスクリプション環境にデプロイされ、開発者およびテスト担当者は VM をすばやくプロビジョニングできます。Azure Pipelines deploys builds to the low-cost Azure DevTest Labs subscription environments, where developers and testers can rapidly provision VMs. Azure Policy では、DevTest の VM 数とコストを管理および制限し、VM の使用状況を監視して分析情報と追跡を提供します。Azure Policy regulates and limits DevTest VM numbers and costs, and audits VM usage to provide insight and tracking.

    開発者は、マネージャーと管理者によって設定されたリソースおよびコストのパラメーターの範囲内で、必要に応じて可能な限り迅速に VM をラボ内に展開できます。Developers can deploy VMs as quickly as needed within the lab, while staying within resource and cost parameters set by managers and administrators. 低コスト ラボの柔軟性により、開発者は、必要なすべての環境を利用して、イテレーションを迅速に進めることができます。The flexibility of low-cost labs provides developers with all the environments they need for rapid iterative progress.

    テスト担当者は、専用の DevTest Labs 環境内で操作を行うことができ、開発チームとは別のテスト チームのラボにテスト用のイメージをプルできます。Testers can operate within their own DevTest Labs environment, pulling ready-for-test images into the test team's labs separately from the development team. 開発者とテスト担当者が DevTest Labs で並行して作業できるため、すぐにリリースできるイメージ バージョンのイテレーションが迅速化されます。The ability of developers and testers to work in parallel DevTest Labs contributes to rapid iteration of ready-to-release image versions.

  7. 開発された VM イメージがリリース状態に達すると、Azure Pipelines によってリリースがトリガーされます。これにより、仮想マシン スケール セットなどの宛先用のターゲット イメージが汎用化され、DevTest から運用環境にプロモートされます。As the developed VM images reach a release state, Azure Pipelines triggers releases, which generalize the targeted images for destinations like virtual machine scale sets, and promotes them out of DevTest and into a Production environment.

    ユーザー受け入れテスト (UAT) では、ステージングされた VM または仮想マシン スケール セットを運用環境にデプロイする前に検証します。User Acceptance Testing (UAT) validates a staged VM or virtual machine scale set before deployment to Production.

    通常、高コストでクライアント向けの運用環境へのリリースには承認が必要です。Approvals are usually required for releases to higher-cost, client-facing Production destinations. 運用環境は分離されたままで、不注意または未承認のデプロイから保護されています。Production remains isolated and protected from inadvertent or unapproved deployments.

このシナリオでは、サブスクリプションごとに個別の DevTest と運用 Azure Active Directory (Azure AD) を使用して、個別の関心の分離を作成します。This scenario uses a separate DevTest and Production Azure Active Directory (Azure AD) per subscription to create a distinct separation of concerns. コンプライアンス要件を満たすために、運用サブスクリプションの Azure AD には、DevTest Azure AD よりも少ない、複数のセクションにまたがるユーザーを含めることが必要になる場合があります。To meet compliance requirements, the Production subscription's Azure AD might need to include a smaller cross section of users than the DevTest Azure AD.

Azure Monitor は、複数のサブスクリプション間で機能し、運用環境と DevTest 環境の両方で VM を監視します。Azure Monitor works across subscriptions to monitor VMs in both the Production and DevTest environments.

コンポーネントComponents

  • Azure DevTest Labs により、環境を作成するために必要なすべてのツールとソフトウェアが提供されます。Azure DevTest Labs provides labs that have all the necessary tools and software to create environments. 開発者は、承認を待たずにリソースを効率的に自己管理できます。Developers can efficiently self-manage resources without waiting for approvals. DevTest Labs を使用すると、チームはコストを管理し、各ラボのリソース数を制限して、開発者がコストの制約内で自身のサンドボックスで操作するためのアクセス許可と柔軟性を与えることができます。With DevTest Labs, teams can control costs and regulate resources per lab, granting developers permission and flexibility to operate their sandboxes within cost constraints.

  • Azure VM Image Builder サービスでは、開発者がカスタマイズできるベースライン VM イメージが提供されます。Azure VM Image Builder service provides baseline VM images that developers can customize. このサービスは、イメージの作成とパッチの適用を容易にするもので、Azure Pipelines タスクとして呼び出すことができます。The service facilitates the creation and patching of images and can be called as an Azure Pipelines task.

  • Shared Image Gallery は、IaaS ソリューションの VM イメージのリポジトリとして機能します。Shared Image Gallery acts as a VM image repository for IaaS solutions. VM Image Builder を使用すると、Shared Image Gallery に直接ビルドできるため、VM ベースのアプリケーションのバージョン管理を行う Azure Pipelines の CI/CD プロセスが容易になります。VM Image Builder can build directly into a Shared Image Gallery, facilitating an Azure Pipelines CI/CD process of versioning the VM-based application.

  • GitHub は、バージョン管理とコラボレーションのためのコード ホスティング プラットフォームです。GitHub is a code hosting platform for version control and collaboration. GitHub リポジトリには、すべてのプロジェクト ファイルとそのリビジョン履歴が含まれます。A GitHub repository contains all project files and their revision history. 開発者は、リポジトリ内のコードの投稿、ディスカッション、管理を共同で行うことができます。Developers can work together to contribute, discuss, and manage code in the repository.

  • Azure Pipelines により、VM アプリケーションのイメージがデプロイされます。Azure Pipelines deploys the VM application images. Pipelines では、Azure Resource Manager (ARM) テンプレートを使用して、VM リソース自体をデプロイすることもできます。Pipelines can also deploy the VM resources themselves, through Azure Resource Manager (ARM) templates. このコードとしてのインフラストラクチャ は、ソース管理でき、CI/CD 用に構成できるため、インフラストラクチャを最新の状態に維持することが保証されます。This infrastructure-as-code can be source controlled and configured for CI/CD, ensuring that the infrastructure remains up to date.

  • Azure Key Vault では、API キー、パスワード、証明書などのシークレットが安全に格納され、シークレットへのアクセスが厳密に制御されます。Azure Key Vault securely stores and tightly controls access to secrets like API keys, passwords, and certificates. DevOps シナリオでの Key Vault の詳細については、「Azure での DevSecOps」を参照してください。For more information about Key Vault in DevOps scenarios, see DevSecOps in Azure.

  • Azure Boards は、ソフトウェア プロジェクトの作業を管理するためのサービスです。Azure Boards is a service for managing work for software projects. Azure Boards には、スクラムおよびかんばん手法のネイティブ サポート、カスタマイズ可能なダッシュボード、統合レポートなどの豊富な機能セットが用意されています。Azure Boards brings a rich set of capabilities, including native support for Scrum and Kanban methodologies, customizable dashboards, and integrated reporting.

  • Azure Active Directory (Azure AD) エンタープライズ ID プラットフォームによって、リソースへのユーザー アクセスを管理するためのシングル サインオンと多要素認証が提供されます。Azure Active Directory (Azure AD) enterprise identity platform provides single sign-on and multifactor authentication to govern user access to resources. このシナリオでは、サブスクリプションごとの個別の Azure AD によって、Azure ユーザー間で異なる関心の分離が作成されます。In this scenario, a separate Azure AD per subscription creates a distinct separation of concerns between Azure users.

  • Azure Policy により、組織の標準とコンプライアンスを満たすためにリソースが管理されます。Azure Policy governs resources to meet organizational standards and compliance. DevTest ロールでは、Azure Policy により、サブスクリプション内の VM の数とコストを管理および制限できます。In a DevTest role, Azure Policy can regulate and limit the number and costs of VMs in the subscription. 監査により、分析情報が提供され、DevTest VM の使用状況を追跡できます。Auditing can provide insights and track the usage of the DevTest VMs.

  • Azure Monitor は、複数のサブスクリプション間で機能し、運用環境と DevTest 環境の両方で VM を監視します。Azure Monitor can work across subscriptions to monitor VMs in both Production and DevTest environments. Azure Monitor を使用すると、VM オペレーティング システムのログ データだけでなくクラッシュ ダンプ ファイルも収集でき、Azure Security Center で表示するためにそれらを集計することができます。Azure Monitor can collect log data from VM operating systems as well as crash dump files, and aggregate them for viewing in Azure Security Center.

代替Alternatives

Azure VM Image Builder と Shared Image Gallery が動作しない状況では、イメージ ファクトリをセットアップして、CI/CD パイプラインから VM イメージをビルドし、イメージに登録されているすべての Azure DevTest Labs に自動的に配布できます。In situations where VM Image Builder and a Shared Image Gallery don't work, you can set up an image factory to build VM images from the CI/CD pipeline and distribute them automatically to any Azure DevTest Labs registered to those images. 詳細については、「Azure DevOps からイメージ ファクトリを実行する」を参照してください。For more information, see Run an image factory from Azure DevOps.

次のステップNext steps