我开发出来就是不收钱,把代码拿出来分享给大家,全世界谁用都可以,所有的人都可以享受到好处,这个叫做开源。
比如最近的蒂姆·伯纳斯·李就是个非常有情怀的人。2017 年,他因“发明万维网、第一个浏览器和使万维网得以扩展的基本协
议和算法”而获得 2016 年度的图灵奖。
图灵奖就是计算机界的诺贝尔奖。然而他最令人敬佩的是,他将万维网,也就是我们常见的 WWW 技术无偿贡献给全世界免
费使用。
我们现在在网上的所有行为都应该感谢他的功劳,如果他将这个技术拿来收钱,应该和比尔盖茨差不多有钱。
开源和闭源的例子有很多:例如在闭源的世界里有 Windows,大家用 Windows 都得给微软付钱;开源的世界里面就出现了
Linux。
比尔盖茨靠 Windows、Office 这些闭源的软件赚了很多钱,称为世界首富,就有大牛开发了另外一种操作系统 Linux。
很多人可能没有听说过 Linux,很多后台的服务器上跑的程序都是 Linux 上的,比如大家享受双十一,无论是淘宝、京东、考
拉……支撑双十一抢购的系统都是跑在 Linux 上的。
再如有 Apple 就有安卓。Apple 市值很高,但是苹果系统的代码我们是看不到的,于是就有大牛写了安卓手机操作系统。
所以大家可以看到几乎所有的其他手机厂商,里面都装安卓系统。原因就是苹果系统不开源,而安卓系统大家都可以用。
在虚拟化软件也一样,有了 VMware,这个软件非常贵。那就有大牛写了两个开源的虚拟化软件,一个叫做 Xen,一个叫做
KVM,如果不做技术的,可以不用管这两个名字,但是后面还是会提到。
虚拟化的半自动和云计算的全自动
要说虚拟化软件解决了灵活性问题,其实并不全对。因为虚拟化软件一般创建一台虚拟的电脑,是需要人工指定这台虚拟电脑
放在哪台物理机上的。
这一过程可能还需要比较复杂的人工配置。所以使用 VMware 的虚拟化软件,需要考一个很牛的证书,而能拿到这个证书的
人,薪资是相当高,也可见其复杂程度。
所以仅仅凭虚拟化软件所能管理的物理机的集群规模都不是特别大,一般在十几台、几十台、最多百台这么一个规模。
这一方面会影响时间灵活性:虽然虚拟出一台电脑的时间很短,但是随着集群规模的扩大,人工配置的过程越来越复杂,越来
越耗时。
另一方面也影响空间灵活性:当用户数量多时,这点集群规模,还远达不到想要多少要多少的程度,很可能这点资源很快就用
完了,还得去采购。
所以随着集群的规模越来越大,基本都是千台起步,动辄上万台、甚至几十上百万台。如果去查一下 BAT,包括网易、谷
歌、亚马逊,服务器数目都大的吓人。
这么多机器要靠人去选一个位置放这台虚拟化的电脑并做相应的配置,几乎是不可能的事情,还是需要机器去做这个事情。
人们发明了各种各样的算法来做这个事情,算法的名字叫做调度(Scheduler)。
通俗一点说,就是有一个调度中心,几千台机器都在一个池子里面,无论用户需要多少 CPU、内存、硬盘的虚拟电脑,调度
中心会自动在大池子里面找一个能够满足用户需求的地方,把虚拟电脑启动起来做好配置,用户就直接能用了。
这个阶段我们称为池化或者云化。到了这个阶段,才可以称为云计算,在这之前都只能叫虚拟化。
云计算的私有与公有
云计算大致分两种:一个是私有云,一个是公有云,还有人把私有云和公有云连接起来称为混合云,这里暂且不说这个。
私有云:把虚拟化和云化的这套软件部署在别人的数据中心里面。使用私有云的用户往往很有钱,自己买地建机房、自己买服
务器,然后让云厂商部署在自己这里。
VMware 后来除了虚拟化,也推出了云计算的产品,并且在私有云市场赚的盆满钵满
公有云:把虚拟化和云化软件部署在云厂商自己数据中心里面的,用户不需要很大的投入,只要注册一个账号,就能在一个网
页上点一下创建一台虚拟电脑。
例如 AWS 即亚马逊的公有云;国内的阿里云、腾讯云、网易云等。
亚马逊为什么要做公有云呢?我们知道亚马逊原来是国外比较大的一个电商,它做电商时也肯定会遇到类似双十一的场景:在
某一个时刻大家都冲上来买东西。
当大家都冲上买东西时,就特别需要云的时间灵活性和空间灵活性。因为它不能时刻准备好所有的资源,那样太浪费了。但也
不能什么都不准备,看着双十一这么多用户想买东西登不上去。