{ 2013.7.18 }

悪魔に魂を売ってしまおう -devil’s pie- #phpmatsuri #phpmatsuri2013

    はてなブックマーク - 悪魔に魂を売ってしまおう -devil’s pie- #phpmatsuri #phpmatsuri2013
    このエントリーをはてなブックマークに追加

    PHPMatsuri2013に参加してきました!
    奥芝商店というスープカレー屋で念願の本場スープカレーを食べました!
    が、とてもボリューミーで死にかけた小山です。創成寺(ソーセージ)うまい!

    今回はPHPMatsuri2013のハッカソンで作成した“devil's pie”について、技術的な点と今後について紹介したいと思います。

    “devil's pie”とは?

    詳しくはこちらPHPMatsuri2013″大”LT大会での発表スライドとデモムービーをご覧ください。

    話はそれますが、PHPMatsuriはこの”大”LT大会が祭りの醍醐味と言っても過言ではないと思っています。

    徹夜して開発した成果の発表を待ちながら、他の人のいろいろな成果発表を聞いて盛り上がる。そしてそれぞれがそれぞれに投票して参加できる。

    この発表の瞬間のために参加しているんだと思います。

    “devil's pie”の中の技術

    話を戻します。

    スライドを見てもらえれば分かりますが、”devil's pie”は

    Webアプリケーション設置に必要な、「サーバの構築」と「アプリケーションのデプロイ」を、「Ansible」「serverspec」「Capistrano」を使って自動化するためのWebインターフェースになっています。

    “devil's pie”の実行の流れ

    “devil's pie”の動きとしては、まずホストネームと「サーバの魂」であるrootパスワードをもらって、Ansibleを使ってdevilユーザを対象サーバに追加します。

    その後、そのdevilユーザを使って

    • 1. serverspecでテストを実行→失敗を確認
    • 2. Ansibleでサーバ構築
    • 3. Capistranoでアプリケーションデプロイ
    • 4. serverspecでテストを実行→成功を確認

    という流れでWebアプリケーションを設置しています。

    Webアプリケーションは現在はCandycane、baserCMS、CakePHPに「デモ的に」対応しています。

    “devil's pie”の今後

    “devil's pie”はPHPMatsuri2013での発表のために作られましたが、今後の展開も意外にまじめに考えています。

    “devil's pie”の使い勝手は今のままをできるだけ維持したいのですが、「設定側(管理側)はもっといろいろできるようにしたいなあ」と思っています(今はまだ結構ハードコーディングしてる)。

    例えば、

    • 任意のアプリケーションに対応できるようにAnsibleのplaybookやserverspecのspec、Capistranoのdeploy.rbを設定できる
    • 「サーバの構築だけ」とか「アプリケーションのデプロイだけ」「テストだけ」でも使えるように
      • 「最初のサーバ構築だけボタン1つでできる」だけでも随分楽になる
    • “devil”ユーザではなくてもいいように(さすがにdevilは本番で使えない)
    • Web APIを通じて継続的に実行とか
    • playbookやspec、deploy.rbのアーカイブダウンロード(“devil's pie”を卒業した人へ)

    などなど。

    “devil's pie”の配布方法について

    あと、”devil's pie”の生きる道は「社内ツール」しかないわけですが(もしWebサービスとして公開したら。。。怖)、その”devil's pie”自体の構築がかなり面倒です。

    ソースを公開してすぐに、「ノードキュメント」で動かしはじめた北の猛者がいたらしいと聞きましたが、そういう人は稀です。もう一度言います。そういう人は稀です。あと、ちょっとおかしい。

    “devil's pie”から”devil's pie”をデプロイできるようにはするつもりですが、「じゃあ最初の”devil's pie”はどこから??」という話になるわけで。

    これについては、いずれVagrantのBoxの配布などで対応できればなと思っています(つまり、「Packer使ってみたい」)。

    “devil's pie”のVagrant Boxで作った仮想サーバから任意のサーバへ”devil's pie”をデプロイすればいい感じに社内に設置できるんじゃないかと(混乱をまねく文章になっていますが)。

    と、ここまで書いて、ふとAnsibleのサイトをみたら”AnsibleWorks AWX”というAnsibleのWebアプリケーションが提供されているようですね。

    PHPMatsuri2013の感想

    スタッフとしても参加したのですが、主に北海道の方々の素晴らしい運営により、とても有意義に過ごせました。

    “devil's pie”も4位をいただくことができました!共感してくださった方ありがとうございます!みんな魂を売りたいんですね!

    賞品としてOn-Lapという外部ディスプレイをいただきました!VJで使います!

    ちなみに個人的に印象に残った発表は、いろいろありますが3つほど選んでみました。

     

    Matsuriのその日の話題から作る人は、すごいな、と。で、ここまで作るか、と。

    どれも今後も開発が継続されそうなので楽しみです。すごく使いそう。

    というわけで、PHPMatsuri2013堪能しました!

    Comments are closed.