サーバの構築を簡単にするためのステップ (その2)
2007/07/30 21:58 posted by kunkichi
前回のエントリではてなのサーバインフラの構築プロセスについて引用したのだけど、プロセス毎に勝手な推測を並べてみようと思う。ポイントとしては以下。
- 各プロセスごとの作業で、はてなの手法は一般的なIT企業でもできるのか?
- 引用元ではあまり具体的に書かれていないので実際にやってみる。(個人的な興味として)
まず引用元の本番環境へのサーバ投入のおおまかなプロセス。
サーバをバックエンドの本番に投入するまでには、おおまかに以下のことが必要です。
- ハードの組み立て・設置
- OSのインストール
- アプリケーションの動作に必要なライブラリ等のインストール・設定
- 監視などインフラの一部として動作するための設定
- アプリケーションのデプロイ
- ロードバランサの設定への追加
プロセスの流れ自体は至極当たり前のことで、普通にIT企業でも普通に行うようなことで特に変わったことはないので、個々に見ていく。
1. ハードの組み立て・設置
はてなでは、サーバ自体を自作しているらしい。詳細は以下で垣間みれる。
- naoyaのはてなダイアリー - さくらインターネット移行記#1
- naoyaのはてなダイアリー - さくらインターネット移行記#3
- naoyaのはてなダイアリー - さくらインターネット移行記#4
- [ThinkIT] 事例編〜Web 2.0サービスの中を見せます - 第1回:Inside Hatena Bookmark
自作のメリットは
- 必要なときにすぐ追加することができる
- 用途に合わせてカスタマイズできる
- コストが安い
ということのようだけど、まずこれが一般のIT企業では一番難しいかもしれない。なんでか?
すごく簡単なことで、上記のような構成では
「保守(契約)」がない
もうコレに尽きる。保守契約がない場合、何かしら問題が発生したとした場合は自分たちで解決しないといけない。そんなの当たり前ではあるのだけど、実はここがポイントだと思う。確かに始める前から起こってもいない先のことを懸念している後ろ向きな理由だし、はてなのようにこの構成のメリットを見ていないのは百も承知。でもこれが問題となるケースが二つ存在すると思ってる。
- よくわからない異常や不具合が起こったとき
最近のソフトウェアにはオープンソースというものがあり、何か問題が発生したとしてもソースが公開されているので(追っかけようと思えば and ソースを読めるスキルがあれば)追っかけることができる。これに対して、ハードウェアは基本的に製造元ベンダーしか情報を知らないブラックボックス度が高い。(もちろんソフトウェアでも商用の場合は同じパターンが当てはまる。)もちろんいろんなツールを駆使すればある程度は調査出来ないわけではないだろうけど、それでも限界がある。つまりソフトに比べるとハードの方が専門性がより高い、すなわち保守が必要。
- 異動が発生したとき
会社の規模が大きくなると、社内での異動とか転勤というのは結構普通に行われる。5〜6年程度でチームの担当がゴロッと入れ替わって導入当初の人間が一人もいないというのはよくある話。もちろん、ちゃんと情報共有できているかとかスキルの統一が出来ているかとかそんなのは考慮されるわけがない。逆に全く別分野の人が平気で配属されたりすることもあるだろう。こうなった場合、どんだけ整理していたとしても理解が行き届いているわけではないし、ドキュメント用意しておいたとしてもいきなり理解しろってのも無茶。であれば、ある程度はベンダーに依存しておいたほうが無難だったりする。
ということで必然的に商用ベンダーで機器を購入して保守契約を結ぶほうがコストはかかっても無難ということになるわわけ。
もちろん、はてなでもこういったケースはありうる訳だけど、それに対応するだけのノウハウ(パーツの選定・試験・評価)・準備(パーツ在庫の保持)・スキル(問題発生時にどうするか?)を蓄積しているようなので、それで食べれているのではないかと。そしてその蓄積は、はてなの「技術を大事にする」」社風に引かれて集まってきた優秀なエンジニア・それを尊重する経営陣によってこれまでの長い間(といっても老舗に比べたらそんなに長くはないけど。)に積み重ねられたものであり、単にノウハウだけを一般のIT企業が真似できるかといっても出来るものではないと思う。
ただ、最近では商用サーバもコストが下がってきたこともあって、はてなでもDELLやSunのサーバを入れているようなので、この辺は違いがなくなりつつあるので今後はあんまり障壁にはならないかな。いずれにせよここまでいろんなノウハウを蓄積して工夫してきたことはほんとに素晴らしいと思います。
続きはまた今度。






コメント&トラックバック
トラックバックURL: