Vagrant, Ansible, そして Docker ~ 俺達の戦いはこれからだ! ~

Vagrant, Ansible, そして Docker ~ 俺達の戦いはこれからだ! ~

1) 残念タイトル

2) @smagchとは。在宅で働いてるフリーランスのプログラマ。ほぼ開発を生業。メインでJavaScript(もともとActionScript, Java)少しPHPもする。今春、旭川の勉強会でComposerについて発表(http://www.slideshare.net/shimaguchi/compose )。以上より、VagrantやDockerに関して理解が深くはない。ほとんどない。このスライド、たぶんバグ満載。あらかじめ、ごめんなさいをしておいて、ハードルを下げる。というか、発表まで時間があったし、実務でも使っているので物凄いテクニカルな発表ができるという見込みをしていましたが、物臭な性格がボトルネックになるということを見込みを入れていなかったことが災いしましたぁ。

3) Vagrant。ローカルにVM立ち上げて、同じ環境で開発しようよ!って感じ?(たぶん)。ローカルにLinuxをいれて、プロダクションと同じ環境で開発するということ。ドットインストールとかにも授業あるくらいだから、Vagrantはかなりポピュラーなはず。

4) Vagrantといえば・・・、英語だと同意味でしたっけ?浮浪者?

5) 公式サイトのスクリーンショット

6) 公式サイトのデザインがカッコイイ。ここで勘の良い人がいれば気付くはず。

7) 公式サイトのデザインがカッコイイ。Rubyのオープンソースプロジェクトのサイトってデザインいいですよね。

8) 現在、HerokuにデプロイしてるWebアプリの開発例。その他エピソードのお話(オフレコ)

9) かなり適当な例(Vagrantfile)。Rubyシンタックスだよね。そのままRubyって感じ。

10) Chefって?今の開発ではChef使ってますね。

11) Chefは、PuppetとかAnsibleとかの仲間。Puppet, Ansible, Chefとか最近、良く聞きますよね。ただ、僕は開発屋なんで、あんまりピンとこない・・・・。

12) Ansibleって?Chef, Puppetとかの(ry

13) サーバーのシステムは、アプリの根本だから、基本的にはバージョンコントロール&テストしなきゃ。僕じゃあ、うまく説明できないので最近読んだブログから名言を拝借する。人前で英語でスピーチできるようになりたいから、ちゃんと英語を読む(試練)。

14) 要するに、サーバーの状態を保存するってことなんでしょうか?ソフトのインスコ・アプデ、プロセス管理、各種コンフィグ(nginx.conf, httpd.conf, php.ini, my.cnfなど)。今の開発では、チームの他の人が書いてくれているので、僕はあんまり知らないんだよね。コンフィグ類はちゃんとGitでバージョン管理してますよ。

15) (Ansibleを割愛して)ここで開発環境の紹介

16) ご覧のとおり、iTerm2とSublimeText2というシンプル構成で開発してます。ここで、勘の良い方は気付くはずですが、ご覧の画面に重大な問題箇所があります。10秒か、1分くらい考えてもらう。

17) メモリが腹9分目を超えてる(Vagrantは4GBのMacBook Airではキツイ)