ServiceMesh在有赞的实践与发展有赞·基础保障-王健初期架构Monolith单体服务化拆分Java模板渲染业务编排接⼝口转发业务逻辑服务接⼝口业务前台业务中台etcd架构困境Java跨语⾔言RPC调⽤用的问题如何调⽤用?�5IDL⽣生成桩代码‣Thrift‣ProtocolBuffer▸默认hessian序列列化,不不需要写IDL▸Java⽣生态,跨语⾔言不不友好开源⽅方案?�6etcd2服务发现1服务注册3⻓长连接dubbo数据包透传负载均衡服务路路由▸前端开发感知Java类型系统,每个参数需要注明对应的后端类型▸Node框架⽀支持协议解析、服务发现、监控等▸新的语⾔言?Python、C#?Next?�7服务发现(Servicediscovery)⽇日志(Logging)调⽤用链(Tracing)监控(Metrics)ServiceMesh架构�8Tether1服务注册2服务发现3服务调⽤用HTTP+Json4⻓长连接建⽴立dubbo数据包透传负载均衡服务路路由dubbo编解码etcd泛化调⽤用⾃自研Sidecar:Tether协议转换:HTTP+Json=>dubbo+hessian监控、⽇日志、调⽤用链集成…Tether�9▸隐藏微服务框架的复杂度▸丰富的微服务特性⽀支持▸完善的⾃自身监控数据▸热更更新,提供快速升级的能⼒力力What’sNext?Istio�10安全(Security)权限控制(Authorizationpolicies)遥感(Telemetry)流量量控制(TrafficManagement)Istio的流量量控制�11局限性‣控制HTTP请求‣容器器化+Kubernetes部署RDS接⼝口适配PathHeaderBodyetcd服务注册实例例增加Label信息RDS接⼝口适配�13DataPlane/SidecarControlPlane/Pilot产品化灰度控制系统▸提供线上⼩小范围验证新版本、功能的⼿手段▸减少因发布导致的故障▸增强发布应⽤用的信⼼心▸提升应⽤用的迭代速度▸减少乃⾄至消除深夜发布灰度控制系统�15userclientNginxnodejstethernodejs’tetherDubboServiceADubboServiceA’DubboServiceBDubboServiceB’pilotopshttpPullrouterulePushrouterulePushrouteruleRPCRPCRPCRPCk8s(CRD)
Saverouterulehttphttphttphttp(RDS)有赞OutlookServiceMesh电商云·业务背景有赞⾯面临难题庞⼤大的商家数量量显著的⾏行行业特征创新的商业模式分布⼴广泛的经营⽹网络快速策略略调整和试错经营全链路路整套⽅方案有限的开发资源封闭的技术体系标准化通⽤用产品套件有限的商业实践电商云▸提供基础运⾏行行环境▸微服务架构▸客户隔离▸服务治理理▸监控、⽇日志、调⽤用链多语⾔言⽀支持?Tether协议?▸多语⾔言⽀支持▸便便于解析的Tags▸异步⽀支持与⾼高性能▸⽅方便便的兼容与适配▸...