ServiceMesh在华为公有云的实践⽥田晓亮华为架构师⽥田晓亮华为架构师8年软件⾏行业经验,曾就职于三星,2012年进⼊入云计算领域,对PaaS,DevOps,APM有深⼊入的研究和实践经验。⽅方案⽀支撑近千台VM中应⽤用部署管理监控2016年加⼊入华为担任架构师,负责微服务的Go语⾔言开发框架及ServiceMesh设计和落地,Go语⾔言微服务框架被华为5G核⼼心⺴⽹网络采⽤用,ServiceMesh服务商⽤用上线公有云•简介•实现⼀一个ServiceMesh•使⽤用ServiceMesh快速构建微服务•⽣生态与扩展•ServiceMesh在华为内部的技术演进我们在构建微服务,⽽而构建微服务是困难的微服务架构模式引⼊入的问题路由规则•引流•⽀支持权重•根据消费者信息或请求特征进⾏行引流Consumer0.2Provider1.2Provider1.380%20%Consumer0.1Provider1.2Provider1.3cookie:version=0.1cookie:version=0.2Consumer0.2Chassis语⾔言开发框架Go-microGo-kit还有其他解题思路么?•多语⾔言SDK⽀支持•学习曲线•绑定特定技术栈,不容易切换⽅方案•⽼老旧单体应⽤用抽象L7SpringMVC,VertX,beegoL6Json,Protobuf,XMLL5Http1/2,grpcL4TCPL3-1IP/Datalink/PhysicalChassis这⾥里呢?ServiceMesh•⼀一种基础设施层,服务间的通信通过ServiceMesh进⾏行•可靠地传输复杂⺴⽹网络拓扑中服务的请求,将服务变成现代的云原⽣生服务•⼀一种⺴⽹网络代理的实现,通常与业务服务部署在⼀一起,业务服务不感知•⼀一种TCP/IP之上的⺴⽹网络模型ApplicationServiceMeshTransportNetworkPhysicalApplicationTransportNetworkPhysical为什么使⽤用ServiceMesh•⽆无需多种语⾔言的微服务框架开发•对业务代码0侵⼊入•不适合改造的单体应⽤用•开发出开的应⽤用既是云原⽣生的⼜又具有独⽴立性没有银弹•新的故障点•⼀一定程度的性能降低•侵⼊入式框架有更强的定制和扩展能⼒力•部署复杂性•简介•实现⼀一个ServiceMesh•使⽤用ServiceMesh快速构建微服务•⽣生态与扩展•ServiceMesh在华为内部的技术演进第⼀一代:基于Nginx的微服务代理•2013年,微服务开发平台中的组件,公司内部某电信业务•400多个微服务,800左右实例,200多个数据中⼼心Sidecar模式•基于容器的分布式系统设计模式•容器可以共享存储与⺴⽹网络的能⼒力应⽤用程序容器⽇日志同步⼯工具容器存储卷Sidecar优势•以容器作为基础打包单元,可以分给不同的团队进⾏行开发测试•可重⽤用•以容器作为错误边界,使服务能够正确推出...