本日は日々使っている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
ここではRepositoryの管理を行えます。複数の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を使い倒して、高品質かつ爆速でプラダクト開発を進めることが求められています。この記事では、とても簡易な説明に限定されていますので、是非今回貼り付けたリンク先を読んで、使い倒してくださいませ。
採用中
現在私が進めているレシートローラーでは絶賛採用中です。紙レシート削減を一緒につき進めてくれるエンジニアの方はこちらからご応募ください。














