Upload
yukihiko-sawanobori
View
2.521
Download
10
Embed Size (px)
Citation preview
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
おわり