都说云计算时代是开发的天下,运维都要被下岗淘汰了?可业界大神陈皓却是这样说的!...


本文根据 InfoQ 中文站跟陈皓(@左耳朵耗子)在 2014 年 3 月的一次聊天内容整理而成,来源:https://url.cn/5eVX6Rh。

在沟通中,陈皓分享了自己对云计算的理解,包括云计算为什么会分三层,实现一个云平台的难点在什么地方,运维之于云计算的重要性,电商云为什么有价值等。

对云计算的定义

云计算其实跟 PC 机有一样的概念,有 CPU、硬盘、操作系统、应用软件。

云计算的计算节点(虚拟机)就是 PC 中的 CPU,数据缓存服务就是 PC 的内存,存储节点就是 PC 的硬盘,提供数据服务,让数据不丢、高可用,PC 中的控制器就是云计算的控制系统。PC 机的硬件上面要有操作系统。操作系统很大一块是给开发人员提供系统的 API 接口,提供系统监控以看运行情况,并且还要有系统管理——如用户账号的权限管理、备份恢复等等。操作系统上面要有应用软件,这样才能服务于最终用户,应用软件就是真正落地的业务,这样才会有用户;有了用户,整个体系就运转起来了。

这就是工程师说的 stack,也就是我们听到的 IaaS、PaaS、SaaS 三个层。IaaS 层就像 PC 机的基础硬件加驱动程序,PaaS 层就像 PC 机上的操作系统——把基础硬件抽象、包起来并屏蔽硬件和硬件驱动细节、调度基础硬件,而 SaaS 层就是 PC 机里的应用软件。另外,我们还得给开发人员提供各种开发框架、类库和开发环境,这就是为什么 AWS 还做通知、消息、工作流,这是用于粘合操作系统和业务层的,比如可以让你方便地做水平扩展和分布式。

云计算自然也会像 PC 机一样,三个层上都会有用于控制和管理的系统。这就是为什么云计算会做成这个样子,其实计算机的发展就在这个圈子里绕。

其实,最终用户基本并不关心你 CPU 用的啥,存储用的是啥,你用什么框架开发,他们关心更多的是可以解决什么问题,有什么样的用户体验。像以前 Windows 用户体验之所以比 Linux 好,就是因为应用层用的舒服;而 Linux 对开发者的用户体验比 Windows 好,就是因为其开放和可以让开发人员更灵活、更自由。

我们可以看到 SaaS 层上有的像 SalesForce、Dropbox、Evernote、Netflix 这样的给最终用户的服务,他们更倾向于最终用户和业务。

说到底,云计算的 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 服务质量。

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

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

这跟做汽车一样,底层做引擎、轮子、油箱、控制系统,给你弄一堆零件,上层可以拼装。PaaS 相当于给你一个很快可以打造成的汽车的工作台。而 SaaS 就是成品——两厢、三厢、卡车、轿车,最终用户要的是这个。后面什么 Xen、存储、分布式,跟我一毛钱关系没有,我就要知道汽车是安全的,性能好的,省油的,不会抛锚、耐用的,千万别速度快了或者坡度大了或是别的怎么样就失灵了。

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

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

这跟 IBM 一样。IBM 有段时间也是快不行了,他们的 CEO 写了一本《谁说大象不能跳舞》,讲 IBM 的转型,从卖硬件的转成卖服务、解决方案,有流程、咨询,顺便卖硬件,带着一堆系统集成商一起玩。我给你解决方案,谁来实现呢,就是集成商帮你,然后顺便把硬件卖给你。一样。未来是什么样,历史上已经有了。你看,要干那么多事,而且还不是用人堆就可以堆出来的。这就是云计算的门槛。

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

云计算的市场细分

市场细分必然是市场来驱动的。市场变化太快,说不清楚,不过大的方向应该会是这样的:有类是需要玩计算密集型的(比如大数据计算、网络游戏),有类是需要玩 IO 密集型的(比如视频网站),有类就是为了建网站的(比如电子商务、门户网站、无线),有类是为了数据安全和保密的(比如金融数据)。

从更高的层面来看,社会也需要分工。有的人卖土地,有的人卖房子,有的人装修,有的人是中介。我相信没人愿意把所有的赌注都押在一个地方。云计算也是一样。上面也说过,无论 IaaS、PaaS、SaaS,后面的 S 都是 service,本质上都是提供服务。所以,我认为,市场的细分本质上就是服务的细分。

看看历史我们知道,细分永远是跟着行业走的,也是跟着业务走的,所以,在业务层会出现更多的细分。

对阿里云产业细分的看法

政府云、金融云不太清楚,不过我很清楚电商云——就是我之前负责的聚石塔。聚石塔时间不长,2012 年 9 月正式上线,去年是大发展的一年,作为垂直云解决的很好。天猫和淘宝做的都是下单前的东西,下单后,商家每天处理好几百单,需要做订单合并、筛选,有的商家规模不大但订单很多。海尔有 ERP,这些商家没有,但是每天也 1000 多单,如果没有信息化的系统,人肉是处理不了的,必然要有 ERP 系统处理订单。另外还要管理用户,给用户做营销、发展忠实用户。总之,都是卖东西以后的事情。咋办?

淘宝天猫给了一堆开放 API,你可以调我的 API 接入,在你那边有 ISV 帮你做一套东西远程访问淘宝 API,把订单拉过去,仓库进货了之后,通过 API 把库存改一下,就可以连起来了。天猫用户下单,到他的系统、他的仓库,他就发货了,仓库补完货,在他的系统里一改,自动就到天猫店了。这是电子信息化。

但是一到双十一就受不了:订单量太大。正好云平台出现了,再怎么样,阿里的运维能力也要比你商家的要强吧。你看,聚石塔卖的是服务,不是主机。另外是数据安全:商家的系统天天被黑客盯着,如果我们把用户信息都给商家,不是所有的商家的系统安全都做得很好,内部的人插个什么 U 盘,上面一堆木马,数据就被偷走了。偷走了之后,别人还说是阿里搞丢的,这当然不行。所以,我们又要开放,还要保证安全,聚石塔这个云平台就这样出来的:你来我这儿,我才开放给你,因为安全很重要。

保证性能和安全也是商家的利益诉求也在里面,商家也不希望用户数据被偷,他也希望双十一能抗住。

另外,很多商家自己不会做,所以要 ISV(第三方软件开发商)来做,所以这个是卖解决方案,跟 IBM 很相似。银行要一套系统,IBM 提供硬件和解决方案,系统集成商来帮银行写代码和集成系统。聚石塔也很像,聚石塔提供 API、ECS、数据库,第三方的 ISV 进来帮商家集成一个系统。这是很经典的也是很传统的 IBM 的玩法,只不过是玩在了云端。

你看,这也是做自己的长项做出来的细分市场。所以说,吃自己的狗食很重要。

对 PaaS 的看法

无论是 Google 的 GAE 还是新浪的 SAE 都是给个容器,给个容器的好处是不用管数据连接、CPU 什么,程序一传就能用,什么水平扩展都不用管。不爽的是,一个是在编程上限制太多:AppEngine 总会阉割很多系统相关的功能,比如 Java、PHP、Python 的很多系统调用都阉割了,因为如果给你这些系统调用,你就可以突破沙箱;另一个是有故障的时候:技术人遇到问题都恨不得自己上去解决,想看看后面在忙啥,但是看不到,很无助,只能等你解决,就看你的人解决的好不好、快不快。

所以如果 IaaS 没做好,运维、故障自动处理、迁移没做好,出了问题用户只能干瞪眼,PaaS 必然不好用。当然 IaaS 层也有这个问题,但是至少你还可以登到机器上看一看,大不了重启一下。像 AWS,你重启一下就跑到别的物理机,问题也许就解决了。

其实,对于 PaaS 中间这层的确很尴尬。怎么解决?我觉得还是要依赖某种业务场景。单纯一个平台要阉割很多功能,搞得用户不舒服,还不如干脆一步到位,根据业务场景给一个编程框架。比如 SAE 可以就做微博 app,上来就调 API,数据库都 ready;或者微信如果做个 PaaS,上面只玩微信公众平台上的东西,也可以。

我觉得 PaaS 层更贴合业务会更成功。给新浪微博做个插件,你去买个 VM、买数据库?这种时候很需要 PaaS。我觉得 PaaS 层要成功就要贴近业务场景。比如:腾讯的风铃系统(虽然不知道企业帐号看见是什么样的),就做无线建站,这样多好。干巴巴的 PaaS 有点高不成低不就。

对 SDN 的看法

SDN 其意图是想改变目前超级复杂的网络结构。意图是挺好的。想一想,如果以后我家的网络不用因为买个新的路由器都要重新设计一把,只要一次设置,然后对所有的路由器都通过,的确是挺方便的,这点对企业非常好。不过,不知道在操作上怎么做,也许会从企业内部开始这场革命,这个不得而知。

就像开车一样,机械式的方向盘和刹车油门系统这么多年都没什么变化,也提过很多更好更高科技的解决方案,但是传统还是这样延续下来了。所以,SDN 真不知道未来会怎么样。总之,一个老的事物到一个新的事物需要有一个过程,这个过程中会出现很多过渡产品或是过渡方案,如果没有这些过渡产品和方案,也就没法达到新的事物。未来是什么样,无法预知。

对私有云的看法

私有云跟公有云,都会存在。这跟人一样,私人生活和公众生活都会需要的。大公司有 1 万、2 万人,这么多数据,要存,需要一个很稳定的解决方案。要稳定可以买 IBM,但是贵。云计算出来说,我可以写三份,但他不想上公有云,我的数据放在别人那里,总感觉不好的,所以有了私有云做物理隔离,他觉得安全。

安全这个词对应两个英文,security 和 safety,其实 security 和 safety 不一样:云计算解决 safety,保证数据不丢;宁可数据丢也不让人看到,那是 security。比如私人照片我更愿意存家里,有一个小的云存储,所有设备同步,跟老家父母同步,这样比较好。放公网很恐怖。

一定会有公司不愿意上云的,比如金融方面的企业,他们觉得互联网不安全,他们要的更多的是安全。在公网上你的系统的安全攻防能力都要跟上,但如果物理不通的话就不用考虑的太复杂。企业内部私有云肯定有市场。

你看,好些企业内部目前还被 EMC、IBM 所垄断着呢。计算机发展史就是廉价的东西取代昂贵的东西,所以私有云一定没问题,而降低私有云的运维复杂度、提供一个或多个方便的运维系统和工具就是重中之重。其中,SDN 之类的东西肯定会是其中一个很重要的一块。

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

感谢杨赛对本文的策划。

本文转载自:「高效运维」,原文:https://url.cn/5ejI3gg,版权归原作者所有。欢迎投稿,投稿邮箱: editor@hi-linux.com

你可能还喜欢

点击下方图片即可阅读

终端程序不支持 SOCKS5 / HTTP 代理怎么办?有了这个神器后,终于可以跨越高山和大海了!

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
机器学习是一种人工智能(AI)的子领域,致力于研究如何利用数据和算法让计算机系统具备学习能力,从而能够自动地完成特定任务或者改进自身性能。机器学习的核心思想是让计算机系统通过学习数据中的模式和规律来实现目标,而不需要显式地编程。 机器学习应用非常广泛,包括但不限于以下领域: 图像识别和计算机视觉: 机器学习在图像识别、目标检测、人脸识别、图像分割等方面有着广泛的应用。例如,通过深度学习技术,可以训练神经网络来识别图像中的对象、人脸或者场景,用于智能监控、自动驾驶、医学影像分析等领域。 自然语言处理: 机器学习在自然语言处理领域有着重要的应用,包括文本分类、情感分析、机器翻译、语音识别等。例如,通过深度学习模型,可以训练神经网络来理解和生成自然语言,用于智能客服、智能助手、机器翻译等场景。 推荐系统: 推荐系统利用机器学习算法分析用户的行为和偏好,为用户推荐个性化的产品或服务。例如,电商网站可以利用机器学习算法分析用户的购买历史和浏览行为,向用户推荐感兴趣的商品。 预测和预测分析: 机器学习可以用于预测未来事件的发生概率或者趋势。例如,金融领域可以利用机器学习算法进行股票价格预测、信用评分、欺诈检测等。 医疗诊断和生物信息学: 机器学习在医疗诊断、药物研发、基因组学等领域有着重要的应用。例如,可以利用机器学习算法分析医学影像数据进行疾病诊断,或者利用机器学习算法分析基因数据进行疾病风险预测。 智能交通和物联网: 机器学习可以应用于智能交通系统、智能城市管理和物联网等领域。例如,可以利用机器学习算法分析交通数据优化交通流量,或者利用机器学习算法分析传感器数据监测设备状态。 以上仅是机器学习应用的一部分,随着机器学习技术的不断发展和应用场景的不断拓展,机器学习在各个领域都有着重要的应用价值,并且正在改变我们的生活和工作方式。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值