Authors:
正野 勇嗣, 山田 真也, 宇都宮 雅彦, 横井 一輝, 岡本 隆史

クラウドネイティブで実現する マイクロサービス開発・運用 実践ガイド | 技術評論社
概要編
第1章 マイクロサービス概論
1.1 本書について
- 銀の弾丸
1.2 マイクロサービスの概要
- Micro services - Java, the Unix Way
- Microservices
- Microservice Premium
- State of DevOps Report
- Death Start Architecture
- Adoption of Cloud Native Architecture, Part 2:Stabilization Gaps and Anti-Patterns
- Even Amazon can’t make sense of serverless or microservices
- Scaling up the Prime Video audio/video monitoring service and reducing costs by 90%
- アジャイル/クラウドネイティブ/DevOps
- The Twelve-Factor App
1.3 マイクロサービス化を成功に導くプラクティス
- two-pizza team
- Scaled Agile Framework
- The NIST Definition of Cloud Computing
- ペットから家畜へ/Pets vs. Cattle
- ゼロトラスト
- Beyond the Twelve-Factor App
- DDD/エリック・エヴァンスのドメイン駆動設計
- オブジェクト指向プログラミング/SOLID原則/GRASP
- コンウェイの法則/逆コンウェイの法則
実践編
第2章 マイクロサービスの実装
2.1 サンプルアプリケーションの概要と開発環境構築
2.2 アプリケーションの実装
- gRPC/Protocol Buffers
- Go
- gRPCurl
- BFF/GraphQL
- Apollo Server
- シングルページアプリケーション/React
- Docker/Kubernetes/GitOps
- Pod/Deployment/Service
- kind/minikube
- Dockerfile/distroless
- Kubernetes DNS
- Kustomize
- RabbitMQ/メッセージブローカー
第3章 サンプルアプリケーションへの非機能の実装
3.1 書籍オンラインショップ「Book Shop」の動作確認
3.2 サービスのモニタリングと可用性の向上
- Probe/Liveness Probe/Readiness Probe/Startup Probe
- グレースフルシャットダウン/SIGTERM/SIGINT
3.3 サービスメッシュによるサービス連携
- サービスメッシュ
- Istio/Istio Operator/
- サイドカープロキシ(Envoy)
- VirtualService/DestinationRule/Gateway
- Blue-Greenデプロイ
- ラウンドロビン
- カナリアリリース
- タイムアウト
- サーキットブレーカー
- 相互TLS認証/PeerAuthentication
- JWT/Keycloak/AuthorizationPolicy
3.4 ユーザの認証・認可
第4章 マイクロサービスにおけるデータマネジメント
- TCC
4.2 マイクロサービスでのクエリ操作
第5章 マイクロサービスのテスト #Testing
5.1 ユニットテスト
- SAST(Static Application Security Testing)/Go Vet
5.2 インテグレーショテスト
5.3 システムテスト
- パフォーマンステスト/DevPerfOps
第6章 マイクロサービスのためのCI/CD設計 #Continuous Integration #Continuous Delivery
6.1 CI/CDの概要
- セマンティックバージョニング
- Flaky Test
6.2 CI/CDの設計
- Monorepo
- Git Flow/GitHub Flow/GitLab Flow
- トランクベース/フィーチャーフラグ
- DevSecOps
- GitOps
- 5 GitOps Best Practices
- ConfigMap
- インプレース(再作成デプロイ)/Rolling Update/Progressive Delivery
- Blue-Greenデプロイ/カナリアリリース/ダークローンチ
- フィーチャーフラグ
- A/Bテスト
6.3 実装するCI/CDの全体像
第7章 マイクロサービスアプリケーションにおけるCI/CDの実装
7.1 GitLab CIによるCIの実装
7.2 Argo CDによるGitOpsの実装
第8章 発展的なCI/CD戦略
8.1 Argo Rolloutsによるプログレッシブデリバリの実装
8.2 CI/CDの高みを目指すために
- Continuous Testing/Testing Quadrant
- シフトレフトテスト/Policy as Code/Trivy/Kyverno
- シフトライトテスト/ODD(Observability Driven Development)
- DevSecOps
- CNAPP(Cloud-Native Application Protection Platforms)
- Continuous Verification
- Continuous Flow/Value Stream Mapping(VSM)
- Continuous Feedback/OKR//SLO/SLI
- Continuous Inprovement
- Coninuous Delivery 3.0 Maturity Model
- Bostrom, Palmborg and Rehm Continuous Delivery Maturity Model
- Continuous Delivery Pipeline Maturity/A Roadmap to Continuous Delivery Pipeline Maturity
- ChatOps
第9章 マイクロサービスの信頼性を支えるオブザーバビリティ #Observability
9.1 オブザーバビリティの世界へようこそ
9.2 シグナルの種類と性質を知る
9.3 オブザーバビリティの実装プロセスを考える
- OpenTelemetry/Prometeus/Fluent Bit/Grafana
- Amazon CloudWatch/Azure Monitor/Google Cloud Operations/Datadog/Dynatrace/New Relic
9.4 シグナルのパイプラインを設計する
- REDメソッド/USEメソッド/Four Golden Signals/ディメンション/カーディナリティ
- Head-basedサンプリング/Tail-basedサンプリング/コンスタントサンプリング/確率的サンプリング/レートベースのサンプリング/アダプティブサンプリング
- Kiali