お茶漬けびより

学んだことを整理する場所です。主に、C++, Unreal Engine 4 (UE4) を扱います。

Microsoft の CI ツールが多くて思考停止したので、整理してみる

【経緯】

唐突にCIツールを使ってみようと思い、Jenkins を自宅サーバ(久々に起動)に入れてみるも、家で作っているのはVisual C++ なので意味ないのでは? と気づき、調べているとMicrosoft のCI ツールを発見。TFS、VSTS、VSO……何がどう違うのか。

【CIとは】

Ceizokuteki Integration のこと……ではなく、Continuous Integration のこと。つまり継続的統合。Cは、コンテニューだと思っておけば覚えやすいかも。まだ利用したことないので理解は浅いけど、変更した内容をすぐに反映、ビルド、テストをすることでバグを早期発見し、品質を高める方法。

で、今回はそのCI環境を作るためのツールを調べたところ、Microsoft の CI ツールが複数あって、混乱したので調べた。

今回紹介するのは、以下

上から時代が古い順に並べたつもり。

簡単に説明すると、初めに Microsoft 製 CI ツールが出たのが、TFS。CI のための基本的な機能(ビルド、テスト、リリースなど)を提供してくれる。ただし、TFS を動かすためのサーバは自分たちで用意する必要がある。

次に VSO 。簡単に言うと Visual Studio のオンライン版。さらに機能が追加され、TFS のような機能も備えている。要は VS + TFS かも。

VSTS。これが今一番新しい。TFS のような機能をクラウドサービスとして提供している。サーバを持つ必要がないので、CI に集中することが出来る。

で、VSTS を動かしているのが Azure。Azure が動かしているので(?)簡単に Azure と連携をすることが出来る。Web 系開発のときに Azure との相性が良い。

気にする必要があるのは、TFS と VSTS。Azure は人による。

TFS より VSTS の方が便利そうだけど、TFS はローカルで構築することが出来るので、全く利用価値がないわけではない。

全体としては以上。一つ一つ紹介していく

Team Foundation Server(TFS)】

大きな機能として、バージョン管理、アジャイル開発をするときに便利なツールやビルド、パッケージ、テスト、リリースを自動で行うなどの機能を備えている。

ローカルで解決したいときは、こいつをインストールする。

Visual Studio Online(VSO)】

特に重要ではないので簡単に説明する。

VS + TFS のオンライン版。つまりクラウドサービス。現在は、Visual Studio Team Services(あとで紹介)という名前に変わっている。なので、説明は VSTS に譲る。

Visual Studio Team Services】

一番名前が長い。CIのための基本的な機能はもちろん。サーバの構築が不要で、サインアップするだけで利用することが出来る。

このサービスは、Azure の上で動いているので、Azure のサービスの一つだと思って良さそう。個人で使うだけなら無料で利用可能(利用人数によるが)。Azure との相性が良いので、Azure を使った、Web アプリを開発したり、Xamarin を使ったスマフォアプリ開発などに便利(どちらも作ったことないので見当違いなこと書いてるかも……)。

CI 機能使わないから関係ないと思っている人にも知っていて欲しいのが(ここまで読んでいるか怪しいけど)、バージョン管理。

例えば、バージョン管理のためのサーバが欲しい。けど、Github は無料だと公開しないといけない恥ずかしいって人は、VSTS を使うと良いかもしれない(あまりそういう籠もる姿勢はおすすめしないけど)。なんとバージョン管理をプライベートで利用できる。バージョン管理のツールは Git に近い感じ。Git も使うことが出来る。

Visual Studio 2017 では、VSTS を利用するための機能が強化されるそうなので、VSTS を検討する余地はあるかと。 

【参考資料】

Team Foundation Server - Visual Studio

www.visualstudio.com

blogs.msdn.microsoft.com

Visual Studio Team Services - Visual Studio

  • Azure

docs.microsoft.com

www.atmarkit.co.jp