Production-Ready Microservices:
Building Standardized Systems Across an Engineering Organization
4年前に読んだ本ですが、最近復習してきたのでメモを残しておきます。
Production-readiness のチェックリスト
1、Stability and Reliability
標準化された開発サイクルがある
ソースコードは、コードレビュー、ユニットテスト、結合テスト、E2Eテストを通って出荷される
テスト、パッケージング、コンフィグレーション、デプロイメントは自動である
標準化されたデプロイメントパイプライン(staging->canary->production環境)がある
マイクロサービスの利用者は可視化され、何か会った際に通知可能
依存関係と仕様変更は管理されている。エントリーポイントの解除(deprecate)、バックアップ、キャッシュ、ロールバック手順がある
安定したサービスルーティングとサービスディスカバリー仕組みがある
2、Scalability and Performance
明確的な利用規模増減プラン(質:業務指標、ユーザ数や注文数など。量:RPS・QPS)
優先順位に基づく共有ハードウェア資源の有効利用
資源のボトルネックとニーズの可視化
リソース配分とキャパシティプランの自動化
サービス間依存関係も配慮されスケール可能
利用者数増減によるスケール可能
業務のトラフィックモデルの可視化
障害時にトラフィックルーティングの自動変更
スケールしやすい開発言語の使用
タスク処理の高速化(並列処理やスシャーディングなど)
データ処理の高速化とスケール
3、Fault Tolerance and Catastrophe Preparedness
単一障害点存在しない
障害シナリオの可視化(HW障害、インフラ障害、依存障害、内部エラー)
コードテスト、負荷テストとカオスエンジニアリングによる伸縮性担保
障害検知と復旧の自動化
標準化事故と障害処理フロー
4、Monitoring
キーメトリックスは、ホストレベル、インフラレベルとサービスレベルで識別と監視されている
監査ログある
分かりやすいダッシュボードある
警告メッセージに対する閾値があり、操作可能
モニタリングの担当ローテーション配置
待機体制と障害レスポンスプロセスの明確化
5、Documentation and Understanding
詳細なドキュメント
ドキュメントの定期更新
ドキュメント必要内容:サービス定義、アーキテクチャー図、運用担当情報、重要情報リンク、開発ガイド、リクエストフロー、エントリーポイント、依存関係、運用マニュアル、FAQ
理解しやすさ
Production-Ready基準のクリア
ドキュメントレビュー済み
Comments