26章サービスメッシュはマイクロサービスの世話人か
Matt Klein(Lyft)
過去5年から10年の間に、分散システムの設計と運用ではマイクロサービスが大きなブームとなりました。かつては最大規模のインターネット企業のインフラストラクチャに限られていましたが、このテクノスフィアは今や、「イミュータブルなコンテナのプロビジョニングとスケジューリング」、「継続的な統合とデプロイ」、「分散制御」、「多言語導入」といったフレーズで持ちきりです。マイクロサービスアーキテクチャなら大規模な開発チームが運用のアジリティを実際に高めることができるというのは間違いなく真実です。しかし、ここで見落とされがちなのは、分散アーキテクチャを実際問題として良好に機能させるために大規模なインターネット企業では一般に、開発と運用の取り組みに数百人年(person-years)を投資してきたという厳しい現実です。従来のモノリシックなアプリケーションから脱却して、そのようなアーキテクチャを実際の環境にデプロイしようとするときに運用面で発生する、膨大な問題にどのように取り組めばよいのか、リライアビリティエンジニアからすれば呆然とするばかりです。サービスが相互に発見して情報をやり取りするには、どうすればよいのでしょうか。分散サービスの観測とデバッグは、どのように行えばよいのでしょうか。サービスのパッケージングとデプロイは、どうすればよいのでしょうか。どのような種類の複雑な障害シナリオが起こりうるのでしょうか。
マイクロサービスの現場で実務を担当している者ならすぐに分かることですが、分散アーキテクチャへの移行に伴って生じる運用上の問題はその大半が、突き詰めればネットワーキングおよびオブザーバビリティ(可観測性)という2つの領域に関するものです。複雑に絡み合った一連の分散サービスをネットワーク化およびデバッグするのは単純に、モノリシックな単一アプリケーションの場合と比べ、桁違いに厄介な問題なのです。この事実がリライアビリティエンジニアにとって最終的に意味するものとは何でしょうか。それは、 ...
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