書店員向け情報 HELP
出版者情報
書店注文情報
絵で見てわかるマイクロサービスの仕組み
- 書店発売日
- 2021年7月12日
- 登録日
- 2021年5月21日
- 最終更新日
- 2021年7月1日
紹介
DX実現のための基礎技術“マイクロサービス”のポイントを手早く習得
マイクロサービスとは何でしょうか?
小さな粒度のソフトウェアコンポーネントのことでしょうか?
いえいえ、その本質は違います。
マイクロサービスとは、サービス指向の革新的ソフトウェアアーキテクチャに加え、
コンテナやKubernetesといったアプリケーションランタイム、CI/CDや
アジャイルプロセスなどの開発手法、RESTやメッセージングなどによる
アプリケーション連携形態を包含する、クラウドネイティブコンピューティングの
包括的なアーキテクチャスタイルです。
本書では、マイクロサービスを、クラウドネイティブ時代のアーキテクチャスタイル
として捉えて、マイクロサービス流のソフトウェアアーキテクチャに加えて、
コンテナ、Kubernetes、サービスメッシュ、DevOps、ハイブリッド&マルチクラウド
など、DXを支えるクラウドネイティブテクノロジーの全体像を解説します。
DX実現のための最新技術動向を知りたい方、クラウドネイティブコンピューティング
の概要を理解したい方、そしてマイクロサービスに興味をお持ちの技術者にとって、
本書はおすすめの一冊です。本書でマイクロサービスの本質とポイントを学び、
「2025年の崖」を飛翔のきっかけとしてください。
目次
■第1部 マイクロサービスのアーキテクチャ
第1章 デジタルトランスフォーメーション――マイクロサービスが求められる背景
1.1 デジタルトランスフォーメーションとは何か
1.2 2025年の崖
1.3 DX推進のための方策
第2章 クラウドネイティブコンピューティングとマイクロサービス
2.1 クラウドコンピューティングの歩みを振り返る
2.1.1 REST
2.1.2 クラウドサービスモデル
2.2 クラウドネイティブコンピューティング
2.3 クラウドネイティブコンピューティングを支える技術要素
2.3.1 コンテナ
2.3.2 コンテナオーケストレーション
2.3.3 DevOps
2.3.4 クラウドネイティブコンピューティングをすすめる理由
2.4 マイクロサービスとは何か
2.4.1 マイクロサービスアーキテクチャ
2.5 マイクロサービスの特徴
2.5.1 サービスによるコンポーネント設計
2.5.2 開発/運用体制
2.5.3 開発環境と永続データストアのガバナンス
2.5.4 基盤に対する考慮
2.6 マイクロサービスにおける開発/運用の流れ
2.7 マイクロサービスの適用基準
第3章 マイクロサービスアーキテクチャの基本
3.1 サービスの構造
3.2 レイヤードアーキテクチャ
3.2.1 制御の逆転(IoC)
3.3 ヘキサゴナルアーキテクチャ
3.4 データベースアクセス
3.5 トランザクション管理
3.6 データベース間の同期
3.7 データの結合
3.7.1 CQRS
3.7.2 イベントソーシング
3.7.3 CQRS&イベントソーシングのメリット/デメリット
3.8 サービス間連携
3.9 サービス化の進め方
3.9.1 アジャイル開発、1チーム、ドメイン駆動設計
3.9.2 サービス化は大きく始めて、必要に応じて細分化
3.9.3 セッション情報の維持
3.9.4 移行期間中の依存関係
第4章 マイクロサービスパターン
4.1 マイクロサービスパターン
4.2 データ管理パターン
4.2.1 データ管理パターンの背景と動機
4.2.2 データベース配置パターンの例
4.2.3 データ同期パターンの例
4.3 トランザクショナルメッセージングパターン
4.3.1 トランザクショナルメッセージングパターンの背景と動機
4.3.2 トランザクショナルメッセージングパターンの例
4.4 サービスディスカバリパターン
4.4.1 サービスディスカバリパターンの背景と動機
4.4.2 サービスディスカバリの方法に関するパターンの例
4.4.3 サービスレジストリパターン
4.4.4 サービスレジストリへの登録に関するパターンの例
4.5 外部APIパターン
4.5.1 外部APIパターンの背景と動機
4.5.2 外部APIパターンの例
4.6 通信パターン
4.6.1 通信パターンの背景と動機
4.6.2 通信パターンの例
4.7 デプロイメントパターン
4.7.1 デプロイメントパターンの背景と動機
4.7.2 デプロイメントパターンの例
4.8 可観測性パターン
4.8.1 可観測性パターンの背景と動機
4.8.2 可観測性パターンの例
4.9 リファクタリングパターン
4.9.1 リファクタリングパターンの背景と動機
4.9.2 リファクタリングパターンの例
■第2部 マイクロサービスを支えるクラウドネイティブテクノロジー
第5章 コンテナ&Kubernetes&サーバーレス
5.1 コンテナ
5.1.1 コンテナとは
5.1.2 アプリケーションの分離
5.1.3 プロセス、コンテナ、VM
5.1.4 コンテナを支える技術
5.1.5 コンテナの歴史
5.1.6 コンテナイメージ
5.1.7 Union File System
5.2 Kubernetes
5.2.1 コンピューターの拡張性
5.2.2 コンテナオーケストレーションとKubernetes
5.2.3 Kubernetesの機能概要
5.2.4 Kubernetesアーキテクチャ
5.3 サーバーレス
5.3.1 サーバーレスとは
5.3.2 サーバーレスの2つのペルソナ
5.3.3 サーバーレスアーキテクチャ
5.3.4 サーバーレスのユースケース
5.3.5 サーバーレスのメリット
5.3.6 サーバーレスの制約
5.4 デプロイメント技術の比較とまとめ
第6章 サービスメッシュ
6.1 サービスメッシュの必要性
6.1.1 マイクロサービスにおけるサービスへのアクセス
6.2 サービスメッシュとは
6.3 サービスメッシュでできるようになること
6.3.1 サービスディスカバリと負荷分散
6.3.2 トラフィックコントロール
6.3.3 サーキットブレーカー
6.3.4 分散トレーシングのためのテレメトリーデータの収集
6.3.5 セキュリティ
6.4 サービスメッシュのソフトウェア例
6.4.1 Istio
6.4.2 Linkerd
6.4.3 Consul
第7章 マイクロサービスの開発と運用
7.1 マイクロサービスの開発と運用
7.1.1 マイクロサービスの開発と運用のメリットと考慮点
7.2 マイクロサービスの開発と運用に必要なプラクティス
7.2.1 DevOps
7.2.2 継続的インテグレーション/継続的デリバリー(CI/CD)
7.2.3 GitOps
7.2.4 Infrastructure as Code/Immutable Infrastructure
7.3 マイクロサービス開発に必要な環境
7.3.1 コンテナの実行環境
7.3.2 統合開発環境、エディター、ツール
7.3.3 チーム開発の準備
7.3.4 ソースコードと構成ファイルの管理
7.4 リリースマネージメント
7.4.1 リリースの基本的な流れ
7.4.2 パイプライン
7.5 マイクロサービスの監視と運用
7.5.1 監視と運用の体制、DevOps組織とサイトリライアビリティエンジニアリング
7.5.2 可観測性(Observability)とモニタリング、ログ管理
第8章 クラウドデプロイメントモデルの動向
8.1 クラウドデプロイメントモデル
8.1.1 利用形態の多様化
8.2 ハイブリッドクラウド
8.2.1 ハイブリッドクラウドの利用形態
8.3 マルチクラウド
8.3.1 マルチクラウドのメリット
8.3.2 マルチクラウドの課題
8.4 コンテナとハイブリッド/マルチクラウド
8.5 分散クラウド
8.5.1 分散クラウドの定義
8.5.2 分散クラウドのアーキテクチャ
8.6 エッジコンピューティング
8.6.1 エッジコンピューティングが実現すること
8.6.2 エッジコンピューティングのアーキテクチャ
8.6.3 エッジコンピューティングの価値
8.6.4 エッジコンピューティングにおける分散クラウドの役割
8.7 まとめ
上記内容は本書刊行時のものです。