書評) ソフトウェアアーキテクチャの基礎

アーキテクチャのパターンがカタログになってるので気になるとこだけ読めるような構成。

今回はサービスベースアーキテクチャのことを知りたかったのでそこだけ読んだ。概要レベルの解説なので詳細はまた別途調べる必要があるけど、大体どんなもんか知ることができた。

そのほかに、アーキテクトとしての働き方、心がけ、キャリア開発などにも触れられているのでアーキテクトを目指してる人の参考になりそう。

 

サービスベースアーキテクチャ

マイクロサービスアーキテクチャのハイブリッドで最も実用的なアーキテクチャと考えられている。

マイクロサービスよりも粒度の大きいドメインでシステムを分割、データベースは単一でもよい。なのでデータベースのトランザクションを利用できる。

ユーザーインターフェースやデータベースはドメインごとに分けてもいい。

データベースアクセスを共通化すると変更の影響が大きいのでデータベースを論理的に分けて、アクセスライブラリも分割することも考える。共通テーブルアクセスはバージョン管理システムでロック。

ユーザーインターフェースやデータベースは、顧客向けと社内向けなどで分けることでセキュリティの強化も。

データベース共有やコード共有のためにサービス間通信をしないことで耐障害性とアプリケーション全体の可用性が高まる。サービス間のネットワークトラフィックも減り、分散トランザクションが減り、使用する帯域幅が減り、コスト効率と信頼性が高まる。