gallu’s blog

エンジニアでゲーマーで講師で占い師なおいちゃんのブログです。

サーバ系ツールに関する雑感

開発環境とか本番環境とかデプロイとか「環境の各諸々のバージョンアップ」とかに関する雑感です。
「Jenkinsとchefとデプロイツールに関する雑感」と読み替えてもらっても、そんなに変化はない感じ。
いつも以上に「主観バリバリ」なんで、適当に加減しながら読んでくださいませませ。
想定はLAMP。PはPHPなので、そんな感じで。


さて。
開発環境なんだけど、 http://d.hatena.ne.jp/gallu/20120725/p1 にも書いたとおり、基本的には「開発マシン1台用意して、全員でよってたかって使う」のが好み。
言い方を変えると「個人のPCで各人がvagrantとか使って開発環境作って」ってのが嫌い。
「個人のVirtualが嫌い」な理由は簡単で「簡単に環境差異が発生しうるから」。
平気でroot権限で「合意の取れていないブツをインストールして」、その後出てくるのが「ステージングで動かない → "自分の環境では動いてます (`・ω・´)キリッ"のコンボ」なので。
過去に見てきた限り「禁止してもとまらない」ので、おいちゃん的には割とここは「ガチガチ」でいきたい。

Jenkins

「CIツールとしてのJenkins」については「あんまり存在価値がわからんけど、別にあるならあるで」程度。
コンパイル系言語ならいざしらず。PHPで、見聞きしている範囲で「Jenkinsでやりたいこと」って「git フックでいいぢゃん」って内容ばかりで。
だとすると本質的には「なくてもいい道具は使わない」がおいちゃんの流儀なので、いらにゃい。
ただ、Jenkinsの中を見ていると結構「しゅっ」とした作りなので。「すでにあるから使いたい」とか「視認性的に便利だから使いたい」とかで「使用に肯定的な意見が多い」ようであれば、かたくなに「使うな!!」ってほどの何かはないので、使ってもいいんじゃないかなぁ、と。

Chef

Chefは…正直、まったく「ピン」とこない(苦笑
「Chefなら冪等性が保障される」って話はわりと多々、耳に目にするのですが、正直「レシピ次第」としか。
あと、書き方によっては「意図しないdaemonのupdate」とか「未テストな状態のdaemonのupdate」とか、いろいろ考えちゃうと正直、いまひとつ。
「tar ballを使いたい」っておいちゃんの好みにもわりと合致しないし。結局の所「コードでの管理」なので、事前のコード設計とかちゃんとやらないと「DRYと対極にあるような状況」とかが平気で出てくるので、結局「散らかる → 作り直す」の繰り返しで、手間かかるだけなんじゃねぇかなぁ? って感じがひしひしと。
個人的には、特にクラウドを使ってる場合は「Immutable Infrastructure」って発想がお好みかなぁ。
いろいろあると思うのですが。おいちゃんの想定している運用は…多分、 http://www.publickey1.jp/blog/14/immutable_infrastructure_1.html にある、 http://www.publickey1.jp/blog/14/imm04.jpg の絵がとても近いような気がするのですが。
ようは、ELBをうまくつかいつつ「新しいインスタンスつくったら古いインスタンスは削除すればいいよね」な感じで、大変にクラウドちっくな方法(笑
具体例は以下を参照してくんなまっしょ。


ちなみに「fabric」なるツールを聞いたのですが…まだ斜めに飛ばし読みしかしていないのですが、なんとなく「好みのにおいがした!!!」(笑
気をつけないと乱用しそうなので丁寧に使い倒したいなぁと思うのですが(笑)、使うんならこーゆーシンプルなもののほうがお好みでやんす。

デプロイツール

rsyncぢゃだめ?
いろいろと「デプロイツールの利点」とか聞くのですが。特に「容易に巻き戻せる」とか。
正直、デプロイで「巻き戻し」っておいちゃんの感覚的には「極めて稀」な事象で、かつ基本的に「手順で1つ2つ、致命的なミスがあった結果」だと思っているので、その部分で「利点」言われても、いまひとつピンとこないでふ。
DBのマイグレーションも同様。
なので、多分これからも「困った事象に直面」しない限り、rsyncベースで進めてくような気がするなぁ正直。

総括

全体としては、Dockerとかのような感じのノリが、わりとしっくりくる感じ。
Dockerそのものについてはなんか見てると(実装の完成度とかの点で)賛否があるようなのと、まだ触ってないのでそこにはふれませんが。
「基本となる考え方/発想」的には、おいちゃんは大変に「好みだなぁ」と感じた次第でございます。


困ったときに「道具をつかって困りごとを解消する」のを、必ずしも否定はしないのですが。
「いあまる道具は なぜこの形を しているのか?」( http://d.hatena.ne.jp/gallu/20080827/p1 )という考察は、道具を使うときには、必要不可欠でございます。
この辺をすっかりと失念して「できるからいいでしょ」で使うと、大抵、ロクなことになりません。


また道具ってのは「必要最低限を適切に使う」ほうが、作成物の仕上がりがよろしくなるのではないか、と愚考いたします。
道具の乱用を留め立てするつもりはないのですが、経験上、それやると大抵「ひっちゃかめっちゃかになる」ので、個人的には避けたいなぁ、とか思っています。


以上、現場から雑感をお送りいたしました。