ソフトバンク・テクノロジー TFSとリリース管理 導入事例と解説のまとめ – de:code 2015

de:code 2015 でもセッション中に紹介がありました、「ソフトバンク・テクノロジーは リリース コスト を 20分の1に!」の Release Management(リリース管理)と、Team Foundation Server について、新しいバージョンが出る前にもう一度まとめておきたいと思います。

この内容は 2013 までの方法で、新しい 2015 では操作などが変更になると思います。考え方はおおよそ変わらないと思いますので、参考にしていただければ、と思います。

 

TFS スクラム開発とリリース管理を行えば Rapid Release を行える!

まず、アーキテクトジャンプセミナーの2つ目の動画「TFS スクラム開発とリリース管理を行えば Rapid Release を行える! ~ Online Service Gate® クラウドサービスの開発事例」を観てください。

 

こちら1時間の動画で、2014年11月17日に私が登壇した時のものです。TFS スクラム開発導入のメリットと効果と、リリース管理導入のメリットと効果を解説しています。(※2015年6月5日追記:PDFのスライド資料もダウンロード出来ます。)

このセッションの内容を元に、スクラム開発編 と リリース管理編 へ続きます。

 

スクラム開発編

スクラム開発の考え方について、また、具体的な準備や扱い方などは、こちらのスライドを順に観てください。

TFS でのスクラム開発の取り扱い方法を、ウォーターフォールと比較しながら解説していますので、純粋に TFS/Visual Studio Online の使い方の解説としても役立つと思います。

特に、最後の「開発キックオフ時にマネージャが行うべき11のこと」は、チームのエンジニアとしても、個人開発者であっても TFS を使い始めるときに知っておいた方が良いことをまとめていますので、是非、ご確認ください。

 

リリース管理編

こちらは Release Management for Visual Studio 2013 を使って、リリースを行うための具体的な設定方法などを解説しています。

確認していただけるとわかるとおり、このバージョンのリリース管理はちょっと画面構成などが複雑で、まず「考え方とリリース管理での名称」を理解するまでに1つ越えなければならない山が有り、それをじゃぁ、「どうやって自分達のチームに適用するか?」にもう一つ山があるような感じです。

これに対して新しい Release Management for Visual Studio 2015 では、格段にわかりやすく進化している様子なので、具体的な操作がもっと簡単になる、と思っておいてもらえると良いと思います。

新しいバージョンについては、また別の機会で紹介したいと思います。

 

リリース管理の必要性と未来

de:code では、Microservices という考え方が今後5年間で主流になるのではないか?と、いう話がありました。クラウドをつかった「サービス化」が今よりも進み、リリースされたサービスを改修して新しいバージョンをリリースするのではなく、新しく作り替えたサービスを新たにリリースして、どんどん差し替えていく、ということです。

これは新しい考え方ではなく、実際に Amazon など、継続してサービスを提供している企業が実際にリリースサイクルを早めるため、コストを下げるために採用している手法です。ただ、これを実現するにはそのための設計、そのためのリリース手順が必要となります。

Visual Studio のリリース管理は、Microservices を実現するまでの間=ひとつのサービスを実現するために複数のソリューションやデータベースが複雑な依存関係をもって絡み合って一度にリリースをしなければならない状態で混在している現代に、一括して、かつ複数の環境に同じ方法で低コストにリリースする方法を提供します。

複数の環境は、テスト環境、ステージング環境と本番環境という意味や、あるいは冗長化された複数のサーバーを意味します。

これは一つの現実解として、現代を乗り切るための武器になると、私は思います。

 

また、一方で、今後のリリース管理のアップデートは、この小さな「サービス化」にも対応するものとなっていくと思われます。Release Management for Visual Studio 2015 の設定の方法は、それを予感させる感じになっているように見えます。小さなサービスを沢山リリースして差し替える場合にも、同じ方法で低コストに複数の環境に、簡単に、リリースできることが求められると思います。

今までは、ちょっと使うのが大変だったので、場合によっては、まだ早かったかもしれません。

しかし新しいバージョンでは、使える物になっているかもしれませんし、アップデートでいつの間にか無くてはならない機能に生まれ変わっているかもしれません。そういうとらえ方で、リリース管理を追いかけてもらえると、良いような気がします。