解读 2015 之运维篇:变化、发展、涨姿势

阅读数:3299 2016 年 1 月 22 日

话题:DevOps语言 & 开发架构文化 & 方法运维

编者按

2015 年,整个 IT 技术领域发生了许多深刻而又复杂的变化,InfoQ 策划了“解读 2015”年终技术盘点系列文章,希望能够给读者清晰地梳理出技术领域在这一年的发展变化,回顾过去,继续前行。

本文为“解读 2015 之运维篇”。2015 年虽不是运维发展最快的一年,却是运维变化最大的一年。前一年大家普遍认为云计算是运维的救命稻草,而 2015 年的多次“灾难”让人警醒。越来越多的企业开始对运维更加重视了,大力提倡自动化运维,围绕 “自动化运维”相关的探讨也越来越频繁,在一次又一次的思想碰撞中擦出火花,并实施落地。与此同时,无论是使用开源软件的数量还是采用开源软件的企业都在持续增长。许多公司对自己的一些软件进行了开源,其中包括 Google、Facebook、微软和 IBM 等。企业用户以前所未有的速度拥抱开源,很多优秀人才也投身其中,开源不再可有可无。除此之外,运维基础系统的更新迭代也不容小觑。还有哪些涨姿势?我们一起来盘点。

运维的多事之秋

[2015.5.27] 支付宝因杭州机房网络光纤被挖,导致数小时部分用户业务不可用

[2015.5.28] 携程网瘫痪事件,全网业务中断 12 小时

[2015.6.1]UPYUN 连续遭遇两次大规模流量攻击,影响业务 6 小时

[2015.6.6]QingCloud 因雷暴引起的广东 1 区 IDC 电力故障,业务中断 2 小时

[2015.6.6]LeanCloud 多项服务发生中断,持续 4 小时

[2015.6.15] 知乎机房故障,影响系统使用近 2 小时

[2015.6.21] 阿里云香港节点宕机,业务中断 13 小时

[2015.6.19] 开源中国 Git@OSC 连续遭受 DDoS 攻击

[2015.09.01] 阿里云升级云盾引入 BUG,导致误删用户文件

[2015.09.22] 七牛云存储服务故障,业务中断 83 分钟

……

通过这些不完全统计,可以看出云故障是比较多的,在出现故障后,虽然公司会有财务及形象上的损失,但是心态一定要好,不能手忙脚乱。沉着应对,高效处理,快速恢复才是运维人员的“正确姿势”。2015 年,我们从这些故障中不断地总结,在技术提升的同时,更应该转变的是观念,正视容灾备份的重要性,将风险降到最低。伴随着基础设施的逐步完善,未来这些层面都不再是问题,再者也可以利用工具的优势来解决高用性架构。

运维工具组合的进化

随着云计算和开源的高速发展,大量应用需要横跨不同网络终端,并广泛接入第三方服务,IT 系统架构越来越复杂。快速迭代的产品需求和良好的用户体验,需要运维管理者时刻保障核心业务稳定可用,企业运维中的痛点和难点也急需解决。以下运维工具在这一年更加火爆,为企业业务提供强有力支撑:

  • 命令执行与配置管理

    • Ansible
    • SaltStack
    • Puppet
  • 持续交付与代码

    • Jenkins
    • 国内 Coding.net, GitCafe,Git@OSC 的兴起
    • GitLab 的进步与稳定
  • ELK 生态的成熟

    • 提供日志收集,分析,和实时搜索,与可视化监控
    • 最近发布 2.0 大版本
  • 应用监控
    • APM
  • 国内开源
    • open-falcon

一套好的运维工具,能够将应用、网络、计算、存储、虚拟化等资源的性能及告警信息综合分析(可视化),通过简洁易懂的界面,直观呈现业务健康水平。当出现故障时,能够先从全部业务的宏观视角,确定关联和影响,再通过智能钻取和故障定位技术,缩小故障定位范围是在计算、应用还是网络,从而明确问题职责,帮助运维和研发准人员确定位业务故障位置。国内的运维人员所需要做的就是利用 Django 结合开源工具,开发出适合自己业务系统的平台,通过一定的流程控制,将业务紧密贴合,从而逐步达到自动化运维的目的。

运维基础系统的进化

企业最重要的是业务系统,所有的工作都是围绕正常开展业务而展开的。而 Linux 系统更是技术人员最基本的基石。今年 4 月份 Linux4.0 发布,这是一个新的里程碑,更新“live patching”(实时补丁) 机制,意味着以后为内核打补丁不用重启系统了,增强了系统的高可用性。

随着容器技术的兴起,许多新的专门运行容器的 Linux 发行版本也出现了。光版本就迭代了 9 个,火得不要不要的。这应该是其它开源软件所无法超越的,同时也整合了工具集合:Toolbox,为部署提供便利。不过这也使得原本为 Docker 做出巨大贡献的 CoreOS 与 Docker 分道扬镳,并独立发布了 Rocket(rkt),认为 Docker 已经忘记初心,从而独立出来做一个更纯净的容器。Rocket 没有像 Docker 那些为企业用户提供的“友好功能”,比如云服务加速工具、集群系统等。反过来说,Rocket 想做的,是一个更纯粹的业界标准。

运维脚本语言的进化

提到脚本语言,今年最火的非 Python 莫属,同时也是 Python 社区稳定改善的一年。这一年 Python2 由 2.7.9 进化到 2.7.11,然而 2.7 版本可以说是非常稳定成熟,用 Python 之父 Guido 的话说:“是想不到任何可以加入的新特性,因此不会发布 2.8 版本”。同时大量重要开源库通过 six 兼容包来同时支持 Python2 和 3,这让开发者转型 Python3 变得不再那么遥不可及。Python3 在 9 月份横空出世了 3.5 版本,正式宣告 Python 成为一个从语法上原生支持协程的语言,这一特性也吸引着越来越多的开发者迁移到 3.5,越来越多的开源库迁移到 Python,这个方向的改变是非常明显的。

除了 Python 外,Django 无疑也是一匹黑马,运维本来跟 Web 开发没有太多关联,但 Django 的长足进展,却帮了国内运维一个大忙。在大力提倡运维开发的时代,Django 的出现让运维非常快速方便地开发部署自动化工具,极大地释放了运维的生产力。2015 年,Django 从 1.7 升级到 1.9,支持大量新特性,开发部署越来越简便,而且生态越来越成熟, 2016 年即将朝着 Django2.0 的方向迈进。

总结

这一年,在大规模、复杂架构的催生下,运维技术不断变化、发展、涨姿势。自动化运维被推到一个新的高度,给传统企业带来了福音;给基础运维带来了巨大的挑战与机遇;同时也给越来越多的企业带来了新的抉择;开源技术的飞跃、脚本语言的进化等也给运维行业带来了革命性的影响。展望 2016 年,相信容器技术将持续爆炸式增长,云运维更加简单高效,让我们拭目以待,尽情拥抱他们吧。


感谢黄丹对本文的审校。