《藏经阁-微信月活9亿的高效业务运维之道》是2017年GOPS全球运维大会北京站的一次演讲,分享了微信在面对9亿月活跃用户时,如何进行高效、稳定的业务运维。这次演讲涉及了多个关键领域的实践经验和规范,包括弹性伸缩自动化、运营规范、云化管理、容量管理和自动调度。
演讲强调了自动化效率与成本控制的重要性,特别是在弹性伸缩方面。通过自动化工具,微信能够快速响应业务需求变化,确保服务的稳定运行。同时,运营规范的建立是保障运维效率的关键,包括云化管理、容量管理和自动调度。其中,配置文件的标准化和统一管理是提高运维效率的重要环节,确保了在开发、测试和现网环境中的配置一致性。
在名字服务规范上,接入层采用了类似LVS的实现,逻辑层则利用etcd进行逻辑路由配置,而存储层则通过自动化服务伸缩,实现独立于研发的变更发布。数据存储规范明确区分了接入层、逻辑层和存储层的功能,避免了不必要的数据迁移和缓存问题。
运营规范的实施分为多个阶段,初期目标是确保服务的可运维性,通过变更系统拦截和全网扫描来发现并修正不规范的服务。在云化管理方面,由于微服务数量庞大,且存在资源抢占问题,微信选择将部分服务上云。他们选择了对变更影响较小的接入层和逻辑层进行云化,而存储层则保持在物理机上,以控制变更风险。
基于Cgroup的云化策略让物理机得以分片,定制了不同规格的虚拟机,如VC11和VC24,实现了资源的精细化管理。虽然线上并未直接使用Docker,但微信拥有覆盖全网的svrkit框架,提供了一种非侵入式的解决方案,以替代可能影响服务的Docker技术。自研的私有云调度系统借鉴了borg、yarn、k8s和mesos等主流调度系统的优势,能够覆盖大部分微服务。
云化管理的目标是实现服务间的资源隔离,通过服务伸缩的页面化操作,确保部署系统的拦截和核心业务的主动改造。容量管理则依赖于对硬件指标的评估,如CPU使用率、磁盘空间和网络流量,以此预测和规划业务发展的需求。
微信通过严格的运维规范、高效的云化管理和自动化工具,成功地支撑了9亿月活用户的业务需求,为大型互联网企业的运维工作提供了宝贵的实践经验。