ZOPE
今日は仕事でも使っていたオープンソースのZOPE について書いてみる。
ZOPEって一言で言うと、Webアプリケーションフレームワーク。
世の中には色々なフレームワークがあるけど、なかなかだと思う。
ZOPEのみでWebサイトの構築が可能だが、その他ミドルウェアとの連携も可能。
例えばOracleへの接続、Apacheとの連携、OSディレクトリへのアクセスなどけっこう拡張性が高い。
セッション管理もZOPEで可能。ちょっとしたDBならZODBもしくはTinyTableという代物もある。
そんなZOPEを仕事で使っているのだが、構築したWEBサイトは以下のような状態で動いている。
■用途:求人募集サイト
■ドメイン:8ドメインで稼働
■PV数:月間100万PV
■対象:PC・モバイル(3キャリア)全て公式サイト
■設立:2004年
こんなわりと大きめのサイトだが、ZOPEを使って構築している。
ZOPE+Oracleの連携など、細かい技術的なところは後日にでも。
今日はZOPEを使うにあたっての注意点を書きたい。
いい所もろくに述べず、悪い所から書くのはいささかな気分だが・・・
それではさっそく。
①負荷が高い
②まだまだ謎が多い
使ってみた感想としては大きく分けてこの2つ。
それでは詳細に書いてみる。
①負荷が高い
PV数にもよる話だが、以下の構成でZOPEを動かしていた。
・Webサーバ2台(Apache経由)+DBサーバ1台(ホットスタンバイ)
・OSはRedhat Enterprise Linux ES3
・CPUは・・・忘れてしまった…。確か4コア
・メモリはなんと2GB
こんなスペックでやっており、ページはApache経由で提供している。
PC8ドメイン+モバイル3ドメインで月間100万PVともなると、がんばっている方だと思う。
それでもページレスポンスは最大でも3秒程度。
これはDB構築時に頑張ったおかげだと思う。(DBの詳細は後日)
そもそも負荷が高くなるのはDBなんだし。
少し横道にそれたが、メモリはプロセスに応じて食っていく。
しかもメモリの消費量が半端じゃない。ゆうに5割程度(1G)はZOPEで使っている。
こんな状態が続くと、ハングしてしまう。
(というか何回かした。リクエストを返すことができず、Apacheでとまってしまう。
ZOPEがハングしているのだが、構成上Apache→ZOPEなため、結果Apacheで止まってしまう)
それを回避するため、毎日朝の5時にApache・ZOPEのプロセスをリブートしている。
再起動するともちろんプロセスが減るので、メモリは解放される。
解放のされ方もすさまじい…cactiで監視しているが、グラフががくっと落ちる(笑)
再起動しない日が続くと、ZOPE(Z2.log)のログにとんでもない記述を発見することがある。
なんとZOPEが勝手に再起動を繰り返している!!
運用しているWebサイトは、セッションを使っていないため問題ないが・・・(とはいえ瞬断はあるかも)
ショッピングサイトとかだったら問題じゃないのか?セッション切れちゃうぞ。
そんな大きな問題も抱えながら、ZOPEの自動再起動の原因は分かっていない。
サーバが悪いのか、負荷が高いのか……
ということから、非常に高スペックなサーバが求められる。
サーバはただでさえ高いのに。
一番頭の悪い解決方法だ・・・・・・
低スペックであれば、定時リブートなどして運用対策をすれば問題ないだろう。
ちょっと張り切りすぎたので、②なぞが多いについては後日とします。
オープンソース
今日はオープンソースについて少し書いてみる。
オープンソースというものをご存じだろうか。
世界中から有志が集まって、ひとつのソフトや仕組みを作ってしまう。
しかもそのソースコード(プログラム群)は全てが公開されており、誰でも改良を加えたりすることができる。
ここで作り上げられたソフトは、無料で配布され、誰でも自由に使うことができる。
さらに興味深いことに、参加している誰もが ”これで” サラリーを得ていない。
参加者の大半が本業を持っており、日中は仕事をしている。
仕事を終え、自宅についてからおもむろに作業を開始する。
言ってしまえば趣味なのだ。
しかしその趣味は、一企業が大量に人材を投入して作り上げたソフトを凌駕する。
代表格なのが有名なLinux。
ひとたびバグが報告されれば、瞬く間に修正パッチが公開され、品質が担保される。
大企業が作り上げたソフトなら、このスピード感は出せないだろう。
開発者同士のコミュニケーションはメーリングリスト、もしくは掲示板(BBS)が使用される。
有志が集まって、技術を披露し合いながらひとつのものを作り上げる。
この素晴らしいオープンソースの概念を、実際の開発現場で取り入れることはできないだろうか…。
ウオーターホール・アジャイル・XP……様々な開発手法が提唱される中、オープンソースに勝てそうなものはない。




予報だったので
でぐっすり


