[lt] インフラの人がchefやserverspec(ほか)が rubyだったおかげですこし...

67
Kansai RubyKaigi 06 インフラの人がChefや Serverspec(ほか)が Rubyだったおかげですこし プログラムをするようになった話 2015年7月11日 LT @sawanoboly

Upload: yukihiko-sawanobori

Post on 08-Aug-2015

2.522 views

Category:

Technology


10 download

TRANSCRIPT

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

Kansai RubyKaigi 06

インフラの人がChefやServerspec(ほか)が

Rubyだったおかげですこし プログラムをするようになった話

2015年7月11日 LT @sawanoboly

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

Kansai RubyKaigi 06LT @sawanoboly

立場と目的

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

Kansai RubyKaigi 06LT @sawanoboly

インフラ系の人

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

Kansai RubyKaigi 06LT @sawanoboly

インフラ系の人□ サーバ/インフラの構築とオペレーション。

※本スライド内ではこういうのを便宜上インフラ系またはOpsと呼称します。

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

Kansai RubyKaigi 06LT @sawanoboly

インフラ系の人□ サーバ/インフラの構築とオペレーション。

※本スライド内ではこういうのを便宜上インフラ系またはOpsと呼称します。

□ いつもRubyを使ってる人がスゴイと思うようなことは言えません。

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

Kansai RubyKaigi 06LT @sawanoboly

言っとこうと思ったこと

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

Kansai RubyKaigi 06LT @sawanoboly

言っとこうと思ったこと□ インフラ系の人でもRubyならできるようになる

かもしれない。

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

Kansai RubyKaigi 06LT @sawanoboly

言っとこうと思ったこと□ インフラ系の人でもRubyならできるようになる

かもしれない。

□ それでどうなるのか?

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

Kansai RubyKaigi 06LT @sawanoboly

言っとこうと思ったこと□ インフラ系の人でもRubyならできるようになる

かもしれない。

□ それでどうなるのか?

□ チームの生産性を上げられます。※個人の見解です。

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

Kansai RubyKaigi 06LT @sawanoboly

Rubyをさわるより前

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

Kansai RubyKaigi 06LT @sawanoboly

おおよそプログラムと 思えそうなことは全然しない。

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

Kansai RubyKaigi 06LT @sawanoboly

Opsからの眺め□ OSやパッケージ(またはMakeでインストール)

□ 身内のDeveloperが書いてるソフトウェア群

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

Kansai RubyKaigi 06LT @sawanoboly

Opsからの眺め□ OSやパッケージ(またはMakeでインストール)

□書式のあるログにエラー(ID)、何となく分かる

□ 身内のDeveloper

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

Kansai RubyKaigi 06LT @sawanoboly

Opsからの眺め□ OSやパッケージ(またはMakeでインストール

□書式のあるログにエラー(ID)

□ 身内のDeveloperが書いてるソフトウェア群

□ `スタックトレース`と呼ばれる謎のカタマリ

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

Kansai RubyKaigi 06LT @sawanoboly

Opsからの眺め□ OSやパッケージ(またはMakeでインストール)

□書式のあるログにエラー(ID)、何となく分かる

□ 身内のDeveloperが書いてるソフトウェア群

□ `スタックトレース`と呼ばれる謎のカタマリ

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

Kansai RubyKaigi 06LT @sawanoboly

Opsからの眺め□ OSやパッケージ(またはMakeでインストール)

□書式のあるログにエラー(ID)、何となく分かる

□ 身内のDeveloperが書いてるソフトウェア群

□ `スタックトレース`と呼ばれる謎のカタマリ

どっかの馬の骨が作ってるけどわかる

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

Kansai RubyKaigi 06LT @sawanoboly

Opsからの眺め□ OSやパッケージ(またはMakeでインストール)

□書式のあるログにエラー(ID)、何となく分かる

□ 身内のDeveloperが書いてるソフトウェア群

□ `スタックトレース`と呼ばれる謎のカタマリ

どっかの馬の骨が作ってるけどわかる

身内のやってることなのにイミワカンネぇ

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

Kansai RubyKaigi 06LT @sawanoboly

ちょっと転機

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

Kansai RubyKaigi 06LT @sawanoboly

OSS系のサーバって 管理めんどくさい…※しばらくWindowsNetworkの管理者だった

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

Kansai RubyKaigi 06LT @sawanoboly

それとCapistrano※当時こんなロゴだった気がする

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

Kansai RubyKaigi 06LT @sawanoboly

中央集権でポリシー配布できそう

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

Kansai RubyKaigi 06LT @sawanoboly

中央集権でポリシー配布できそう□ インフラ系は管理社会大好き。

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

Kansai RubyKaigi 06LT @sawanoboly

中央集権でポリシー配布できそう□ インフラ系は管理社会大好き。

□ サーバ達は各自で俺に情報をあつめろ。

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

Kansai RubyKaigi 06LT @sawanoboly

中央集権でポリシー配布できそう□ インフラ系は管理社会大好き。

□ サーバ達は各自で俺に情報をあつめろ。

自由は屈服である 無知は力である

※小説『1984』より

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

Kansai RubyKaigi 06LT @sawanoboly

レシピに手を出すと そこに

※Chefのリソースを記述するファイル

(※)

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

Kansai RubyKaigi 06LT @sawanoboly

Copyright © 2006, Yukihiro Matsumoto

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

Kansai RubyKaigi 06LT @sawanoboly

なんか色々わかった

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

Kansai RubyKaigi 06LT @sawanoboly

なんか色々わかった□ レシピはRubyスクリプト。

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

Kansai RubyKaigi 06LT @sawanoboly

なんか色々わかった□ レシピはRubyスクリプト。

□ スタックトレース…?

□ 俺が書いた行を指してる気がする。

□ もしかして役に立つんじゃね。

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

Kansai RubyKaigi 06LT @sawanoboly

Rubyだからだったのか?□ 覚えようとしたけどできてない

□ perl, python, php, javascript, Javaなど

□ ちょっとできた

□ vbscript(wsh), cmd, bash

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

Kansai RubyKaigi 06LT @sawanoboly

Rubyが手軽な オブジェクト指向型

スクリプト言語だから。

Copyright © 2006, Yukihiro Matsumoto

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

Kansai RubyKaigi 06LT @sawanoboly

Rubyが手軽な オブジェクト指向型

スクリプト言語だから。

Copyright © 2006, Yukihiro Matsumoto

※この理由は後付けです

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

Kansai RubyKaigi 06LT @sawanoboly

インフラ的 オブジェクト指向解釈

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

Kansai RubyKaigi 06LT @sawanoboly

クラス…

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

Kansai RubyKaigi 06LT @sawanoboly

クラス…□ パラメータを色々持ってる…

□ 外部とインターフェースでやりとりする…

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

Kansai RubyKaigi 06LT @sawanoboly

クラス…□ パラメータを色々持ってる…

□ 外部とインターフェースでやりとりする…

#=>サーバ(OS)のイメージ ってことでいいや

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

Kansai RubyKaigi 06LT @sawanoboly

インスタンス…

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

Kansai RubyKaigi 06LT @sawanoboly

インスタンス…□ クラスを元に…

□ 色々と実行可能になってる…

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

Kansai RubyKaigi 06LT @sawanoboly

インスタンス…□ クラスを元に…

□ 色々と実行可能になってる…

#=> これ起動後のサーバだわ

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

Kansai RubyKaigi 06LT @sawanoboly

その他もろもろ□ 各種メソッド

=> サーバで上げてるデーモンとかこんなよね。

□ 継承

=> コンテナのファイルシステムって感じー。 (当時vzfs(OpenVZ), 今ならOverlayとか)

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

Kansai RubyKaigi 06LT @sawanoboly

あとはだいたい これらの応用

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

Kansai RubyKaigi 06LT @sawanoboly

コードをすこし 触れる用になった。

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

Kansai RubyKaigi 06LT @sawanoboly

コードをすこし 触れる用になった。

身内のやってることなのにイミワカンネぇ が

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

Kansai RubyKaigi 06LT @sawanoboly

コードをすこし 触れる用になった。

身内のやってることちょっとわかる に

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

Kansai RubyKaigi 06LT @sawanoboly

インフラ系 x オブジェクト指向は 逆流する。

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

Kansai RubyKaigi 06LT @sawanoboly

インフラ系 x オブジェクト指向は 逆流する。

□ なんでもインスタンス扱いでいいやってなる。

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

Kansai RubyKaigi 06LT @sawanoboly

インフラ系 x オブジェクト指向は 逆流する。

□ なんでもインスタンス扱いでいいやってなる。

□ モデルをつくりたくなる。

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

Kansai RubyKaigi 06LT @sawanoboly

インフラ系 x オブジェクト指向は 逆流する。

□ なんでもインスタンス扱いでいいやってなる。

□ モデルをつくりたくなる。

□単体サーバはどうでも良くなり、多くのことをPaaSっぽくまとまり単位で扱う。

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

Kansai RubyKaigi 06LT @sawanoboly

インフラ系 x オブジェクト指向は 逆流する。

□ なんでもインスタンス扱いでいいやってなる。

□ モデルをつくりたくなる。

□単体サーバはどうでも良くなり、多くのことをPaaSっぽくまとまり単位で扱う。

□APIが無いとキレるが、何とかする。

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

Kansai RubyKaigi 06LT @sawanoboly

のちに自著で調子に乗って語る

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

Kansai RubyKaigi 06LT @sawanoboly

のちに自著で調子に乗って語るQ. ChefはRubyをできるほうがイイですか?

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

Kansai RubyKaigi 06LT @sawanoboly

のちに自著で調子に乗って語るQ. ChefはRubyをできるほうがイイですか?

A. 触ってればRubyがデキるようになります。

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

Kansai RubyKaigi 06LT @sawanoboly

25分Ver用の話(割愛)□ コードに興味持ってバージョン管理が変わったよ。

□ サフィックス法(.back, .20150711) からGitへ。

□ デプロイの起点もGitに。CIツール使うのが上手になる。

□コードの気配を察知して開発初期から継続デリバリするよ。

□ テストを触れるようになったよ。

□ ServerspecからRSpecに入る。

□ Docでイマイチわからない時でも、テスト見ればいいやってなる。

□ インフラ系のヒト、ゼロからつくるのはムリだけど、土俵用に改良するよ。

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

Kansai RubyKaigi 06LT @sawanoboly

Developerがやること

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

Kansai RubyKaigi 06LT @sawanoboly

Developerがやること□ Opsにとにかく自動化を振る。

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

Kansai RubyKaigi 06LT @sawanoboly

Developerがやること□ Opsにとにかく自動化を振る。

□人員追加は断る。

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

Kansai RubyKaigi 06LT @sawanoboly

Developerがやること□ Opsにとにかく自動化を振る。

□人員追加は断る。

=> 楽をしたがるOpsならコードを書き始める。

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

Kansai RubyKaigi 06LT @sawanoboly

Developerがやること□ Opsにとにかく自動化を振る。

□人員追加は断る。

=> 楽をしたがるOpsならコードを書き始める。

=> チームの効率があがる。

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

Kansai RubyKaigi 06LT @sawanoboly

Developerがやること□ Opsにとにかく自動化を振る。

□人員追加は断る。

=> 楽をしたがるOpsならコードを書き始める。

=> チームの効率があがる。

? ついてこない場合…

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

Kansai RubyKaigi 06LT @sawanoboly

(最後に) インフラ系の象徴

といえる言葉を用いて

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

Kansai RubyKaigi 06LT @sawanoboly

炎上※自らの調査で解決できることが前提です ※なんだかんだでテンションあがります

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

Kansai RubyKaigi 06LT @sawanoboly

炎上はこのように変換することができます

Enjo

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

Kansai RubyKaigi 06LT @sawanoboly

Rubyを足してみましょう

Enjo+ Ruby※発表している人は直前までテーマを勘違いしています。 正しくは『Enjoy Progamming』

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

Kansai RubyKaigi 06LT @sawanoboly

Enjo+ Rubyこの計算は繰り上がりになるため、

※発表している人は直前までテーマを勘違いしています。 正しくは『Enjoy Progamming』

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

Kansai RubyKaigi 06LT @sawanoboly

この計算は繰り上がりになるため、 おとなりから`y`を借りてくることができます。

Enjo+ Ruby※発表している人は直前までテーマを勘違いしています。 正しくは『Enjoy Progamming』

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

Kansai RubyKaigi 06LT @sawanoboly

Opsでも Enjoy Ruby できる

※俺ができるんだから誰でもできるんだろう多分

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

Kansai RubyKaigi 06LT @sawanoboly

おわり