最強のシステムとは!!!

考えられうる最強のオープンシステムを考えてみる。目的は、、、、特にない!!!考えてみたいだけ。

要求条件

無数にあるオープンソースからどれがいいかを選ぶため(でも、すべては見れないけれど)、以下の要求条件を考えてみた*1

  1. 利用するソフトはオープンソースであること。
  2. 下記に記した機能性を満たすこと。
    • 異なる複数のサーバに対してシングルサインオン可能であること。
    • WindowsLinuxクライアントをともに利用可能であること。
    • パスワードの一元管理ができること。
  3. 信頼性・運用・安全性・拡張性を考慮すること。具体的には以下を参照のこと。
    • 信頼性:Software-RAID(1または5)ができること。
    • 運用
      • 複数サーバーのバックアップを自動で行うことができること。
      • 複数のサーバーの稼動状況監視を一元管理できること。
      • 複数のサーバーのエラー監視を一元管理できること。また、エラーの際には管理者に自動通知が可能であること。
    • 安全性
      • SSLが利用可能であること。
      • クライアント証明書が利用できること。
    • 拡張性:
      • スケールアウトが可能であること。
      • SSOと関連して、異なるシステム(Javaベース、PHPベースなど)を統合可能であること。

で、どんなの?

で、実際に上記を満たしそうなシステム構成を考えてみた。以下の通りだ。

その他

上記の方式は、一部に対してオプションがある。また、LDAPは次のような制限があると認識している。

稼動監視・エラー監視

稼動監視とエラー監視については、OpenNNMを利用することも可能だ。ただし、Tomcatを利用するので、さらに大規模システムに対して利用することになるだろう。それまではNagiosCactiで十分かなと考えている。

バックアップ

バックアップに関しては、Amandaというツールを利用すれば良いが、現状では日本語ドキュメントが少なく、またバックアップ先としてテープドライブを想定しているらしい。したがって使えない。そこで、Amandaの代わりにDARとSSHの自動ログインなどを利用して複数サーバのバックアップを取ることも考えられる(小規模向き)。

シングルサインオン

(1)一つには、動向してSunが、シングルサインオンのソフトをオープンソース化するらしいという話があり、JOSSOの代わりにこのソフトを利用できるかもしれない(ずいぶん先だ。2006年か2007年だ)。

(2)システムは何もWebシステムだけではない。古いシステムもあったりする。こんな場合おそらくJOSSOでは対応できないだろう。こんなときは、JBOSSPortal(名前をしっかり覚えてない)が役に立つのかもしれない。

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:実際には、ドキュメント読みながら変わっていったのだけどね