其他
服务网格的最佳实践
迁移应用到服务网格中
服务网格
微服务治理与业务逻辑的解耦。服务网格把 SDK 中的大部分能力从应用中剥离出来,拆解为独立进程,以 Sidecar 的模式进行部署,服务网格通过将服务通信及相关管控功能从业务程序中分离并下沉到基础设施层,使其和业务系统完全解耦,使开发人员更加专注于业务本身。
异构语言/框架的统一治理。随着新技术的发展和人员更替,在同一家公司中往往会出现不同语言、不同框架的应用和服务,为了能够统一管控这些服务,以往的做法是为每种语言、每种框架都开发一套完整的 SDK,维护成本非常之高,而且给公司的中间件团队带来了很大的挑战,有了服务网格之后,通过将主体的服务治理能力下沉到基础设施,多语言的支持就轻松很多了。
服务网格不但可以承担流量代理,对于业务共用的、通用的场景和需求都可以成为服务网格的一部分,这样能有效提高业务开发效率。
应用接入服务网格
异构微服务的互通、治理
服务发现
apiVersion: apps/v1
kind: Deployment
metadata:
name: details-v1
labels:
app: details
version: v1
spec:
replicas: 1
selector:
matchLabels:
app: details
version: v1
template:
metadata:
labels:
app: details
version: v1
spec:
containers:
- name: details
image: docker.io/istio/examples-bookinfo-details-v1:1.16.2
imagePullPolicy: IfNotPresent
ports:
- containerPort: 9080
apiVersion: v1
kind: Service
metadata:
name: details
labels:
app: details
service: details
spec:
ports:
- port: 9080
name: http
selector:
app: details
MSE 注册中心
服务网格的服务治理
apiVersion: networking.istio.io/v1alpha3
kind: DestinationRule
metadata:
name: reviews
spec:
host: reviews
subsets:
- name: v1
labels:
version: v1
- name: v2
labels:
version: v2
- name: v3
labels:
version: v3
---
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
name: reviews
spec:
hosts:
- reviews
http:
- route:
- destination:
host: reviews
subset: v1
双模微服务治理
{
"RegisterConfig":Object{...},
"protocol":"springcloud",
"rule_type":"fault_inject",
"rule":{
"hosts":Array[1],
"rule_policy":[
{
"match":Array[1],
"fault":Object{...},
"route":Array[1],
"Timeout":"10s",
"retries":Object{...},
"mirror":Object{...},
"mirror_percent":100,
"headers":Object{...},
"tls":Object{...}
},
{
"route":[
{
"destination":Object{...},
"weight":"100",
"headers":Object{...}
}
]
}
]
}
}
可观测
社区开源方案
阿里云 EDAS 方案
﹀
﹀
﹀