SlideShare a Scribd company logo
Kansai RubyKaigi 06
インフラの人がChefや
Serverspec(ほか)が
Rubyだったおかげですこし
プログラムをするようになった話
2015年7月11日 LT @sawanoboly
Kansai RubyKaigi 06LT @sawanoboly
立場と目的
Kansai RubyKaigi 06LT @sawanoboly
インフラ系の人
Kansai RubyKaigi 06LT @sawanoboly
インフラ系の人
□ サーバ/インフラの構築とオペレーション。
※本スライド内ではこういうのを便宜上イン
フラ系またはOpsと呼称します。
Kansai RubyKaigi 06LT @sawanoboly
インフラ系の人
□ サーバ/インフラの構築とオペレーション。
※本スライド内ではこういうのを便宜上イン
フラ系またはOpsと呼称します。
□ いつもRubyを使ってる人がスゴイと思うような
ことは言えません。
Kansai RubyKaigi 06LT @sawanoboly
言っとこうと思ったこと
Kansai RubyKaigi 06LT @sawanoboly
言っとこうと思ったこと
□ インフラ系の人でもRubyならできるようになる
かもしれない。
Kansai RubyKaigi 06LT @sawanoboly
言っとこうと思ったこと
□ インフラ系の人でもRubyならできるようになる
かもしれない。
□ それでどうなるのか?
Kansai RubyKaigi 06LT @sawanoboly
言っとこうと思ったこと
□ インフラ系の人でもRubyならできるようになる
かもしれない。
□ それでどうなるのか?
□ チームの生産性を上げられます。

※個人の見解です。
Kansai RubyKaigi 06LT @sawanoboly
Rubyをさわるより前
Kansai RubyKaigi 06LT @sawanoboly
おおよそプログラムと
思えそうなことは全然しない。
Kansai RubyKaigi 06LT @sawanoboly
Opsからの眺め
□ OSやパッケージ(またはMakeでインストール)
□ 身内のDeveloperが書いてるソフトウェア群
Kansai RubyKaigi 06LT @sawanoboly
Opsからの眺め
□ OSやパッケージ(またはMakeでインストール)
□書式のあるログにエラー(ID)、何となく分かる
□ 身内のDeveloper
Kansai RubyKaigi 06LT @sawanoboly
Opsからの眺め
□ OSやパッケージ(またはMakeでインストール
□書式のあるログにエラー(ID)
□ 身内のDeveloperが書いてるソフトウェア群
□ `スタックトレース`と呼ばれる謎のカタマリ
Kansai RubyKaigi 06LT @sawanoboly
Opsからの眺め
□ OSやパッケージ(またはMakeでインストール)
□書式のあるログにエラー(ID)、何となく分かる
□ 身内のDeveloperが書いてるソフトウェア群
□ `スタックトレース`と呼ばれる謎のカタマリ
Kansai RubyKaigi 06LT @sawanoboly
Opsからの眺め
□ OSやパッケージ(またはMakeでインストール)
□書式のあるログにエラー(ID)、何となく分かる
□ 身内のDeveloperが書いてるソフトウェア群
□ `スタックトレース`と呼ばれる謎のカタマリ
どっかの馬の骨が作ってるけどわかる
Kansai RubyKaigi 06LT @sawanoboly
Opsからの眺め
□ OSやパッケージ(またはMakeでインストール)
□書式のあるログにエラー(ID)、何となく分かる
□ 身内のDeveloperが書いてるソフトウェア群
□ `スタックトレース`と呼ばれる謎のカタマリ
どっかの馬の骨が作ってるけどわかる
身内のやってることなのにイミワカンネぇ
Kansai RubyKaigi 06LT @sawanoboly
ちょっと転機
Kansai RubyKaigi 06LT @sawanoboly
OSS系のサーバって
管理めんどくさい…
※しばらくWindowsNetworkの管理者だった
Kansai RubyKaigi 06LT @sawanoboly
それとCapistrano
※当時こんなロゴだった気がする
Kansai RubyKaigi 06LT @sawanoboly
中央集権でポリシー配布できそう
Kansai RubyKaigi 06LT @sawanoboly
中央集権でポリシー配布できそう
□ インフラ系は管理社会大好き。
Kansai RubyKaigi 06LT @sawanoboly
中央集権でポリシー配布できそう
□ インフラ系は管理社会大好き。
□ サーバ達は各自で俺に情報をあつめろ。
Kansai RubyKaigi 06LT @sawanoboly
中央集権でポリシー配布できそう
□ インフラ系は管理社会大好き。
□ サーバ達は各自で俺に情報をあつめろ。
自由は屈服である
無知は力である
※小説『1984』より
Kansai RubyKaigi 06LT @sawanoboly
レシピに手を出すと
そこに
※Chefのリソースを記述するファイル
(※)
Kansai RubyKaigi 06LT @sawanoboly
Copyright © 2006, Yukihiro Matsumoto
Kansai RubyKaigi 06LT @sawanoboly
なんか色々わかった
Kansai RubyKaigi 06LT @sawanoboly
なんか色々わかった
□ レシピはRubyスクリプト。
Kansai RubyKaigi 06LT @sawanoboly
なんか色々わかった
□ レシピはRubyスクリプト。
□ スタックトレース…?
□ 俺が書いた行を指してる気がする。
□ もしかして役に立つんじゃね。
Kansai RubyKaigi 06LT @sawanoboly
Rubyだからだったのか?
□ 覚えようとしたけどできてない
□ perl, python, php, javascript, Javaなど
□ ちょっとできた
□ vbscript(wsh), cmd, bash
Kansai RubyKaigi 06LT @sawanoboly
Rubyが手軽な
オブジェクト指向型
スクリプト言語だから。
Copyright © 2006, Yukihiro Matsumoto
Kansai RubyKaigi 06LT @sawanoboly
Rubyが手軽な
オブジェクト指向型
スクリプト言語だから。
Copyright © 2006, Yukihiro Matsumoto
※この理由は後付けです
Kansai RubyKaigi 06LT @sawanoboly
インフラ的
オブジェクト指向解釈
Kansai RubyKaigi 06LT @sawanoboly
クラス…
Kansai RubyKaigi 06LT @sawanoboly
クラス…
□ パラメータを色々持ってる…
□ 外部とインターフェースでやりとりする…
Kansai RubyKaigi 06LT @sawanoboly
クラス…
□ パラメータを色々持ってる…
□ 外部とインターフェースでやりとりする…
#=>サーバ(OS)のイメージ

ってことでいいや
Kansai RubyKaigi 06LT @sawanoboly
インスタンス…
Kansai RubyKaigi 06LT @sawanoboly
インスタンス…
□ クラスを元に…
□ 色々と実行可能になってる…
Kansai RubyKaigi 06LT @sawanoboly
インスタンス…
□ クラスを元に…
□ 色々と実行可能になってる…
#=> これ起動後のサーバだわ
Kansai RubyKaigi 06LT @sawanoboly
その他もろもろ
□ 各種メソッド
=> サーバで上げてるデーモンとかこんなよね。
□ 継承
=> コンテナのファイルシステムって感じー。

(当時vzfs(OpenVZ), 今ならOverlayとか)
Kansai RubyKaigi 06LT @sawanoboly
あとはだいたい
これらの応用
Kansai RubyKaigi 06LT @sawanoboly
コードをすこし
触れる用になった。
Kansai RubyKaigi 06LT @sawanoboly
コードをすこし
触れる用になった。
身内のやってることなのにイミワカンネぇ が
Kansai RubyKaigi 06LT @sawanoboly
コードをすこし
触れる用になった。
身内のやってることちょっとわかる に
Kansai RubyKaigi 06LT @sawanoboly
インフラ系 x オブジェクト指向は
逆流する。
Kansai RubyKaigi 06LT @sawanoboly
インフラ系 x オブジェクト指向は
逆流する。
□ なんでもインスタンス扱いでいいやってなる。
Kansai RubyKaigi 06LT @sawanoboly
インフラ系 x オブジェクト指向は
逆流する。
□ なんでもインスタンス扱いでいいやってなる。
□ モデルをつくりたくなる。
Kansai RubyKaigi 06LT @sawanoboly
インフラ系 x オブジェクト指向は
逆流する。
□ なんでもインスタンス扱いでいいやってなる。
□ モデルをつくりたくなる。
□単体サーバはどうでも良くなり、多くのことを
PaaSっぽくまとまり単位で扱う。
Kansai RubyKaigi 06LT @sawanoboly
インフラ系 x オブジェクト指向は
逆流する。
□ なんでもインスタンス扱いでいいやってなる。
□ モデルをつくりたくなる。
□単体サーバはどうでも良くなり、多くのことを
PaaSっぽくまとまり単位で扱う。
□APIが無いとキレるが、何とかする。
Kansai RubyKaigi 06LT @sawanoboly
のちに自著で調子に乗って語る
Kansai RubyKaigi 06LT @sawanoboly
のちに自著で調子に乗って語る
Q. ChefはRubyをでき
るほうがイイですか?
Kansai RubyKaigi 06LT @sawanoboly
のちに自著で調子に乗って語る
Q. ChefはRubyをでき
るほうがイイですか?
A. 触ってればRubyが
デキるようになります。
Kansai RubyKaigi 06LT @sawanoboly
25分Ver用の話(割愛)
□ コードに興味持ってバージョン管理が変わったよ。
□ サフィックス法(.back, .20150711) からGitへ。
□ デプロイの起点もGitに。CIツール使うのが上手になる。
□コードの気配を察知して開発初期から継続デリバリするよ。
□ テストを触れるようになったよ。
□ ServerspecからRSpecに入る。
□ Docでイマイチわからない時でも、テスト見ればいいやってなる。
□ インフラ系のヒト、ゼロからつくるのはムリだけど、土俵用に改良するよ。
Kansai RubyKaigi 06LT @sawanoboly
Developerがやること
Kansai RubyKaigi 06LT @sawanoboly
Developerがやること
□ Opsにとにかく自動化を振る。
Kansai RubyKaigi 06LT @sawanoboly
Developerがやること
□ Opsにとにかく自動化を振る。
□人員追加は断る。
Kansai RubyKaigi 06LT @sawanoboly
Developerがやること
□ Opsにとにかく自動化を振る。
□人員追加は断る。
=> 楽をしたがるOpsならコードを書き始める。
Kansai RubyKaigi 06LT @sawanoboly
Developerがやること
□ Opsにとにかく自動化を振る。
□人員追加は断る。
=> 楽をしたがるOpsならコードを書き始める。
=> チームの効率があがる。
Kansai RubyKaigi 06LT @sawanoboly
Developerがやること
□ Opsにとにかく自動化を振る。
□人員追加は断る。
=> 楽をしたがるOpsならコードを書き始める。
=> チームの効率があがる。
? ついてこない場合…
Kansai RubyKaigi 06LT @sawanoboly
(最後に)
インフラ系の象徴
といえる言葉を用いて
Kansai RubyKaigi 06LT @sawanoboly
炎上
※自らの調査で解決できることが前提です
※なんだかんだでテンションあがります
Kansai RubyKaigi 06LT @sawanoboly
炎上はこのように変換することができます
Enjo
Kansai RubyKaigi 06LT @sawanoboly
Rubyを足してみましょう
Enjo+ Ruby
※発表している人は直前までテーマを勘違いしています。
正しくは『Enjoy Progamming』
Kansai RubyKaigi 06LT @sawanoboly
Enjo+ Ruby
この計算は繰り上がりになるため、
※発表している人は直前までテーマを勘違いしています。
正しくは『Enjoy Progamming』
Kansai RubyKaigi 06LT @sawanoboly
この計算は繰り上がりになるため、
おとなりから`y`を借りてくることができます。
Enjo+ Ruby
※発表している人は直前までテーマを勘違いしています。
正しくは『Enjoy Progamming』
Kansai RubyKaigi 06LT @sawanoboly
Opsでも
Enjoy Ruby できる
※俺ができるんだから誰でもできるんだろう多分
Kansai RubyKaigi 06LT @sawanoboly
おわり

More Related Content

[LT] インフラの人がChefやServerspec(ほか)が Rubyだったおかげですこし プログラムをするようになった話

  • 2. Kansai RubyKaigi 06LT @sawanoboly 立場と目的
  • 3. Kansai RubyKaigi 06LT @sawanoboly インフラ系の人
  • 4. Kansai RubyKaigi 06LT @sawanoboly インフラ系の人 □ サーバ/インフラの構築とオペレーション。 ※本スライド内ではこういうのを便宜上イン フラ系またはOpsと呼称します。
  • 5. Kansai RubyKaigi 06LT @sawanoboly インフラ系の人 □ サーバ/インフラの構築とオペレーション。 ※本スライド内ではこういうのを便宜上イン フラ系またはOpsと呼称します。 □ いつもRubyを使ってる人がスゴイと思うような ことは言えません。
  • 6. Kansai RubyKaigi 06LT @sawanoboly 言っとこうと思ったこと
  • 7. Kansai RubyKaigi 06LT @sawanoboly 言っとこうと思ったこと □ インフラ系の人でもRubyならできるようになる かもしれない。
  • 8. Kansai RubyKaigi 06LT @sawanoboly 言っとこうと思ったこと □ インフラ系の人でもRubyならできるようになる かもしれない。 □ それでどうなるのか?
  • 9. Kansai RubyKaigi 06LT @sawanoboly 言っとこうと思ったこと □ インフラ系の人でもRubyならできるようになる かもしれない。 □ それでどうなるのか? □ チームの生産性を上げられます。
 ※個人の見解です。
  • 10. Kansai RubyKaigi 06LT @sawanoboly Rubyをさわるより前
  • 11. Kansai RubyKaigi 06LT @sawanoboly おおよそプログラムと 思えそうなことは全然しない。
  • 12. Kansai RubyKaigi 06LT @sawanoboly Opsからの眺め □ OSやパッケージ(またはMakeでインストール) □ 身内のDeveloperが書いてるソフトウェア群
  • 13. Kansai RubyKaigi 06LT @sawanoboly Opsからの眺め □ OSやパッケージ(またはMakeでインストール) □書式のあるログにエラー(ID)、何となく分かる □ 身内のDeveloper
  • 14. Kansai RubyKaigi 06LT @sawanoboly Opsからの眺め □ OSやパッケージ(またはMakeでインストール □書式のあるログにエラー(ID) □ 身内のDeveloperが書いてるソフトウェア群 □ `スタックトレース`と呼ばれる謎のカタマリ
  • 15. Kansai RubyKaigi 06LT @sawanoboly Opsからの眺め □ OSやパッケージ(またはMakeでインストール) □書式のあるログにエラー(ID)、何となく分かる □ 身内のDeveloperが書いてるソフトウェア群 □ `スタックトレース`と呼ばれる謎のカタマリ
  • 16. Kansai RubyKaigi 06LT @sawanoboly Opsからの眺め □ OSやパッケージ(またはMakeでインストール) □書式のあるログにエラー(ID)、何となく分かる □ 身内のDeveloperが書いてるソフトウェア群 □ `スタックトレース`と呼ばれる謎のカタマリ どっかの馬の骨が作ってるけどわかる
  • 17. Kansai RubyKaigi 06LT @sawanoboly Opsからの眺め □ OSやパッケージ(またはMakeでインストール) □書式のあるログにエラー(ID)、何となく分かる □ 身内のDeveloperが書いてるソフトウェア群 □ `スタックトレース`と呼ばれる謎のカタマリ どっかの馬の骨が作ってるけどわかる 身内のやってることなのにイミワカンネぇ
  • 18. Kansai RubyKaigi 06LT @sawanoboly ちょっと転機
  • 19. Kansai RubyKaigi 06LT @sawanoboly OSS系のサーバって 管理めんどくさい… ※しばらくWindowsNetworkの管理者だった
  • 20. Kansai RubyKaigi 06LT @sawanoboly それとCapistrano ※当時こんなロゴだった気がする
  • 21. Kansai RubyKaigi 06LT @sawanoboly 中央集権でポリシー配布できそう
  • 22. Kansai RubyKaigi 06LT @sawanoboly 中央集権でポリシー配布できそう □ インフラ系は管理社会大好き。
  • 23. Kansai RubyKaigi 06LT @sawanoboly 中央集権でポリシー配布できそう □ インフラ系は管理社会大好き。 □ サーバ達は各自で俺に情報をあつめろ。
  • 24. Kansai RubyKaigi 06LT @sawanoboly 中央集権でポリシー配布できそう □ インフラ系は管理社会大好き。 □ サーバ達は各自で俺に情報をあつめろ。 自由は屈服である 無知は力である ※小説『1984』より
  • 25. Kansai RubyKaigi 06LT @sawanoboly レシピに手を出すと そこに ※Chefのリソースを記述するファイル (※)
  • 26. Kansai RubyKaigi 06LT @sawanoboly Copyright © 2006, Yukihiro Matsumoto
  • 27. Kansai RubyKaigi 06LT @sawanoboly なんか色々わかった
  • 28. Kansai RubyKaigi 06LT @sawanoboly なんか色々わかった □ レシピはRubyスクリプト。
  • 29. Kansai RubyKaigi 06LT @sawanoboly なんか色々わかった □ レシピはRubyスクリプト。 □ スタックトレース…? □ 俺が書いた行を指してる気がする。 □ もしかして役に立つんじゃね。
  • 30. Kansai RubyKaigi 06LT @sawanoboly Rubyだからだったのか? □ 覚えようとしたけどできてない □ perl, python, php, javascript, Javaなど □ ちょっとできた □ vbscript(wsh), cmd, bash
  • 31. Kansai RubyKaigi 06LT @sawanoboly Rubyが手軽な オブジェクト指向型 スクリプト言語だから。 Copyright © 2006, Yukihiro Matsumoto
  • 32. Kansai RubyKaigi 06LT @sawanoboly Rubyが手軽な オブジェクト指向型 スクリプト言語だから。 Copyright © 2006, Yukihiro Matsumoto ※この理由は後付けです
  • 33. Kansai RubyKaigi 06LT @sawanoboly インフラ的 オブジェクト指向解釈
  • 34. Kansai RubyKaigi 06LT @sawanoboly クラス…
  • 35. Kansai RubyKaigi 06LT @sawanoboly クラス… □ パラメータを色々持ってる… □ 外部とインターフェースでやりとりする…
  • 36. Kansai RubyKaigi 06LT @sawanoboly クラス… □ パラメータを色々持ってる… □ 外部とインターフェースでやりとりする… #=>サーバ(OS)のイメージ
 ってことでいいや
  • 37. Kansai RubyKaigi 06LT @sawanoboly インスタンス…
  • 38. Kansai RubyKaigi 06LT @sawanoboly インスタンス… □ クラスを元に… □ 色々と実行可能になってる…
  • 39. Kansai RubyKaigi 06LT @sawanoboly インスタンス… □ クラスを元に… □ 色々と実行可能になってる… #=> これ起動後のサーバだわ
  • 40. Kansai RubyKaigi 06LT @sawanoboly その他もろもろ □ 各種メソッド => サーバで上げてるデーモンとかこんなよね。 □ 継承 => コンテナのファイルシステムって感じー。
 (当時vzfs(OpenVZ), 今ならOverlayとか)
  • 41. Kansai RubyKaigi 06LT @sawanoboly あとはだいたい これらの応用
  • 42. Kansai RubyKaigi 06LT @sawanoboly コードをすこし 触れる用になった。
  • 43. Kansai RubyKaigi 06LT @sawanoboly コードをすこし 触れる用になった。 身内のやってることなのにイミワカンネぇ が
  • 44. Kansai RubyKaigi 06LT @sawanoboly コードをすこし 触れる用になった。 身内のやってることちょっとわかる に
  • 45. Kansai RubyKaigi 06LT @sawanoboly インフラ系 x オブジェクト指向は 逆流する。
  • 46. Kansai RubyKaigi 06LT @sawanoboly インフラ系 x オブジェクト指向は 逆流する。 □ なんでもインスタンス扱いでいいやってなる。
  • 47. Kansai RubyKaigi 06LT @sawanoboly インフラ系 x オブジェクト指向は 逆流する。 □ なんでもインスタンス扱いでいいやってなる。 □ モデルをつくりたくなる。
  • 48. Kansai RubyKaigi 06LT @sawanoboly インフラ系 x オブジェクト指向は 逆流する。 □ なんでもインスタンス扱いでいいやってなる。 □ モデルをつくりたくなる。 □単体サーバはどうでも良くなり、多くのことを PaaSっぽくまとまり単位で扱う。
  • 49. Kansai RubyKaigi 06LT @sawanoboly インフラ系 x オブジェクト指向は 逆流する。 □ なんでもインスタンス扱いでいいやってなる。 □ モデルをつくりたくなる。 □単体サーバはどうでも良くなり、多くのことを PaaSっぽくまとまり単位で扱う。 □APIが無いとキレるが、何とかする。
  • 50. Kansai RubyKaigi 06LT @sawanoboly のちに自著で調子に乗って語る
  • 51. Kansai RubyKaigi 06LT @sawanoboly のちに自著で調子に乗って語る Q. ChefはRubyをでき るほうがイイですか?
  • 52. Kansai RubyKaigi 06LT @sawanoboly のちに自著で調子に乗って語る Q. ChefはRubyをでき るほうがイイですか? A. 触ってればRubyが デキるようになります。
  • 53. Kansai RubyKaigi 06LT @sawanoboly 25分Ver用の話(割愛) □ コードに興味持ってバージョン管理が変わったよ。 □ サフィックス法(.back, .20150711) からGitへ。 □ デプロイの起点もGitに。CIツール使うのが上手になる。 □コードの気配を察知して開発初期から継続デリバリするよ。 □ テストを触れるようになったよ。 □ ServerspecからRSpecに入る。 □ Docでイマイチわからない時でも、テスト見ればいいやってなる。 □ インフラ系のヒト、ゼロからつくるのはムリだけど、土俵用に改良するよ。
  • 54. Kansai RubyKaigi 06LT @sawanoboly Developerがやること
  • 55. Kansai RubyKaigi 06LT @sawanoboly Developerがやること □ Opsにとにかく自動化を振る。
  • 56. Kansai RubyKaigi 06LT @sawanoboly Developerがやること □ Opsにとにかく自動化を振る。 □人員追加は断る。
  • 57. Kansai RubyKaigi 06LT @sawanoboly Developerがやること □ Opsにとにかく自動化を振る。 □人員追加は断る。 => 楽をしたがるOpsならコードを書き始める。
  • 58. Kansai RubyKaigi 06LT @sawanoboly Developerがやること □ Opsにとにかく自動化を振る。 □人員追加は断る。 => 楽をしたがるOpsならコードを書き始める。 => チームの効率があがる。
  • 59. Kansai RubyKaigi 06LT @sawanoboly Developerがやること □ Opsにとにかく自動化を振る。 □人員追加は断る。 => 楽をしたがるOpsならコードを書き始める。 => チームの効率があがる。 ? ついてこない場合…
  • 60. Kansai RubyKaigi 06LT @sawanoboly (最後に) インフラ系の象徴 といえる言葉を用いて
  • 61. Kansai RubyKaigi 06LT @sawanoboly 炎上 ※自らの調査で解決できることが前提です ※なんだかんだでテンションあがります
  • 62. Kansai RubyKaigi 06LT @sawanoboly 炎上はこのように変換することができます Enjo
  • 63. Kansai RubyKaigi 06LT @sawanoboly Rubyを足してみましょう Enjo+ Ruby ※発表している人は直前までテーマを勘違いしています。 正しくは『Enjoy Progamming』
  • 64. Kansai RubyKaigi 06LT @sawanoboly Enjo+ Ruby この計算は繰り上がりになるため、 ※発表している人は直前までテーマを勘違いしています。 正しくは『Enjoy Progamming』
  • 65. Kansai RubyKaigi 06LT @sawanoboly この計算は繰り上がりになるため、 おとなりから`y`を借りてくることができます。 Enjo+ Ruby ※発表している人は直前までテーマを勘違いしています。 正しくは『Enjoy Progamming』
  • 66. Kansai RubyKaigi 06LT @sawanoboly Opsでも Enjoy Ruby できる ※俺ができるんだから誰でもできるんだろう多分
  • 67. Kansai RubyKaigi 06LT @sawanoboly おわり