皆様は、ソースコード管理に何を使用しているでしょうか?
一般的に、Gitを用いて管理し、
ソースコードを公開したい/公開されても良いから、外部に保存したい、
という場合、GitHubを使用されているのではないかと思います。
しかし、企業用途の場合やプライベートレポジトリを用いて、
ソースコードを管理したいという場合VSTS(Visual Studio Team Services)も選択肢になります。
今回はそんなVSTSをソースコード管理という観点を中心に紹介します。
1.VSTSとGitHub系の管理ツールの共通点
Pull Requestを用いてGitで管理できる、ということが一番大きいです。
Pull Requestとは、GitHubが開発した仕組みで、
あるソースコードの変更を受け入れてくれ、と依頼を出すことです。
この機能の開発により、開発者はコラボレーションした開発を進めやすくなり、
OSSの開発ではGitHubを用いることがほとんどのような印象を受けます。
何故なら、レポジトリの管理者は受け入れる変更を容易に管理できますし、
開発者は自由にOSSの開発に加わることができるからです。
更に、Pull Requestを用いることが可能だと、GitHub Flowを使うことができます。
GitHub Flowについてはこのあたりやこのあたりの記事が参考になります。
リンクした記事にも書かれていますが、Gitを用いた開発フローとして有名なのは、
他にGit単体で採用することもできる、Git Flowがあります。
ですが、Git Flowはブランチ戦略が煩雑で、初心者には扱いが難しいです。
開発状況によってはGit Flowのほうが好ましい場合もあると思いますが、
GitHub Flowのほうが単純で分かりやすいと思います。
OSS開発にも使われていて、分かりやすいGitHub Flowは素晴らしいと言えるでしょう。
ただし、このGitHub FlowはGit単体では用いることができません。
Pull Requestの仕組みがないと使えないからです。
これを備えたツールとしては、GitHubの他にGitLabやBitBacketも存在しますが、
今回紹介するVSTSもPull Requestを備えています。
2.VSTSとGitHubの相違点
GitHubが有名すぎるので、VSTSとGitHubの比較を以下にまとめ、
いくつかについて詳しく述べます。
観点 | VSTS | GitHub |
サーバ | Azure上 | GitHubのサーバ |
参照権限 | クローズド | 基本はオープン |
IaaS版 | TFS(Team Foundation Server) | GitHub Enterprise |
他ツールとの連携 | 比較的少ない | 多い |
ユーザ数 | 比較的少ない | 多い |
カバー範囲 | アジャイル系の課題管理システム+自動テストからデプロイまでカバー | Issueとソース管理 |
費用 | Visual Studioを持っていない人は7$/月 | ビジネス向けは21$/月 |
サポート | 別途プレミアサポート契約要 | ビジネス費用に含まれる |
更新頻度 | 月1回程度 | 月1回以上 |
ドキュメント | ほとんど英語で、日本語は少ない | ほとんど英語だが、日本語もある |
①サーバ
VSTSをホストするサーバはAzure上にあります。
GitHub側も強固なサーバを持っているように見受けられますが、
よりサーバをホストしているのはAzureですので、
有事の際にはVSTSのほうが有利だと思われます。
②参照権限
GitHubは基本的にオープンさを志向していますが、
VSTSは基本的に閉じた世界で構成されます。
GitHubでもプライベートレポジトリを持つことは可能ではありますが。
VSTSで、あるレポジトリを他の人に参照してもらいたい場合、
自分のVSTSに他の人を招待して、自分のVSTS上にあるレポジトリに参照権限を付与する、
という操作が必要になります。
なのでVSTSは全くオープンソース向けではありませんし、
気軽に他人のソースコードを参照することはできません。
そのため、VSTSの拡張機能を開発することも可能なのですが、
その開発はGitHub上で行われていたりするものもかなりあるように見受けられます。
③他ツールとの連携&ユーザ数&カバー範囲
ソースコード管理の他にも、ソースコードをコミットしたときに、
連携して何ができるか、ということは現代の開発では重要です。
GitHubはユーザ数が多い分、
他ツールとの連携がすぐ行われるようなイメージがあります。
GitHubだけでカバーしている領域はVSTSと比べると狭いのですが、
他ツールとの連携のTipsがウェブ上に多く存在するため、
連携しやすく、それも加味するとカバー範囲は広いといえます。
ただし、他ツールをホストするサーバについては検討が必要です。
一方で、VSTSはGitHubと比べるとユーザ数が限られていますし、
使う人も企業の人が多いと思われるため、
使ってみた、のようなWebページも少ないような印象を受けます。
ただし、マイクロソフトが開発している分Azureとの連携は簡単にできますし、
これ一つでビルドやデプロイまでも管理できます。
Azureメインで使っていて、他ツールまで学習する体力がない方々は、
VSTSのほうが良いと思います。
④ドキュメント
両者ともほとんど英語になりますが、
GitHubのほうがユーザ数が多い分、日本語で手に入る情報も多いです。
また、VSTSは、2017/11月にAzure日本リージョンではなく、
HongKongへのリリースがなされました。
つまり、日本リージョンでは2018年1月現在、リリースされておらず、
自分のVSTSは、日本ではないリージョンで作成する必要があります。
おそらく、日本での需要が少なく、対応がされていない状況なのだと思います。
こういう状況ですので、私がブログを書いて敷居が下げられないだろうかと思った次第です。
3.まとめ
以上で述べてきたように、
VSTSはPull Requestを用いたGitでソースコード管理可能、という基本を兼ね備えていて、
Azureと簡単に連携できる、単体でのカバー領域が広い、レポジトリがかなりクローズド
などの特徴があるのですが、
GitHubと比べると正直いくつか弱い部分もあります。
なので、これらの特徴を活かせる状況にある人々がVSTSをより使用して、
日本のユーザ数が増えると良いなと考えています。
※私もこのあたりのことを勉強し始めた段階ですので、
誤り等ありましたらコメントで指摘いただけると幸いです。
ずさずさ
最新記事 by ずさずさ (全て見る)
- Azure Functions V1を使う - 2019年1月6日
- EventGridの使用を始めるときにつまずいたところ - 2018年12月2日
- サーバレス周りの話 - 2018年9月17日