Clojureを使ったマイクロサービスシステム
Microservices with Clojureより。
マイクロサービスアーキテクチャは、スケーラブルで保守が容易なWebベースのアプリケーションを構築するための事実上のパターンとして、世界を席巻している。ここでは、一般的なパターンとプラクティスを学び、プログラミング言語Clojureを使用して適用する方法を紹介する。アーキテクチャ設計とRESTful通信の基本的な概念を学び、開発時および運用時のスケールに対応した管理可能なコードを提供するパターンを紹介する。また、これらの概念とパターンをClojureでどのように実践するかについても例示している。
新しいアプリケーションを計画している場合でも、既存のモノリスに取り組んでいる場合でも、本書では、あらゆる規模のチームがマイクロサービスによる問題解決を開始する方法を説明し、実践例を用いて解説する。非同期でノンブロッキングなコードを書くことの重要性と、ClojureのwebアプリケーションフレームワークであるPedestalがどのようにそれを助けてくれるのかを理解することができる。その後、Reactive Manifestoの根底にある原則に従ったReactiveなマイクロサービスをClojureで構築する方法を説明する。最後に、マイクロサービスを監視、テスト、およびセキュリティ保護するためのさまざまなテクニックを紹介し、ClojureとPedestalでマイクロサービスを設定、変更、およびデプロイする方法について述べる。
本書の内容
第1章「モノリシックとマイクロサービスの比較」では、モノリシックとマイクロサービスのアーキテクチャを紹介し、いつ何を使うべきかを議論する。また、モノリシックなアプリケーションからマイクロサービスへ移行する際に考えられる移行計画についても取り上げる。
第2章「マイクロサービス・アーキテクチャ」では、マイクロサービス・アーキテクチャの基本的な構成要素とその関連機能について説明する。メッセージングとコントラクトを設定し、マイクロサービス間のデータフローを管理する方法について説明する。
第3章「助け合いアプリケーションのためのマイクロサービス」では、助け合いアプリケーションのサンプルを紹介し、本書の残りの部分でマイクロサービスを使用してアプリケーションを構築するための手順を説明する。さらに、この章では、モノリシックなアーキテクチャと比較して、マイクロサービスベースのアーキテクチャを使用することの利点を比較対照している。
第4章「開発環境」では、ClojureとREPLを高いレベルでカバーし、Clojureプロジェクトにおける2つの主要なビルドツールであるLeiningenとBootの概念を紹介する。Leiningenに重点を置き、Bootについては、マイクロサービスを実装するためにClojureプロジェクトをどのようにセットアップするかという基本的な紹介する。
第5章「マイクロサービスのためのREST API」では、RESTアーキテクチャスタイルの基本、さまざまなHTTPメソッド、いつ何を使うか、マイクロサービスのRESTful APIに意味のある名前を付ける方法について説明する。また、Helping Handsアプリケーションを例にして、REST APIの命名規則についても解説する。
第6章「Pedestal入門」では、インターセプターとハンドラー、ルート、WebSocket、サーバー送信イベント、チェーンプロバイダーなど、Pedestalが提供するすべての関連機能でClojure Pedestalフレームワークを詳しく解説する。
第7章「Datomicで不変性を実現する」では、Datomicデータベースの概要を、そのアーキテクチャ、データモデル、トランザクション、Datalogクエリ言語とともに解説する。
第8章「Helping Handsのためのマイクロサービスの構築」では、Pedestalフレームワークを使用してHelping Handsアプリケーションのマイクロサービスを構築し、テストするためのステップバイステップのハンズオンガイドを提供する。
第9章「マイクロサービスの構成」では、マイクロサービスの構成の基本を説明し、Omniconfなどのフレームワークを使用して構成可能なマイクロサービスを作成する方法について説明する。また、Mount などの利用可能な状態管理フレームワークを使用して、アプリケーションの状態を効率的に管理する手順も説明する。
第10章「マイクロサービスのためのイベント駆動型パターン」では、イベント駆動型アーキテクチャの基本を説明し、メッセージングシステムおよびイベントストアとしてApache Kafkaを使用する方法を紹介する。さらに、マイクロサービスを効果的に連携させるために、Apache Kafkaブローカーを使用し、コンシューマーグループをセットアップする方法についても説明する。
第11章「安全なマイクロサービスの展開と監視」では、JWTを用いたマイクロサービス認証の基本や、ELK Stackを用いたリアルタイム監視システムのセットアップ方法について解説する。また、コンテナやKubernetesなどのオーケストレーションフレームワークの基本的な概念も解説する。
コメント
[…] Clojureを使ったマイクロサービスシステム […]