Service meshについて説明してみる

ある会社のある人と面接をした時にservice meshについて聞かれて全く回答ができなかった。悔しいので調べた。理解を深めるために簡単にまとめてみた。

なにこれ?

Service meshとは、Containerを実際の環境に配置する際のアーキテクチャパターンの一つで、観測性(Observability)、セキュリティ、信頼性などの機能をクラウドネイティブなアプリケーションに透過的にアプリケーションレイヤーではなくプラットフォームレイヤに挿入する方式。
Service meshはKubernetesを利用している企業間では急速に普及しつつあるistioとか、Linkerdなどが有名

具体的に何が嬉しいの?

  • アプリケーションレイヤーではService meshについて意識する必要がない

  • あらかじめ環境を用意しておくと、アプリケーションを追加するだけで各アプリケーションの状態や関連が把握できる様になる。

  • 現在の状況だけでなく、過去の状況及び現在までの推移もダッシュボードで把握できる。

Linkedを入れてみた

Linkedのページのgetting-startedを参考にして、ローカルで環境を作ってみた。実際の画面はこんな感じ。

画面にはインストール済みの各アプリケーションが表示されており、実際にアプリケーションにアクセスするとSuccess Rateがリアルタイムに変化する。サンプルで提供されているvote-botアプリケーションには意図的にいくつかエラーが発生する箇所が用意されており、そこにアクセスを繰り返すと、Success Rateがどんどん下がっていくといった感じ。

それぞれの行の一番右に表示されているGraphanaアイコンをクリックすると、こんな感じでダッシュボードも参照することができる。これもリアルタイムでリフレッシュされていく(これはすごい。ただ、データはどこに保管されているのかが不明・・消えちゃったりしない?)

感想

これまでDockerやECSは利用してきたが、K8S系の環境の利用はあまり経験がなかった。小さく始めるにはECSの方が手軽なのかもしれないが、大規模のサービスとなってきた場合は、こう言った技術をK8S環境で活用していく方が良いのかもしれない。







いいなと思ったら応援しよう!