1
云计算的定义
NIST(美国国家标准及技术研究所)对云计算的定义:
“
云计算是一种模型,实现无处不在的、方便、通过网络按需访问的可配置的共享计算资源池(例如,网络、服务器、存储、应用程序、服务),这些资源可以快速提供,通过最小化管理成本或与服务提供商进行交互。
”
2 云计算的发展
1959年6月,Christopher Strachey发表虚拟化论文,虚拟化是今天云计算基础架构的基石。
1984年,Sun公司的联合创始人John Gage说出了“网络就是计算机”的名言,用于描述分布式计算技术带来的新世界,今天的云计算正在将这一理念变成现实。
1996年,网格计算Globus开源网格平台起步。
1997年,南加州大学教授Ramnath K. Chellappa提出云计算的第一个学术定义”,认为计算的边界可以不是技术局限,而是经济合理性。
1998年,VMware(威睿公司)成立并首次引入X86的虚拟技术。
2005年,Amazon宣布Amazon Web Services云计算平台。
2006年,Amazon相继推出在线存储服务S3和弹性计算云EC2等云服务。
2006年,Sun推出基于云计算理论的“BlackBox”计划。
2007年7月,亚马逊公司推出了简单队列服务(Simple Queue Service,SQS),这项服务使托管主机可以存储计算机之间发送的消息。2007年11月,IBM首次发布云计算商业解决方案,推出“蓝云”(Blue Cloud)计划。
2008年1月,Salesforce.com推出了随需应变平台DevForce,Force.com平台是世界上第一个平台即服务的应用。
2008年中,Gartner发布报告,认为云计算代表了计算的方向。
2008年10月,微软发布其公共云计算平台——Windows Azure Platform,由此拉开了微软的云计算大幕。
2009年1月,阿里软件在江苏南京建立首个“电子商务云计算中心”。
2009年4月,VMware推出业界首款云操作系统VMware vSphere 4。
2010年1月,Microsoft正式发布Microsoft Azure云平台服务。
2010年5月,中国电信启动星云计划
2010年10月,我国国家发展和改革委员会、工业和信息化部联合发布了《关于做好云计算服务创新发展试点示范工作的通知》,在北京、上海、深圳、杭州、无锡等五个城市先行开展云计算创新发展试点示范工作
2011年1月,美国NIST发布了《The NIST Definition of Cloud Computing》,给出了云计算的参考定义。
2011年2月,美国联邦政府CIO发布了《Federal Cloud Computing Strategy》,明确提出美国政府信息技术向云计算方式迁移,并推行“Cloud First”计划。
2011年12月,美国OMB发布FedRAMP备忘录,正式建立FedRAMP云计算风险管理与授权项目,旨在提供一个标准化的方法来对云计算产品和服务进行安全评估、授权和联系监视。
2013年,澳大利亚政府出台了《The National Cloud Computing Strategy》用于布局云计算总体发展。
2014年,英国政府于2014年宣布正式采用“政府云服务G-Cloud”
2014年,中华人民共和国国家质量监督检验检疫总局、中国国家标准化管理委员会联合发布了联合发布了GB/T 31167-2014《信息安全 云计算服务安全指南》、GB/T 31168-2014《信息安全技术 云计算服务安全能力要求》。
2015年12月,在中国国家标准化管理委员会下达的2015年第三批国家标准修订计划中,正式下达17项云计算国家标准制修订计划
3
云计算的基本特点
按需自助服务– 消费者能够单方面按需调配计算资源,例如服务器时间和网络存储,这些是无需人为干涉自动进行的。
广泛网络访问–通过各种瘦或胖客户端(移动电话、平板电脑、便携式电脑和工作站)使用标准机制通过网络访问资源。
资源池– 通过多租户模型,供应商的计算资源池可服务多位消费者,根据用户需求动态或重新分配不同的物理和虚拟资源。资源是与位置无关的,客户通常无法控制或知道资源的精确位置,但可以在更高层抽象(例如,国家、洲或数据中心)上指定位置。资源例子包括存储、处理器、内存和网络带宽。
快速可伸缩性– 资源能被弹性配置和发布,在有些场景下,可按需自动而快速的横向扩展和收缩。对于消费者而言,可调配的资源总是无限可用的,可在任何时候使用任意数量的资源。
可度量服务– 云计算系统能够自动控制并优化资源的使用,通过适用于服务类型的某些抽象层级的度量机制(例如,存储、处理器、带宽以及活动的用户帐户)。能够监控、控制和报告资源使用率,为服务提供商和消费者提供透明的服务使用情况。
4
云计算服务模型
Software-as-a-Service (SaaS)– 提供给消费者的资源是运行在云计算基础架构上的服务商提供的应用程序。各种客户端通过瘦客户端接口访问该应用程序,例如Web浏览器,或程序接口。消费者并不管理或控制底层的云计算基础架构,包括网络、服务器、操作系统、存储、甚至应用程序本身的功能,只允许部分受限的用户设置特定的应用程序设置。
Platform-as-a-Service(PaaS)-提供给消费者的资源是可以使用由服务商支持的编程语言、库、服务和工具,把由消费者创建或购买的应用程序部署在云计算基础设施上的能力。消费者并不管理或控制底层云计算基础设施,包括网络、服务器、操作系统、存储,但对部署的应用程序有控制权,还可以配置应用程序所在宿主机的环境。
Infrastructure-as-a-Service(IaaS)-提供给消费者的资源是可调配的处理器、存储、网络以及其他可用于运行任意软件的基础计算资源,包括操作系统和应用程序。消费者并不管理或控制底层云计算基础架构,但可以控制操作系统、存储和部署的应用程序,可能还被允许有限制的控制网络组件(例如,主机防火墙)。
打个比方:
当你饿了想吃饭时:
自己买锅碗瓢盆这些工具,自己洗菜切菜烧菜,最后烹饪出一份美食,这个过程是IAAS服务
你去户外农家乐出游,农家乐提供了锅碗瓢盆,你自己洗菜切菜烧菜,最后烹饪出一份美食,这个过程就是Paas服务;
你直接点一份外卖,拿到的就是做好的美食,你只负责吃,这个过程就是saas服务。
5
云计算部署模型
私有云– 云计算基础架构提供给包含多个消费者的单一组织专门使用。该云计算基础架构可以由该组织、第三方机构或他们的组合来拥有、管理和运营,基础架构可以位于组织内部或外部。
社区云-云计算基础架构提供给一个由多个组织的成员组成的消费者社区专门使用,这些组织有共同关注的话题(例如,任务、安全需求、政策、合规性考量)。该云计算基础架构可以由该社区中的一个或多个组织、第三方机构或他们的组合来拥有、管理和运营,基础架构可位于组织内部或外部。
公有云-云计算基础架构提供给公众开放使用,该云计算基础架构可以由商业机构、学术组织或政府机关、或者他们的组合来拥有、管理和运营,基础架构位于云计算服务提供商内部。
混合云– 由两个或多个独立的不同云计算基础架构(私有、社区或公有)组成,他们通过标准或私有技术被绑定在一起,实现数据和应用程序的可移植性(例如,当云爆发时实现多云之间的负载均衡)。
同样打个比方:
饿了要吃饭,在家里自己做饭属于自建私有云,需要建造厨房购买锅碗瓢盆柴米油盐等,吃完饭还需要自己刷锅洗碗等运维工作,费时费力;
外面餐馆提供的就相当于公有云服务,按需胡吃海塞吃完结账抹嘴走人,餐馆后厨如何安排做菜顺序并加快出菜速度就是负载均衡和虚拟化概念;
请厨师到家里上门做饭则属于典型的混合云,在资产安全的情况下有限使用公有云。
如果你上班的单位提供食堂,但是只对单位内部人员和单位下属的部门提供服务,这种就属于典型的社区云;
。
6
云计算关键技术
上面讲到云计算的发展历史,云计算发展到今天,是基于关键技术的不断发展,最终整合在一起才发展成今天所见的云计算产品和服务。
6.1. 虚拟化技术
虚拟化就是通过软件与硬件解耦,实现资源池化与弹性扩展。主流虚拟化技术有KVM,Xen,VMware,Hyper-V等。目前KVM是最受欢迎的虚拟化技术,AWS、阿里云、华为云、腾讯云目前也都从Xen转向了KVM。
除了软件虚拟化,还有硬件辅助虚拟化(如Intel-VT或ADM-V),比如通过引入新的指令和运行模式,来解决软件无法实现完全虚拟化的问题,同时也能进一步提升虚拟化的性能与处理能力。
6.2. 分布式技术
分布式就是把同一个任务分布到多个网络互连的物理节点上并发执行,最后再汇总结果。分布式系统的扩展性,性能、容量、吞吐量等可以随着节点增加而线性增长,非常适合云计算这种大规模的系统。在云上主要应用的有分布式存储、分布式数据库、分布式缓存,分布式消息队列等。
云计算、分布式计算、网格计算的区别:
并行计算 -并行计算是相对于串行计算,时间上并行即流水线技术,空间上并行即多个处理器同时计算,即解决单个处理器性能问题。
分布式计算 -将复杂的问题分解成多个小任务分发到多台计算设备处理,最后再终于计算结果进行综合分析得到最终结果。并行计算和分布布计算在粒度上,前者借助并行计算算法分配到不同处理处理器处理,后者执行计算任务的处理器之前相互独立;时间上,并行计算在短时间内完成,分布式则一般运行较长时间。不过二者在并行和分布式的特征上是相似的。
网格计算 -将异构多余的计算机资源组成一个虚拟计算集群,也用于解决大规模复杂问题。网格计算的焦点放在支持跨管理域计算的能力,这使它与传统的计算机集群或传统的分布式计算相区别。
云计算 -云计算是最新开始的新概念,它不只是计算等计算机概念,还有运营服务等概念了。它是分布式计算、并行计算和网格计算的发展,或者说是这些概念的商业实现。云计算不但包括但不限于分布式计算还包括分布式存储、缓存。云计算是从集群技术发展而来,区别在于集群虽然把多台机器联了起来,但其某项具体任务执行的时候还是会被转发到某台服务器上,而云可以简单的认为是任务可以被分割成多个进程在多台服务器上并行计算,然后得到结果,好处在于大数据量的操作性能非常好。云可以使用廉价的PC服务器 ,可以管理大数据量与大集群,关键技术在于能够对云内的基础设施进行动态按需分配与管理。云计算与并行计算、分布式计算的区别,以计算机用户来说,并行计算是由单个用户完成的,分布式计算是由多个用户合作完成的,云计算是没有用户参与,而是交给网络另一端的服务器完成的。
6.3. SDN 与 NFV
SDN是软件定义网络,核心是网络的控制面(网络策略)和转发面(数据流向)分离;NFV是网络功能虚拟化,将以往需要专用且昂贵的设备提供的网络功能,比如负载均衡与防火墙,通过软件和普通的x86服务器来实现。
云计算的网络功能都关联到私有网络VPC上,VPC是通过网络隧道协议(GRE和VXLAN)实现逻辑隔离的虚拟网络。GRE封装在主机上做,而VXLAN封装在交换机上做。所以阿里云、腾讯云VPC使用GRE隧道封装,在IP数据包中增加GRE报头(里面是VPCID)来实现多租户或不同虚拟网络之间的隔离。而华为云VPC使用VXLAN隧道封装。
6.4. 云原生技术
容器、微服务和DevOps号称云原生三驾马车,是实现技术中台的重要组件。容器是非常轻量秒级部署的虚拟化技术,主要理念就是一次封装,到处运行。通过Linux命名空间、Cgroups与rootfs构建进程隔离环境,将应用软件及其运行所依赖的资源与配置打包封装,提供独立可移植的应用运行环境。Docker当前最火的容器引擎,Kubernetes负责容器编排与集群管理。微服务架构是对SOA升华,将将应用解耦成更加轻量化,独立自治、敏捷开发、部署与治理、可通过HTTP方式访问的服务。微服务可以基于虚拟机、容器或Serverless函数来部署使用。开源的微服务框架主要有Dubbo、Spring Cloud。新推出的Service Mesh通过Sidecar智能代理方式让不同应用可以不用修改代码即可接入微服务平台,被称为微服务2.0。DevOps就是敏捷开发运维,通过持续集成与持续部署CICD等自动化工具与流程,打通应用开发、测试、发布、运维的各个环节,以大幅提升系统效率与可靠性。
6.5. 云安全技术
云环境由于规模巨大,组件复杂,用户众多,其潜在攻击面较大、发起攻击的成本很低,受攻击后的影响巨大。所以云安全形势还是非常严峻,涉及主机安全、网络安全、应用安全、业务安全,数据安全等,各厂商在相关领域都有比较成熟的产品和技术。2019年12月1日刚生效的等保2.0对云安全提出了全面详细体系化的要求和指导,目前已经成为一个条必须满足的合规要求,金融政府等重要企业单位的IT系统都要求达到等保三级以上。其重点就是一个中心(安全管理中心)三重防护(计算环境安全,通信网络安全、区域边界安全)。
6.6. 云管理平台
云计算是一个非常复杂的系统,对整个云平台进行敏捷高效的管控运维非常重要。云管理通常涉及四个层面:一是租户端管理,让用户能有效管理使用基本的云服务;二是运营管理,涉及云服务运营策略,如资源管理、计量计费,消息通知等;三是运维管理:涉及云平台的可用性与可靠性保障,如自动化运维,监控告警、运维排障等。四是多云纳管,当前对于很多企业混合云是一个趋势,私有云+公有云,或者引入和均衡多个云厂商。所以需要提供能够统一纳管多种云,以及传统IT环境的管理平台。OpenStack是一个开源的云管平台,各个云厂商都有自己的管控平台,还有一些专门做多云纳管的厂商,比如博云、骞云、飞致云等。
当然,云计算还有很多重要的技术,比如边缘计算、IoT、区块链等
7 一张图总结
后话:
云计算的发展是一个曲折的过程,它跟计算、存储、网络的底层虚拟化技术的发展是分不开的,虚拟化和分布式技术的发展奠定了云计算的基础,而云计算平台为AI、大数据、物联网、区块链打牢了地基。在云计算平台上,政府、企业等都在不断探索新型的信息化和商业模式。