Lernaは高い可用性と高い処理能力を備えるシステムを構築するためのソフトウェアスタックです。

  • クラウド(パブリック/プライベート)上で稼働している仮想マシンに対して、Lernaの環境構築スクリプトを実行すると高い可用性とスループットを実現する設定がなされた環境を構築できる
  • その環境下で、アクターモデル(Akka)・CQRS(コマンドクエリ責務分離)+ES(イベントソーシング)のアーキテクチャに則りアプリケーションを設計し実装することで高可用システムが構築できる
  • 設計・実装に必要なライブラリやリファレンス実装などを提供する



➽ コンセプト

👉 高可用かつ高スループット

  • アプリケーションにCQRS+ESのアーキテクチャを適用することでRDBMSへの書き込みによるボトルネックを排除し高いスループットを実現
  • Akka Cluster により高い可用性とスケーラビリティを実現
  • アプリケーションをステートフルにすることで即応性を実現しながらも、Raft を適用することで一貫性が保証された高速なフェイルオーバーを実現



※ベンチマークテストにおける前提条件、スコアの詳細は「Lernaの可用性と処理能力」参照

👉 プラットフォーム依存なし

  • サーバはダウンする前提でプラットフォームに依存せずミドルウェアとアプリケーションのレイヤで高速フェイルオーバーを実現
  • これにより、ハードウェアや特定のクラウド環境に依存することなく高い可用性を実現

👉 低コストかつ短納期

  • 高額な高可用サーバの購入は不要、ミドルウェアはすべてOSSを利用するため安価に高可用システムを実現
  • クラウド上に構築することでハードウェアの調達にかかるリードタイムを短縮しデリバリースピードを向上

➽ コンテンツ

Name Description
アプリケーションテンプレート 新しいプロジェクトを作るためのアプリケーションテンプレート
環境構築スクリプト サーバ上にLernaの環境を構築するためのTerraformスクリプト
学習コンテンツ AkkaとScalaを学ぶハンズオンコンテンツ
設計ドキュメント Lerna Stackを使ったシステム開発をするための設計ドキュメント
アプリケーションライブラリ Lerna Stackで実行するアプリケーションを構築するためのライブラリ群 ( API Doc 
サンプルアプリケーション アプリケーションライブラリを使って実装したサンプルアプリケーション
超高可用性ライブラリ クラスター内の複数ノードにステートフルなエンティティを複製し、障害から高速に回復するためのAkka拡張機能 ( API Doc 
超高可用性アプリケーションサンプル 簡易版 超高可用性ライブラリを使って障害から高速に回復するサンプルアプリケーション
超高可用性アプリケーションサンプル 口座残高 超高可用性ライブラリを使った銀行口座残高管理のサンプルアプリケーション
ベンチマークレポート Lernaの可用性と処理能力を計測したベンチマークレポート
バッチ並列化ライブラリ Nablarchのバッチフレームワークで処理を並列化するライブラリ
バッチ並列化サンプル バッチ並列化ライブラリを使って実装したサンプルアプリケーション
バッチ並列化ベンチマークレポート バッチ並列化ライブラリを用いた処理の並列化による速度改善効果を検証したレポート

➽ 今すぐはじめる!



➽ 関連記事

➽ 関連スライド

➽ 更新履歴