公開日:2024年9月18日最終更新日:
サービスやアプリケーションに求められる機能やトレンドは変化が激しく、開発現場でもその速さに追いつくための施策が求められています。そのため、ソフトウェアを継続的に改善し続けるスタイルに適したアジャイル開発手法が採用される機会が多くなり、その取り組みを支援するサービス提供も盛んです。
Azure DevOpsは、ソフトウェアの開発サイクルを円滑化するためのツール群を備えたMicrosoftの統合サービスプラットフォームです。本記事では、Azure DevOpsの特徴と導入のメリットを解説していきます。まだDevOpsを実践されていない方もぜひご参考ください。
目次 <Contents>
Azure DevOpsとは
Azure DevOpsは、ソフトウェアの開発プロセスの効率化を促進し、開発から運用までの流れを円滑に進めるのに役立つツール群を提供するサービスです。このツール群によって開発サイクルにおける計画、開発、テスト、デプロイの各状況が可視化され、プロジェクトに関わる開発・運用チームや顧客を巻き込んで効率化を図れます。
サービス名の語源であるDevOpsは、開発に関わるチームやメンバーをうまく連携させることで生産性を高め、ソフトウェアの品質を保ちながら定期的に安定したリリースを続けていく考え方です。Azure DevOpsではその考え方に沿って、開発者が行うビルドやデプロイの自動化や、計画を円滑に進めるためのツールが提供されます。
なお、Azure DevOpsにはクラウド上で扱えるAzure DevOps Servicesと、オンプレミスで運用できるAzure DevOps Serverの2種類があります。Azure DevOps Servicesは低コストで手軽に利用できるので、初めての場合は無料枠があり導入しやすいバージョン管理ツールやタスク管理ツールから試してみるとよいでしょう。
Azure DevOpsで実現できること
Azure DevOpsをプロジェクトに導入することで次のような効果が得られます。
- 計画の目標達成までの作業状況やリリース状況をリアルタイムに共有
- コード変更とビルド、テスト、デプロイを紐づけて自動化することで、作業負担やヒューマンエラーを軽減
- ソフトウェアの開発工数の短縮により、短いスパンでの機能追加が可能
- プロセスの自動化やテスト実行によるソフトウェア品質の保持
- Azure上に構築したサーバーあるいはサーバーレス環境へのデプロイが可能
- マイクロサービス構成のような独立したサービスへのデプロイに効果的
Azure DevOpsはチームの開発生産性を高め、柔軟な対応ができるチーム作りに寄与します。
Azure DevOpsが提供するサービス
Azure DevOpsには、ソフトウェア開発の効率を高めるために役立つ5つのサービスが提供されています。
Azure Pipelines
Azure Pipelinesは、ビルドやテスト、デプロイなどの開発プロセスを自動化する仕組みを作れるサービスです。バージョン管理システムへのコード変更を起点に、Azure App ServicesやAzure Functionsを利用したテスト環境や本番環境へのデプロイが可能です。
プロセスはYAMLで定義でき、ビルド環境、デプロイ先などのプロセス情報や実行するアクションを記述します。なお、ビルド環境のプラットフォームはWindowsやLinux、MacOSから選択でき、実行環境としてNode.js、Python、Java、PHP、Ruby、C#、C++、Goなどのプログラミング言語に対応しています。
Azure Repos
Azure Reposは、Azure DevOpsにおけるコードのバージョン管理システムで、基盤となる仕組みをGitまたはMicrosoftの分散型バージョン管理システムのTFVC(Team Foundation Version Control)から選べます。プロジェクトの中でGitのリポジトリやブランチを作成でき、関係者のみで共有することができます。
また、他の4つのサービスと密につながっており、同時に利用することで効果を発揮します。Azure Pipelinesでのビルド用のリポジトリとして使われたり、後述するタスク管理の作業項目とブランチを紐づけられたりします。
なお、Gitを選ぶとVisual StudioやVisual Studio、IntelliJなどのIDEと連携でき、リモートリポジトリとして利用可能です。
Azure Boards
Azure Boardsは、プロジェクト全体の計画に対して個々の進捗状況を共有し、円滑な進行をサポートするサービスです。目標達成に必要な作業を各担当に割り振ることができ、それらの進捗状況を可視化するツールを提供します。実装機能の優先順位やリリース状況がリアルタイムに共有されるため、チーム内の意思疎通に役立ちます。
プロジェクトにおけるプロセスは、一般的なアジャイル開発やスクラムなど用意されたフレームワークに沿って作成できるようになっています。DevOpsの開発手法に精通したチームから不慣れなチームまで、習得スキルや経験に応じたフレームワークの選定が可能です。
また、Azure DevOpsの起点となるサービスで、登録した作業項目とその他サービスを紐づけて作業状況を管理できます。
Azure Test Plans
Azure Test Plansは、手動でテストを実行したり、実施したテスト状況を確認したりできるサービスです。
自動テストや手動テストをうまく組み合わせて効率良くソフトウェアの品質を高めることができます。例えば、単体テストや機能テストなどの頻度の高いテストはAzure Pipelinesで自動化し、探索的テストや性能テストなど適宜実行するテストは手動で実行し、作業負荷と実行時間のバランスを取ります。
また、Azure Boardで挙げられた開発チーム以外からのフィードバックをテストに取り入れることができ、改善のサイクルを作ることができます。
Azure Artifacts
Azure Artifactsは、プロジェクトの中で作られたライブラリやバイナリファイルなどの成果物をパッケージとして管理できるサービスです。例えば、Azure Reposからビルドされた成果物を保管でき、Azure Pipelinesと連携させてデプロイできます。
パッケージとしてNuGet、npm、Python、Mavenなどの種類が対応しています。
Azure DevOpsの利用料金
Azure DevOpsの利用料金は、各サービスがセットになったプランと、個別に契約するプランがあります。下記の表はセットになったプランの料金です。
プラン | 利用可能サービス | 月額基本料金 | その他料金 |
---|---|---|---|
Basic | ・Azure Pipelines ・Azure Boards ・Azure Repos ・Azure Artifacts | 924.33円/1ユーザー ※最初の5ユーザーまで無料 | ・Azure Artifacts 2GiBまで無料。 以降は容量に応じて料金が変動 ・Azure Pipelines Azure上で動作させる場合は1,800分/月まで無料 |
Basic+Test | ・Azure Pipelines ・Azure Boards ・Azure Repos ・Azure Artifacts ・Azure Test Plans | 8,010.86円/1ユーザー | Basicプランと同様 |
なお、上記の表内の料金は1ドル154.06円で算出されています。また、各プランの料金詳細は価格ページをご覧ください。Visual Studioサブスクリプションに契約中であれば無償でAzure DevOpsを利用可能です。
Azure DevOpsの使い方
Azure DevOpsの始め方と簡単な使い方を紹介します。以降では、次のツールやアカウントが必要になります。
- Microsoftアカウント
- Visual Studio Code
- .NET 8.0 SDK
Azure DevOpの利用登録
まずはMicrosoftアカウントを用意し、Azure DevOpsのサイトにアクセスしましょう。ログインできたらページ上部にある「無料で始める」から登録に進めます。
利用する国を選び、次のページで組織名を入力しましょう。
登録が完了すると、Azure DevOpsの管理画面に入ることができます。
Azure DevOpsでプロジェクトを作成
Azure DevOpsの機能を使うにはプロジェクトが必要です。プロジェクト名を入力し、プロジェクトを登録しましょう。
Azure Reposでリポジトリを作成
メニューから「Repos」に遷移し、「New Repository」を選びます。リポジトリ名を入力して、リポジトリを作成しましょう。
次にVisual Studio Codeを開き、ローカル環境にクローンしましょう。
Azure Reposの画面で「Clone」を押すとリポジトリのURLが表示されるのでコピーしておきましょう。
ローカル環境で次のコマンドを入力して、適当なディレクトリにリポジトリをクローンしましょう。
mkdir test-project
git clone "コピーしたリポジトリURL"
ローカルリポジトリが作成できたら、下記のコマンドでサンプルアプリを作成しましょう。また、ビルドして正常に動作するかを確認しておきます。
cd test-project
dotnet new webapp -f net8.0
dotnet run
アプリが作成できたら、ローカルリポジトリにコミットしてからAzure Reposのリポジトリにプッシュしましょう。
commit -m "Webアプリの初回コミット"
git push
プッシュに成功すると、Azure Reposのリポジトリにサンプルアプリのファイルが反映されます。
Azure Pipelinesでパイプラインを作成
Azure DevOpsのメニューから「Pipelines」に遷移し、「New pipeline」を選びます。
パイプライン作成のウィザード画面に遷移するので、「Azure Repos Git」、「リポジトリ名」、「ASP.NET Core」の順に選択しましょう。最後に「Save」を押すとYAMLの定義ファイルが作成されます。
なお、「Run pipeline」でパイプラインを実行できますが、無料枠で利用するには申請が必要になるため、許可リクエストのページから登録しておきましょう。2~3営業日ほど経過すると利用可否の連絡が入力メールアドレスに届くことになっています。
まとめ
Azure DevOpsは、ソフトウェア開発の生産性向上を図るためのツールを提供する統合プラットフォームサービスです。バージョン管理やタスク管理、プロセス自動化などを実現する役立つサービスが揃っています。また、アジャイル開発のように短期で継続的な改修を行う手法に適しており、フレームワークに沿った開発が実践可能です。
Azure DevOpsの導入は、開発におけるチーム構成やあり方を見直すきっかけにもなります。開発の効率化や生産性にお悩みであれば導入を検討してみてください。