Azure Managed Service Column <Azure運用コラム>

Azure Pipelinesとは?Azureで効率的にCI/CD環境を構築する方法を解説

Category: 入門編

2022.04.07

DevOps とは?アプリケーション開発を迅速かつ安定的に行う方法を解説

近年、Web 技術の進展に伴い、サービス開発に一層のスピードが求められるようになっています。そのような背景で生み出されたのが「継続的インテグレーション/デプロイ( CI / CD )」という概念です。

CI / CD は、開発( Dev )と運用( Ops )が相互に協力して開発し、システムやサービスを迅速かつ確実にユーザーに届ける DevOps の機能のひとつで、アプリケーションのビルドから展開までを自動化する仕組みのことを指します。

本記事では、DevOps と CI / CD の概要とメリット、Microsoft Azure において CI / CD 機能を提供する Azure Pipelines の概要と料金体系、主な機能について解説します。

1. DevOps とは

DevOps という言葉が耳慣れないという方も多いかもしれませんが、DevOps はアジャイルの時代において迅速かつ効率的に開発を行う上で重要な概念です。まず、DevOps の定義とプロセスについて解説します。

1.1 DevOps の定義

DevOps とは、開発( Development )と運用( Operations )を組み合わせた言葉で、人(開発チーム・運用チーム)とプロセスとテクノロジーを結び付けて、ビジネスが継続的な価値を提供するための取り組みを示す概念です。

1.2 DevOps の目的とメリット

DevOps の目的は、迅速なITの開発と継続的なサービス提供の実現により、ユーザーのビジネス価値を高めることです。DevOps を導入することにより、開発チームと運用チームの協力体制を作ることができ、その結果、下記のメリットが期待できます。

  • 開発の俊敏性(アジリティ)向上
  • アプリケーションの信頼性と安定性の維持
  • 開発の生産性向上

1.3 DevOps とアジャイルの関係

よく DevOps と混同されやすい言葉に「アジャイル開発」があります。アジャイル開発は、短い開発サイクルを繰り返し、必要に応じて仕様変更にも対応しながら開発を行う柔軟性が高い開発手法です。迅速かつ効率的に開発を進めるという点においては DevOps と似ていますが、アジャイル開発が具体的な開発手法を指すことに対して、DevOps はあくまで開発・運用の協力関係を構築して迅速かつ安定的な開発を実現することに重点を置いています。

つまり、DevOps とはアジャイル開発を実現する手段のひとつであると言えます。

1.4 CI / CD とは

CI / CD とは、DevOps のために必要な機能のひとつで、継続的インテグレーション( Continuous Integration )と継続的デリバリー( Continuous Delivery )を組み合わせた言葉です。CIでは作成したソースコードのビルド、開発環境へのデプロイとテストを自動化し、品質を保ちながら迅速な開発をサポートします。CDはCIの機能を拡張して、ソースコードを本番環境へのデプロイ直前、またはデプロイまでを自動化する役割を担います。

2. Azure Pipelines とは

Azure では、迅速で効率的な開発をサポートするために、DevOps ソリューションを提供しています。ここでは、Azure の DevOps ソリューションである Azure DevOps と、その中でも CI / CD の機能を担う Azure Pipelines の概要と料金体系について解説します。

2.1 Azure DevOps とは

Azure DevOps とは、Azure が提供する、DevOps を実現するために必要なツールが揃っているオールインワンの DevOps サービス群で、下記のサービスで構成されています。

  • Azure Pipelines( CI / CD ツール)
  • Azure Boards(進捗管理ツール)
  • Azure Repos(バージョン管理ツール)
  • Azure Test Plans(手動テスト管理ツール)
  • Azure Artifacts(パッケージ管理ツール)

これらのサービスを利用することで、Azure 上で DevOps のための環境を構築することが可能です。全てのサービスを利用することも、必要なサービスだけを選択して利用することも可能です。

2.2 Azure Pipelines とは

Azure Pipelines は、Azure DevOps 上 CI / CD の機能を担うサービスです。Azure 上でアプリケーションのビルド、デプロイ、テストを自動化する機能を提供します。

GitHub 等のバージョン管理システムと連携することができ、定義の通りに GitHub 上のリポジトリにコードを push することで自動的にパイプラインを実行し、アプリケーションのビルド、及びビルドしたアプリケーションの実行環境へのデプロイ・展開を自動で行います。Python、Java、JavaScript、PHP、Ruby、C#、C++、Go など、数多くの言語に対応しており、Kubernetes や Docker などのコンテナとも連携可能です。

2.3 Azure Pipelines の料金体系

Azure Pipelines の料金体系は、利用した分だけ課金される従量課金制(※1)となっています。個別サービスとユーザーライセンスがあり、個別サービスは並列ジョブごとに課金されます。ユーザーライセンスでは、最初の5名までは無料で、ユーザー追加ごとに課金される仕組みになっています。

※参考1 Azure DevOps の料金

3. Azure Pipelines の主な機能

Azure Pipelines は、効率的な開発のために多くの機能を備えていますが、ここでは、Azure Pipelines の主要機能である Pipelines の機能について解説します。Pipelines は、CI / CD 機能として、アプリケーションのテスト、ビルド、デプロイの各ステップの実行方法を定義するワークフローで、YAML 形式の定義ファイルを用いて下記の各タスクを定義します。

  • Builds
  • Releases
  • Library
  • Task groups
  • Deployment groups

3.1 Builds

Builds は CI の機能を提供するタスクです。必要なライブラリをインストールし、ソースコードをビルドしてアプリケーションの実行ファイルを生成します。その後単体テスト、結合テストを自動で実行するところまでを役割として担います。下記4種類のトリガーを使い分けることで、必要なタイミングで自動的に Builds を実行することができます。

  • CI トリガー(指定したブランチに更新プログラムをプッシュしたり、指定したタグをプッシュしたりするたびに Builds を実行)
  • PR トリガー(指定されたターゲット分岐のいずれかでプル要求が開かれたとき、またはそのようなプル要求に更新が行われたときに Builds を実行)
  • スケジュールされたトリガー(夜間ビルドなどのスケジュールに基づいて Builds を実行)
  • パイプライントリガー(コンポーネント間に依存関係がある大規模なアプリケーションの場合などに、追加したトリガーパイプラインが正常に完了したときに Builds を実行)

3.2 Releases

Releases は CD の機能を提供します。Builds で生成した実行ファイルを実行環境へ自動でデプロイ、展開します。

3.3 Library

Library は、アプリケーションを展開する際に必要となる値(変数)を登録する機能です。パスワードなど隠したい値を変数に格納した状態で使用することができます。

3.4 Task groups

Task groups とは、Builds と Releases で同じ設定を何度も書き込むような場合、変更が生じた際の展開漏れを回避するために、必要なタスクを Task groups に登録してすべての環境で流用できるようにする機能です。開発環境、本番環境など複数の実行環境がある場合などに有用な機能です。

3.5 Deployment groups

Deployment groups は、デプロイ先となる仮想マシンのグループです。複数の仮想マシンへのデプロイを管理することができます。

4. まとめ

DevOps とは、本来「ユーザーのビジネス価値を高める」という開発と運用の共通目的があるにも関わらず、役割分担により対立構造が発生しやすい状況を打破するために開発と運用の協力体制を築き上げる取り組みです。DevOps は体制論とプロセスに重点が置かれていますが、クラウドを利用することで、多くの作業を自動化して開発スピードと作業品質の向上が可能です。

Azure Pipelines を利用して、システムやサービスを迅速かつ確実にユーザーに届ける DevOps の仕組みを構築してみてはいかがでしょうか。

Azure設計・構築を相談する

Azure構築サービス

Azure構築サービス

Microsoft Azureを利用したシステムの設計・構築を代行します。お客様のご要件を実現する構成をご提案・実装いたします。

Free

資料ダウンロード

課題解決に役立つ詳しいサービス資料はこちら

資料ダウンロード
  • Azure導入支援・構築・運用サービス総合カタログ

    Microsoft Azure サービスの導入検討・PoC、設計、構築、運用までを一貫してご支援いたします。
    Azure導入・運用時のよくあるお悩み、お悩みを解決するためのアールワークスのご支援内容・方法、ご支援例などをご確認いただけます。

Azure導入個別相談会(無料)

Tag: Azure Pipelines DevOps

Contactお問い合わせ

お見積もり・ご相談など、お気軽にお問い合わせください。

single.php