Upgrade to Pro — share decks privately, control downloads, hide ads and more …

デプロイボタンを使ってみた

thinkAmi
November 22, 2014

 デプロイボタンを使ってみた

2014/11/22に開かれた、IoT勉強会 feat. ワンチップもくもく会での発表スライドです。

(2014/11/26) .deploymentファイルを使ってFluentMigratorを自動実行する方法が分かったため、Blogのリンク先を追記しました。

(2014/11/27) GitHubのリポジトリを移動したので、サンプルコードのURLを修正しました。

thinkAmi

November 22, 2014
Tweet

More Decks by thinkAmi

Other Decks in Programming

Transcript

  1. デプロイボタンを使ってみた
    IoT勉強会 feat. ワンチップもくもく会
    2014.11.22
    @thinkAmi
    (2014.11.26 追記)
    (2014.11.27 GitHubのURL修正)

    View Slide

  2. 自己紹介
    • @thinkAmi
    • C#, Ruby,
    MS Access
    • NSEG, GDG信州
    • りんご食べあるき
    – 現在56種類くらい
    » http://ringo-tabetter.herokuapp.com/

    View Slide

  3. デプロイボタンとは
    • ボタンを押すだけで、自動的に
    GitHub等からPaaSへデプロイし、
    Webアプリを動かすもの
    – Deploy to Azure Button
    – Deploy to Heroku Button

    View Slide

  4. 使う人
    • Deploy to Azureボタンを押す

    View Slide

  5. 使う人
    • デプロイ情報を入力

    View Slide

  6. 使う人
    • デプロイするリソースを確認

    View Slide

  7. 使う人
    • デプロイ終わり

    View Slide

  8. 使う人
    • Azure Websites で動作

    View Slide

  9. 作る人
    • GitHubにデプロイするWebアプリの
    ソースコードを置く
    – publicなリポジトリ

    View Slide

  10. 作る人
    • GitHubにazuredeploy.jsonを置く
    – 公式リファレンスが見当たらない...
    – 以下のGitHubのjsonファイルを参考にした
    – https://github.com/Tuesdaysgreen/JabbR
    – 例えば、以下を書き換えてみる
    – デフォルトのリージョンを「Japan East」に
    – DBの照合順序を「Japanese_XJIS_100_CS_AS_KS_WS」に
    – DBのサイズを「20MB」に
    – 接続文字列を「NancyOwinAzure」に

    View Slide

  11. 作る人
    • Deploy to Azure Buttonを置く
    – GitHubのREADMEやどこかのWebサイト
    • Webサイトの場合、パラメータとして
    GitHubのリポジトリのURLを渡す
    » http://azure.microsoft.com/blog/2014/11/13/depl
    oy-to-azure-button-for-azure-websites-2/

    View Slide

  12. 作る人
    • デプロイするアプリを考える
    – .NET(C#)
    – Pythonのリポジトリを試してみたところ、
    デプロイは成功したものの...
    • https://azuredeploy.net/?
    repository=https://github.com/kakky/mybook

    View Slide

  13. デプロイするアプリ
    • MS謹製だと、このあたり?
    – ASP.NET (webアプリフレームワーク)
    – EntityFramework (ORM) (MS Accessで動かない...)
    • 最近、MSさんOSSを推進してるので、
    MS謹製以外の.NETのOSSで試す
    – Nancy.OWIN
    – Dapper
    – FluentMigrator

    View Slide

  14. デプロイするアプリ
    • Nancy.OWIN
    – https://github.com/NancyFx/Nancy
    – 軽量Webアプリケーションフレームワーク

    View Slide

  15. デプロイするアプリ
    • Nancy.OWIN
    – Open Web Interface for .NET
    – PythonのWSGI, RubyのRack みたいなの
    – WebサーバとWebフレームワークをつなぐ
    共通インタフェース
    – IIS以外でも.NETのWebフレームワークが動く

    View Slide

  16. デプロイするアプリ
    • Nancy.OWIN
    – PythonのFlask, RubyのSinatra みたいなの
    – 軽量Webアプリケーションフレームワーク
    – Mono(Linux)やRaspberryPiでも動作(するとか)
    » Nancy公式(http://nancyfx.org/)より

    View Slide

  17. デプロイするアプリ
    • Dapper
    – https://github.com/StackExchange/dapper-dot-net
    – マイクロORM
    – StackOverflowのStack Exchange社製
    – MS Accessでも動く!

    View Slide

  18. デプロイするアプリ
    • FluentMigrator
    – https://github.com/schambers/fluentmigrator
    – いわゆる、マイグレーションツール
    – C#のコードからDDLやDMLを実行
    – MS Accessでも動く!

    View Slide

  19. デプロイするアプリ
    • EntityFrameworkを使ってないので
    デプロイ直後はDBの定義とかできてない
    • 仕方ないので追加作業として、
    手動でDBのマイグレーションを行う
    – この発表後、.deploymentファイルを使うと
    できたのでBlogを書きました(11/26追加)
    • http://thinkami.hatenablog.com/entry/2014/11/26/060848

    View Slide

  20. デプロイするアプリ
    • DBのマイグレーション
    – 管理画面(Kudu)のDebugConsoleから実行
    • https://.scm.azurewebsites.net/DebugConsole

    View Slide

  21. デプロイするアプリ
    • 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\AspNetHosti
    ng.dll"
    /verbose true
    • 上記はすべて一行で

    View Slide

  22. デプロイするアプリ
    • DBのマイグレーション
    – 無事終了し、準備完了

    View Slide

  23. 試してみた
    • MS謹製でなくても動作
    • ソースコード (2014/11/27 URL修正)
    – https://github.com/thinkAmi-
    sandbox/NancyOwinAzure-sample

    View Slide

  24. ちなみに
    • Deploy to Heroku Button
    – Nancy.OWINアプリはHerokuヘもデプロイ可
    • ホストがIISからSelfHostingへと変更
    – サードパーティビルドパックの.NETを使う
    • 中身はMono
    – https://devcenter.heroku.com/articles/third-party-buildpacks

    View Slide

  25. ちなみに
    • Deploy to Heroku Button
    – 動いてます
    – ソースコード (2014/11/27 URL修正)
    • https://github.com/thinkAmi-
    sandbox/NancyOwinHeroku-sample

    View Slide

  26. まとめ
    • デプロイボタンを使うことで
    対象の言語の開発環境がなくても
    Azureなどのアカウントがあれば
    簡単にWebアプリをデプロイできる
    – 何かのデモに使うとか

    View Slide

  27. 参考文献
    • Deploy to Azure Button for Azure Websites – Microsoft Azure
    Blog
    – 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

    View Slide