第3章. サーバーレスマイクロサービス構築のためのソフトウェアアーキテクチャ
この作品はAIを使って翻訳されている。ご意見、ご感想をお待ちしている:translation-feedback@oreilly.com
男:「そんな単純な話じゃないと思うんだ。何もないんだ」。
女性"何事も分解すればわかる!"
映画『マンマ・ミーア』より!ヒア・ウィー・ゴー・アゲイン
アーキテクチャという言葉は、文脈によって解釈が異なる。サーバーレス開発に関する本書を読みながら、あなたは当然、この言葉をソフトウェアの文脈、正確にはサーバーレスの文脈に関連付けるだろう。文脈を切り離せば、アーキテクチャを建物と関連付けるだろう。狩猟採集生活をしていた祖先が、避難所や安全のために建造物を建てたことから、この言葉が生まれたのだ。
優れたアーキテクチャとして何かを評価するとき、その美学や魅力に感嘆することが多いだろう。しかし、アーキテクチャには3つの主要な部分がある:アート、構造、そしてすべてをまとめるテクニックだ。これは、ソフトウェアやサーバーレスなど、どのような文脈においても当てはまる。
しかし、違いはある。マヤの神殿やタージ・マハルの前に立ってその外観を眺めることはできても、フライト予約システムのアーキテクチャを見ることはできない。ソフトウェアアーキテクチャには目に見えない魅力がある。ソフトウェアアーキテクチャの技術は、組み込み要素(データベース、プロセス、キュー、関数など)とそれらの間の関係によって表現され、それを構築したチームにある。
要素とその関係は、ソフトウェアのコンテキストによって異なる。過去に取り組んだレガシーシステムのソフトウェア要素と関係が、サーバーレスアプリケーションですべて見られるとは限らない。さらに、これらの要素とその相互関係は、同じコンテキストであっても進化する。エンジニアやアーキテクトとしてのあなたの役割は、アーキテクチャをできるだけ長く維持するために、理解し、適用し、必要に応じて更新することだ。
レガシーアプリケーションの多くは、階層化されたスタックに広がる様々な形状の複雑な相互接続の広大な網としてアーキテクチャを描いていた。しかし、ソフトウェア・アーキテクチャは複雑である必要はない。サーバーレス・アーキテクチャは、その幅や複雑さによってではなく、目的に対する適合性によって評価されるのだ!
ビルのアーキテクチャとサーバーレスアプリケーションの決定的な違いは、変更の可能性だ。一度完成した建物のアーキテクチャを変更することはほとんど不可能だ。私たちは、建築の成功例として認識されている古い建築物について、「時の試練に耐えてきた」、つまり不変でありながら魅力的であると、このことを認めている。対照的に、サーバーレスアーキテクチャは進化することができ、既存のソリューションに影響を与えることなく変更を適用することができる。時が経てば、初期化されたアーキテクチャと完全に類似しなくなるかもしれない。
サーバーレス技術の進歩、ユーザの要求、ビジネス戦略、アーキテクチャパターンは、アーキテクチャに影響を与える可能性がある。アーキテクトをする際には、技術的な改善や新機能などを取り入れる設計の能力を考慮しなければならない。この章では、反復と進化が可能なソリューションを設計するための最新のアプローチを紹介する。イベント駆動アーキテクチャとサーバーレスアプリケーションの設計の要点を深く掘り下げ、ドメイン駆動設計とマイクロサービス構築への適用方法について議論する。マイクロサービスは、問題領域を分解し、拡張可能なサービスを構築する新しい方法を紹介する。 ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access