26章サービスメッシュはマイクロサービスの世話人か

Matt Klein(Lyft)

過去5年から10年の間に、分散システムの設計と運用ではマイクロサービスが大きなブームとなりました。かつては最大規模のインターネット企業のインフラストラクチャに限られていましたが、このテクノスフィアは今や、「イミュータブルなコンテナのプロビジョニングとスケジューリング」、「継続的な統合とデプロイ」、「分散制御」、「多言語導入」といったフレーズで持ちきりです。マイクロサービスアーキテクチャなら大規模な開発チームが運用のアジリティを実際に高めることができるというのは間違いなく真実です。しかし、ここで見落とされがちなのは、分散アーキテクチャを実際問題として良好に機能させるために大規模なインターネット企業では一般に、開発と運用の取り組みに数百人年(person-years)を投資してきたという厳しい現実です。従来のモノリシックなアプリケーションから脱却して、そのようなアーキテクチャを実際の環境にデプロイしようとするときに運用面で発生する、膨大な問題にどのように取り組めばよいのか、リライアビリティエンジニアからすれば呆然とするばかりです。サービスが相互に発見して情報をやり取りするには、どうすればよいのでしょうか。分散サービスの観測とデバッグは、どのように行えばよいのでしょうか。サービスのパッケージングとデプロイは、どうすればよいのでしょうか。どのような種類の複雑な障害シナリオが起こりうるのでしょうか。

マイクロサービスの現場で実務を担当している者ならすぐに分かることですが、分散アーキテクチャへの移行に伴って生じる運用上の問題はその大半が、突き詰めればネットワーキングおよびオブザーバビリティ(可観測性)という2つの領域に関するものです。複雑に絡み合った一連の分散サービスをネットワーク化およびデバッグするのは単純に、モノリシックな単一アプリケーションの場合と比べ、桁違いに厄介な問題なのです。この事実がリライアビリティエンジニアにとって最終的に意味するものとは何でしょうか。それは、 ...

Get SREの探求 ―様々な企業におけるサイトリライアビリティエンジニアリングの導入と実践 now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.