Fintan

Lerna 高可用ソフトウェアスタック

CONTENTS

Lerna 高可用ソフトウェアスタック

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

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

コンセプト

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

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

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

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

低コストかつ短納期

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

コンテンツ

Name Description
lerna.g8 新しいプロジェクトを作るためのアプリケーションテンプレート
lerna-terraform サーバー上にLernaの環境を構築するためのTerraformスクリプト
lerna-design Lernaを使って開発するための設計ドキュメント
lerna-handson LernaでAkkaとScalaを学ぶハンズオンコンテンツ
lerna-sample-payment-app Lernaを使って実装したサンプルアプリケーション
akka-entity-replication-sample akka-entity-replicationを使って実装したサンプルアプリケーション
nablarch-fw-batch-parallelizable-example Lernaのバッチ並列化ライブラリを使って実装したサンプルアプリケーション

ライブラリ

Name Description
akka-entity-replication クラスター内の複数ノードにステートフルなエンティティを複製し、障害から高速に回復するためのAkka拡張機能
lerna-http HTTP関連機能のライブラリ
 spray-json のカスタムJSONフォーマット
 Akka HTTP のカスタムディレクティブ
 Akka HTTP のカスタムヘッダ
lerna-log ログ出力関連機能のログライブラリ
 Logback のカスタムログコンバータ
lerna-management 管理機能のライブラリ
 Kamon のSNMP メトリクスプロバイダ
lerna-testkit テストキットライブラリ
 Akka Classic
 Airframe
 WireMock
lerna-util Lernaのユーティリティライブラリ
– Encryption
– Typed Equals
– Security
– Date and Time
lerna-util-akka Akka Classicユーティリティライブラリ
lerna-util-sequence ID採番関連ライブラリ
lerna-validation Accord のカスタムバリデーションライブラリ
lerna-wart-core WartRemoverのカスタムライブラリ
nablarch-fw-batch-parallelizable Nablarchのバッチフレームワークで処理を並列化するライブラリ

さあ、はじめよう!

ローカル環境で動かしてみる

サーバー上で動かしてみる

アプリケーションを開発する

  • lerna.g8 
  • sbt new lerna-stack/lerna.g8でブランクプロジェクトを作成

詳細ページ

https://lerna-stack.github.io/

ライセンス

Apache License 2.0 に準拠しています。

※ 記載されている会社名、製品名は、各社の登録商標または商標です。
※ アマゾン ウェブ サービス、AWSは米国その他の諸国における、Amazon.com, Inc.またはその関連会社の商標です。
※ AkkaはLightbend, Inc.の商標です。

このエントリーをはてなブックマークに追加


TIS株式会社
個人情報保護方針 個人情報の取り扱いについて 情報セキュリティ方針

Copyright 2021 TIS Inc.keyboard_arrow_up