最強のシステムとは!!!
考えられうる最強のオープンシステムを考えてみる。目的は、、、、特にない!!!考えてみたいだけ。
要求条件
無数にあるオープンソースからどれがいいかを選ぶため(でも、すべては見れないけれど)、以下の要求条件を考えてみた*1。
- 利用するソフトはオープンソースであること。
- 下記に記した機能性を満たすこと。
- 信頼性・運用・安全性・拡張性を考慮すること。具体的には以下を参照のこと。
その他
上記の方式は、一部に対してオプションがある。また、LDAPは次のような制限があると認識している。
稼動監視・エラー監視
稼動監視とエラー監視については、OpenNNMを利用することも可能だ。ただし、Tomcatを利用するので、さらに大規模システムに対して利用することになるだろう。それまではNagiosとCactiで十分かなと考えている。
バックアップ
バックアップに関しては、Amandaというツールを利用すれば良いが、現状では日本語ドキュメントが少なく、またバックアップ先としてテープドライブを想定しているらしい。したがって使えない。そこで、Amandaの代わりにDARとSSHの自動ログインなどを利用して複数サーバのバックアップを取ることも考えられる(小規模向き)。
シングルサインオン
(1)一つには、動向してSunが、シングルサインオンのソフトをオープンソース化するらしいという話があり、JOSSOの代わりにこのソフトを利用できるかもしれない(ずいぶん先だ。2006年か2007年だ)。
(2)システムは何もWebシステムだけではない。古いシステムもあったりする。こんな場合おそらくJOSSOでは対応できないだろう。こんなときは、JBOSSのPortal(名前をしっかり覚えてない)が役に立つのかもしれない。
LDAPの制限
Webで検索すると(主にgoogleだ)、以下のような情報が飛び込んでくることが多い。LDAPをユーザーの一元管理に使おう!!!とかね。が、これにはいくつかの限界があることが述べられていない。
考察すると(違ってるかもね、突っ込みあればよろしくです)、LDAPってユーザーの履歴管理できないんじゃないかと思っている。たとえばだ。ある人がある会社に入社して、2000年5月1日〜2001年3月31日まではある部署(A)にいて、2001年4月1日からは、違う部署(B)に移ったとしよう。そうした場合、LDAPの標準のLDIF(かな?)は、ユーザーIDで一意性を確保しているから、ユーザーID+日付情報(異動日とか)で一意性を保持できない。(B)の情報を掲載しようとすると(A)の情報を上書きか消すしかない。
そこで、このような情報を保持するために、統合的なユーザー情報(履歴含む)を持つために、図の真ん中にはPostgreSQLが描かれている。データベースであれば容易に(データ設計は必要だよ)情報を持つことができる。
同じく組織についても言えて、組織改変の情報を保持するにもこのデータベースが必要だ。あくまで、履歴を持つという意味ですが。
まとめると、LDAPはある一時点のユーザーや組織情報のスナップショットを現していて、すべてのデータはPostgreSQLにあるということです。
*1:実際には、ドキュメント読みながら変わっていったのだけどね