最終回となる今回は、クラウドで提供されるサービスを利用したソースコード管理や各種サービスとの連携の概要を紹介する。
powered by Insider.NET
クラウドでのサービス提供の隆盛により、最近ではソースコード管理もクラウドで行うことが当たり前になってきた。そして、クラウドでソースコードを管理しているなら、クラウドに成果物をデプロイできると便利だ。ほとんどのクラウドで提供されているソースコード管理システムは、そうしたデプロイ機能もサポートしている。多くのサービスは無料で始めることができ、サーバーも不要なので、低コストで始められる。
クラウドは日進月歩であり、定期的に機能が追加されている。ある日突然に管理ポータルに新機能が追加されていることも珍しくない。本稿の情報は執筆時点の情報に基づいているため、注意してほしい。
オンプレミスのサービスは自由に多様なソフトウェアと組み合わせられる点が魅力だが、とにかくすぐに始めたい場合、クラウドサービス側ですでに提供されている機能を使用すれば、30分程度でソースコードの管理環境を構築できる。
マイクロソフトが提供するVisual Studio Online(旧Team Foundation Service。以下、VS Online)では、Azureへのデプロイが標準でサポートされている。また、Azure以外にも多くのWebサービスとの連携が可能となっている。いくつかパターンを紹介しよう。
AzureでWebサイトを簡単に作ることのできるAzure WebサイトはVS OnlineおよびTFS以外にも多くのリポジトリをサポートしている。対応しているリポジトリにデプロイ、コミットなどを行うとAzure Webサイトへ配置が行われる。
執筆時点では以下のソフトウェアおよびサービスがサポートされている。
VS OnlineからAzureへのデプロイを行うには、Azureの管理ポータルでVS OnlineからWebサイトへのデプロイ設定を行う必要がある。基本的な方法としては以下の手順となる。
GitHubに公開する場合、ローカルのリポジトリからGitHubにプッシュすると自動的にAzure Webサイトへ公開される。GitHubに公開しているリポジトリをAzure WebサイトへデプロイするにはAzure Webサイトの管理ポータルの[ソース管理からのデプロイの設定]をクリックして設定する。
[ソース管理からのデプロイの設定]をクリックすると、リポジトリを選択する[ソースコードの位置]ダイアログが表示される。以下では、このダイアログで[GitHub]を選択したものとして解説するが、他のリポジトリでも手順は同様だ。リポジトリを選択すると次のダイアログが表示される(GitHubを選択した場合)。
これだけで準備完了だ。あとはGitHubのmasterブランチにコミットすれば、自動的にAzure Webサイトにデプロイが行われる。
異なるサイトへのデプロイはどのような仕組みで行われているのだろうか。GitHubのプロジェクトの管理ページを見ると、このような設定がある。
この「scm」というサブドメインのURLはAzure Webサイトの管理コンソールのURLになる。URLの最後にある「deploy」はデプロイ用のエンドポイントなので、「deploy」を除いて、「https://webapplication15226.scm.azurewebsites.net/」というURLアクセスすると以下のような画面が表示される。
これは「Kudu」(クーズー)と呼ばれているAzure Webサイトの管理コンソールの画面だ(ただし、現時点ではクラウドサービスには対応していない)。Kuduはオープンソースで開発が行われているので、興味があればソースコードあるいは以下のサイトを見てみるといいだろう。どのような機能が実装されているか調べることもできる。英語だが、Channel9で解説ビデオも公開されている。
Kuduには環境情報の表示、ログや解析用のダンプ取得、起動しているプロセス一覧の表示、デバッグ用コンソールの表示といった機能がある。REST APIも公開されているため、外部からの制御も可能だ。便利なのでAzure Webサイトを使っている人は一度使ってみてほしい。
現在プレビュー中の新ポータルではKuduの一部の機能が統合されており、コンソールや分析機能にもアクセスできるようになっている。Webサイトでの管理は新ポータルに移行するように推奨されているため、将来的には新ポータル画面で操作が完結するはずだ。
より詳細な解説についてはBuild Insiderの記事「ここまで進化した、Azure Webサイトの世界観(2014年7月版)」も参照してほしい。
Copyright© Digital Advantage Corp. All Rights Reserved.