投稿日
更新日
Lerna 高可用ソフトウェアスタック
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のバッチフレームワークで処理を並列化するライブラリ |
バッチ並列化サンプル | バッチ並列化ライブラリを使って実装したサンプルアプリケーション |
バッチ並列化ベンチマークレポート | バッチ並列化ライブラリを用いた処理の並列化による速度改善効果を検証したレポート |
➽ 今すぐはじめる!
➽ 関連記事
➽ 関連スライド
➽ 更新履歴
- 2022.12.26 akka-entity-replication v2.2.0 リリース
- 2022.3.24 lerna-app-library v3.0.1, akka-entity-replication v2.1.0 リリース
- 2021.10.22 lerna-app-library v3.0.0 リリース
- 2021.7.16 lerna-app-library v2.0.0, akka-entity-replication v2.0.0 リリース
- 2021.3.29 akka-entity-replication v1.0.0 リリース
- 2020.12.23 lerna-app-library v1.0.0 リリース