云计算:拼的是运维

云计算的IaaS、PaaS、SaaS最后那个S都是Service。就是说,无论你云计算长成什么样,都得要向用户提供“服务”而不仅仅是软硬件和各种资源。

【云计算的技术难点】

到今天,云计算的工业实现已经不太难了。现在有开源软件KVM和Xen,这两个东西基本把虚拟化搞定;而OpenStack则把管理、控制系统搞定,也很成熟。PaaS也有相应的开源,比如OpenShift,而Java里也有N多的中间件框架和技术。另外分布式文件系统GFS/TFS,分布式计算系统Hadoop/Hbase等等,分布式的东西都不神秘了。技术的实现在以前可能是问题,现在不是了。

对于云计算工程方面,现在最难的是运维。管100台、1万台还是100万台机器,那是完全不同的。机器少你可以用人管理,机器多是不可能靠人的。运维系统不属于功能性的东西,用户看不见,所以这是被大家严重低估的东西。只要你做大了,就必然要在运维系统上做文章。数据中心/云计算拼的就是运维能力。

为什么我说运维比较复杂,原因有这么几个。

一方面,云计算要用廉价设备取代那些昂贵的解决方案。所谓互联网的文化就是屌丝文化,屌丝就是便宜,互联网就是要用便宜的东西搭建出高质量的东西,硬件和资源一定不会走高端路线——比如EMC、IBM小型机、SGI超级计算机等等,你如果用它去搭建云计算,成本太贵。用廉价的解决方案代替昂贵的解决方案是整个计算机发展史中到今天唯一不变的事情。所以如果你要让夏利车跑出奔驰车的感觉,你需要自己动手做很多事,搭建一个智能的系统。用廉价的东西做出高质量的东西,运维好廉价的设备其实是云计算工程里最大的挑战。

另一方面,因为你机器多了,然后你用的又不是昂贵的硬件,所以故障就变成了常态,硬盘、主板、网络天天坏。所以,没什么好想的,运维就必须要跟上。云计算的目标是在故障成为常态的情况下保证高可用——也就是我们所说的,你服务的可用性是3个9、4个9还是5个9。

最后,这一大堆机器和设备都放在一起,你的安全就是一个挑战,一方面是Security,另一方面是Safety,保证数十台数百台的设备的安全还好说,但是对于数万数十万台的设计,就没有那么简单了。

面对这样的难题,人是无法搞得定的,你只能依靠技术来管理和运维整个平台。比如必须有监控系统。这跟操作系统一样,对资源的管理,对网络流量、CPU利用率、进程、内存等等的状态肯定要全部收集的。收集整个集群各种节点的状态,是必然每个云计算都有的,都是大同小异的。

然后,你还要找到可用性更好的节点,这需要有一些故障自检的功能。比如阿里云就遇到过磁盘用到一定时候就会莫名其妙的不稳定,有些磁盘的I/O会变慢。变慢的原因有可是硬盘不行了,于是硬盘控制器可能因为CRC校验出错需要要多读几次,这就好比TCP的包传过来,数据出错了,需要重新传。在这种硬盘处理半死不活的状态时,你肯定是需要一个自动检测或自动发现的程序去监控这种事情,当这个磁盘可能不行了,标记成坏磁盘,别用它,到别的磁盘上读复本去。我们要有故障自动检测、预测的措施,才能驱动故障,而不是被动响应故障,用户体验才会好。换句话说,我们需要自动化的、主动的运维。

为了数据的高可用性,你只能使用数据冗余,写多份到不同的节点——工业界标准写三份是安全。然而,你做了冗余,又有数据一致性问题。为了解决冗余带来的一致性问题,才有了paxos的投票玩法,大家投票这个能不能改,于是你就需要一个强大的控制系统来控制这些东西。

另外,公有云人来人往,里面的资源和服务今天用明天不用,有分配有释放,有冻结,你还要搞一个资源管理系统来管理这些资源的生命状态。还有权限管理,就像AWS的IAM一样,如果没有像AWS的IAM权限管理系统,AWS可能会不会像今天这样有很多大的公司来用。企业级的云平台,你需要有企业级的运维和管理能力。

【云计算的门槛】

为啥云计算有这么多开源的东西,却不是人人都能做?

一方面,这就跟盖楼一样。盖楼的技术没什么难的(当然,盖高楼是很难的),但是你没地你怎么盖?我觉得云计算也一样,带宽的价格贵得就像土地的价格。其实云计算跟房地产一样,要占地、占机房、占带宽。如果能把中国所有的机房、机柜、带宽资源都买了,你就不用做云计算了,卖土地就够了——因为这些是有限的。最简单的例子,IP地址是有限的。你有带宽、有机房,但是如果你没有IP,这就不好玩了。尤其是你要提供CDN服务,这个就更明显,因为有多少物理节点直接决定你的CDN服务质量。

另一方面,正如前面所说的,运维是件很难的事,运维这个事并不是一般人能搞的事。没有足够的场景、经验和时间,这种能力很难出现。

从用户的角度来说呢,云计算是一种服务,你需要对用户企业内的解决方案要有很好的了解,这样才能提高很好的服务。能提供“好服务”的通常都是把自己真正当成用户公司。

卖汽车也是卖服务。造出汽车来,并不代表你搞定这个事了。如果没有公路、没有加油站、没有4s店、没有交通管理、规则等等,你要么用不了,要么就是乱七八糟。不能只让用户在那看着你的汽车好牛啊,但是用户不知道怎么用。所以说,云计算最终旁边必须要有一套服务设施,而这套服务设施也是今天被人低估的。

云计算有两个东西我觉得是被人低估的,一个是运维,一个是那堆服务。做服务的需要有生态环境,有人帮你做。所以做云计算要落地并不简单。

总之,云计算是需要吃自己的狗食才能吃出来的,绝不是像手机上的Apps一样,你想一想、试一试就能搞出来的,你首先需要让自己有这样的场景,有这样的经历,你才可能会有这样的经验和能力。

还是那句话,云就是服务,只要提供了好的服务,无论公有还是私有都是会有价值的。

作者陈皓,CoolShell.cn博主。15年软件开发相关工作经验,8年以上项目和团队管理经验。擅长底层技术架构,团队建设,软件工程,软件研发咨询,以及全球软件团队协作管理。对高性能,高可用性,分布式,高并发,以及大规模数据处理系统有一些经验和心得。

原文发布于微信公众号 - 云计算D1net(D1Net02)

原文发表时间:2014-08-22

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏后端技术探索

漫谈大型网站架构

作者介绍:陈康贤(花名龙隆),淘宝技术部技术专家,著有《大型分布式网站架构设计与实践》一书,在分布式系统架构设计、高并发系统设计、系统稳定性保障等领域积累了较为...

932
来自专栏罗超频道

今天凌晨这个小动作,让微信完成复制中国互联网的最后一步

6月6日凌晨,苹果WWDC 2017年召开让许多人忽视了微信的一个重量级更新:微信公众账号图文消息正式允许插入第三方内容。微信内容运营者在编辑图文消息时,可以插...

3275
来自专栏平凡文摘

十个老大难的程序员问题

1231
来自专栏ytkah

小程序内嵌网页的开放是一场创业公司的及时雨吗

  11.2晚小程序突然开放两个重磅能力:1.小程序内可直接打开网页,2.小程序可关联500个公众号。通过研究,我们发现这次新能力的开放,促使小程序推动微信的春...

3655
来自专栏软件测试经验与教训

程序员不修改bug怎么办

3466
来自专栏数据和云

恩墨有约上海站之小团圆

这次上海的两日,倍觉凄风冷雨之寒,还好有咖啡、新朋,聚而论道,谈一谈大家的技术之旅。 流水账记录一下大家闲聊的话题。 在Oracle和DB2之间的选择,在Ora...

3515
来自专栏ThoughtWorks

成都活动 : 第17届「BQMeetUp - Wiremock实战」报名进行中

Hi 好久不见成都的测试君们!在测试过程中,如果后端依赖曾让你崩溃万分、如果由于后端依赖不稳定的问题曾让你苦不堪言,那么我们新一期的线下测试技术交流活动非常适合...

1242
来自专栏DevOps时代的专栏

业务安全与 DevSecOps 的最佳实践

3182
来自专栏极限编程

简单设计落地三板斧

如果你认同 简单设计的价值观,我相信 解析简单设计原则 对你来说很容易理解并接受,它不像面向对象设计原则(比如:SOLID)那么晦涩难懂,它给你指明了一条明朗...

1041
来自专栏大数据文摘

GitHub迎来史上最大产品变革:发布可直接运行代码的GitHub Actions

10月16日,全球最大开发者社区GitHub Universe开发者大会在旧金山召开,会议持续两天,在刚刚顺利闭幕。本次大会主题为“认可开发者集体的成果以及增强...

1514

扫码关注云+社区

领取腾讯云代金券