ブロックチェーンと言えばBitCoinしかなかったところ、固有名詞を持つアプリケーションプラットフォームやデータベースがちょくちょく出てきている。 BigchainDB、Ethereumなどもその一つだ。
改竄不能な代わりに完結が遅い、構造化されていない、というモデルをベースにしたアプリケーションは難しい。また、ブロックチェーンのややこしいところは、スケールアウトをするモデルではないというところだ。だからこれを直接アプリケーションのDBとして使うことは難しい。だが、証跡管理、バックアップとしては非常に有用だ。
これより、並列計算モデル、トランザクション型分散DB、ブロックチェーン型履歴・証跡DBと、同じクラウドの上に三つのモデルが搭載されるモデルが考えられる。UIとファンクションは並列計算モデルに搭載し、リアルタイムデータは分散DBに、履歴・証跡・バックアップはブロックチェーンに逃がすモデルだ。これで、スケーラビリティ、耐故障性、災害対応(DR)、共同利用まで含め、単一のスケールアウトクラウドで実現できる。これを新・三階層モデルと呼ばせて頂く。
UIとファンクションをF層、リアルタイムデータはD層、履歴・証跡・バックアップはB層と仮置きする。F層にはErlang、D層にMongoDB、B層にBigchainDB、またこれを載せるクラウドはOpenStackでやはり仮置きしてやる。各々にはライブラリやフレームワークがあるだろうから、それらも一緒に載せてやる。こうしてできたソフトウェア群は、自動構築スクリプトやスケールアウト機能を備えているので、一度作ったアプリケーションは何回でも自動で再構築でき、またあらゆる規模の顧客に対応できることになる。
この中にはまだ入っていないものが多数あって、例えばID管理、課金、セキュリティ、複数アプリケーションの混在など、従来の概念で言う基盤的なものが足りていない。また運用に関して言うと、個々のOSやミドルのバージョンアップやバグ対応、(不具合対策としての)リセットや機器交換、再構築、データリワインドなども考えなければならない。それらまで合わせてフレームワークとして提供できれば、アーキテクチャ統一という夢に大きく近づけることになる。
開発のイメージは、アプリケーションについては従来通りで、これにスケールアウトの規模やバックアップの方法などを書いた定義ファイルを用意する。まずクラウドを立ち上げてこれにこれらを食わせてやると、自動で構築する。後は監視するだけでよい。
0 件のコメント:
コメントを投稿