ISBN 9784798153278
Akka実践バイブル アクターモデルによる並行・分散システムの実現
概要
Akkaのアクターモデルで並行・分散システムを安全に構築する
想定読者
Scala / Java で大規模な分散・リアクティブシステムを設計・実装するバックエンドエンジニアやアーキテクト。スレッドとロックの世界からメッセージパッシングの世界へ発想を切り替えたい開発者に向いています。
こんな人には向いていない
- Akka やアクターモデルの存在を初めて知る、プログラミング入門段階の方には前提が重く不向きです。
- Scala / JVM にまったく触れたことがない方は、本書を読む前に言語側の基礎を固めた方が効率的です。
- 小規模な単一プロセスのアプリしか扱わず、分散・スケールアウトの必要がない方にはオーバースペックです。
読了後にできるようになること
- アクターモデルの基本概念と、スレッド・ロックではなくメッセージパッシングで並行処理を整理する考え方
- Future を使った非同期処理と、耐障害性(スーパーバイザ階層)を前提にした設計
- akka-http と akka-stream によるストリームベースの高性能 REST サービスの構築
- Akka Cluster によるシャーディング・永続化(パーシステンス)を用いたスケーラブルで回復力のある分散システム設計
- メッセージのルーティング・チャネル・有限状態マシンといったアクターの構造パターン
- Akka アプリケーションのテスト駆動開発・設定・デプロイ・パフォーマンスチューニングの実践
本書のキー概念(章解説)
- 第 1 章 Akkaの紹介 — リアクティブシステムの考え方とAkka全体像を俯瞰する導入
- 第 2 章 最小のAkkaアプリケーション — 最小構成で動かしながらアクターの感覚をつかむ
- 第 3 章 アクターによるテスト駆動開発 — TestKitを使ったアクターのテスト手法
- 第 4 章 耐障害性 — スーパーバイザ階層と「クラッシュさせて回復する」設計思想
- 第 5 章 Future
- 第 6 章 Akkaによるはじめての分散アプリケーション — ローカルから分散へ踏み出す転換点
- 第 7 章 設定とロギングとデプロイ
- 第 8 章 アクターの構造パターン
- 第 9 章 メッセージのルーティング
- 第 10 章 メッセージチャネル
- 第 11 章 有限状態マシンとエージェント
- 第 12 章 ストリーミング — akka-streamによるバックプレッシャ対応のストリーム処理
- 第 13 章 システム統合 — 訳者書き下ろしのAlpakkaによるエンドポイント実装(13.2節)を含む
- 第 14 章 クラスタリング — Akka Clusterで回復力あるスケーラブルなシステムを組む山場
- 第 15 章 アクターの永続化 — イベントソーシング的な状態の永続化
- 第 16 章 パフォーマンスTips
- 第 17 章 Akkaのこれから
- 付録 AkkaをJavaから使う — 日本語版オリジナルの書き下ろし。Java利用者向けの導線
編集メモ
並行・分散処理フレームワークAkkaの定番解説書『Akka in Action』の邦訳で、基本概念からクラスタリング・永続化・パフォーマンスチューニングまでを実践例で通す網羅的な実務書。訳者による日本語版オリジナル(Alpakka・Java利用付録)も付与されている。
読む前に押さえておきたいこと
- Scala の基本文法(本書のコードは Scala 中心。付録で Java からの利用にも触れます)
- JVM 上での開発経験と、スレッド・並行処理にまつわる難しさの実感
- 非同期処理・コールバック / Future の基礎的な理解(本書でも改めて扱いますが、前提があると読み進めやすい)
- HTTP / REST と、なぜスケールアウトや分散が必要になるのかという問題意識
学習のコツ
- 前半(1〜5章)はアクター・耐障害性・Futureという土台です。ここで「失敗を握りつぶさず、クラッシュさせて回復させる」という発想の転換を腹落ちさせてから先へ進むと、後半の分散の章が一気に読みやすくなります。
- 中盤(6〜13章)は構造パターン・ルーティング・ストリーミング・システム統合と、実務で組み合わせる部品が並びます。自分の現場のユースケースに近い章から拾い読みしても成立します。
- 終盤(14〜16章)のクラスタリング・永続化・パフォーマンスTipsが本書の到達点です。単一ノードを超える設計に踏み込むので、手元で小さなクラスタを動かしながら読むと効果的です。
- 約520ページの大著です。通読を急がず、3章のTDDと4章の耐障害性を軸に、必要な章を実装と往復しながら読むのが現実的です。
- Java中心のチームは、巻末付録(AkkaをJavaから使う)を先に眺めておくと本文のScalaコードを読み替えやすくなります。
出版社による内容紹介
並行プログラミングからクラスタリング、 そしてリアクティブシステムへ! 昨今、ムーアの法則は終焉したとも言われ、かつてのコンピュータの性能向上に期待するアーキテクチャでは、増加を続けるトラフィックに対処することが難しくなりました。 並行プログラミングやクラスタ構成によるスケーリングへの理解が開発者・アーキテクトに求められています。 本書は並列・分散処理フレームワークAkkaの解説書『Akka in Action』の日本語版です。本書では、制御が難しい並行・分散システムをAkkaによって安全に構築する方法を学ぶことができます。 アクターモデルなどの基本概念やAkkaの基本的な機能といった全体像から、akka-httpとakka-streamを用いたストリーム処理に基づくハイパフォーマンスなRESTサービスを構築する方法、Akkaのクラスタリングを用いて障害からの回復力を持つスケーラブルなシステムを構築する方法などについて説明していきます。そのほか、システム間連携、Akkaのテストとパフォーマンスチューニングなど、より実践的な事柄についても詳しく説明します。 また、訳者による日本語版オリジナルの書き下ろしとして、Alpakkaを用いたエンドポイントの実装の解説(13.2節)、AkkaをJavaから使う方法(巻末付録)を追加しています。 【ポイント】 ●Akkaの基本から応用までを、実践的な例をもとに学べる ●リアクティブシステムを構築するためのアーキテクチャや概念、手法を学べる ●非同期プログラミング・分散システムについて学べる これからAkkaを使い始めたい開発者やAkkaの使い方・活用方法をきちんと学びたい開発者、非同期プログラミングに興味のある開発者、分散システムを設計するアーキテクトにおすすめの一冊です。 第1章 Akkaの紹介 第2章 最小のAkkaアプリケーション 第3章 アクターによるテスト駆動開発 第4章 耐障害性 第5章 Future 第6章 Akkaによるはじめての分散アプリケーション 第7章 設定とロギングとデプロイ 第8章 アクターの構造パターン 第9章 メッセージのルーティング 第10章 メッセージチャネル 第11章 有限状態マシンとエージェント 第12章 ストリーミング 第13章 システム統合 第14章 クラスタリング 第15章 アクターの永続化 第16章 パフォーマンスTips 第17章 Akkaのこれから 付録 AkkaをJavaから使う
この本がどの学習段階で役立つかは、 関連する ロードマップ から確認できます。