マスタリングAPIアーキテクチャ ―モノリシックからマイクロサービスへとアーキテクチャを進化させるための実践的手法
by James Gough, Daniel Bryant, Matthew Auburn, 石川 朝久
序文
10年以上も前に、私がフィナンシャル・タイムズ社で初めてAPIを構築した頃は、APIはそれほど多くありませんでした。私たちはモノリシックアーキテクチャで構築しており、APIは外部の第三者にコンテンツを提供するためでした。
しかし今では、APIはあらゆる場面で登場し、システム構築の成功を握る鍵となっています。
なぜなら、この10年の間に、さまざまなことが組み合わさり、ソフトウェア開発を行う方法が変化したためです。
第一に、利用できる技術が変化しました。クラウドコンピューティングの台頭により、セルフサービスで必要に応じてプロビジョニングが可能となりました。自動化されたビルドとデプロイのパイプラインは、継続的インテグレーションとデプロイを可能にし、コンテナとオーケストレーションのような関連技術は、小さな独立したサービスを分散システムとして大量に実行することを可能にしました。
次に出てくる質問は、なぜそんなことをするかという点です。それこそが第二の変化です。成功するソフトウェア開発組織は、疎結合アーキテクチャと自立性を保ち、権限を委譲したチームが存在しているという研究結果があります。ここでいう成功とは、マーケットシェアの拡大、生産性の向上、収益性の向上など、ビジネスにプラスの影響を与えるという意味で定義しています。
現在、私たちのアーキテクチャは疎結合になり、分散し、APIを中心に構築される傾向にあります。APIは発見しやすく、一貫性があり、予期せぬ変更や消滅することがあっても利用者への問題を引き起こしにくいことが必要です。そうでない場合、作業に依存関係が発生し、チームを遅らせる原因となります。
本書で著者らは、効果的なAPIアーキテクチャを構築するための包括的かつ実践的なガイドを提供しています。個々のAPIを構築・テストする方法から、APIをデプロイするエコシステム、APIを効果的にリリースし運用する方法、そしておそらく最も重要である、APIを使ってアーキテクチャを進化させる方法まで、多くの分野をカバーしています。私がフィナンシャル・タイムズ社で最初に構築したAPIはもう存在せず、私たちはそのシステムをゼロから作り直しましたが、非常に高い予算を必要としました。著者らは避けられない変化に対処し、APIを重要なツールとして利用し、システムを進化させるテンプレートを提供しています。 ...