云端的云端的SRE发展与实践发展与实践
背景
SRE(Site Reliability Engineering)是Google于2003年提出的概念,将软件研发引入运维工作。现在渐渐已经成为各大互联
网公司技术团队的标配。
美团点评作为综合性多业务的互联网+生活服务平台,覆盖“吃住行游购娱”各个领域,SRE就会面临一些特殊的挑战。
业务量的飞速增长,机器数量剧增,导致人工维护成本增大;而交易额的增长,对SLA的要求也不断提高。与此同时,一些新
业务会面临大流量冲击,资源调度的挑战也随之增大。
业务类型复杂多样、业务模型千差万别,对应的技术方案也多种多样,因此SRE的整体维护成本大大提高。
根据上述挑战,我们需要制定相应的解决策略,策略原则主要聚焦在以下三点:
1.稳定,这也是SRE工作的核心。
2.效率,包括云主机交付效率,也包括我们自己内部的一些系统效率。
3.成本,用最少的机器提供最优质的服务。
在此原则的基础上,我们开始了对SRE进行的一系列改进。
SRE演进之路
手工时代
最早期,我们前端是4层负载均衡,静态资源通过Varnish/Squid缓存,动态请求跑在LAMP架构下。这个时候机器很少,需要
的流程很少,也没有区分应用运维、系统运维之类的。运维人员也很少,网络、机器和服务都要负责。运维的工作大部分都是
靠手工,其实当时还没有成型的运维系统,现在很多初创公司都是这种架构。
云基础设施
随着业务的发展,我们的架构也做出了适当的调整。尤其是在步入移动时代以后,移动的流量比重越来越大。接入层不只是
Web资源,还包含了很多API接口的服务。后端的开发语言也不再局限于PHP,根据服务需求引入了Java、Python、C++等,
整个业务架构开始向微服务化变迁。伴随业务架构的变化,底层的基础架构也随之改变。最大的变化是,2014年中的时候,
所有的业务已经都跑在了云上,如下图所示。
跑在云上的一个好处是把底层主机和网络抽象化,相当于云平台将主机创建、网络策略修改等封装到相应的系统内,对用户提
供统一的平台接口。我们在做维护的时候,就能把之前很复杂的流程串连起来。也是在此时,SRE团队初步成立,我们对整
个运维相关的工作做了拆分。云计算部分(由美团云负责)主要负责主机、网络,还有系统相关的;SRE对接业务侧,负责
机器的环境、业务侧的架构优化以及业务侧相关问题的处理。
问题&解决方案
接下来介绍一下我们在做云基础建设的过程中,遇到的问题和一些解决方案。