《海量服务之道》里的《灰度发布》和《全方位监控》这两门课想必技术同事都已经学习过了。我觉得这两个方法论是非常具有行业特色的,也是非常具有腾讯特色的。
笔者在加入腾讯QQ后台团队之前,曾经在电信行业、金融行业做过几年开发工作。刚进入腾讯时,觉得技术上很多地方让人耳目一新:
后台系统都是部署在非常多的廉价服务器上,每个人都会管理非常多的机器,让人觉得很有成就感很富有
有比较精确的设备预算计算模型,每个服务器的性能在考虑容灾冗余的前提下,通常被压榨到刚刚好,负责人会深入的洞悉整个系统的性能、容灾、柔性等方方面面。能负责一个海量的系统是很荣耀的一件事情
没有专职的测试人员,经过开发者自测后,灰度发布加详细的监控,主要的系统几乎每两周都会被发布一轮,作为后台技术人员,自己的工作直接影响数以亿计的用户,有点手握核弹处于上帝视角的感觉
监控系统(我们内部一个叫monitor的系统)真的是太方便了,一条条曲线直观的展示整个系统运作的各种指标,如果有异常短信和电话就会响起来,让人觉得一切尽在掌控,有一种面对着大量仪表盘操控着航母游弋或者是战斗机挂着核弹翱翔的感觉。
好了,赶紧结束程序员意淫的美好感觉,我想说的重点是:灰度发布和监控真的是互联网海量服务必备的两大利器,能够极大的提高后台服务可用性和运营水平。
当然,灰度发布不只是一部分一部分的发布新代码,监控也不只是绘制曲线和告警短信那么简单,这里面深究下去会有很多东西,背后的哲学是持续交付、用户测试和尽在掌控。
毫秒服务引擎(msec, 取英文名Mass Service Engine in Cluster的首字母组合)是腾讯一个开源框架,其创作冲动和构建经验,来自QQ后台团队超过10年的运营思考。灰度发布能监控是毫秒服务引擎设计的重要考量点。
毫秒引擎里是怎么做的? 灰度发布在服务配置管理页点击“制定发布计划”
选择这一次灰度要发布的目标机器和发布类型:
在接下来的向导中选择正确版本的配置文件、外部库、业务插件等,这样就完成了发布计划的制作:
接着,点击菜单 “运维->发布”,可以查询所有发布计划,对于已经发布的计划,可以做回滚操作。点击详情可以查看发布计划更详细信息,并执行发布:
关于监控,在第二篇:RPC和路由管理那里讲得已经比较详细了,这里不赘述,只说明一下:除了RPC和框架本身自动上报的一些信息,还支持业务自定义上报信息(例如我想上报第28级VIP用户登录的次数),且支持对于关键指标的波动、最大值、最小值设置告警:
灰度发布和监控是互联网海量服务必备的两大利器,能够极大的提高后台服务可用性和运营水平,背后的哲学是持续交付、用户测试和尽在掌控。借助毫秒服务引擎,初创团队可以快速获得这两大利器。详细的可见腾讯云服务市场、毫秒服务引擎官网,或者微信公众号:msec-engine