注册 / 登录

微博Service Mesh大规模实践 - Weibo Mesh

分会场:  爆款架构/数据平台/工程实践

 

案例来源 :

案例讲师

丁振凯

微博 搜索架构师

丁振凯 微博搜索架构师。曾先后就职于360,艺龙等公司。目前主要负责微博搜索泛前端架构工作,主导热搜体系峰值流量应对及稳定性解决方案,以及微服务方案的落地。在Web系统架构方面拥有比较丰富的实践和积累,倡导DevOps和Service Mesh。去年十一鹿晗关晓彤事件中一不小心成为网红工程师,并成功登上自家热搜榜。

扫描二维码分享案例

 

案例简述

 

WeiboMesh源自于微博内部对异构体系服务化的强烈需求,同时像大多服务一样,都有历史包袱,现有服务如何高效平滑完成跨语言服务目标是我们迫切解决的问题,我们没有把历史作为包袱,而是巧妙的结合自身实际情况完成了对Service Mesh规范的实现,相信同样也适合你。目前WeiboMesh在公司内部已经大规模落地,并且已经开源,WeiboMesh是非常接地气的Service Mesh实现。本次分享主要介绍微博在跨语言服务化面临的问题及WeiboMesh方案介绍,并结合业务实例分析WeiboMesh的独到之处。

 

案例目标

 

1)微博流量逐年升高,热点事件,重大节日带来又快又猛的流量对我们的业务产生了巨大挑战


2)微博体系多种开发语言并存,以java/php为主,其他包括go/c/python/openresty等。为业务带来高效开发迭代的同时也为服务间基础设施的开发提出了挑战,其中java技术栈服务治理体系较完善


3)微博架构目前是业务方调用平台资源来获取微博数据,平台已经进行微服务拆分,但是各大业务方在进行服务化拆分时候要到了和平台一样的问题,需要重复做服务治理,服务交互。并且是不同语言的,那这样就导致机器/人力等资源浪费,也并不适合未来跨部门之间的服务互通


4)微博平台开源motan服务化框架,积累了很多优秀服务治理的经验,并且经历过各种大流量考验,稳定性毋庸置疑,在此背景下我们未来的发展要继承motan的优秀经验和思想才行


5)微服务是发展趋势,我们迫切需要多语言之间服务交互更加稳定,性能更高,并且通用解决方案的解决方案

 

成功(或教训)要点

 

抽象一层基础设施层来专门解决跨语言服务化问题,也就是Service Mesh思路
1)Weibo Mesh的整体设计架构
2)轻量级client+agent
3)agent模块说明,微博特有服务治理机制介绍
4)传输协议
5)配置管理
6)跨语言正反向代理实践,迁移成本
7)控制层面介绍

 

案例ROI分析

 

成功完成跨语言服务化,跨语言服务治理。不进如此,没有4,7层层层转发的消耗,以及更加合理的服务治理,使调用端和服务端性能基本接近,业务整体性能提升20-40%,长尾现象也得到极大改善,有效保证了峰值应对能力。

 

案例启示

 

1)Service Mesh(Weibo Mesh)思路完成了服务间交互治理逻辑和业务逻辑的解藕,提供了微服务新思路,通过抽象独立的基础设施层不仅解放了业务开发的耦合问题,也有效解决跨语言服务化问题,甚至结合k8s等云原生架构能产生更大的价值


2)充分考虑业务现状,根据现有业务形态及DEVOPS能力做微服务改造


3)WeiboMesh也能为资源服务化提供基础依据,agent后面不用关心是资源还是http服务

 

案例在团队中的意义

 

ServiceMesh最接地气实践,WeiboMesh解决了微博跨语言服务化问题。同样为受此困惑的业界同行提供了微服务实践新姿势。无论你的服务正在进行微服务拆分,还是即将进行ServiceMesh,都可以试试WeiboMesh方案。

 

领取大会PPT

我要参会

大会全套演讲PPT

立即领取

大会即将开幕,点击抢票!

我要参会