介绍Service Mesh和Google Cloud Service Mesh
微服务是什么?
也许大家已经具备了微服务架构的知识,但我简要总结一下微服务的特点。
-
- ビジネス機能に 沿って複数小さい「マイクロサービス」に分割し、 それらを連携してアプリケーションを構築する
-
- 各サービス、独立したプロセスで動作する
- 各サービス、よく定義されたオープンなインタフェースを備える (REST(JSON/HTTPS), gRPC 等)
微服务的优点
-
- 複数技術で対応可能
-
- 障害耐性・保守性が高い
-
- スケール・冗長化が容易
-
- 開発チームを小さくできる
-
- サービス一つ一つが小さいため把握が容易
- サービスの再利用性が高くなる
微服务的挑战
-
- サービスディスカバリ: サービスや存在関係の発見
-
- セキュリティ: 安全に接続する
-
- トラフィック制御: レートリミットやリトライ設定
-
- 負荷分散:複数サービスインスタンスにルーティング
-
- 可観測性:全体がどように連携しているかわかりにくい
-
- 分散トレース: サービス間、内部動作把握が困難
- 高度なデプロイ:安全に効率よくデプロイする
服务网格(ServiceMesh)是什么?
服务网格是解决微服务面临问题的一种方法。
服务网格的主要功能包括:
-
- サービス認証
-
- 負荷分散
-
- タイムアウト、リトライサーキットブレーカー
-
- コネクションプールサイズ管理
-
- きめ細かいルーティング
-
- テレメトリ
-
- リクエスト追跡
- 意図的なエラー実施
提供服务网格功能的产品有很多,但代表性的软件有Istio、Linkerd、Consul。接下来我将介绍最受欢迎的Istio。
Istio是什么?
“Istio”是一项由IBM、Google、Red Hat等公司致力于推动的倡议,旨在通过服务网格的方式管理跨越云端各种系统的微服务集合。
在Istio中,提供了基于 Envoy 的 Sidecar 组成的数据平面。这些智能代理控制着网格化应用和工作负载内外的所有网络流量。
控制平面使用以下组件来管理配置、策略和遥测。
-
- Mixer – アクセス制御と使用ポリシーを適用します。 Prometheus にプッシュされたプロキシからテレメトリを収集します。
-
- Pilot – プロキシのサービス検出やトラフィック管理のポリシー/構成を提供します。
-
- Citadel – サービス間の mTLS を可能にする ID とセキュリティの機能を提供します。
- Galley – コンポーネントに対する構成の抽象化と提供を行います。
谷歌云的Anthos Service Mesh (ASM)
Anthos Service Mesh(ASM)是Google Cloud针对复杂微服务架构的全托管服务网格。它是为了管理复杂的微服务环境并能够充分享受其所提供的好处而设计的全托管服务网格。通过该平台,能够简化整体服务运营,从流量管理、网格测量到服务间通信的保护,大大减轻运营团队和开发团队的负担。
请稍等,我们计划通过使用Anthos Service Mesh进行演示,介绍微服务的实现和运维。