哲学の研究には、少なくとも過去においては、表面的には無関係であるように思える質問をすることが含まれていました。 結局のところ、「すべての木製部品を交換して修復された船が同じ船のままであるかどうか」を知ることは本当にそれほど重要なのでしょうか? それはプルタルコスが『テセウスの生涯』で尋ねた質問である それ以来、テセウスのパラドックスとして知られるようになりました。 もっと一般的に言えば、「すべての構成要素が置き換えられた物体は、基本的に同じ物体のままであるかどうか」を問うものです。(テセウスの船、Wikipedia )
同じことをマイクロサービスにも問うことができます。マイクロサービスは、既存のモノリシック アプリケーションに適用され、機能を補完的なサービスに置き換えることで、本質的にアプリケーションを復元しようとします。 機能は設計上小さく(または小さくあるべき)、その結果として生じる分離されたサービスには「マイクロ」という用語が適用されます。 両者の違いはコミュニケーションの観点から見ることができます。 モノリシック アプリケーションでは、関数はメモリ内の特定のアドレスを参照して呼び出されます。 マイクロサービス ベースのアプリケーションでは、ネットワーク内の特定の IP アドレスを参照して関数 (サービス) が呼び出されます。
概念的には、これら 2 つは同じですが、個々の機能コンポーネントを呼び出すメカニズムのみが異なります。 結果の図には、モノリスの「ボックス」が単一のサーバーであり、マイクロサービスの「ボックス」がデータセンター全体であること以外は、本質的にはほとんど違いが示されません。一方はローカライズされたアドレス指定を使用し、もう一方はネットワーク アドレス指定を使用します。 これらの各関数のコードは、テセウスの船の木材のように、まったく同じになる可能性があります。
しかし、ビジネス機能は一貫しており、実際、アプリケーションを適切に分解した場合、ユーザーは 2 つの間に識別可能な違いを感じないはずです。 テセウスの船の乗客の観点から見ると、両者の間に違いはないと主張する人もいるかもしれません。 そうであるべきでもありません。
しかし、哲学者はさらに深く掘り下げる傾向があり、彼らと同様に私たちもそうしなければなりません。なぜなら、モノリシック アプリケーションとマイクロサービス ベースのアプリケーションの違いは、実際には運用にとって非常に重要だからです。
マイクロサービスはアプリケーション開発プロセスの多くの側面を簡素化しますが、その際に運用上の複雑さが大幅に増大します。 マイクロサービス ベースのアプリケーションの異なる部分間のネットワーク接続の数は、さまざまなネットワーク特性の管理に関連するオーバーヘッドを必然的に必要とします。 IP アドレス、VLAN、NAT テーブルなど。 スケーラビリティも、マイクロサービスと負荷分散サービスの配置が、ネットワーク内で通過する必要があるセグメントの数に基づいてパフォーマンスに非常に大きな影響を与えるため、ダイクストラでさえもイライラする課題になります。
機密データ ソースに直接アクセスする 1 つのサービスに適用されるセキュリティ ポリシーは、設定やセッション状態を管理する別のサービスを保護するために必要なポリシーではないため、突然追加のポリシーが必要になります。 結果として得られるマイクロセキュリティ ポリシーのネットワークは、マイクロサービス自体と同じ利点の多く、つまり、よりきめ細かい制御と一種の洗練されたシンプルさを提供しますが、同時に、アーキテクチャ内のどこに現れても、ポリシーをサービスとともに突然移動する必要があるため、運用上の悪夢になります。
展開も突然、指数関数的に難しくなります。これは、単純なボックス ステップ ダンスから、より多くのステップとダンス フロア (データ センター) 全体での動きがはるかに多い、より複雑なフラメンコに移行するようなものです。 すべての要素を適切なタイミングで配置するために必要な一貫性と予測可能性を確保するには、オーケストレーションと自動化が必須となります。
アプリケーションにこれらのネットワークおよびセキュリティ サービスを提供する責任者は、50 フィートの高さからどのような景色が見えても、船は同じではないことを認識する必要があります。 単純に聞こえますが、1 つのアプリケーションが 10 個のサービスに置き換えられるだけです。 出来上がり! テセウスの船のようにアプリが再現されました。 しかし、運用の観点から見ると、この船はまったく同じではありません。 新しい船の接合部(統合)は完全に異なるため、海(ネットワーク)に対して生じる摩擦が変化し、船の航行速度が遅くなる傾向があります。
マイクロサービスはまだ新興国です。 彼らは(まだ)世界を征服しているわけではありませんが、テセウスの船を解体して再建するほど簡単なことではないことを認識することが重要です。 ネットワークとセキュリティ サービスの運用チームは、ネットワークとセキュリティへの影響が非常に異なるため、乗客 (ユーザー) の視点ではなく哲学者の視点に立つ必要があります。