出版社内容情報
Dockerとマイクロサービス。現在最も注目を集めている2大トピックを、Azure上でどのように実現するのかを解説。本書は"Microservices with Docker on Microsoft Azure"(Addison-Wesley、2016年6月)の日本語版です。Azure上にDockerを使ってマイクロサービスベースのアプリケーションを構築するために必要なことを、原著者の実体験に基づいて実践的に解説します。日本語版では、発行時点の最新情報をできるだけ反映するように努めました。
------------------------------「はじめに」より抜粋-----------------------------
本書の対象読者は、マイクロサービスベースのアプリケーションをAzureで構築することに関心がある人全員です。本書を読んだ後は、マイクロサービスベースのアプリケーションの利点と課題の両方をしっかり理解できているはずです。Azureでマイクロサービスベースのアプリケーションを一から設計するか、既存のモノリシックなアプリケーション(モノリス)を徐々にマイクロサービスに分割するにあたって応用できる知識が得られるでしょう。
本書では、以下の情報を提供します。
・マイクロサービスベースのアプリケーションと従来のモノリスとの違い、およびそれぞれのアプローチの長所と短所。
・マイクロサービスアーキテクチャのコンテキストにおけるDockerコンテナー、Dockerの基本的な操作、およびAzureでDockerホストを作成する方法。
・マイクロサービスベースのアプリケーションの開発環境とDevOps環境をセットアップするためのベストプラクティス。
・Azureのクラスターとコンテナーのオーケストレーション機能。
・コンテナー化されたマイクロサービスアプリケーションを監視するためのベストプラクティスと、Azureで利用可能な監視ツール。
・Azure Service Fabricの概要と、Azure Service Fabricを使ってマイクロサービスベースのアプリケーションを開発する仕組み。
第1章 マイクロサービス
1.1 マイクロサービスとは何か
1.1.1 自律的なサービス
1.1.2 小さなサービス
1.2 マイクロサービスの利点
1.2.1 独立したデプロイ
1.2.2 継続的イノベーション
1.2.3 スケールとリソースの使用状況の改善
1.2.4 テクノロジの多様性
1.2.5 小さく焦点を絞ったチーム
1.2.6 障害の分離
1.3 課題
1.3.1 複雑さ
1.3.2 ネットワークの輻輳と遅延
1.3.3 データの整合性
1.3.4 テスト
1.3.5 統合とバージョン管理
1.3.6 サービスの検出とルーティング
1.3.7 監視とログ
1.3.8 スキルセットと経験
1.3.9 アップタイムSLA
1.4 ベストプラクティス
1.4.1 カプセル化
1.4.2 DevOps の原則と文化
1.4.3 自動化
1.4.4 監視
1.4.5 耐障害性
1.5 まとめ
第2章 Azure のコンテナー
2.1 仮想マシン、コンテナー、プロセス
2.1.1 仮想マシンやプロセスではなくコンテナーを使用する状況とは
2.2 Azure のコンテナー
2.3 Docker を使ったAzure VM の作成
2.3.1 Windows でのSSH 公開鍵の生成
2.3.2 macOS でのSSH 公開鍵の生成
2.3.3 仮想マシンイメージの選択
2.3.4 SSH とGit Bash を使った仮想マシンへの接続:Windows
2.3.5 SSH を使った仮想マシンへの接続:macOS
2.3.6 Docker コンテナーの基礎
2.4 まとめ
第3章 アプリケーションの設計
3.1 出発点の決定
3.1.1 粗粒度のサービス
3.1.2 マイクロサービスからの開始
3.2 サービスとインターフェイスの定義
3.2.1 アプリケーションの分割
3.2.2 サービスの設計
3.3 サービス間の通信
3.3.1 同期リクエストとレスポンス
3.3.2 非同期メッセージング
3.4 モノリスからマイクロサービスへ
3.5 flak.io EC サンプル
3.5.1 flak.io
3.5.2 要件
3.5.3 アーキテクチャの概要
3.5.4 検討すべき点
3.6 まとめ
第4章 開発環境のセットアップ
4.1 ローカルでの開発にDocker を使用する
4.1.1 ローカルでの開発
4.1.2 本番モードでの検証
4.1.3 ビルド/テストホストとしてのDocker
4.2 開発の形態
4.2.1 ローカル
4.2.2 ローカルとクラウド
4.2.3 クラウドのみ
4.2.4 Docker 認証の管理
4.2.5 ベースイメージの選択
4.2.6 イメージの階層の構築
4.3 ローカル開発環境のセットアップ
4.3.1 Docker ツールのインストール
4.3.2 開発者ツールのインストール
4.3.3 Windows ユーティリティのインストール
4.3.4 macOS ユーティリティのインストール
4.4 ローカル開発でのDocker
4.4.1 ローカル開発の設定
4.4.2 ローカルDocker ホストの起動
4.4.3 Docker ホストへの接続
4.4.4 サンプルのクローン
4.4.5 Docker コンテナーでのライブリロードの有効化
4.4.6 ボリューム
4.4.7 本番環境でマイクロサービスを使用するための準備
4.5 Docker Compose
4.6 Docker のデバッグ
4.6.1 Docker ホストに接続できない
4.6.2 コンテナーが起動しない
4.6.3 実行中のコンテナーを診断する
4.7 まとめ
第5章 サービスのオーケストレーションと接続
5.1 オーケストレーション
5.2 プロビジョニング
5.2.1 Infrastructure as Code
5.2.2 Azure Resource Manager
5.2.3 Azure Container Service
5.2.4 マルチベンダープロビジョニング
5.3 スケジューリングとクラスター管理
5.3.1 課題
5.3.2 スケジューリングソリューション
5.3.3 Docker Swarm
5.3.4 Kubernetes
5.3.5 Apache Mesos
5.3.6 Apache Mesos を使ったさまざまなワークロードの実行
5.4 サービス検出
5.4.1 サービスの登録
5.4.2 サービスの検索
5.4.3 サービスレジストリ
5.4.4 テクノロジ
5.5 その他のテクノロジ
5.6 アプリケーション/ API ゲートウェイ
5.7 オーバーレイネットワーキング
5.8 まとめ
第6章 DevOps と継続的デリバリ
6.1 DevOps の概要
6.1.1 現代のDevOps
6.1.2 DevOps 文化
6.2 継続的インテグレーション、継続的デリバリ、継続的デプロイメント
6.2.1 Azure での環境の作成
6.3 継続的デリバリによるマイクロサービスのデプロイ
6.3.1 複数の環境にわたるアプリケーションの構成変更
6.3.2 継続的インテグレーション
6.3.3 QA 環境でのテスト
6.3.4 ステージング環境へのデプロイ
6.3.5 本番環境でのテスト
6.4 継続的デリバリツールの選択
6.4.1 オンプレミスか、ホステッドか
6.4.2 オンプレミスビルドエージェントか、ホステッドビルドエージェントか
6.4.3 最善のソリューションか、統合ソリューションか
6.4.4 そのツールの拡張性は十分か
6.4.5 Jenkins、Team Services、Bamboo の比較
6.4.6 Docker Cloud
6.5 まとめ
第7章 監視
7.1 ホストマシンの監視
7.2 コンテナーの監視
7.3 サービスの監視
7.4 監視ソリューション
7.4.1 Azure 診断
7.4.2 Visual Studio Application Insights
7.4.3 Microsoft Operations Management Suite
7.4.4 Docker が推奨するソリューション
7.5 まとめ
第8章 Azure Service Fabric
8.1 Azure Service Fabric の概要
8.1.1 Service Fabric サブシステム
8.2 クラスターの管理
8.3 リソースのスケジューリング
8.3.1 Service Fabric アプリケーション
8.3.2 カスタムアプリケーション(既存のアプリケーション)
8.3.3 コンテナーの統合
8.4 サービス検出
8.5 プログラミングモデル
8.5.1 ステートレスサービス
8.5.2 ステートフルサービス
8.5.3 Reliable Actor API
8.5.4 Reliable Service API
8.6 アプリケーションのライフサイクル
8.6.1 サービスの更新
8.6.2 アプリケーションのアップグレード
8.6.3 テスト容易性フレームワーク
8.7 まとめ
付録 A ASP.NET Core 1.0 とマイクロサービス
A.1 ASP.NET の新しいバージョン
A.1.1 ASP.NET に取り組むための準備
A.1.2 正しいASP.NET Docker イメージの選択
A.1.3 Visual Studio 2015 のツール
A.1.4 ASP.NET のマイクロサービスのベストプラクティス
Boris Scholl[ボリス スコール]
Microsoft Azureコンピュートチームのプリンシパルプログラムマネージャー
Trent Swanson[トレント スワンソン]
起業家。Full Scale 180の共同創設者兼顧問
日本マイクロソフト 佐藤 直生[サトウナオキ]
Microsoft Azureのテクノロジスト/エバンジェリスト。書籍の監訳や監修も多数。
クイープ[クイープ]
Daniel Fernandez[ダニエル フェルナンデス]
MicrosoftのDeveloper Contentチームを管理するプリンシパルディレクター
目次
第1章 マイクロサービス
第2章 Azureのコンテナー
第3章 アプリケーションの設計
第4章 開発環境のセットアップ
第5章 サービスのオーケストレーションと接続
第6章 DevOpsと継続的デリバリ
第7章 監視
第8章 Azure Service Fabric
付録A ASP.NET Core 1.0とマイクロサービス



