2014/11/22に開かれた、IoT勉強会 feat. ワンチップもくもく会での発表スライドです。
(2014/11/26) .deploymentファイルを使ってFluentMigratorを自動実行する方法が分かったため、Blogのリンク先を追記しました。
(2014/11/27) GitHubのリポジトリを移動したので、サンプルコードのURLを修正しました。
デプロイボタンを使ってみたIoT勉強会 feat. ワンチップもくもく会2014.11.22@thinkAmi(2014.11.26 追記)(2014.11.27 GitHubのURL修正)
View Slide
自己紹介• @thinkAmi• C#, Ruby,MS Access• NSEG, GDG信州• りんご食べあるき– 現在56種類くらい» http://ringo-tabetter.herokuapp.com/
デプロイボタンとは• ボタンを押すだけで、自動的にGitHub等からPaaSへデプロイし、Webアプリを動かすもの– Deploy to Azure Button– Deploy to Heroku Button
使う人• Deploy to Azureボタンを押す
使う人• デプロイ情報を入力
使う人• デプロイするリソースを確認
使う人• デプロイ終わり
使う人• Azure Websites で動作
作る人• GitHubにデプロイするWebアプリのソースコードを置く– publicなリポジトリ
作る人• GitHubにazuredeploy.jsonを置く– 公式リファレンスが見当たらない...– 以下のGitHubのjsonファイルを参考にした– https://github.com/Tuesdaysgreen/JabbR– 例えば、以下を書き換えてみる– デフォルトのリージョンを「Japan East」に– DBの照合順序を「Japanese_XJIS_100_CS_AS_KS_WS」に– DBのサイズを「20MB」に– 接続文字列を「NancyOwinAzure」に
作る人• Deploy to Azure Buttonを置く– GitHubのREADMEやどこかのWebサイト• Webサイトの場合、パラメータとしてGitHubのリポジトリのURLを渡す» http://azure.microsoft.com/blog/2014/11/13/deploy-to-azure-button-for-azure-websites-2/
作る人• デプロイするアプリを考える– .NET(C#)– Pythonのリポジトリを試してみたところ、デプロイは成功したものの...• https://azuredeploy.net/?repository=https://github.com/kakky/mybook
デプロイするアプリ• MS謹製だと、このあたり?– ASP.NET (webアプリフレームワーク)– EntityFramework (ORM) (MS Accessで動かない...)• 最近、MSさんOSSを推進してるので、MS謹製以外の.NETのOSSで試す– Nancy.OWIN– Dapper– FluentMigrator
デプロイするアプリ• Nancy.OWIN– https://github.com/NancyFx/Nancy– 軽量Webアプリケーションフレームワーク
デプロイするアプリ• Nancy.OWIN– Open Web Interface for .NET– PythonのWSGI, RubyのRack みたいなの– WebサーバとWebフレームワークをつなぐ共通インタフェース– IIS以外でも.NETのWebフレームワークが動く
デプロイするアプリ• Nancy.OWIN– PythonのFlask, RubyのSinatra みたいなの– 軽量Webアプリケーションフレームワーク– Mono(Linux)やRaspberryPiでも動作(するとか)» Nancy公式(http://nancyfx.org/)より
デプロイするアプリ• Dapper– https://github.com/StackExchange/dapper-dot-net– マイクロORM– StackOverflowのStack Exchange社製– MS Accessでも動く!
デプロイするアプリ• FluentMigrator– https://github.com/schambers/fluentmigrator– いわゆる、マイグレーションツール– C#のコードからDDLやDMLを実行– MS Accessでも動く!
デプロイするアプリ• EntityFrameworkを使ってないのでデプロイ直後はDBの定義とかできてない• 仕方ないので追加作業として、手動でDBのマイグレーションを行う– この発表後、.deploymentファイルを使うとできたのでBlogを書きました(11/26追加)• http://thinkami.hatenablog.com/entry/2014/11/26/060848
デプロイするアプリ• DBのマイグレーション– 管理画面(Kudu)のDebugConsoleから実行• https://.scm.azurewebsites.net/DebugConsole
デプロイするアプリ• DBのマイグレーション– ローカルと同じような感覚で実行• "D:\home\site\repository\packages\FluentMigrator.Tools.1.3.0.0\tools\AnyCPU\40\Migrate.exe"/conn "%SQLAZURECONNSTR_NancyOwinAzure%"/provider sqlserver2012/assembly"D:\home\site\repository\AspNetHosting\bin\AspNetHosting.dll"/verbose true• 上記はすべて一行で
デプロイするアプリ• DBのマイグレーション– 無事終了し、準備完了
試してみた• MS謹製でなくても動作• ソースコード (2014/11/27 URL修正)– https://github.com/thinkAmi-sandbox/NancyOwinAzure-sample
ちなみに• Deploy to Heroku Button– Nancy.OWINアプリはHerokuヘもデプロイ可• ホストがIISからSelfHostingへと変更– サードパーティビルドパックの.NETを使う• 中身はMono– https://devcenter.heroku.com/articles/third-party-buildpacks
ちなみに• Deploy to Heroku Button– 動いてます– ソースコード (2014/11/27 URL修正)• https://github.com/thinkAmi-sandbox/NancyOwinHeroku-sample
まとめ• デプロイボタンを使うことで対象の言語の開発環境がなくてもAzureなどのアカウントがあれば簡単にWebアプリをデプロイできる– 何かのデモに使うとか
参考文献• Deploy to Azure Button for Azure Websites – Microsoft AzureBlog– http://azure.microsoft.com/blog/2014/11/13/deploy-to-azure-button-for-azure-websites-2/• Deploy to Azure Button を試してみた - しばやん雑記– http://blog.shibayan.jp/entry/20141114/1415934039• Deploy to Heroku / Webアプリケーションのポータビリティ再び -naoyaのはてなダイアリー– http://d.hatena.ne.jp/naoya/20140809/1407556488