本日は日々使っているAzure DevOpsに関してまとめたいと思います。普段使っていない部分は簡単な説明と、詳細ドキュメントの参照先の記載までとしています。
Azure DevOpsとは
Azure DevOpsとはチーム開発(一人で開発でもOK)に必要な機能がそろったオンラインサービスになります。
トップページは下記のように、左メニューにてOverview
, Boards
, Repos
, Pipelines
, Test Plans
, Artifacts
となっています。詳しいことは後程説明していきます。日本語に表示を変える方法は見当たりませんでした・・ので英語のまま使っています。 Test Plan
, Artifacts
に関しては普段使っていないの簡易な説明のみとなっています。
製品ページはこちらです。
https://azure.microsoft.com/ja-jp/products/devops/
組織の下に複数のプロジェクトを保持することができ、
プロジェクト内に複数のレポジトリーを保持できるようになっています。
組織はADで紐づています。各プロジェクトへのアクセス権限も設定が可能です。権限に関しては本日は割愛します。
簡単に言うと、開発に関するプロジェクト管理、ソース管理、リリース・ビルド管理を行うサービスになります。
それでは、具体的にこのサービスを使うと、どんな風に開発プロジェクトを管理することができるのかを説明していきます。
Overview
Summary
まずログインすると出てくるページが サマリーページです。ここではプロジェクトのステータスをみることができます。いくつぐらいのタスクがあり、誰がどれぐらいタスクを完了したのかなどを見ることができます。
Dashboard
よく見る項目をまとめて表示することができます。普段の開発ではあまり使っていませんが、定期的に確認したい数値があればここに表示することをお勧めします。
Wiki
開発プロジェクトに関するドキュメントはすべてここで管理することができます。 サブページを作りツリー型でドキュメントを管理することができます。Markdown記述ができるので便利です。
Boards
ボードは主にタスク管理で使う機能になります。
Work items
ここはタスク一覧がリストで表示されます。特に区切りなどはなく、最近更新されたものから表示されています。とにかくタスク一覧をだしたい場合はこのページを使います。
タスクアイテムの種類
タスクアイテムの種類はここでEpic
, Issue
, Task
となっています。表示はされていませんが、そのほかにTest Case
, Test Plan
, TestSuite
があります。
マイルストーン的なのは Epic
バグ系は Issue
一般的なタスクは Task
といった感じにタスクの種類を分けています。
Task
タスクには、Title
, Assign
, State
, Area
, Reason
, Iteration
, Description
, Priority
, Activity
, Remaiing Work
, Links
, 添付ファイルなどの管理機能があります。
ここにあるArea
はカテゴリーみたな機能になります。タスクがどのカテゴリーのものなのかArea
で定義しています。後程エリアごとに進捗管理が行えるので初期段階で設計しておくことをお勧めします。
Boards
Boardsはステータスごとにタスクを並べることができます。現在とりかかっているタスク一覧をみるのに便利です。
Backlogs
Backlogs
とは簡単に言うと残タスクになります。ここでは残タスクはEpic
レベルで表示、Issue
レベルで表示することで残タスクを管理することができます。担当者レベルでタスクの一覧表示や、ステータスごとで一覧表示など、残タスクをリストで管理することができます。 Work items
はすべてのタスクが羅列されているのに比べBacklogs
はタスクレベル単位で表示することができます。
Sprints
Sprints
は決まった期間でやるべきタスクのみをKanban
スタイルで表示することができます。今はメインでこれを使っています。今週やるべきタスクがすべてここにあり、来週取り掛かりたい内容などは次のスプリントに繰り越します。開発規模によってこの期間は変わりますが、今は基本1週間のSprint
を回しています。
Queries
ここはほぼ使っていませんが、Task
の検索をすることができます。また検索条件を保存しておくこともできるので、なにか決まった条件でいつもタスクを検索したい場合はここを利用します。
Delivery Plans
ここではSprint
単位でデリバリーされるであろうタスクをみることができます。デリバリープランは複数作ることができますのでチームごとにデリバリープランをみたり、プロダクト事に見たりなどすることができます。今は1プロダクトしかないので、1プランで使っています。
Repos
ここではRepositor
yの管理を行えます。複数のRepository
を管理することができます、今進めているプロジェクトでは、まだ1Repository
のみです。
Repository
ごとに設定、ポリシー、セキュリティ(権限管理)を行うことができます。 Project Settings > Repos > Repostories
に行くとこれらの設定を行うことができます。
Commits
Commits
ではBranch
事にCommit
された履歴を参照することができます。
Pushes
Pushes
はRepository
にPush
された履歴を参照することができます。
Branches
Branches
ではサーバー上にあるBranch
一覧を閲覧することができます。ここにあるBranch
同士Merge
したりすることができます。みんなのBranch
がサーバー上にたくさんあると、管理しずらくなるので基本メインBranch
にMerge
したら削除するようにしています。
Tags
Tags
は普段利用していませんが、複数のBranch
を管理する必要があるときなどは便利だと思います。
Pull requests
Pull request
はBranch
とBranch
のMerge
をRequest
したものになります。開発者は自身のBranch
を作成し、Pull Request
を行い、特定のBranch
にMerge
をしていきます。ここでコードのConflict
がなければMerge
されます。
Piplines
Piplinesではビルドやリリースを管理します。実際に開発されたコードを実装環境にリリースする作業になります。
Piplines
ここでは、割り当てられたサーバーを使い実際にビルドを行うことができます、このフローを自動化したものをPiplineと呼びます。そして、これらのフローを定義したファイルをYAMLファイルといいます。このYAMLファイルを編集し、ビルドのフローを定義します。
Environments
普段はここを使っていませんが、環境ごとにPiplineなどを管理したいときは利用できます。詳細はこちらを参照ください。
https://learn.microsoft.com/en-us/azure/devops/pipelines/process/environments?view=azure-devops
Releases
Pipelineにて、コードをビルドしたあとにはDeployment Artifactsと呼ばれるリリース用のアウトプットを生成することができます。このArtifactsを使い指定したAzureのサーバーなどにリリースをすることができます。ここで開発したコードでビルドされたものをリリースすることになります。
下記のようにビルドされた後に、リリースするフローを作成し管理することができます。ここではマスターブランチがマージされたあと自動的にビルドを行い、テスト環境に自動的にリリースされるようになっています。そして本番環境(リリース用スロット)へは手動でリリースするようになっています。
Library
ここではYAMLで呼び込める変数などを管理することができます。普段は使っていませんので、詳細はこちらを参照ください。
https://learn.microsoft.com/en-us/azure/devops/pipelines/library/variable-groups?view=azure-devops&tabs=yaml
Task groups
こちらも普段利用することなく、詳細はこちらを参照ください。
https://learn.microsoft.com/en-us/azure/devops/pipelines/library/task-groups?view=azure-devops
Deployment groups
複数のdeploymentを行う際にグルーピングする機能です、こちらも普段使っていません。 詳細はこちらを参照ください。https://learn.microsoft.com/en-us/azure/devops/pipelines/release/deployment-groups/?view=azure-devops
Test PLans
テストプランは普段使っていません、テスト計画の利用はTest Planが必要となります。 詳細はこちらを参照ください。
https://learn.microsoft.com/ja-jp/azure/devops/test/overview?view=azure-devops
Artifacts
Artifactsでは開発したコードのArtifactsを共有できる仕組みです。普段は使っていませんので、詳細はこちらを参照ください。 https://learn.microsoft.com/ja-jp/azure/devops/artifacts/start-using-azure-artifacts?view=azure-devops
まとめ
リモートワークがメインとなっている本日、複数の開発者が各々の環境で仕事しているため、Azure DevOpsのようなサービスで、開発タスク及びコードを管理し、アウトプット先(サーバー)も管理できる環境が必要とされています。また、テック市場は成長が著しく、Azure DevOpsを使い倒して、高品質かつ爆速でプラダクト開発を進めることが求められています。この記事では、とても簡易な説明に限定されていますので、是非今回貼り付けたリンク先を読んで、使い倒してくださいませ。
採用中
現在私が進めているレシートローラーでは絶賛採用中です。紙レシート削減を一緒につき進めてくれるエンジニアの方はこちらからご応募ください。