Jul 12, 2023
マイクロサービスを構築せず、疎結合を追求
投稿者: Chris Bertinato、2023 年 8 月 29 日 信頼性の高いアプリケーション パフォーマンスに対する需要が常に高まっていることを考えると、多くの企業が将来の拡張を念頭に置いてシステムを構築しているのも不思議ではありません。 多くの
投稿者: Chris Bertinato、2023 年 8 月 29 日
信頼性の高いアプリケーション パフォーマンスに対する需要が常に高まっていることを考えると、多くの企業が将来の拡張を念頭に置いてシステムを構築しているのも不思議ではありません。 多くの業界専門家は、システムの将来性を保証する最良の方法としてマイクロサービスを指摘していますが、どの時点でもすべての企業に有効な単一の戦略はないため、代わりに「適切なサイズのサービス」という用語を使用したほうがよいかもしれません。 。 チームは、最新のトレンドのどれを戦略として採用するかを考えるのではなく、カップリングの根本的な要因を認識し、それに焦点を当てる必要があります。 変更される可能性が高いコンポーネント間に疎結合がある場合、システムはより柔軟で動的になります。
システムの文脈におけるカップリングとは、システムのコンポーネントがどのように接続されるかを指します。 疎結合にはインターフェイスが必要です。 電気システムの場合、これらのインターフェイスは、ピンとソケットを備えた物理コネクタと、電圧レベルの観点から記述されたプロトコルとして実装されます。 電気コネクタに類似したソフトウェア システムは、アプリケーション プログラミング インターフェイス (API) であり、特に、一連の関数または HTTP ベースのリソースとして実装できます。 しかし、インターフェイスだけでは疎結合には十分ではありません。 また、そのインターフェイスはある程度安定している必要があります。つまり、ユーザーは、入力が長期間同じままであるか、少なくとも予測どおりに変化するインターフェイスがそこにあると期待できます。
システムのコンポーネントが疎結合されている場合、システムの残りの部分に大きな影響を与えることなく、それらのコンポーネントを内部で変更できます。 日常的な例、電球を考えてみましょう。 電球ソケットは標準サイズ、標準ネジ、標準電圧を備えています。 電球そのものは、ランプや照明器具を変えることなく、フィラメントの材質を変えてLEDへと進化してきました。 ここで、ソフトウェア システムの簡単な例を考えてみましょう。HTTP サーバーと、キャッシュ、キュー、データベースなどのデータストアです。 ほとんどの場合、サーバーとデータストアの間にインターフェイスを配置すると、データストアの実装を簡単に変更できるようになります。 これら 2 つのコンポーネントが疎結合になると、変更される可能性のあるものは、他のものに大幅な変更を加えることなく変更できます。
システムのコンポーネントが密接に絡み合っている場合は、ほんの小さな変更でもシステムの他の場所に大混乱を引き起こす可能性があります。 この構造を、近くで育てられた植物のグループと比較することもできます。 すべての茎が絡み合っているため、1 つの植物を新しい植物と交換するのは困難です。1 つの誤った操作により、他の多くの植物が簡単に根こそぎにされてしまう可能性があります。
対照的に、疎結合システムでは、1 つのコンポーネントに問題が発生しても、システムの残りの部分は回復力を維持できるという確信を持って変更を加えることができます。 この自信により、変更を加える柔軟性が向上し、新機能や製品の市場投入までの時間を短縮できるようになり、潜在的に競争上の優位性がもたらされます。
疎結合の当然の利点は進化可能です。最も変更される可能性が高い場所にインターフェイスが配置されていると、システムの進化が容易になります。 インターフェースは安定かつ不透明であることを意図しているため、インターフェースの背後で行われているものは一般に未知であり、そのインターフェースのユーザーには無関係です。 したがって、インターフェイスが安定している限り、その背後にあるシステムは自由に変更でき、したがって進化します。
マイクロサービス戦略が疎結合をサポートしているのは事実ですが、それが唯一の方法ではありません。 シンプルなアーキテクチャ戦略により、小規模または新しいプロジェクトでもより持続可能な方法で疎結合のメリットを享受でき、マイクロサービス中心のインフラストラクチャを構築するよりも発生するオーバーヘッドが少なくなります。
アーキテクチャの選択は、スケーラビリティやパフォーマンスなどの技術的な問題と同じくらい、ソフトウェア システムの構築と運用の人的要素にも関係します。 そして、人間のコンポーネントは、マイクロサービスが不足する可能性がある部分です。