Layer5がKubernetesとサービスメッシュを開発者にとって使いやすくするための取り組み
プロジェクトが十几个のマイクロサービスに成長すると、インフラ管理は混乱に陥ります。開発者はコードを書き、運用チームはマニフェストの意味を理解するのに苦労し、障害が発生すると誰もが責任を押し付け合います。よくある状況ですが、心地よいものではありません。
ある時点で、Layer5リポジトリに出会いました。本質的には、Kubernetesやサービスメッシュを操作するためのオープンソースユーティリティの整套を開発する組織のフラッグシッププロジェクトです。彼らの主なアイデアは、インフラを可視化し、開発者が何百行ものYAMLを手動で書き換えることなく視覚的に制御できるようにすることです。
プロジェクトに含まれる内容
Layer5リポジトリは、いくつかの独立したツールのショーケース兼ハブとして機能します。それぞれがインフラスタックの特定の課題に対処しています。
Meshery
これは、Istio、Linkerd、ConsulなどのKubernetesやサービスメッシュ用の管理ダッシュボードです。このユーティリティはクラスタに接続し、現在のトポロジーを読み取り、ベストプラクティスに対して設定を検証し、ネットワークパフォーマンスをテストできます。
Kanvas
視覚的なインフラエディタです。ターミナルでマニフェストを編集する代わりに、インタラクティブなキャンバス上でアーキテクチャを構築します。図はクラスタとリアルタイムで同期するため、変更はチーム全体にすぐに表示されます。
Nighthawk
OSIモデルのレイヤー7(HTTP、HTTPS、HTTP/2)用のロードテストツールです。Envoy用のロードジェネレーターとしてC++で記述され、Layer5チームはこれをレイテンシとスループットのテストシナリオに統合しました。
Cloud Native CatalogとPatterns
Kubernetes用の готовыхアーキテクチャパターンのカタログです。カナリーリリースを設定したり、サービスバージョン間でトラフィックを分割する必要がある場合は、车輪の再発明ではなく、カタログから実証済みのテンプレートを使用できます。
Service Mesh PerformanceとSistent
SMP仕様はサービスメッシュパフォーマンス指標の収集を標準化し、異なる環境でのテスト結果を正しく比較できるようにします。そしてSistentは独自のデザインシステムとReactコンポーネントライブラリで、同社のすべての製品Webインターフェースはこれに基づいて構築されています。
内部的な仕組み
プロジェクトのサービスのほとんどはGoとJavaScriptで記述されています。クラスタ統合にはMeshery Operatorが使用され、Kubernetes内にインストールされてMeshSyncコンポーネントを実行します。
MeshSyncはKubernetes APIイベントをlistenし、リソースの状態をMesheryサーバーに転送します。スタック全体がApache 2.0ライセンスの下で動作しているため、コードは完全に開かれており、ローカルデプロイメントが可能です。
1つのコマンドでMeshery CLIユーティリティをローカルマシンにインストールして起動できます:
curl -L https://meshery.io/install | PLATFORM=kubernetes bash -
mesheryctl system start
起動後、ローカルWebインターフェースが開き、目的のService Meshアダプタを選択し、既存のkubeconfigを接続して、トラフィックのプロファイリングを開始できます。
実践的なシナリオ
Layer5ツールキットが実際に時間を節約する状況は次のとおりです:
- 採用前のService Meshソリューションの比較。チームがIstioとLinkerdの間で選択している場合、Nighthawkベースの組み込みベンチマークは、同一の合成負荷を実行し、メモリ消費とネットワークレイテンシを比較するのに役立ちます。
- 新しい開発者のオンボーディング。Kanvasのビジュアルマップは、Confluenceの古い図を読むことなく、新人がサービスの接続方法をより速く理解するのに役立ちます。
- 設定の監査。パターンカタログは、マニフェストでリソース制限が欠落しているりやmTLSセキュリティポリシーが誤って設定されている箇所を提案します。
- クラウドテクノロジーのトレーニング。組み込みのLayer5 Academyプラットフォームには、本番クラスタを停止するリスクなしに安全に練習できるインタラクティブな演習が含まれています。
試してみる価値はあるか
Layer5は、多くのサブプロジェクトを持つ実質的なプロジェクトであることが判明しました。一方では、エンティティの数が多いので、学習曲線が急峻に見える可能性があります:Mesheryがどこで終わりKanvasが始まるかを理解する必要があります。他方、Kubernetes上でマイクロサービスを維持することの複雑さで壁にぶつかったチームにとっては、アーキテクチャへの視覚的なアプローチがルーティンワークの一部を排除します。
始める 가장簡単な方法は、ローカルのMinikubeまたはk3sでmesheryctlを使用することです。これにより、スタック内のネットワーク問題の診断を視覚化がどのように簡素化するか 즉시確認できます。
関連プロジェクト