本文的目的是为了帮助那些对云计算所包括的技术常识、应用架构;服务器/存储/数据通信的基本原理;操作系统/虚拟化技术的实现方式;涉及到实际应用的云服务器、云电脑的方案和概述不甚了解的同事,快速有效的建立正确的概念,方便日常工作。
云计算是一个非常宽泛的概念,它所包含的技术细节纷繁复杂。本文所涉猎的都是非常基础的概念性内容,如有错误不妥之处,还请指正。
IT技术,也就是Internet Technology,互联网技术。它是指在计算机技术的基础上开发建立的一种信息技术 [1] 。互联网技术通过计算机网络的广域网使不同的设备相互连接,加快信息的传输速度和拓宽信息的获取渠道,促进各种不同的软件应用的开发,改变了人们的生活和学习方式。互联网技术的普遍应用,是进入信息社会的标志。
它是信息技术技术行业的统称,也是信息处理的总集,IT 包括了软件、硬件、通信以及它们相关服务等等。
而在我们身边的 IT 技术正在改变我们的生活,例如通过 APP 承接和下发订单的打车软件,通过互联网进行实时语音通话的通讯软件,通过 APP 提供网上购物体验的电子商城等。这些形形色色的 IT 软件和硬件正在颠覆和改变我们的生活和工作。
传统的 IT 基础架构由常见的硬件和软件组件构成:设施、数据中心、服务器、网络硬件、桌面计算机,以及企业应用软件解决方案。而新时代下的 IT 架构有了一些新的变化。如图所示,在 IT 基础硬件之上有了云的出现,后续的应用开发以及软件的部署也都将基于云基础设施来进行。云的出现,很大程度上改变了互联网的 IT 基础架构,同时也解决了很多传统 IT面临的挑战。
随着移动互联网、全联接时代的到来,越来越多的终端设备被投入使用,每天都会有大量的数据产生,传统的 IT 基础设施也在面临着前所未有的挑战。而互联网的发展阶段,我们大致可以将它分为三个阶段,PC 时代、移动互联网时代以及物联网时代。
PC 时代,人们使用个人电脑通过互联网进行互联。移动时代,大家通过各种移动设备,如手机、Pad 等移动终端进行互联。随着 5G 时代的到来,所有的电脑,手机,智能终端,都能连接到一起,进入万物互联的时代。
万物互联到来后,整个产业的布局和竞争是生态的竞争。从过去的经验看,PC 时代到了移动时代,再到万物互联时代,每个时代形成之后,生态一开始是高速变化的,然后趋于稳态,当稳态的时候很难再改变它。PC 时代是 Windows 系统和 x86 芯片架构为代表的时代,上面有许许多多的应用。到了移动时代,这个时候的 ARM 芯片架构上面有 IOS、安卓系统,它们上面又有各种各样的应用。
互联网经历了两代,现在正在开启第三代,也就是万物互联。每一代互联网相比上一代,从设备的数量和市场的规模,都会有巨大的增长,这是未来的机会所在。 每一代互联网都有掌握产业链的龙头公司,从 PC 时代的英特尔和微软,到今天的 ARM 和 Google,而未来谁能掌握核心芯片和操作系统,就会成为新的产业链霸主。
随着互联网的发展,迅速攀升的互联网普及率给企业带来了大量的流量,用户以及数据。与此同时,为了能够匹配企业高速发展的进度,企业就需要不断地采购传统 IT 设备,时间一长,使用传统 IT 架构的弊端就逐渐显示出来:
由此可见,传统的 IT 基础架构设施已经无法满足于企业自身业务快速发展的需求。而企业的发展不可能因此而停缓,所以必定需要有新的 IT 架构来满足企业的需求。于是 IT 的架构就开始了它的演进。
如图所示,企业 IT 架构的演进经历了传统企业 IT 架构—>虚拟化架构—>企业云化 IT 架构。传统 IT 基础架构由通常的硬件和软件组件组成:设施、数据中心、服务器、网络硬件和企业应用软件解决方案。与其他基础架构类型相比,这种基础架构设置通常需要更多的电力、物理空间和资金。而且传统基础架构往往安装在本地,仅供企业自身来进行使用。
虚拟化架构的主要改变是将底层物理硬件先进行虚拟化,然后在虚拟化资源环境中再部署企业的业务系统以及其他基础 IT 应用。虚拟化是指计算机软件应用在虚拟的硬件上运行而不是直接在真实的基础硬件上运行。虚拟化技术可以提升硬件的资源利用率,简化软件的重新配置过程。
云化架构则是在虚拟化基础上的进一步发展,整个企业的基础 IT 架构应用了云的技术,包括了各类虚拟化技术、分布式技术、自动化运维技术等等。云化让整个企业 IT 资源进行整合,资源的使用和调度更加高效,IT 运维更加自动化,IT 的服务更加自助化。
其中,企业数据中心“云化”转型的要点主要有以下几点:
根据某国际权威数据统计机构的报告,自 2015 年开始,全球 IT 产业增长的 1/3 来自云计算相关产业的发展,且其中的增长率百分比都是由云计算产业贡献。传统 IT 基础架构对 IT 产业的贡献几乎陷入了停滞、甚至在近年还有衰退的趋势。
于是,我们不难得出这样一个结论。未来企业 IT 的基础架构都将慢慢被云化的架构所代替,无论这个企业是互联网类型的企业,还是传统行业类型的企业。并且,这个现象也正在全球各地发生着。目前,美国企业 IT 架构云化的比例大概在 70%,国内的比例在 40%左右。这个数字根据统计也是在逐年增长。
以云计算为基础的相关产业成为 IT 产业主流,而这个平台的基石就是计算机和虚拟化技术,在讲解云计算之前让我们首先来简单了解下计算机和虚拟化技术的发展
计算机是现代一种用于高速计算的电子计算机器,可以进行数值计算,又可以进行逻辑计算,还具有存储记忆功能。是能够按照程序运行,自动、高速处理海量数据的现代化智能电子设备。
对于我们自身来说,提到计算机,我们首先想到的就是台式、笔记本电脑以及服务器。并且,上文介绍到的数据中心里的存储设备、网络设备、安全设备等都是计算机设备。
如需要更进一步的了解,请移步 计算机组成原理。
虚拟化(Virtualization)的含义很广泛。将任何一种形式的资源抽象成另一种形式的技术都是虚拟化,是资源的一种逻辑表示。而对于服务器虚拟化来说,虚拟化就是使得在一台物理服务器上可以跑多台虚拟机,虚拟机共享物理机的 CPU、内存、IO 硬件资源,但逻辑上虚拟机之间是相互隔离的。虚拟化也是云计算实现的重要基础。
在图,我们可以看到左边是虚拟化前的架构形态。企业在购置服务器之后,为服务器安装业务操作系统,然后再部署企业的系统应用以及需要的基础环境。
在这个传统企业 IT 架构中,第一,每台服务器的资源都是独立的,比如服务器 1 的资源比较空闲,服务器 2 的资源很紧张,但它们之间的资源是不能互通有无的,不能让资源得到充分的利用;第二,因为业务操作系统直接部署在硬件之上,操作系统的各种硬件驱动也必须要适配底层的物理服务器,也就是说操作系统与硬件存在一个紧耦合的关系,一旦我们需要将原来的系统应用迁移到其他不同厂家的物理服务器时,会变得非常麻烦,需要考虑各种兼容性问题。
而在虚拟化架构中,企业采购物理服务器后,先在服务器上部署虚拟化层对其进行虚拟化,使得各个服务器的硬件资源变成虚拟化资源并形成资源池。然后再基于这个虚拟化资源池创建虚拟机,让虚拟机成为原先企业业务应用的承载体。这个模式架构中,资源抽象成为了共享资源池,大大提升了资源的利用率,使得资源不再是独立的;物理硬件和业务操作系统之间也隔了一层虚拟化层,使得上层操作系统与硬件解耦,我们只需保持虚拟机的虚拟硬件结构一致即可便捷地进行业务应用移动的需求。
虚拟化的发展也有比较长的一段时间了。
云计算自发展至今,关于云计算的定义,业界的描述是众说纷纭。其中广为接受的说法是美国国家标准与技术研究院(NTSI)的定义:云计算是一种模型,它可以实现随时随地、便捷地、随需应变地从可配置计算资源共享池中获取所需的资源(例如,网络、服务器、存储、应
用及服务),资源能够快速供应并释放,使管理资源的工作量和与服务提供商的交互减小到最低限度。
说明一下定义中的重点:
除了从这种角度来认识云计算之外,还可以从另一个角度来认识云计算。我们可以将云计算拆分为“云”与“计算”来进行理解。“云”其实是网络、互联网的一种比喻说法,即表示互联网与建立互联网所需要的底层基础设施的抽象体。而“计算”指的是能够提供足够强大的计算服务(包括各种功能,资源,存储)的计算资源整合。因此“云计算”可以理解为:通过互联网,我们可以使用由足够强大的“计算机”为用户提供的资源服务,而这种服务的使用量可以使用统一的单位来描述。
虽然云计算的概念众说纷纭,但是云计算确确实实是应用到我们身边的方方面面了。接下来,就为大家介绍我们身边的云计算。
如果没有云计算,我们要实现这些服务就需要手动将文件拷贝到其他的硬盘上,然后再通过这个硬盘分享给别人或者恢复数据。而现在,我们通过客户端工具,无论它是被安装在手机上还是 PC 上,只要连接互联网并指定需要备份的文件夹,数据就会被自动上传到共享资源池中来代替硬盘,这种模式就是云计算。使用了云计算后,资源池是共享的,所以通过分享,其他人很容易就可以将这些数据下载下来,另外,通过一定的技术手段,还可以自动进行数据同步。
云计算理念从最初诞生至今,企业 IT 架构从传统非云架构,向目标云化架构的演进,总结来说,经历了如下三大里程碑发展阶段:
针对上述三大云计算发展演进里程碑阶段而言,云计算 1.0 普遍已经是过去式,但是它仍然是云计算的基石。此外,一部分行业、企业客户已完成初步规模的云计算 2.0 建设商用,正在考虑该阶段的进一步扩容,以及面向云计算 3.0 的演进;而另一部分客户则正在从云计算 1.0 走向云计算 2.0,甚至同步展开云计算 2.0 和 3.0 的演进评估与实施。
提到按需自助的特点,大家最先想到的可能就是超市,每个顾客在超市里都可以按照自己的需求挑选需要的商品,如果是同类商品,可以自己查看说明、价格、品牌,按照性价比或者其他因素来决定购买哪一款。同样的,用户可以根据自己的需求下载不同 APP购买需要的服务,在整个下载或者购买过程中,基本不需要他人帮忙,可以自行完成下载或者购买。
按需自助的前提是了解自己的需求,并知道哪款产品能够解决这个需求。在超市中,有很多的商品,在云计算提供商的官网上也一样有很多类型的云产品,如图,在购买以前,用户需要购买哪种产品,就像去超市以前,顾客需要知道洗衣液是用来洗衣服的,咖啡是用来喝的一样。
云计算,通俗地讲,就是互联网加计算,所以网络接入是云计算自带的属性。
在当今社会,互联网几乎可以覆盖到全球每一个有人的角落,我们可以通过任意电子设备—PC、Pad、手机等连接到网络中,这也就意味着通过任何电子设备都可以使用云计算,而云计算的载体则更加广泛,在办公室可以使用 PC,在机场车站可以使用手机或者 Pad,没有网线可以用 WiFi 代替,没有 WiFi,用流量也没有问题。
总而言之,只要我们可以通过网络接入到云服务商的资源池,我们就可以随时随地、便捷地使用云上的服务。
资源池化是实现按需自助服务的前提之一,通过资源池化不但可以把同类商品放在一起,而且还能将商品的单位进行细化。在超市里,我们会看到生鲜区、果蔬区以及其他,这样可以方便顾客快速地找到自己需要的商品,但这种形式不是资源池化,只能算是资源归类,那什么算是资源池化呢?
资源池化除了将同类的资源转换为资源池的形式外,还需要将所有的资源分解到最小单位。方便面,算是很多人生活必需品之一。很多人都有反映一包吃不饱,两包吃不完的情况,这是因为超市中方便面的最小购买单位是“包”,如果使用资源池化的方式,就需要打破“包”这个单位,将所有的面放在一个“池子”里,需要多少买多少。比如自助餐厅就是这样做的,将果汁按照不同的口味分开,客户需要多少就接多少。
资源池化还有一个作用就是可以屏蔽不同资源的差异性,如果餐厅中提供池化了的可乐,里面装的是百事可乐还是可口可乐或者两者都有,顾客是看不出来的。而在云计算中,可以被池化的资源包括计算、存储和网络等资源,计算资源包括 CPU 和内存,如果对 CPU 进行池化,用户端看到的 CPU 最小单位可以是一个核心,而不再体现 CPU 的厂商是 AMD 或者 Intel。
企业的业务时常是会出现一些波动的,为了应对热点事件的突发大流量,自助购买服务器进行扩容。而当热点事件降温后,访问流量趋于下降时,又可以将这些服务器释放进行减容,这种行为就属于典型的快速弹性伸缩。
快速弹性伸缩包括多种类型,除了人为手动扩容或减容,云计算还支持根据预设的策略进行自动扩容或减容,伸缩可以是增加或减少服务器数量,也可以是对单台服务器进行资源的增加或减少。
在云计算中,快速弹性伸缩对用户来说,最大的好处是在保证业务或者应用稳定运行的前提下节省成本。企业在创立初期,可以购买少量的资源,随着企业规模的扩大,可以逐步增加资源方面的投资;另一方面,在特殊时期可以将所有资源集中供给重点业务使用,非特殊时期,将空闲资源转做它用;如果特殊时期资源不足,可以临时增加,度过特殊时期后,再将增加的资源释放。无论是哪种情景,对于用户来说都是很方便的。
计量是利用技术和其他手段实现单位统一和量值准确可靠的测量,换句话说,云计算中的服务都是可测量的,有的是根据时间,有的是根据资源配额,还有的是根据流量。服务可测量可以准确地根据客户的业务进行自动控制和优化资源配置。
对于用户来说可以很清晰地看到自己购买服务的使用情况,还可以根据需求来购买相应数量的服务。
这里强调一下,计量不是计费,尽管通过计量可以进行计费。在云计算中,大部分服务都需要付费使用,但也有服务是免费的,比如,弹性伸缩可以作为一个服务为用户开通,大部分时间这个服务是免费的。
如图所示,在云计算中,一般我们部署的所有应用都遵循统一的分层结构,应用程序是最终呈现给用户,用户通过应用程序的界面保存或创建出自己的数据,为了保证应用程序的正常运行,需要依赖最底层的硬件资源、运行在硬件资源上的操作系统,以及运行在操作系统之上的中间件和应用程序的运行环境。我们把应用程序在内的所有部分称为软件层,将最底层的硬件资源,包括网络资源、存储资源和计算资源,以及虚拟化层称为基础设施层,运行在操作系统之上、应用程序之下的所有中间部分称为平台层。
如果基础设施层由云服务商提供,其他由用户自营,这种模式称为 IaaS;如果基础设施层和平台层由云服务商提供,其他由用户自营,这种模式称为 PaaS;如果全部由云服务商提供,这种模式称为 SaaS。