热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

不懂公关的运维不是好PM:从自动化运维到私有云平台

在360内部,有基础运维团队、网络运维团队、应用运维团队这三个团队为整个公司的研发、产品、运营来提供服务。基础运维和网络运维团队负责IDC及网络建设、硬件管理等&#x

在360内部,有基础运维团队、网络运维团队、应用运维团队这三个团队为整个公司的研发、产品、运营来提供服务。基础运维和网络运维团队负责IDC及网络建设、硬件管理等,而应用运维团队则负责应用运维和数据库层,几个团队相互协作。在2013年秋季的香港OpenStack峰会上,360的系统工程师张玉放介绍了他们使用OpenStack搭建私有云的经验;但是,仅仅有OpenStack是不足以支持上层复杂的业务场景。

\u0026#xD;\n

孔德亮(@Randy素年锦时)是360 WEB平台部高级技术经理,是360 WEB平台的第一位应用运维工程师,也是今年QCon北京2014大会自动化运维专场的讲师。2013年10月,他写了一篇《运维人员需要有产品观》,介绍他们将运维这个服务产品化的思路和经验。运维产品化的成果是一个叫做HULK的平台,这个平台最初只是想解决自动化运维的问题,现在却演变成了承载公司90%业务线的整体私有云解决方案。

\u0026#xD;\n

HULK为360运维团队的工作带来了哪些不同?又如何对360的研发、产品、运营产生价值?在下面的采访中,孔德亮会介绍这个平台的开发历史、底层的技术组成、以及为团队带来了哪些价值。

\u0026#xD;\n

InfoQ:HULK是什么时候开始做的?产品的完成度如何了?

\u0026#xD;\n
\u0026#xD;\n

孔德亮:2013年初开始几个人利用业务时间尝试,初期主要解决运维自动化问题,下半年以业务为核心,完善中间的关联关系,为开发、运维、DBA等提供整体的解决方案,同时注重交互体验,目前正在逐步整合公司各开发团队的技术产出,沉淀成通用基础服务供平台用户使用。自动化运维只是HULK其中的一部分。

\u0026#xD;\n
\u0026#xD;\n

InfoQ:360的私有云底层用OpenStack搭建,你们团队负责对上提供主机类、Web类、DB类服务。对下你们主要用到了OpenStack的哪些组件?

\u0026#xD;\n
\u0026#xD;\n

孔德亮:主要用到Nova、Horizon、Glance、Keystone。

\u0026#xD;\n

Nova及API:拿Nova做虚拟化的承载,虚拟机用Xen,用OpenStack的对应的Nova的API取出数据,做HULK系统的资源统计和分析。

\u0026#xD;\n

Horizon:就是做虚拟机创建查看功能,后期也准备用API与HULK联动。如果这部分做好,可能依赖Horizon的地方会少一些。

\u0026#xD;\n

Glance和Keystone是对应用层和数据库层不可见的,所以我们基本没有什么交互。

\u0026#xD;\n
\u0026#xD;\n

InfoQ:HULK平台从2013年初开始研发,从最初解决自动化运维为目的,发展到现在的私有云整体解决方案。如果2013年初的时候,OpenStack的Trove(DB)和Heat(运维)等项目已经成熟,你们是否仍然会选择自己研发这套HULK?

\u0026#xD;\n
\u0026#xD;\n

孔德亮:从Heat和Trove的目标来看,的确是一套比较好的应用运维解决方案。但在做云平台最早选型的时候,需要考虑是通用性多一点还是更适合现有公司的业务架构和逻辑。奇虎内部核心文化中有一个概念叫小步快跑,如果冒然就考虑上述不成熟且大而全的东西,一方面是技术风险比较大,另一方面是需要公司整个的上层技术体系有一定的变化,从面向用户的角度,我们也不希望这么做;另一方面国内较大的互联网公司都是自己开发做自己的应用运维和数据库管理系统,并且都做得风生水起,可圈可点,我们有大环境做保证,所以最终选择了自己实现这部分的逻辑,快速试错。

\u0026#xD;\n
\u0026#xD;\n

InfoQ:你们的DB服务是跑在物理机还是虚拟机上?如果是物理机,那么物理机和虚拟机的混合环境你们是通过什么方法统一管理的呢?

\u0026#xD;\n
\u0026#xD;\n

孔德亮:我们对服务器引入了标签的概念,每一台服务器自己都被贴了一堆的标签,标签标注是虚拟机而不是物理机,跑着DB的3306和3307端口,提供着那些服务,配置信息。机器本身会向HULK定期同步自己的标签,基于自身的标签以及我们定义的什么标签该干什么事做一些自动化的操作。

\u0026#xD;\n

同时在HULK上面,我们封装了SaltStack作为命令执行系统的底层,基于HULK的关联关系,统一下发各种命令,执行各类操作。

\u0026#xD;\n
\u0026#xD;\n

InfoQ:HULK提供了代码提交、自动测试、自动部署的服务。对开发团队而言,在HULK上进行这些操作,和没有HULK的时候相比,操作流程上有什么区别?

\u0026#xD;\n
\u0026#xD;\n

孔德亮:传统的操作流程是开发团队写代码提交svn或git,然后采用ssh或者rsync等方式串行的同步到部署的服务器上,有很多问题,比如服务器多了代码上线慢,一个疏忽可能发错代码,另外开发、测试环境与线上环境不一致,无法快速扩容,无法跟踪历史快速回退等等问题。

\u0026#xD;\n

HULK整合了奇虎部分优秀团队的经验,提供了基于这部分的解决方案,比如树形分布式的结构保障跨机房间代码只传输一份,并行发送保障千台的效率在分钟级完成,提供严格一致的线上线下测试环境,回归机,灰度上线,发布历史记录,最终一致性检查及一键回退等等,另外的亮点是我们有一个web化的界面,用户只需要点击几下,即可实现从版本控制工具下拉代码,上传中心分发,提交测试,灰度发布等等工作实现了代码发布、测试,部署的所见即所得。

\u0026#xD;\n
\u0026#xD;\n

InfoQ:在HULK上部署监控、日志收集模块,和没有HULK的时候做监控和日志收集,又有什么区别?

\u0026#xD;\n
\u0026#xD;\n

孔德亮:HULK给监控带来的好处主要是它整合了各类关系,比如系统监控以前你看到的是某个机器磁盘满了,现在你看到的是某个业务下作为引擎服务的某个机器磁盘满了,这样的好处就在于你可以获得更多的信息,将监控分级,对于不重要的业务或者服务,可以根据冗余信息推迟处理或者不处理。

\u0026#xD;\n

日志收集这里我们采用的是puppet+scribe的组合,将一个机房的日志发送到机房中转机然后传给hadoop等作为存储和计算。puppet保障了scribe的配置的强一致性以及确保服务的可用性,scribe作为客户端的日志发送代理,没有HULK的时候,开发团队的日志收集千奇百怪;通过上述成熟的解决方案,规约了用户日志的存储路径,统一的使用方式,也极大的稳定了日志统计的服务。

\u0026#xD;\n
\u0026#xD;\n

InfoQ:你把运维做成了产品经理,把人工服务做成了自助平台。坦白讲,你觉得这跟360重视产品经理的公司氛围有关吗?你如何评价在360内部,研发、运维、产品、运营之间的关系?

\u0026#xD;\n
\u0026#xD;\n

孔德亮:我承认公司的文化、氛围对我有很大的影响,老周也把我和很多产品经理放在一起学习、讨论。我开始想不明白,觉得自己是做技术的,学这些没啥用,现在认为不一定做面向最终用户的产品才是“产品经理”,前台、行政也可以是产品经理,把自己的工作看作产品,给用户创造价值。

\u0026#xD;\n

这话听上去有点虚,结合HULK功能举个例子:我提倡从技术支持升级为技术运营,是想让团队把HULK当作一个真正的产品,拓展思路,去创新,激发大家的潜能给与用户超出预期的体验。不仅仅是响应别人提出的技术需求。比如一个初创项目,从申请资源、软件部署、配置管理、DB实例、负载均衡这是必须有的过程,我们追求极致就把这个过程变成了30秒,可能有很多不成熟,但是抓到了核心点“唯快不破”。

\u0026#xD;\n

HULK也是当做产品在运营,走访用户收集反馈,有专业的前端开发,UI交互设计。我们也有上线的发布会,同时定制了海报,笔记本等小礼品,培养了内部的粉丝一起打造这个平台。我们的宣传语是:“HULK云平台——让产品试错的更快更廉价”。

\u0026#xD;\n

在360内部,为了一个产品的成功,研发、运维、产品、运营都是为这个产品服务的,做好了大伙分蛋糕,做不好都倒霉,目标一致。

\u0026#xD;\n

感谢孔德亮对本文的审校。

\u0026#xD;\n

给InfoQ中文站投稿或者参与内容翻译工作,请邮件至editors@cn.infoq.com。也欢迎大家通过新浪微博(@InfoQ)或者腾讯微博(@InfoQ)关注我们,并与我们的编辑和其他读者朋友交流。


推荐阅读
  • 云原生应用最佳开发实践之十二原则(12factor)
    目录简介一、基准代码二、依赖三、配置四、后端配置五、构建、发布、运行六、进程七、端口绑定八、并发九、易处理十、开发与线上环境等价十一、日志十二、进程管理当 ... [详细]
  • 本文介绍了Web学习历程记录中关于Tomcat的基本概念和配置。首先解释了Web静态Web资源和动态Web资源的概念,以及C/S架构和B/S架构的区别。然后介绍了常见的Web服务器,包括Weblogic、WebSphere和Tomcat。接着详细讲解了Tomcat的虚拟主机、web应用和虚拟路径映射的概念和配置过程。最后简要介绍了http协议的作用。本文内容详实,适合初学者了解Tomcat的基础知识。 ... [详细]
  • Oracle优化新常态的五大禁止及其性能隐患
    本文介绍了Oracle优化新常态中的五大禁止措施,包括禁止外键、禁止视图、禁止触发器、禁止存储过程和禁止JOB,并分析了这些禁止措施可能带来的性能隐患。文章还讨论了这些禁止措施在C/S架构和B/S架构中的不同应用情况,并提出了解决方案。 ... [详细]
  • Centos下安装memcached+memcached教程
    本文介绍了在Centos下安装memcached和使用memcached的教程,详细解释了memcached的工作原理,包括缓存数据和对象、减少数据库读取次数、提高网站速度等。同时,还对memcached的快速和高效率进行了解释,与传统的文件型数据库相比,memcached作为一个内存型数据库,具有更高的读取速度。 ... [详细]
  • Sleuth+zipkin链路追踪SpringCloud微服务的解决方案
    在庞大的微服务群中,随着业务扩展,微服务个数增多,系统调用链路复杂化。Sleuth+zipkin是解决SpringCloud微服务定位和追踪的方案。通过TraceId将不同服务调用的日志串联起来,实现请求链路跟踪。通过Feign调用和Request传递TraceId,将整个调用链路的服务日志归组合并,提供定位和追踪的功能。 ... [详细]
  • ElasticSerach初探第一篇认识ES+环境搭建+简单MySQL数据同步+SpringBoot整合ES
    一、认识ElasticSearch是一个基于Lucene的开源搜索引擎,通过简单的RESTfulAPI来隐藏Lucene的复杂性。全文搜索,分析系统&# ... [详细]
  • 本文介绍了Redis的基础数据结构string的应用场景,并以面试的形式进行问答讲解,帮助读者更好地理解和应用Redis。同时,描述了一位面试者的心理状态和面试官的行为。 ... [详细]
  • 图解redis的持久化存储机制RDB和AOF的原理和优缺点
    本文通过图解的方式介绍了redis的持久化存储机制RDB和AOF的原理和优缺点。RDB是将redis内存中的数据保存为快照文件,恢复速度较快但不支持拉链式快照。AOF是将操作日志保存到磁盘,实时存储数据但恢复速度较慢。文章详细分析了两种机制的优缺点,帮助读者更好地理解redis的持久化存储策略。 ... [详细]
  • 在重复造轮子的情况下用ProxyServlet反向代理来减少工作量
    像不少公司内部不同团队都会自己研发自己工具产品,当各个产品逐渐成熟,到达了一定的发展瓶颈,同时每个产品都有着自己的入口,用户 ... [详细]
  • 如何在服务器主机上实现文件共享的方法和工具
    本文介绍了在服务器主机上实现文件共享的方法和工具,包括Linux主机和Windows主机的文件传输方式,Web运维和FTP/SFTP客户端运维两种方式,以及使用WinSCP工具将文件上传至Linux云服务器的操作方法。此外,还介绍了在迁移过程中需要安装迁移Agent并输入目的端服务器所在华为云的AK/SK,以及主机迁移服务会收集的源端服务器信息。 ... [详细]
  • 本文介绍了在使用Python中的aiohttp模块模拟服务器时出现的连接失败问题,并提供了相应的解决方法。文章中详细说明了出错的代码以及相关的软件版本和环境信息,同时也提到了相关的警告信息和函数的替代方案。通过阅读本文,读者可以了解到如何解决Python连接服务器失败的问题,并对aiohttp模块有更深入的了解。 ... [详细]
  • Elasticsearch1Elasticsearch入门1.1Elasticsearch术语1.1.16.0以前的Elasticsearch术语1.1.26.0以后的Elasti ... [详细]
  • 本文介绍了OpenStack的逻辑概念以及其构成简介,包括了软件开源项目、基础设施资源管理平台、三大核心组件等内容。同时还介绍了Horizon(UI模块)等相关信息。 ... [详细]
  • 解决Sharepoint 2013运行状况分析出现的“一个或多个服务器未响应”问题的方法
    本文介绍了解决Sharepoint 2013运行状况分析中出现的“一个或多个服务器未响应”问题的方法。对于有高要求的客户来说,系统检测问题的存在是不可接受的。文章详细描述了解决该问题的步骤,包括删除服务器、处理分布式缓存留下的记录以及使用代码等方法。同时还提供了相关关键词和错误提示信息,以帮助读者更好地理解和解决该问题。 ... [详细]
  • ejava,刘聪dejava
    本文目录一览:1、什么是Java?2、java ... [详细]
author-avatar
拍友2502904975
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有