マスタリングAPIアーキテクチャ ―モノリシックからマイクロサービスへとアーキテクチャを進化させるための実践的手法
by James Gough, Daniel Bryant, Matthew Auburn, 石川 朝久
5章
APIの展開とリリース
この章では、設計、構築、テストから対象環境での実行へ移行する方法を検討します。
「イントロダクション」で紹介したカンファレンスシステムのケーススタディを考えてみましょう。当該システムは単一のユーザインターフェースとサーバサイドアプリケーションを持っていました。サーバやユーザインターフェースのアップグレードを展開する場合、一部のダウンタイムが発生する可能性が高いでしょう。デプロイメントとリリースは密接に結びついており、分離不可能です。また、デプロイメントに問題が発生した場合、変更をロールバックするのに時間がかかるかもしれません。ユーザインターフェースとサーバコンポーネント間を疎結合にすることで、デプロイメントとリリースの方法論に加え、レガシーカンファレンスシステムが考慮すべき選択肢を検討します。
トラフィック管理を導入すれば、デプロイメントとリリースを分離するオプションが提供されます。この章では、これについて詳細に分析し、変更内容を展開するための選択肢を検討します。APIのバージョン管理がカンファレンスシステム内のリリースサイクルにどのように影響を与えるかを考慮する必要があります。
展開における重要な検討事項の1つは、変更が成功したかどうかを把握することです。APIアーキテクチャは本質的に疎結合であり、正常なリリースを実行するために適切なメトリクス、ログ、トレースを利用することが重要です。メトリクスに関する考慮事項と、リリースおよびインシデント管理/トラブルシューティングに役立つ方法について見ていきます。
最後に、最終的な整合性が変更にどのように影響を与え、アプリケーションレベルでどのような問題が発生するかについて触れます。プロキシなどの追加のインフラストラクチャレイヤの導入には、キャッシュとヘッダの取り扱いについて考える必要があります。これらの考慮事項と、提供価値を体現したプラットフォーム(opinionated ...