雷诺阅读
扫描关注天津网站建设微信公众账号

扫一扫关注微信

六个人如何运维一万台服务器?

雷诺网络2018-01-18 15:25:53雷诺干货

注:今天给大家分享的主题是“去哪儿网应用运维自动化演进之路”。自动化构建过程中所遇到的障碍以及我们是怎么样跨越这些障碍,我们遇到了哪些坑,以及怎么填平这些坑的过程。

我 2013 年加入去哪儿网,一直在从事运维开发工作。去哪儿网运维开发有一个特点,所有开发既当 PM,又当 QA,也没有区分前端工作还是后端工作,用现在比较流行的话说,我们都是全栈工程师。

加入去哪儿这几年,我做的工作也是比较零碎的,哪里有需求就去哪里。

概括起来主要涉及主机管理、应用管理、监控、报警平台等设计,开发和运维这几方面的工作。

下面简单介绍一下我们的运维团队:

  • 我们的运维团队负责公司所有的服务器、网络等硬件平台的运维工作。

  • 部分人员从事日常运维,包括 QVS 的部署,Nginx 的配置,应用上线的支持,存储的部署等,还包括报警的告知、故障的通报和跟踪。

  • 2013 年左右,我们开始研发自己的运维平台。

  • 负责公司内网的应用,这些内网包括 OA 系统、HR 系统,还有 IT 资产管理平台等等。

——————————

去哪儿网应用运维平台介绍

——————————

首先简单介绍一下去哪儿网应用运维平台。

我们知道一个应用从开发到线上运行,它的生命周期主要涉及到四个部分:

  • 应用的资源管理,这些资源包括应用部署需要的主机、应用的图片、文件,对象存储所需要的存储资源,应用通信和其他的网络带宽,还有应用所需要的计算资源等等。

  • 为了提高应用开发的效率,并且保证应用开发的规范,我们公司会提供公共的中间件,这些中间件包括日志收集、应用配置注册、监控报警指标的收集,还有应用调用路径。

  • 为了将我们的应用发布到线上,我们需要对应用进行代码管理和构建测试到发布到线上,这需要 CI/CD 持续发布和持续集成。

  • 当一个应用发布到线上之后,我们需要对这个应用的性能指标和业务指标进行监控、报警和分析,这样就需要应用相关的监控、报警和日志分析平台。

去哪儿网的业务也是一步步发展起来的,机器从几十台到上万台,在发展的过程中我们遇到了很多问题,在不同的阶段我们也提出了不同的解决方案。

去哪儿网经历的阶段分为四个部分:

1、运维机器数量比较少,大部分的工作都是应急运维。比如我们发现一个应用有问题了,我们登录到这个应用的相关机器上,手动执行 Linux 命令,去查看这个机器的资源使用情况。

比如 CPU 是不是太高了,是不是磁盘占满了,这个阶段也没有用到太复杂的脚本,基本上都是手动操作,几十台左右。

2、随着规模扩大,手动写了很多脚本,有了这些脚本之后我们就可以批量去执行任务,可以在多台机器上批量部署应用和监控。

这个阶段,我们称为脚本运维的阶段,即利用脚本并且结合开源的系统,完成对数百台机器的运维。

3、随着规模越来越大,脚本运维不够用了,远远不能满足需求。脚本可能都是分类的脚本,并没有经过合理的编排,这样脚本的执行顺序就比较重要,没有合理编排可能会导致一些问题。

我们开发一些相关的系统,用系统把相关的脚本串联起来,编排好组成一个一个分离的操作。比如说一台机器的新建和删除就是单独的操作,把这些做成系统,运维人员可以在界面上操作。

这个阶段,我们称之为分立系统,数据基本上在各个系统之间没有实现一个比较好的共享。这个阶段能运维的主机数量也比较有限,数千台的主机是比较好的。

4、紧接着去哪儿网的机器规模突破了万台以上,这时候我们考虑能不能从一个比较高的角度去合理设计一下运维平台。

为我们的运维工作提供一站式的服务,在一站式服务的基础上我们实现数据互通,这样就可以交互起来,做一些自动化的工作。这个时期也是今天我们主要要讲的内容,即运维平台的建设。

文章关键词