マスタリングAPIアーキテクチャ ―モノリシックからマイクロサービスへとアーキテクチャを進化させるための実践的手法
by James Gough, Daniel Bryant, Matthew Auburn, 石川 朝久
8章
API駆動アーキテクチャへのアプリケーションの再設計
APIの運用とセキュリティについてしっかりと理解したところで、APIを利用して既存のアプリケーションを進化させ、拡充する方法を紹介します。『進化的アーキテクチャ─絶え間ない変化を支える』(オライリー・ジャパン刊、2018年)では、進化的アーキテクチャが段階的な改善をサポートする方法について論じられています。この本に定義された進化的アーキテクチャを採用するかどうかにかかわらず、ほとんどの成功したシステムは、新しいユーザ要件に対応するために時間の経過とともに進化しなければならないという現実があります。顧客のフィードバックや変化する市場状況に基づいて製品を変更しないビジネスや組織は、ほとんど存在しないでしょう。同様に、長期間稼働するシステムは、ハードウェアの故障や陳腐化などの基盤変更、基盤となるアプリケーションフレームワークの変更、サードパーティサービスの変更に影響を受けることもよくあります。
APIは、システムおよびシステム内部への自然なインターフェース、抽象化、および(カプセル化された)エントリポイントであり、進化的アーキテクチャをサポートするために重要な役割を果たすことができます。この章では、なぜ変更が必要か、それをどのように設計するか、そしてどこに有用なパターンを実装するかについて学びます。
読者は気付いていないかもしれませんが、カンファレンスシステムのケーススタディには、この章で議論される多くのスキルを適用してきています。この章を読む際には、ケーススタディの進化について考えることをお勧めします。「10.1 ケーススタディ:旅路の振り返り」では、カンファレンスシステムアーキテクチャの最終的な状態を確認します。 ...