理解云计算
注:本文本人译自https://dzone.com/refcardz/getting-started-cloud,原作者David Posin 和 Daniel Rubio。转载请注明出处。
1. 关于云计算
云计算概念囊括了广泛的为企业和消费者提供的服务。从根本上讲,云计算是指基于特定目的通过互联网使用位于世界上某个地方的资源。
与云服务的交互通常是通过浏览器(web browser)或者命令行(CLI)工具来实现的,通常不需要安装软件和硬件,并且不用租用数据中心。
Google和Amazon是最早进入云计算领域的两家厂商,Microsoft紧随其后。随着时间推移,云计算厂商的产品线逐渐成熟,同时竞争也不断加剧。IBM和Rackspace,以及其他公司也都相继加入了竞争。云计算领域现在有无数的公司在提供服务。本文主要聚焦在Google、Amazon和Microsoft这几家厂商,主要原因是在撰写本文的时候他们是市场上云计算的主要领导者,并且都拥有相当成熟的产品线。
2. 云计算的类型
云计算主要分为三种主要的类型:IaaS, PaaS 和 SaaS. 以下会详细讨论每种类型.
IaaS (Infrastructure as a Service) - 基础设施即服务
IaaS是人们讨论云计算时候最先想到的。IaaS模拟了企业传统上用来创建内部和外部网络系统而购买的硬件设备。安装硬件和连接到物理网络这些繁琐的工作现在通过创建一些配置就可以实现了。几乎传统网络的每一个部分都可以提供为云服务。
例如:
- 服务器(Servers)
- 防火墙(Firewalls)
- 路由器(Routers)
- 负载均衡器( Load Balancers)
- 内容提供网络 CDN (Content Delivery Network)
优点:
- 没有硬件:不需要设备的投资
- 花费跟使用量相关:初始投资会比购买设备少得多。
- 可扩展性:网络可以很容易的扩展、收回或者转换,而不会因租约或者收购而引起财务影响。
- 快速管理:能够快速地解决网络问题或改进网络配置。
缺点:
- 学习曲线陡峭:需要花费相当大的时间和精力才能够全面利用IaaS服务提供的各种可能性。
- 不受自己控制:提供网络支持的各种资源受控于其他公司。
- 服务协议:与IaaS提供商签订的服务使用协议可能需要法律方面的审核。
- 网络可靠性:大多数的Iaas提供商提供99%以上的服务可用时间,所以不用太担心,但总还是有一定的不可用的几率发生。
SaaS (Software as a Service) - 软件即服务
SaaS,软件即服务,在现在互联网时代是如此常见,以至于经常被人忽视它也是云计算领域的一部分。SaaS是指提供一系列业务的基于互联网的产品,它包括从电子邮箱服务到人力管理的各种产品。
传统上与SaaS产品交互主要是通过web浏览器来实现。随着移动设备的普及,交互方式也在慢慢的不断改变。现在大多数的SaaS产品都提供网页和移动设备的客户端。
例子:
- 邮箱服务: Gmail, Outlook.com
- 客户关系管理 (CRM): Salesforce
- 办公: Office.com, Dropbox, Box.com, Google Docs
- 应用支持: InsideOps, Logentries, Google Forms
优点:
- 受管理的服务:SaaS产品的客户只用聚焦在产品的具体使用即可,不用关心具体软件或者硬件是如何运行的。
- 快速和定期的升级:客户只用关心产品本身;SaaS提供商会持续的改进、修复、维护产品从而不断改进他们提供产品的可用性。
- 跨平台: 企业级的SaaS产品通常都能工作在所有的现代浏览器和各种移动设备上。
- 专有的客户支持:如果有什么东西需要改正,你的内部资源不用中断自己的工作去做这些事情,而是交由SaaS提供商去做。
缺点:
- 产品更新不受自己控制:产品的开发和功能的增加不受你的控制。当然,大多数的供应商都为客户提供了反馈需求的渠道。
- 服务协议:与SaaS提供商签订的服务使用协议可能需要法律方面的审核。
- 定制困难:在SaaS 产品中为你公司的量身定制某些特定需求可能很难做到或者成本很高。
- 可靠性:大多数的SaaS产品提供99%以上的服务可用时间,但总还是有一定的不可用的几率发生。
PaaS (Platform as a Service) - 平台即服务
PaaS,平台即服务,相比SaaS和IaaS一直受到关注较少,直到最近情形才有所改变。PaaS提供的能力最近越来越受到重视,因此有越来越多的PaaS产品不断涌现。PaaS处于IaaS和SaaS的中间位置。PaaS服务允许客户在现有工具基础之上创建自己定制化的产品。
例子:
- 定制交互式跑步比赛:RaceLink
- 应用构建: Google App Engine, SAP Hana, Cloud Foundry
优点: (与SaaS类似)
- 快速和定期的升级:客户只用关心产品本身;PaaS提供商会持续的改进、修复、维护产品从而不断改进他们提供产品的可用性。
- 跨平台: 构建在企业级的PaaS产品上的应用通常都能工作在所有的现代浏览器和各种移动设备上。
- 定制化:使用PaaS产品作为起点创建你自己定制化的应用意味着你的应用可以更适应你的业务和流程。
- RAD快速开发 (Rapid Application Development): 你的员工或者客户在PaaS上创建应用会比传统的应用开发更为快捷。
缺点:(与SaaS类似)
- 产品更新不受自己控制:PaaS产品的开发和功能的增加不受你的控制。当然,大多数的供应商都为客户提供了反馈需求的渠道
- 服务协议:与PaaS提供商签订的服务使用协议可能需要法律方面的审核。
- 可靠性:大多数的PaaS产品提供99%以上的服务可用时间,但总还是有一定的不可用的几率发生。
- 自己内部的开发时间仍需要考虑:内部员工可能还需要时间开发、修正、改进自己在PaaS创建的应用。
3. 云基础
什么是“云”?
“云”是一个简称,用来描述巨大的连接在一起的服务器网络,这些服务器能够提供计算资源,用户不用关心它们具体位于何处。“云”给人的感觉就是一个庞大的具有强大计算能力的无形的计算机群,在它上面运行着各种应用软件,从Emai到连接到手机端的各种应用。
在商业词汇里,是没有“云”这个词的。云计算其实就是不同服务商提供的一系列的授权服务。云服务剥离了技术管理和技术获取上的依赖,而将其替代为在别处管理的按需使用的产品。
为了更好的理解云服务,让我们将云与其他传统的技术选项做个比较:
类型 | 描述 |
---|---|
On-premise (内部部署) | 软件和硬件部署于公司内部,能够在公司内的某个物理位置进行直接管理。On-premise的硬件和软件通常总是运行中的且随时可用的。 |
Off-premise (外部部署) | 物理的硬件和软件位于某个特定的地点,常常是租用的空间。Off-premise的硬件和软件通常是运行中的而且是客户专用的。这一般指租用的数据中心或者磁带备份地点等等。 |
Cloud (云) | 物理的或者虚拟化的硬件和软件按需位于资源池中任何可用的资源上。一个公司可能使用一个服务器运行自己的应用程序,但这个服务器并不是公司自己租用的物理的设备。云服务厂商提供使用的服务器可能根据需要发生变化,而且可能位于多个不同的地点。 |
“云”在哪儿?
个人和企业基于不同的目的可以轻松的使用各种不同的云服务,因此“云”让人有虚无缥缈之感。但是当你开始直接使用不同厂商的云服务时,你可能会很快意识到地理位置其实还是有关系的。尽管确实可能从任何地方都能访问到大多数的应用,但考虑到地理位置的因素,不同的地方可能体验并不相同。
云计算产品基本上来讲是区域敏感的。所有的服务商都会提供选项从而让你控制自己的环境放置于哪个区域。区域的位置和范围随不同服务商而不同。
你所需的云服务区域的数量和位置很大程度上由你的应用、网络、延迟容忍度和服务等级协议决定。你对某些特定服务的需求可能也会影响你对区域的选择。不是所有的云服务在所有的区域都可用。
经常谈论的最大的影响云计算区域选择的因素就是延迟。数据和资源从服务器到客户端的响应时间可能造就用户选择使用或者放弃使用你的应用的不同后果。一个提供静态web内容的应用可以位于数个不同的数据中心,轻量级的数据加载意味着传输会更快。但如果一个应用需要大量的数据集,那么它最好部署于离最终客户最近的区域。更大的数据量,更远的传输距离,都会导致更大的延迟。
同应用软件一样,对于网络而言,延迟同样是需要考虑的重要因素。网络数据包需要跳转的次数能够很快地影响系统响应时间。负载均衡器可以帮助控制网络传输,但是如果如果在到达负载均衡器之前网络传输依然需要多次跳转,那负载均衡器的作用就微乎其微了。当选择云服务区域时,需要同时考虑网络延迟和应用延迟。
Amazon数据中心 (截至3/2017)
区域 | 城市 |
---|---|
亚太 | - 孟买 - 首尔 - 新加坡 - 悉尼 - 东京 |
加拿大 | - 中部 |
中国 | - 北京 |
欧洲 | - 法兰克福 - 爱尔兰 - 伦敦 |
南美 | - 圣保罗 |
美国东部 | - 北弗吉尼亚 - 俄亥俄 |
美国西部 | - 北加利福尼亚 - 俄勒冈 |
政府云 | - 政府 |
Google数据中心 (截至3/2017)
区域 | 城市 |
---|---|
美国中部 | - 爱荷华州康瑟尔布拉夫斯 |
美国东部 | - 南加州伯克利县 |
东亚-太平洋 | - 台湾彰化 |
东北亚-太平洋 | - 日本东京 |
西欧 | - 比利时圣吉兰 |
美国西部 | - 俄勒冈州达尔斯 |
Microsoft数据中心 (截至3/2017)
区域 | 城市 |
---|---|
美洲 | - 弗吉尼亚 - 爱荷华 - 伊利诺伊 - 德克萨斯 - 美国中西部 - 加利福尼亚 - 美国西部2 - 魁北克 - 多伦多 - 圣保罗 |
亚太 | - 北京 - 釜山 - 金奈 - 香港 - 孟买 - 西南威尔士 - 大阪 - 浦那 - 琦玉 - 上海 - 新加坡 - 东京 - 维多利亚 |
政府 | - 爱荷华 - 弗吉尼亚 - 美国国防部-东部 - 美国国防部-中部 |
欧洲 | - 加的夫 - 法兰克福 - 爱尔兰 - 伦敦 - 马格德堡 - 荷兰 |
4. 混合云
云计算在过去数年里一直在不断演进。原来作为企业基础设施补充部分的云计算已经成为整体不可或缺的组成部分。混合云的概念就是这种演进的反映。
混合云就是将云计算资源与其他内部部署(on-premise),外部部署(off-premise)和其他第三方资源集成在一起。在大多数情况下,这种集成对于最终客户是透明的。比如,一个本地的文件服务器可能存放着明天要使用的幻灯片,但是员工正在使用Office.com上基于云的Powerpoint产品来编辑它。
一些云服务甚至允许一些物理上的集成,从而满足安全、延迟或者其他商业上的需要。服务商通常把这种集成叫做连接到云端。Amazon的 AWS Direct Connect, Google的 Interconnect 和Microsoft的 Express Gateway,都是这种配置的例子。
5. 云服务
云厂商的产品线大都倾向于大而全,涉及各个方面。统一起来讲,是有可能将整个机构的技术栈全部都运行在云上的。但更常见的场景是使用云服务来加强现有的基础设施部分,或者弥补缺失的部分。Google, Amazon 和 Microsoft都提供IaaS、PaaS和SaaS的产品线组合来供用户选择使用。
下表试图给出三大云厂商提供的广泛使用的相似服务。考虑到术语叫法可能不同,一些门类在不同的服务商那儿可能有些许区别。尽管也许会有些小的差异,该表格使用的门类基本对应了大多数的云服务。
计算(Computing)
存储(Storage)
数据库(Databases)
网络(Networking)
大数据和大数据分析(Big Data and Big Data Analytics)
当然, 以上还不是全部...
6. 云服务的关键优势
按量付费
直到很多年以前,外部服务部署的成本依然类似租约的形式。不管对于分配的资源使用与否,都会导致一定量的成本发生。今日的云计算改变了这一情形。对于云服务使用的收费基于使用了多少服务资源。例如,一个虚拟机的使用成本基于你使用的计算资源的大小和服务器运行时间的长短。同时,一个数据仓库的计费基于你存储数据量的多少和生成报表的频率。
这个计价模型可能看起来比较复杂,但是客户能够极大地受益于此。按量计费意味着各种规模的公司都可以用得起一定的计算资源。而这些计算资源,如果他们通过购买硬件、软件、物理存储进而搭建网络从而获得,那成本上可能是无法实现的。一个内部的数据仓库构建是极其昂贵的,而对于一个基于云的,按量计费的数据仓库显然更能负担得起。
一次性的或者可选择的计价
云服务经常可能由于一次性的事件导致流量剧增(如:全国电视直播,超级碗等等)。不仅这种类型的服务常常很昂贵,而且经常很难满足需求。
云计算平台允许应用可以按需立即访问额外的资源,并且不需要额外的配置。
除了高峰期和一次性计价,一些服务还允许选择其他的计价模型。一个例子就是在高峰期后的时间段里费用会更便宜。如果一些运行可以发生在资源使用的低谷期,如某个数据中心的午夜到凌晨时间段,那这些运行有时可以更便宜。
此外,如果有些应用程序有非常灵活的使用需求,那一些云服务商还允许客户出价在基于当前价格计算的优惠价格上使用某些资源,即使需要等很长时间这些资源才可用。例如,一个大的批处理进程可以安排在计算资源为¥0.x/分钟时候再运行,通常这时候费率低是因为这个时间窗口计算资源利用率低,当计算资源利用率恢复到正常水平或者批处理进程完成时,批处理就会停止运行。
最后,有时还会有专有资源的需求,这经常是云计算里成本最高的部分。对于有些资源,如磁盘存储或者服务器,公司是有可能签订一个类似租约的价格方案从而专有地拥有一个云计算资源。这会适用于:
- 关键的应用、网络和进程。它们不能受普通的虚拟机或者其他同主机的进程的影响。
- 既想受益于云计算的优势,但是监管要求不允许主机共享。
自动增长和扩展技术
云计算资源是虚拟化的,通过配置适应各种特定需求,但是它并不是物理硬件的一部分。这意味着可能非常容易地按需启动更多的资源。如果一个客户处于快速成长期,那么云平台可以容易地为其增加可用资源,而不需要复杂的安装或者配置。反之亦然,如果一个公司需要削减成本,那么关闭掉一些资源或者使用更少的资源并不用费力就可做到。
云服务可以按需做到永久性的或者临时性的,因此扩展同样很容易做到。一个设计用来高使用频率的应用软件可以很容易地从小规模资源使用量扩展到大规模资源使用量,而不需要额外的配置。云服务经常能够当而且仅当需要时初始化额外的资源。
其他的云计算服务商
Amazon, Google 和 Microsoft的云计算平台统治了云计算领域,但是其他服务商也在发展。其中一些提供商包括:
- Openstack Public Cloud
- IBM Cloud & BlueMix
- Heroku
很多这些服务商依赖于工业标准的虚拟化和操作系统技术,从而使他们能够与其他云计算平台竞争。但是,由于三强的平台的成熟度和健壮性,这些服务商很难与Amazon, Google 和 Microsoft的云计算平台相比。
无论如何,这些其他的服务商已经在云计算细分市场上分了一杯羹。一些通过更激进的定价策略,一些通过为特定的社区提供服务(如Ruby/Rails或Linux),一些通过提供比大的竞争对手更好的服务。
“云”也当机 (极少)
客户预期他们的云服务提供商保证99+%的运行时间。云服务商同样意识到了客户在这点上的预期,而且做了很多事情来达到这个阈值。但如果考虑到难以置信的数小时的服务中断,即使1%的当机时间也可能对你产生影响。没有技术是完美的。
云计算服务商提供了状态页面供客户查询可能发生的服务中断时间:
-
Google Cloud Status Page: https://status.cloud.google.com/
-
AWS Status Page: https://status.aws.amazon.com/
-
Microsoft Azure Status Page: https://azure.microsoft.com/status/
-
IBM Cloud Status Page: https://www.ibm.com/cloud-computing/social/maintenance/
-
Rackspace Status Page: https://status.rackspace.com/
云计算团队博客
为了保持与云计算服务商提供的最新服务保持同步,建议你查阅以下云计算团队的博客:
-
Google Cloud Platform Blog: https://cloudplatform.googleblog.com/
-
AWS blog: https://aws.amazon.com/blogs/aws/
-
Microsoft Azure team blog: https://azure.microsoft.com/blog/
-
IBM Cloud blog: https://www.ibm.com/blogs/cloud-computing/
-
Rackspace blog: https://blog.rackspace.com/