連載
» 2014年08月11日 18時21分 UPDATE

連載:いまどきのソース・コード管理:第6回 クラウドとソース管理 (1/4)

最終回となる今回は、クラウドで提供されるサービスを利用したソースコード管理や各種サービスとの連携の概要を紹介する。

[亀川和史,著]
連載:いまどきのソース・コード管理
業務アプリInsider/Insider.NET

powered by Insider.NET

「連載:いまどきのソース・コード管理」のインデックス

連載目次

 クラウドでのサービス提供の隆盛により、最近ではソースコード管理もクラウドで行うことが当たり前になってきた。そして、クラウドでソースコードを管理しているなら、クラウドに成果物をデプロイできると便利だ。ほとんどのクラウドで提供されているソースコード管理システムは、そうしたデプロイ機能もサポートしている。多くのサービスは無料で始めることができ、サーバーも不要なので、低コストで始められる。

 クラウドは日進月歩であり、定期的に機能が追加されている。ある日突然に管理ポータルに新機能が追加されていることも珍しくない。本稿の情報は執筆時点の情報に基づいているため、注意してほしい。

クラウドサービスならではのデプロイ連携

 オンプレミスのサービスは自由に多様なソフトウェアと組み合わせられる点が魅力だが、とにかくすぐに始めたい場合、クラウドサービス側ですでに提供されている機能を使用すれば、30分程度でソースコードの管理環境を構築できる。

 マイクロソフトが提供するVisual Studio Online(旧Team Foundation Service。以下、VS Online)では、Azureへのデプロイが標準でサポートされている。また、Azure以外にも多くのWebサービスとの連携が可能となっている。いくつかパターンを紹介しよう。

GitHubからAzure Webサイトへ自動デプロイ

 AzureでWebサイトを簡単に作ることのできるAzure WebサイトはVS OnlineおよびTFS以外にも多くのリポジトリをサポートしている。対応しているリポジトリにデプロイ、コミットなどを行うとAzure Webサイトへ配置が行われる。

Azure Webサイトでは、サポートしているリポジトリにデプロイ、コミットが行われると、Webサイトへの配置が行われる Azure Webサイトでは、サポートしているリポジトリにデプロイ、コミットが行われると、Webサイトへの配置が行われる

 執筆時点では以下のソフトウェアおよびサービスがサポートされている。

  • VS Online
  • ローカルコンピュータ上のGitリポジトリ
  • GitHub
  • Dropbox
  • Bitbucket
  • CodePlex
  • パブリックな外部リポジトリ(オンプレミスやIaaSサービスで実行されている外部からアクセス可能なGitやMercurialサーバー)

 VS OnlineからAzureへのデプロイを行うには、Azureの管理ポータルでVS OnlineからWebサイトへのデプロイ設定を行う必要がある。基本的な方法としては以下の手順となる。

  1. AzureポータルからデプロイするWebサイトを選択、もしくは生成しておく
  2. Azureポータルでソース管理の統合を行う

 GitHubに公開する場合、ローカルのリポジトリからGitHubにプッシュすると自動的にAzure Webサイトへ公開される。GitHubに公開しているリポジトリをAzure WebサイトへデプロイするにはAzure Webサイトの管理ポータルの[ソース管理からのデプロイの設定]をクリックして設定する。

ソース管理サービスからAzure Webサイトへのデプロイを設定 ソース管理サービスからAzure Webサイトへのデプロイを設定
  (1)外部ソース管理サービスとの関連付けを行う。

 [ソース管理からのデプロイの設定]をクリックすると、リポジトリを選択する[ソースコードの位置]ダイアログが表示される。以下では、このダイアログで[GitHub]を選択したものとして解説するが、他のリポジトリでも手順は同様だ。リポジトリを選択すると次のダイアログが表示される(GitHubを選択した場合)。

[デプロイするリポジトリの選択]ダイアログ [デプロイするリポジトリの選択]ダイアログ
  (1) デプロイ対象のリポジトリ名を指定する。
  (2) デプロイ用のブランチを指定する。

 これだけで準備完了だ。あとはGitHubのmasterブランチにコミットすれば、自動的にAzure Webサイトにデプロイが行われる。

 異なるサイトへのデプロイはどのような仕組みで行われているのだろうか。GitHubのプロジェクトの管理ページを見ると、このような設定がある。

GitHubでリポジトリの設定画面から[Webhooks & Services]タブを選択したところ GitHubでリポジトリの設定画面から[Webhooks & Services]タブを選択したところ
「WebsiteTest」というリポジトリの[Webhooks]に「https://webapplication15226.scm.azurewebsites.net/delopy/」というURLが登録されている。
これに対応するAzure Webサイトの本番URLは「https://webapplication15226.azurewebsites.net/」となる。

 この「scm」というサブドメインのURLはAzure Webサイトの管理コンソールのURLになる。URLの最後にある「deploy」はデプロイ用のエンドポイントなので、「deploy」を除いて、「https://webapplication15226.scm.azurewebsites.net/」というURLアクセスすると以下のような画面が表示される。

Azure Webサイトの管理コンソール画面 Azure Webサイトの管理コンソール画面

 これは「Kudu」(クーズー)と呼ばれているAzure Webサイトの管理コンソールの画面だ(ただし、現時点ではクラウドサービスには対応していない)。Kuduはオープンソースで開発が行われているので、興味があればソースコードあるいは以下のサイトを見てみるといいだろう。どのような機能が実装されているか調べることもできる。英語だが、Channel9で解説ビデオも公開されている。

 Kuduには環境情報の表示、ログや解析用のダンプ取得、起動しているプロセス一覧の表示、デバッグ用コンソールの表示といった機能がある。REST APIも公開されているため、外部からの制御も可能だ。便利なのでAzure Webサイトを使っている人は一度使ってみてほしい。

 現在プレビュー中の新ポータルではKuduの一部の機能が統合されており、コンソールや分析機能にもアクセスできるようになっている。Webサイトでの管理は新ポータルに移行するように推奨されているため、将来的には新ポータル画面で操作が完結するはずだ。

現在プレビュー中の新ポータル 現在プレビュー中の新ポータル
  (1) ログを表示する。
  (2) 分析ログを表示する。
  (3) コンソールを表示する。

 より詳細な解説についてはBuild Insiderの記事「ここまで進化した、Azure Webサイトの世界観(2014年7月版)」も参照してほしい。

       1|2|3|4 次のページへ

Copyright© 1999-2017 Digital Advantage Corp. All Rights Reserved.

@IT Special

- PR -

TechTargetジャパン

この記事に関連するホワイトペーパー

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。