1、微博ServiceMesh规模实践WeiboM内容提要 微博服务化挑战 服务化新思路 WeiboMesh案介绍 产实践 总结微博服务化挑战热点事件事发突然短时间内流量暴涨极易引发雪崩效应服务如何隔离拆分?扩容?降级?运现状感知如何评价服务可性?服务治理平直接影响到服务可性服务调链业务体系Golang 服务PHP 服务OR服务4,7层调度RestFul API业务部语种类繁多API AAPI B 微服务体系建设不完善/重复络抖动,dns不稳定MotanRPC ARPC B 4,7层冗调链及资源消耗平台体系Motan服务治理动态路由OpenDCPscaleVintage注册中OpenDCPSubs
2、cribeRegistermetricVintageMotanGraphite智能弹性调度Graphite实时统计监控完善的DevOps撑平台内部微服务体系建设较完善趋势微服务容器化DevOps持续交付云原态微服务是云原态重要的个技术段微博服务化新思路 跨语服务治理跨语的尝试Server(php/java/.)grpc/yar/motan 语特性Register 历史积累 业务侵较,client太重 性能RegistrySubscribe 扩展性差Notify 推困难golang/php/java相同的治理功能,不同语的服务都要做遍?降级可策略04灰度发布03熔断限流02 Metric Tra
3、ce05动态路由0106注册发现跨语服务化本质服务治理全/灵活可扩展数据交互协议中/跨语跨语服务化式对Http代理RPC模块Agent代理研发成本维护成本使成本治理功能扩展能低低低中低低中中中中ServiceMeshService AService BService C微服务WeiboMesh案介绍containercontainerServiceServiceABClientClientWeibo MeshWeibo MeshRegistry功能强化SM功能MeshLight Client适配不同语Go并发 服务交互 服务发现 跨语序列化 批量请求资源服务化服务路由 服务治理 业务平滑迁移W
4、eiboMesh数据(集群管理)ClusterHALB(可策略)(负载均衡)(服务节点的抽象)EndpointProtocol(Motan2/传输协议+Simple/序列化协议)Cluster模块requestClientServerEndpointFilter ChainWM/ClientWM/ServerSerializeTransportEndpointFilterChainHighLoadAvailable BalanceEndpoint调节点Cluster标节点微博Service Mesh实践 - WeiboMesh可策略1HABackup RequestFailover可策略2LB
5、WeightRoundrobinRandom节点抽象filter channels serialize callKeep AliveWeiboMeshEndpointWeibo Mesh调节点标节点Motan2 传输协议Header消息类型协议版本 序列化协议(body)Metadata服务名法名系统参数及户参数BodyresponserequestSimple 序列化type(1byte)+size(4byte)+content($size byte)基础类型组合类型协议转换过程clientservermotan2/simplehttp/cgi/pointerproviderWMWMmota
6、n2/simple调节点标节点WeiboMesh控制策略扩展:Filter Chain 流量调度:MCS(Mesh Command System)插件化ReqResAccess LogMetricCircuitBreakerSwitcherTracingFilter ChainMockActiveLimitEndpoint流量调度决策系统管理系统VintageCommandDC1ServersDC1ClientsDC2Servers产实践Mesh适场景迁移成本的考量业务Mesh实践典型场景API GateWay服务边缘服务间通信跨语controlplane可观测性要求微服务微服务微服务体系WM
7、WM关,微服务和WeiboMesh迁移成本的考量 业务部署模式?云,混合云,云原?适配注册中 适配client故障转移 mesh DevOps正向Meshphp/OR/javaClientdegradeserializeEndpointsnapshotmotan2RegistryFilterDiscoverHA+LBEndpointClusterregisterRegistermotan2WeiboMeshWeiboMesh反向MeshNGINXHTTPcgiRestfulPHP-FPMcgihttpproviderhandlerWeiboMeshfilterWeiboMeshdiscover
8、registerRegistry反向Mesh特提供HTTP/cgi provider,可定制扩展HTTP框架动转RPC,业务需开发新RPC框架mesh对server端侵5总结治理模式的差异ClientServerClientServerWeiboMeshWeiboMesh服务调服务治理服务调/治理服务调/治理传统服务WeiboMeshWeiboMesh优势抽象治理/交互基础层(L5) 跨语服务化 业务逻辑解藕 可持续交付 可观察性 业务迁移成本极低,web动转rpc,可定制适合云,混合云,适配Registry持云原实战效果20%40%SLA99915%50平均耗时%Mesh VS HTTPBa
9、ckup Request 效果图WeiboMesh集群 WMWMWM 热微博 主站微博Feed 平台svA WM 平台svB WM 平台 WM svC 搜索svA WM 搜索svB WM 搜索svCWM 和Istio的区别-结构MixerPilotCitadelFiltersRegistryTransportcontrol planedata planeEnvoyWeibo MeshIstio和Istio的区别-发现云 VS 云WMRegisterWMEnvoyEnvoyRegisterEnvoy APIPilotAdapterConsul、ZK、VintageK8s、Mesos、EurekaIstio:Pilot适配云平台WM:注册中和Istio的区别-感知服务透明 VS 模块耦合 云原 耦合度可选定制化开发流量拦截 IPtables 服务感知Istio:对服务透明WM:模块化耦合WM进中智能调度MCRedisMySQLMCQWM资源服务化WMWMWM未来发展向流量拦截结合容器编排进优势互补更泛的语持云原易性整合进L5层更的部署迁移成本更的性能