4

这是一个未经验证的假设,just a dump of my current thought。

大部分小企业的运维就是 ssh 加一些 fabric 脚本就可以搞定了。极端大型的企业,比如 google twitter,比如腾讯 SNG,百度等,都有一套非常完善和复杂的运维平台。我认为,这里存在一个潜在的市场机会,那就是对于那些中型企业(比如机器数量大于100,小于1000),他们的集群规模已经使得手工加脚本管理变得有些痛苦,但是还不足够痛苦到老板愿意花钱雇一个全职的运维开发的团队的地步。如果我们可以把 google 规模的运维平台,让这些中型企业“低成本”的方式接入,收取小于一个全职运维开发团队工资的费用,那么就可以有利可图。

假设一:google式的集群管理平台比中型公司自己拿开源方案攒出来的要好用

一键式发布。全景式仪表盘。各种自动故障替换。
提供强大功能的同时,不带来特别高的管理复杂性(出问题了调试定位困难),也不带来特别高的学习使用成本。
做一个这样的运维平台是不容易的。

假设二:可以低成本的接入

如果接入意味着每一个功能都需要运维写一堆脚本,设置开发要按照集群管理方式进行源代码的改造,那么就不能叫低成本接入。如果监控告警需要按照规矩在代码里埋特定的上报代码,需要配置一堆复杂的参数,那么也不能叫低成本接入。

关键技术一:统一的版本交付方式
运维平台无非就是干这么几件事情,配置文件修改,进程起停,以及监控告警。进程起停最困难的一个步骤是让把进程需要的版本包安装好。在没有 docker 之前,这是一件非常困难的事情。一个进程有无数的依赖包,python/ruby/java 这个级别的,也有操作系统级别的 deb/rpm。docker 使得版本交付变成了集装箱的模式,一个容器把所有的依赖包都包含进去了。进程拉起变成了一个很容易标准化的操作。

关键技术二:动态服务路由托管技术
运维里最困难的就是不同ip之间的服务依赖管理。当一个ip要被下掉的时候,一堆相关联的依赖服务需要更新配置文件。smartstack 是 airbnb 开源的动态路由托管方案,可以让两个ip之间不再紧耦合的绑定在一起。一个ip要下掉,只需要在动态路由里做一下替换就可以了。详情可以看他们的博客:http://nerds.airbnb.com/smartstack-service-discovery-cloud/
如果你认为这种做法是剑走偏锋,只适合小公司那你就错了。google开源的容器管理方案用的是同样的技术:https://github.com/GoogleCloudPlatform/kubernetes/blob/master/docs/ser...
当进程和端口全部托管给运维平台之后,运维平台可以拿这个把整个发布变更的自动化体系都建立起来。

关键技术三:通用监控平台
以 datadog 为代表的新一代监控公司,提供了灵活schema的时间序列采集存储和告警方案。一套监控平台,可以给你的cpu使用率告警,也可以给你的网站的访问量异常下跌告警。无论业务领域如何,通用监控平台提供的多维度,多值列的采集存储方案,可以让你只要把数据报上来就可以把一切监控好。
底层的核心技术是一个 data pipeline,加上一个基于 lucene/elasticsearch 的时间序列数据库。监控是最容易被中型公司外包出去的业务,所以这方面的创业公司也最多。但是中国的国情是网络传输成本大于计算成本,所以如何在客户计算中心内完成采集,计算存储,而不是把源数据都发过来是一个关键问题。

关键技术四:通用异常检测
传统的监控平台需要运维配置各种阈值。理想中的智能数据中心,用户只需要把数据源指定好。剩下的采集,上报存储,异常检测都是自动的。根据各种算法,利用数据的相关性和周期性自动给出异常告警,无需运维再去配置阈值。

总结:
当市场不再被几个巨型巨头占据,一批中型公司崛起的时候,当这些中型公司的架构开始向 micro-service,scale out 的方向发展的时候,当 docker 等技术让“低成本”标准化接入变成可能的时候,这三个条件将迸发出一个运维平台服务(ops platform as a service)的市场。


taowen
4.1k 声望1.4k 粉丝

Go开发者们请加入我们,滴滴出行平台技术部 taowen@didichuxing.com